web-dev-qa-db-ja.com

インターネットへのアクセスを許可するiptablesルール

自分のマシンのデフォルトポリシーを作成しました-

iptables -A INPUT -j REJECT #DROP ALL PACKETS TO INPUT CHANNEL

INPUTチャネルがブロックされました。今、私はインターネットにアクセスできるはずのような特定のサービスのみを許可したいと思います。では、どのルールを追加する必要がありますか?ポート80はHTTP用なので、次の方法でそのポートを許可してみました

iptables -A INPUT -p tcp --dport 80 ACCEPT

しかし、それはうまくいきませんでした。どうすればこれを行うことができますか?

3
Chankey Pathak

iptablesルールはシーケンシャルです。つまり、一致する最初のルールが実行されます。 ACCEPT、DROP、REJECTなどのルールは端末であり、パケットがチェーン内にそれ以上進まないことを意味します。-Aappendを意味します。だからあなたがしたことは

  • すべてに一致し、それを拒否します#すべてがここで停止します
  • tcpポート80を受け入れる#すべてがそこで停止したため、これに到達することはありません^

残念ながら、tcpポート80はすべての一部であるため、2番目のルールに到達することはありません。 INPUTチェーンを-Fでフラッシュし、ルールを実行する順序を逆にします。また、読むことをお勧めします ステートフルファイアウォールの設計に関するDan Robbinsの記事 これはgentooまたは2.4カーネルだけのものではありません。

6
xenoterracide