II-21-8. FTPサーバの設定におけるセキュリティ項目

パーミッションの設定方法や、FTPでファイル書き込みを防止する方法、welcome.msgの利用やアクセス制御、ftp.usersやftp.hostsといった各種の設定方法について解説し、FTPサーバをセキュアに保つ具体的な手順を説明する。

【学習の要点】

* vsftpdは、セキュリティを重視したFTPサーバデーモンであり、いくつかのLinuxではデフォルトのFTPデーモンとなっている。

* vsftpdは、chroot、IPv6、SSL/TLSをサポートする。また、inetdやxinetdの下で動かすことも、単独で動かすこともできる。

* 匿名ユーザの設定、chrootの設定、ACLの設定は、FTPサーバを使用する場合、特に気をつける必要のある設定項目である。

図II-21-8. FTPの接続形態(アクティブモードとパッシブモード)

【解説】

1) vsftpdの基本設定

* vsftpdをインストールすると、デフォルトでは匿名ユーザがファイルをダウンロードできる設定になっている。

* デフォルトでanonymous_enableはYESとなっている。匿名ユーザのログインを許可しない場合は、これをNOに設定する。

* 匿名ユーザに書き込みを許す場合は、anon_upload_enableをYESに設定する。同様にディレクトリの作成を許すにはanon_mkdir_write_enableをYESに設定する。共にデフォルトではNOとなっている。

2) ACLとchrootの設定

* vsftpdは、LinuxのPAM(Pluggable Authentication Module)を使用する。pam_service_nameによって使用するpam設定ファイルを指定する。誤って指定すると正しく認証できないので注意する。

* システムのローカルユーザにFTPでのログインを許可するには、local_enableをYESに設定する。さらに書き込みを許すには、write_enableをYESに設定する。

* userlist_enableをYESに設定し、かつuserlist_denyをYESに設定(デフォルト)すると、userlist_fileに指定されたファイルに記述されたユーザのログインを禁止する。userlist_denyをNOに設定すると、userlist_fileに指定されたファイルに記述されたユーザのログインのみ許可する。

* chroot_list_enableをYESに設定し、かつchroot_local_userをNOに設定(デフォルト)すると、chroot_list_fileに指定されたファイルに記述されたユーザにchrootを実行する。chroot_local_userをYESに設定すると、chroot_list_fileに指定されたファイルに記述されたユーザ以外のユーザにchrootを実行する。

3) パッシブモードとアクティブモード

* 最近のFTPクライアントでは、パッシブモードを使用することが多い。デフォルトではYESとなっており、多くの場合これを変更する必要はない。無効にしたい場合はpasv_enableをNOに設定する。

* パッシブモードで使用するポートの範囲は、 pasv_min_portとpasv_max_portで指定する。ファイアウォールでは、これらのポートでの接続を許可しておく必要がある(明示的にこれを許可する必要はなく、FTPセッションを解釈して自動的にポートを開放する設定を行うことができるデバイスも存在する)。

* PORTによるアクティブモードのサポートもデフォルトでYESとなっている。無効にしたい場合は、port_enableをNOに設定する。

4) ログの設定

* log_ftp_protocolをYESにすることで、すべてのFTPコマンドのログを記録することができる。運用初期段階や、トラブル時などには非常に役立つ。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。

フォーラム会員企業専用

記事配信

コンテンツ配信

ユーザログイン