ルールを手動でキー入力する代わりiptables
に、適切なチェーンにルールを追加して保存するために使用できます。これにより、ルールを実際にデバッグして、ルールが正しいことを確認し、実行しているように見えるファイルにルールを追加する必要がなくなります。
ポート80を開くには、次のようにします。
$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save
最後のコマンドは、追加されたルールを保存します。これは、Webトラフィック用のポートを開くために使用するルールです。
ルールが問題を引き起こしている理由
使用しようとしているルールに気付いた場合:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
「RH-Firewall-1-INPUT」というチェーンがあります。このチェーンがない場合、またはINPUT
チェーンからこのチェーンへのリンクがない場合、このルールには到達できません。このルールは次のようになります。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
または、次のようなルールを使用して、INPUT
チェーンをこのチェーンにリンクする必要がありますRH-Firewall-1-INPUT
。
$ sudo iptables --list
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
....
注:このコマンドを使用すると、どのチェーンがあるかを確認できます。
$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...
また、既存の接続も許可されるように、状態を変更する必要がある場合があります。
-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT
また、-A
スイッチを使用すると、chainにルールを追加しますINPUT
。この規則の到達をブロックおよび/または妨害している他の規則がある場合、その規則は実行されません。したがって、次のように、追加するのではなく挿入することにより、最上部に移動することができます。
-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT
GUIを使用する
ファイアウォールは複雑な獣になる可能性があります。したがって、代わりにTUIを試してください(TUIは端末のGUIです)。
$ sudo system-config-firewall-tui
その後、iptables
ルールを設定するさまざまな画面を確認できます。
参照資料