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