vsftpdのインストール

当座の目標は、Movable TypeやWordPressのテストサーバ構築だが、それには『ファイルの転送』がどうしても必要になる。
Linuxのサーバから、直接FTPでMTの実行ファイルを落としてきて、テンプレートの編集も全部vi でしかやらない!!ってならいらないかもしれないが・・・
やはり運用として不便なので、FTPサーバは構築しておく。
なお、今回は事例も多く、5.8で構築した実績もある “vsftpd” を採用。
1.インストール
インストール自体は yum で一撃。
yum -y install vsftpd
以上。
但し、大変なのはここから。

2.vsftpd の設定
vsftpd 本体の設定自体はさほど難しくない。下記のファイルを vi などでいじる。
# vi /etc/vsftpd/vsftpd.conf
いろいろ記述はあるが、肝心なのは下記の箇所。もうちょっといじったかもしれないが、とりあえず確実なところをピックアップ。
*匿名ユーザ
anonymous_enable=NO → 匿名ユーザを許容しない
*ASCIIモード
ascii_upload_enable=YES →ASCIIモードでのアップロード許可
ascii_download_enable=YES →ASCIIモードでのダウンロード許可
*ログインディレクトリ
chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
この組み合わせだと、ローカルユーザがFTPログインした時に、自身のホーム配下以外にはアクセス出来ない。
/etc/vsftpd/chroot_listファイルは空でも良いので作っておく
*ディレクトリ一括操作
ls_recurse_enable=YES → ディレクトリ単位での一括転送を許可
*その他
use_localtime=YES ← タイムスタンプに日本時間を使う
2.1 chroot_listファイルの作成
vi /etc/vsftpd/chroot_list
記述するのは、ホームディレクトリより上位にアクセスしてもよいユーザ名設定が完了したら、起動&サービスに登録
/etc/rc.d/init.d/vsftpd start
chkconfig vsftpd on

 

3.iptables
ネットで見かける事例だと、上記までの設定でオッケーな風に書いてあるところが多いが、ここでハマる。
ネットワーク環境やインストールの仕方にもよるのかもしれないが、現時点でいくらFTPクライアントから接続しようとしてもウンともスンとも言わない。
5.8の時と同様、やはりiptableだろう。

まずは、iptables でFTPが使う20番と21番のポートを開ける。(下記のファイルをいじる)
vi /etc/sysconfig/iptables
下記の記述を追加。5.8の時と似たような記述だが、ちょっと違うので注意が必要。
*”RH-Firewall-1-INPUT”の部分が”INPUT”に変わってる。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
場所としては、~REJECTと書かれている行の上あたりがよさそう。
(ってか、REJECTの行で、上の行の条件に当てはまらないのは全部はじかれるので、その前に書かないと意味がない・・・)
さらに、ちゃんとパッシブモードでFTPを使うには、”ip_conntrack_ftp”というモジュールが必要らしい。
下記のコマンドで、モジュールをロードすることができる。
#modprobe ip_conntrack_ftp
が、これだとiptablesを再起動したり、システムを再起動すると、その都度コマンドが必要。
iptablesの起動時にモジュールを読みこませるには、下記のファイルをいじるようだ。
/etc/sysconfig/iptables-config
ここに”IPTABLES_MODULES”というパラメータがあり、空値になっているので、そこを書き換える。
IPTABLES_MODULES=”ip_conntrack_ftp” ← ip_conntrack_ftpを追記
ここまでの設定を行なって、iptables、vsftpd のサービスを再起動し、FileZilla から接続・・・したが、
500 OOPS: cannot change directory
どうやら、SELinuxを切り忘れていたようだ。setenforce 0
このコマンドでSELinuxを切り、さらに、設定ファイルを触って、システム起動時にSELinuxが有効にならないようにしておく。 下記のファイルがSELinuxの設定ファイル。

/etc/sysconfig/selinux
開いたら、下記の記述を探して、enforcing を disabled に書き換え。
SELINUX=enforcing → SELINUX=disabled これで、FTPサーバを立ち上げて、作業PCからFileZilla でアクセスできるようになった。

コメント

タイトルとURLをコピーしました