前陣子將一堆機器的firewall從ipfw改用pf.

大致上來說運作得好好的,
不過在流量比較大的機器會有些靈異現象.
e.x.
我寫了一個小程式, 每秒鐘連線db一次, 然後close, 一直重複,
在流量比較大的機器就會發生偶爾會連線失敗的狀況,
把pf關掉就又都ok了.

set limit { states 100000, frags 100000, src-nodes 50000 }
這幾個數值再調到幾百萬也都沒用@@

後來亂踹, 發現加上以下這幾行就ok了, 有沒有甚麼副作用還不知道:p
set timeout { tcp.first 10, tcp.opening 10, tcp.established 1800 }
set timeout { tcp.closing 5, tcp.finwait 5, tcp.closed 5 }
set timeout { udp.first 30, udp.single 10, udp.multiple 300 }
set timeout { icmp.first 10, icmp.error 5 }
set timeout { other.first 30, other.single 10, other.multiple 60 }

現在用pf做到的效果是:
分成 public service and private service兩種,
public service開放給所有IP,
private service只開放給可信任網域的IP,
public service中特殊的部分會再加上防止DoS的機制, 太瘋狂的踹會被擋掉.
本機連到任何外部的tcp/udp port都沒有限制.

arrow
arrow
    全站熱搜

    Izero 發表在 痞客邦 留言(0) 人氣()