Ssl

IPFW 拒絕 ssl 連接

  • January 26, 2017

我在使用諸如fsockopen,之類的函式通過我的 PHP 腳本載入 https 網站(google、facebook、amazon)時遇到問題file_get_contents。操作正在超時。所以我開始查看我的系統設置並註意到當 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 的問題,我確實allow all在我的 ipfw 文件中保留了狀態類型的連接。

這是我目前使用的配置:

#!/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,但我注意到ICMP 有一個不同/etc/rc.firewall/etc/protocolsIPv6 符號名稱,即ipv6-icmp. 如果您需要傳遞 IPv6 ICMP 數據包,您可能需要添加新規則:

allow ipv6-icmp ...

我不了解您現有的規則,並且您可能出於診斷目的將規則分開,但是inout

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 取代。

如果您的伺服器需要使用名稱服務,則缺少允許遠端 DNS 伺服器通過 UDP 響應的規則:

allow udp from any 53 to any

引用自:https://serverfault.com/questions/828668