ポート 80 の iptables ルールの何が問題なのでしょうか?

ポート 80 の iptables ルールの何が問題なのでしょうか?

私はただウェブを閲覧したりウェブサーバーになったりするしかし、それは機能しません。

私のルールは次のとおりです:

-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP

-A INPUT -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

また、これらの状態についてはよくわかりません。私のケースではどれが役に立たないのでしょうか。また、その理由は何でしょうか。

ご協力ありがとうございました。

編集

まだインターネットを閲覧できません。これらのルールに従って、サーバーを Web サーバーにすると同時に、このマシンからインターネットを閲覧できるようにしたいと考えています (これは練習のためだけです)

更新したルールは次のとおりです。何が問題なのでしょうか? (DNS ポートに 2 行追加しましたが、役に立つか正しいかはわかりません)

    -P INPUT DROP
    -P OUTPUT DROP
    -P FORWARD DROP

    -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
    -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

    -A OUTPUT -p tcp --dport 53 -j ACCEPT
    -A INPUT -p tcp --dport 53 -j ACCEPT

答え1

このINPUTルールは、ローカル マシン上の Web サーバーへの着信接続を許可しようとしているようです。また、このルールは、OUTPUTローカル マシンから外部の Web サーバーへの発信接続を許可しようとしているようです。どちらを実現しようとしているのですか? 両方ですか?

いずれにしても、ESTABLISHED、RELATED ルールについては、より寛容にする必要があります。宛先ポートが 80 のパケットだけでなく、確立された接続の一部であるすべてのパケットを許可する必要があります。特に、Web サーバーからの応答には宛先ポートが 80 ではなく (送信元ポートが 80 です)、許可されません。通常、各チェーンの先頭に、確立されたパケットと関連パケットをすべて許可するルールを配置します。

-I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-I OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

これを実行したら、新しい接続を形成する最初のパケットを許可するだけです。ローカル Web サーバーへのアクセスを許可するには、次のようにします。

-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

...ローカルマシンから外部の Web サーバーへのアクセスを許可します。

-A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

しかし2 番目のケース (ローカル マシンから外部の Web サーバーへのアクセスを許可する) については、それが本当に必要なことかどうか考えたことがありますか? DNS も含め、HTTP 以外は何も通過させたくないのですか?

関連情報