Webにアクセスするためにループバックトラフィックを承認するためにiptablesを使用する必要があるのはなぜですか?

Webにアクセスするためにループバックトラフィックを承認するためにiptablesを使用する必要があるのはなぜですか?

デスクトップ(サーバーではない)から出てくるHTTPには、次のものが必要だと思います。

iptables -A INPUT  -p tcp -m multiport --sports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

しかし、それが機能するには両方が必要であることがわかりました。私は理由を知らない:

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

最後のルールがloインターフェイスへのUDPアクセスを許可していることがわかります。

しかし、必要なのはoutgoing TCP for NEW/ESTABLISHED connections+だけだと思いますincoming TCP for ESTABLISHED connections。 (まだ学んでいるから) これは私に反直観的なようです。

ベストアンサー1

明らかにloインターネットアクセスは必要ありません。ただし、ローカルDNSサーバー(配信者)が実行されている可能性があります。 DNSはUDPを使用し、WebアクセスにはHTTPに加えてDNSが必要です。

ちなみに、あなたのルールは(関連)ICMP応答を許可しません。これは問題を引き起こす可能性があります(低いMSS / MTU値を使用しない限り)。ただし、発信ICMPも許可されていないため、パスMTU検索も機能しません。

おすすめ記事