IPTABLESコードの問題

IPTABLESコードの問題

iptablesを使用してすべてのポートをブロックしています。ただし、www.google.com pingを許可するには、次のコードを使用します。

filter -A INPUT -p tcp --dport 53 -j ACCEPT
filter -A OUTPUT -p tcp --sport 53  -j ACCEPT
filter -A INPUT -p udp --dport 53 -j ACCEPT
filter -A OUTPUT -p udp --sport 53 -j ACCEPT

これはうまく機能しますが、起動時にフィルタを使用するのが正しい方法ではないため、保存するとエラーが発生します。ただし、フィルタという単語なしでコードを使用すると、www.google.comへのpingは機能しません。 PS /etc/sysconfigの下のiptablesファイルに直接保存します。

編集:まあ、フィルタはコード全体を壊しているようで、iptablesはルール全体を削除しています。問題は、DNSポートを開いたにもかかわらずwww.google.comをpingできないことです。

答え1

このpingユーティリティはICMP(インターネットメッセージ制御プロトコル)、いいえUDP(ユーザーデータグラムプロトコル)またはTCP(伝送制御プロトコル)pingファイアウォールを通過する要求を許可するには、次の規則を追加します。

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ALLOW

戻りトラフィックを許可するために、次の規則を追加することもできます。

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

答え2

iptablesルールの順序は重要です。最初-j ACCEPT-j DROPまたはに一致するルールが-j REJECTパケットの運命を決定します。 「すべてのアイテムを破棄」ルールの後に新しいルールを追加すると、一致するパケットがそのルールに到達しないため、何の効果もありません。

答え3

いいですね。正しいルールは次のとおりです。フォーラムで得られた問題を解決しました。

-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p udp --dport 53 -j ACCEPT
-A OUTPUT -p udp --sport 53 -j ACCEPT
-A OUTPUT -p udp --dport 53 -j ACCEPT

関連情報