CentOS 7 Webサーバーで特定のIPアドレスのリストを除くすべてのIPアドレスの正常なhttpまたはhttps要求をブロックするようにファイアウォールをどのように設定しますか?
IP制限を使用できることはわかっていますが、httpd.conf
IPを制限するにはどのようにファイアウォールを設定する必要がありますか?どんな文書?私はそれを使用しますか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