passiveFTPを単純なパケットフィルタで許可しようとすると、
次のようなパケットフィルタルールを設定する必要がある。
FTP( File Transfer Protocol )のモードの違い
「from クライアント:1024〜65535 to FTPサーバ:21」を許可
「from クライアント:1024〜65535 to FTPサーバ:1024〜65535」を許可
これでは、パケットフィルタを設定する意味があまりない。
そこで、LinuxでFTPの通信の関連性を把握できるように設定して、
最小限の許可設定でpassiveFTPを許可できるように設定する。
LinuxのiptablesでpassiveFTPを許可する設定は次の通り
1.必要なモジュール(ip_conntrack_ftp)のインストール
ip_conntrackがいっしょにインストールされる
# modprobe ip_conntrack_ftp
インストールされているモジュールを確認する
# lsmod
ちなみに、インストールされているモジュールを削除するには、
# rmmod ip_conntrack_ftp
2.iptablesの設定
「ip_conntrack_ftp」によってステートフルインスペクションが可能になり、
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A INPUT -p tcp --dport 21 -d [サーバのIPアドレス] -j ACCEPT
「RELATED」でpassiveFTPを許可できる。
ちなみに、「ESTABLISHED」は、TCPの返りの通信を許可するための設定(今回とは無関係)。
<設定の保存・反映>
service iptables save
service iptables stop
service iptables start