firewalld (v0.4.4.2)
Debian 9のREJECT
内部ネットワークで誤ったリクエストを設定しようとしています。
ただし、関連地域のデフォルトの宛先を設定すると、REJECT
リクエストは引き続き削除されます。 (テストすると、接続が拒否されるのではなくタイムアウトが発生します。)
~によると文書はREJECT
静的に割り当てられませんが、次のようになります。
%%REJECT%% ターゲットはブロック領域で拒否するために使用されます (デフォルトのファイアウォール拒否タイプの使用) 各パケットはどのルールとも一致しません。
したがって、デフォルトの拒否タイプが間違っているようです。これをどのように変えるかわかりません。どんなアドバイスもありがとうございます。
iptables -L
(切り捨て):
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
INPUT_direct all -- anywhere anywhere
INPUT_ZONES_SOURCE all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
DROP all -- anywhere anywhere ctstate INVALID
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
[...]
おそらくファイアウォールが上記の内容を使用している可能性がありますが、REJECT
大丈夫ですicmp-host-prohibited
。しかし、クライアントからはこのような答えを受け取りません。
iptables -vnL
:
Chain IN_internal (1 references)
pkts bytes target prot opt in out source destination
0 0 IN_internal_log all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 IN_internal_deny all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 IN_internal_allow all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
答え1
icmp-host-prohibited
TCP接続を拒否する一般的に予想される方法はTCP RSTパケットを介しているため、一部のオペレーティングシステムはTCP接続メッセージに正しく応答しない場合があります。 (または、一部のファイアウォールがTCP接続試行に関連するICMP応答を認識せず、フィルタリングすることもできます。)
iptables
デフォルトの拒否方法(および拡張)は、すべてのプロトコルに等しく適用される「すべてのプロトコルに適用される単一サイズ」拒否方法を試すことfirewalld
です。icmp-host-prohibited
したがって、拒否タイプを使用してTCPパケットにカスタム拒否ルールを追加できますtcp-reset
。
TCP拒否リッチルールの構文firewall-cmd
は次のとおりです。
firewall-cmd --zone=internal --add-rich-rule='rule protocol value="tcp" reject type="tcp-reset"'