fsockopen
、file_get_contents
などの関数を使用したPHPスクリプト)を介したhttps Webサイト(google、facebook、Amazon)の読み込みで問題が発生しました。操作がタイムアウトになります。 。それで、システム設定を調べ始めたところ、ipfwサービスが停止しているとき、それが魅力のように機能することに気づきました。
したがって、これは間違いなく私のIPFW構成に関連する問題です。ロギングを有効にしましたが、PHPスクリプトを実行しようとすると、ログファイルに表示されます。
ipfw: 1000 Deny ICMPv6:1.3 [2001:...:...:...::] [2001:...:2:...::] in via em0
ipfw: 1000 Deny ICMPv6:131.0 [...::...:...:...:...] [...::1:...:0] in via em0
ipfw: 1000 Deny ICMPv6:136.0 [2001:...:...:...:ff:ff:ff:ff] [...:...:2:...::] in via em0
IPv6の問題のように見えますが、ipfwファイルに状態の種類の接続をallow all
保持します。
現在使用している構成は次のとおりです。
#!/usr/local/bin/bash
IPF="/sbin/ipfw -q add"
/sbin/ipfw -q -f flush
$IPF 10 allow all from any to any via lo0
$IPF 11 deny all from any to 127.0.0.0/8
$IPF 12 deny all from 127.0.0.0/8 to any
$IPF 13 deny tcp from any to any frag
$IPF 250 check-state
$IPF 260 allow tcp from any to any established
$IPF 270 allow all from any to any out keep-state
$IPF 280 allow icmp from any to any
$IPF 290 allow log tcp from 127.0.0.1/32 to 127.0.0.1/32 3306 in
$IPF 350 allow udp from any to any 53 in
$IPF 351 allow tcp from any to any 53 out
$IPF 352 allow tcp from any to any 80 in
$IPF 353 allow tcp from any to any 80 out
$IPF 361 allow tcp from any to any 443 in
$IPF 362 allow tcp from any to any 443 out
$IPF 363 allow tcp from any to any 22 in
$IPF 364 allow tcp from any to any 22 out
$IPF 1000 deny log all from any to any
また、FreeBSD 10.3(9.2以前)にアップグレードした後、この問題が発生し始めました。
何が問題ですか?
私はIPv6を使用していませんが、/etc/rc.firewall
と/etc/protocols
から、ICMPのIPv6のシンボル名がipv6-icmp
であることがわかりました。 IPv6 ICMPパケットを渡す必要がある場合は、新しいルールを追加することをお勧めします。
allow ipv6-icmp ...
既存のルールがわかりません。診断のためにin
ルールとout
ルールを分離している可能性がありますが、次のようになります。
allow tcp from any to any xxx in
allow tcp from any to any xxx out
以下に類似しています(同等でない場合)。
allow tcp from any to any xxx
また、すべてのout
ルールは、とにかくルール270によって横取りされます。
サーバーでネームサービスを使用する必要がある場合、UDPを介したリモートDNSサーバーからの応答を許可するルールがありません。
allow udp from any 53 to any