FTP サーバー(vsftpd)のインストールと設定 〜 CentOS6

vsftpd が入ってなければインストール。自動起動を設定します。

スポンサーリンク

このエントリーは、CentOS 6.4 インストール~設定手順の目次 の一部です。

ポート開放、iptables と iptables-config の編集

20,21番ポートが開いているのを確認。開いてなければ開ける。

パケットフィルタリングに関する設定をします。

と、ip_conntrack_ftp を追加して、iptables を再起動。

FTP ログイン・ユーザーの制限

次にFTPにログインできるユーザーの設定です。/etc/vsftpd/ftpusers に設定したユーザーは、FTPでログインすることができません。デフォルトでは、root や nobody などがFTPでログインできないように設定されています。

そして少しややこしいのですが、/etc/vsftpd/user_list というユーザーを設定するリストもあります。これはデフォルトでは、/etc/vsftpd/ftpusers と同様にブラックリスト(FTPログインできないリスト)として働きます。

しかし、/etc/vsftpd/vsftpd.conf に以下のように記述するとホワイトリストとなる。

このように記述した場合は、/etc/vsftpd/user_list がホワイトリスト(FTPログインできるユーザーのリスト)として働きます。userlist_deny=NO(拒否するユーザーリストを拒否=許可するユーザーリストして使う)という設定になるわけです。

また、/etc/vsftpd/user_list をホワイトリストとして使っても、/etc/vsftpd/ftpusers がブラックリストとして働くのは変わりません。つまり、/etc/vsftpd/ftpusers に記されたユーザーはFTPログインできません。

ということで今回は、/etc/vsftpd/user_list をホワイトリストとして使う方針でいきます。

と変更する。ついでに、匿名ログインを拒否。

また、chroot(FTPログイン時にユーザー自身のディレクトリのみを見せる)を有効にする。

というセットで設定。これも少しややこしい。詳しくは、FTPサーバ vsftpdの設定(vsftpd.conf) を参照。

ホワイトリストでログイン・ユーザーを指定

つづいて、ホワイトリスト(FTPログインできるユーザー)を指定。

と、FTPログインを許可するユーザーだけ書きます。最後にvsftpdを再起動します。

FTPクライアントから接続を試してみたところ…

とFTP接続できない。SELinuxが機能しているのだろうと、一旦 SELinux を無効化します。

SELINUX=disabled としておく。OS再起動。

または、setenforce 0 で SELinux を Permissive に変更します。こちらの方法だと、再起動は必要ありませんでした。

これで無事に FTP 接続できました。

SELinux を有効に戻し、ポート20,21を閉じる

なお今回の CentOS 環境構築では通常の FTP は使わず次回設定する SFTP のみを使う予定ですので、この後 SELinux は有効に戻しておきます。

再起動。または、

また FTP を使わず SFTP のみ使う場合は、iptables の FTP 用のポート(20,21)を閉じておきます。

スポンサーリンク
サーバ構築研究会の CentOS 本は、昔からお世話になっています。Linux の教科書は Linux の基本を学ぶのにおすすめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!