iptables は INPUT ポート 80 をブロックします。

iptables は INPUT ポート 80 をブロックします。

私の質問は一般的な理解のためであり、私が経験している問題を解決することではありません。

httpリクエストを実行してブロックしましたiptables -A OUTPUT -p tcp --dport 80 -j REJECT。走ったときにcurl http://b.scorecardresearch.com/beacon.js持っていたcurl: (7) Failed to connect to b.scorecardresearch.com port 80: Connection refused

その後、OUTPUTルールを削除してINPUTルールを作成しましたiptables -A INPUT -p tcp --dport 80 -j REJECT。これによりcurl http://b.scorecardresearch.com/beacon.js問題なく接続できます。

発信要求がブロックされない理由はわかりますが、http要求を実行するときに応答は同じポート80から戻るのではなく、ポート80のINPUT REJECTによってブロックされるべきですか?

ベストアンサー1

HTTP要求をサーバーに送信するときにhttpURLに特に指定しない限り、HTTPのデフォルトポート80(という名前、通常はシンボル形式が覚えやすい)を使用します。これが、このルールがリモートHTTPポートへの接続試行を正しくブロックする理由です。

iptables -A OUTPUT -p tcp --dport http -j REJECT

サーバーが応答すると、そのポート(http/80)からコンピュータにデータが送信されます。これはiptables、ルールから送信元ポートとして80を参照する必要があることを意味します。

iptables -A INPUT -p tcp --sport http -j REJECT

おすすめ記事