入力から特定のポートまで、特定の範囲を除くすべてのIPブロック[冗長]

入力から特定のポートまで、特定の範囲を除くすべてのIPブロック[冗長]

CentOS 7 Webサーバーで特定のIPアドレスのリストを除くすべてのIPアドレスの正常なhttpまたはhttps要求をブロックするようにファイアウォールをどのように設定しますか?

IP制限を使用できることはわかっていますが、httpd.confIPを制限するにはどのようにファイアウォールを設定する必要がありますか?どんな文書?私はそれを使用しますかfirewall-cmd?どの構文?

私はここに配置された1つ以上の豊富なルールを作成することが含まれていると思います。文書。しかし、私はこのことをしっかりしていることを確認したい。たとえば、すべての人のすべてのhttp / sリクエストを拒否するルールはありますか?それでは、各特定のIPに対するhttp / s要求を承認するために別の規則が必要ですか?この規則はhttp / s提供のためですか、それともポート443のためですか?それともどんな組み合わせですか?拒絶と承諾を記録してみてはいかがでしょうか?

ベストアンサー1

FirewallDが気に入らず、以前のiptablesサービスに置き換えましたが、

私はこれをするつもりです、

  • 新しいチェーンを作って呼ぼうALLOW_TO_HTTP

    iptables -N ALLOW_TO_HTTP

  • 次に、チェーンに許可したいすべてのIPアドレスを追加します。

    iptable -I ALLOW_TO_HTTP -j ACCEPT -s 1.2.3.4

  • 次に、上のチェーンを指すINPUTテーブルに行を追加して、ポート80と443に新しい接続を確立します。

    iptables -I INPUT -p tcp -m multiport --dports 80,443 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ALLOW_TO_HTTP

上記のルールは、ポート 443 および 80 のすべての新しい接続を ALLOW_TO_HTTP チェーンにリダイレクトし、IP が一致した場合に接続が許可されます。

ベストプラクティスのためには、3番目のルールを入れる正しい行を見つける必要があります。なぜなら、このルールがiptablesの最初のルールになることを望まないからです。ルールを挿入する行を指定することでこれを行うことができます。

iptables -I INPUT 4 ... 

これにより、4行目にルールが挿入されます。

次のコマンドを使用して、ルール行番号を一覧表示できます。

iptables -nvL --line-numbers

おすすめ記事