Red Hat ベースの Linux では、iptables には特定のデフォルト ルールが付属しています。それらをクリーンアップして、最初からやり直すことをお勧めします。
この記事は、進行中の iptables チュートリアル シリーズの一部です。これは、そのシリーズの 2 番目の記事です。第 1 部では、IPTables のテーブル、チェーン、ルールの基礎について説明しました。
iptables を使用してファイアウォール ルールを追加する方法を学習する前に、既存のすべてのデフォルト ルールをクリーンアップし、すべてをゼロから開始する方法を理解しておくと役に立ちます。
IPTables のデフォルト ルール
以下に示すように、iptables ファイアウォールを開始します。
# service iptables status Firewall is stopped. # service iptables start Applying iptables firewall rules: [ OK ] Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
以下に示すように、iptables -> Filter Table -> RH-Firewall-1-INPUT Chain でデフォルトのルールを確認できます。 「iptables –list」を使用してすべてのルールを表示することもできます。
# service iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) num target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
IPTables ルールは /etc/sysconfig/iptables に保存されます
iptables ルールは /etc/sysconfig/iptables ファイルに保存されていることに注意してください。このファイルを表示すると、すべてのデフォルト ルールが表示されます。
# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
すべてのファイアウォール ルールを一時的に削除します
「iptables –flush」オプションを使用して、すべてのルールを一時的に削除します。
# iptables --flush # iptables --list Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination
「iptables –flush」の後、iptables を再起動すると、すべてのデフォルト ルールが再び表示されます。つまり、–flush は一時的なものです。
# service iptables stop # service iptables start # iptables --list
すべてのデフォルトのファイアウォール ルールを完全に削除
すべてのファイアウォール ルールを削除する前に、/etc/sysconfig/iptables ファイルに次のように表示されます。
# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
まず、上記で説明したように、これらすべてのルールを一時的にフラッシュします。
# iptables --flush
次に、'service iptables save' を使用して、現在の iptables (フラッシュしたばかりなので空です) を /etc/sysconfig/iptables ファイルに保存して、永続的に使用します
# service iptables save Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
最後に、/etc/sysconfig/iptables を表示して、ルールがないことを確認します。
# cat /etc/sysconfig/iptables # Generated by iptables-save v1.3.5 on Thu Oct 28 08:44:01 2010 *filter :INPUT ACCEPT [102:7668] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [78:8560] COMMIT # Completed on Thu Oct 28 08:44:01 2010
ここで、iptables を停止して開始すると、デフォルトのルールは表示されなくなります。そのため、'iptables –flush' を永続的にするには、'service iptables save' を実行することを忘れないでください。
# service iptables stop # service iptables start # iptables --list
これで、iptables の基礎と、既存のすべてのルールをクリーンアップしてゼロから開始する方法を理解できました。次の記事では、新しい iptables ファイアウォール ルールの追加を開始する方法を、いくつかの実用的な例とともに学習します。