iptables ユーティリティは、Linux カーネルのネットワーク パケット フィルタリング コードを制御します。 iptables 機能は、Linux カーネルで IP パケット フィルター規則のテーブルを設定、維持、および検査するために使用されます。複数の異なるテーブルを定義できます。各テーブルには、多数の組み込みのチェーンが含まれています また、ユーザー定義のチェーンが含まれる場合もあります。
FTP サーバーでは、デフォルトで iptables ルールは FTP 接続用にポート 20/21 を許可するように設定されていません。 ftp 接続を開こうとすると、次のエラーが発生します:
# ftp 192.168.10.10 ftp: connect: No route to host ftp>
iptables で FTP ポート 20/21 を許可する
ftp サーバーにログインし、以下の手順に従ってください。
1. ファイル /etc/sysconfig/iptables-config を編集します 「ip_conntrack_ftp」を追加します 「」モジュールをセクション「IPTABLES_MODULES=」に 」。エントリは次のようになります:
IPTABLES_MODULES="ip_conntrack_ftp"
2. ファイル /etc/sysconfig/iptables を編集し、ポート 20/21 に iptables ルールが追加されていることを確認します
# vi /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT ## rule related to FTP command (port 21) -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT ## rule related to FTP data (port 20) -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT注: iptables ルールの順序は重要です。
3. iptables サービスを再起動します
# service iptables restart
4. 以下のコマンドを実行して、ftp モジュールがロードされているかどうかを確認します。
# lsmod | grep -i ftp
出力例:
# lsmod | grep -i ftp nf_conntrack_ftp 12913 0 nf_conntrack 79357 3 nf_conntrack_ftp,nf_conntrack_ipv4,xt_state
5. 以下のコマンドを実行して、ftp ポート 20 およびポート 21 に関連する iptables ルールが有効になっているかどうかを確認します。
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination
6. クライアントから ftp サーバーに正常に ftp できるかどうかを確認してください。