[CentOS]FTPサーバーをパッシブモードで使う時の設定
iptablesとvsFTPdの設定のお話。
FTPというのは元々はサーバー側ポート20,21を使ってクライアント側と通信を行ないます。クライアント側からサーバー側のポート21にアクセスして、サーバー側ポート20からクライアント側に接続してきます。
しかし最近は、大抵の場合クライアント側にルーターが入っているのでこの方法ではうまく接続できなかったり不安定だったりします。それでよくパッシブモードを利用します。パッシブモードは最初のサーバー側への接続もデータコネクションの接続もクライアント側から行ないます。なのでクライアント側がルーターやファイヤーウォールの内側にいてもFTPできる様になります。
その際、サーバー側は制御ポート21とパッシブ接続用のパッシブポートを空けておかなければなりません。セキュリティを全く考慮していないおばかなサーバーならまだしもセキュリティをちゃんと考えていれば、サーバー側でも利用するポート以外は閉じているはずですので、サーバー側のファイヤーウォールとFTPサーバーのパッシブポートの範囲の制御が必要になります。
通常Linux系のOSであればファイヤーウォールは現在iptablesだと思われますのでまずiptablesでパッシブモードで利用するポートの範囲を指定してあげます。iptablesの設定はシェルに書いてバッチ処理するのが普通だと思いますが、ポート10100から10150までの50個のポートをパッシブモード用に空けておく場合下のようになります。 –s $mentehostの部分を削除すれば何処からでもアクセスできるようになります。-s $mentehostの$mentehostの部分はシェルでメンテナンス用クライアントのIPアドレスを設定しておきます。通常セキュリティーを考えてメンテナンス用ホストは固定IPまたは限られたIPアドレス範囲にします。
iptables -A INPUT -s $mentehost -m state –state NEW -m tcp -p tcp –dport 10100:10150 -j ACCEPT
iptablesの設定は該当箇所のみの記載ですので詳しくはググルなどして下さい。
vsFTPdの設定
vsFTPdの設定ファイルは通常/etc/vsftpd/vsftpd.confになります。vsftpd.confに下記の行を追記します。
1行目コメント
2行目はパッシブモードを使える様にする設定
3行目はパッシブモードで利用する最小ポート番号
4行目はパッシブモードで利用する最大ポート番号
#passive
pasv_enable=YES
pasv_min_port=10100
pasv_max_port=10150
追記をしたら
service vsftpd restart
でvsftpdを再起動します。これで設定が反映されます。
これでパッシブモードで安定して接続できる用になります。
iptablesの設定が一番面倒です。なれないとわかり難いですし特にリモートから制御を行なっている場合、設定を誤ると自分が接続出来なくなる場合もあるので恐怖ですw。
その為iptablesの設定を行なっていないサーバー等が結構あるのではないかと思います。
レンタルの専用サーバー等初期設定ではiptablesの設定は何も行なわれていませんので、無防備状態です。それを素人さんが借りたりしてそのまま使ってたりするので無防備状態なんですね。(私も素人に毛が生えているようなものですが)
ファイヤーウォールの設定は必須です。
TCP Wrapperの参照ファイルhosts.allowとhosts.denyの設定だけでは不十分です。
現在はどうかわかりませんが過去には中国IP、韓国IP、ブラジルなどからの不正アクセスは酷いものがありました。
その際彼らがまず行なう事はポートスキャンです。泥棒さんでいう下見です。ファイヤーウォールを使っていないポートが開けっ放しのサーバーはセキュリティーが甘いと判断されねらわれ易くなります。普通の泥棒さんと同じ思考です。戸締りのきちんとしてある家、セコムのシールが貼ってあったり、防犯ライトが設置してあったり、犬を飼っていたり。セキュリティ意識のある家はそれだけで抑止力になりねらわれ難くなります。
それと同じで、ファイヤーウォールを利用していないサーバーはそれだけでねらわれ易くなります。なのでファイヤーウォールで利用しないポートは閉じておくのは最低限必要な設定になります。
サーバー管理者なのにiptablesを設定していない貴方今すぐ勉強して設定しましょうw。