Firewall で Reject した時の挙動について[Network]

このエントリーをはてなブックマークに追加


2016-03-25


以下、単なる疑問で結論はないです。

Firewall では、ポートを閉じた時に、Drop か Reject を選べるものがあります。Drop は、本当にパケットを叩き落とすだけですが、Reject は、相手側にポートを落とした旨、通知します。

ずっと、そういう時には ICMP の Destination unreacable を返すもんだと思ってたんですが、

たまたま

PF: 実行時オプション
http://ftp.tuwien.ac.at/.vhost/www.openbsd.org/xxx/faq/pf/ja/options.html

を読んでたら、set block-policy の部分で

return - ブロックされた TCP パケットに対して TCP RST パケットが返され、 他の
すべてのパケットに対しては ICMP UNREACHABLE パケットが返されます。


ん? TCP RST?

実際試してみると、確かに PFで set block-policy return を設定していると、TCP の RST が返ってくる……

Wikipedia の

https://en.wikipedia.org/w/index.php?title=Internet_Control_Message_Protocol&redirect=no#Destination_unreachable

を読んでみても

A Destination Unreachable message may be generated as a result of
a TCP, UDP or another ICMP transmission. Unreachable TCP ports
notably respond with TCP RST rather than a Destination Unreachable
type 3 as might be expected.


とあり、TCP に関しては RSTパケットで返すことが期待されるとのこと。なんでだろ……(ICMPはフィルタリングされてることが多く、TCP だと届きやすいとかいう理由?)

関連する RFC があると思うんだけど、ちらっと探した限りでは見つけられなかった。モヤモヤ……



IPv4/IPv6 meter
検索キーワードは複数指定できます
ChangeLogを検索
Google
Web www.kunitake.org
思ったより安い……時もある、Amazon

カテゴリ