= 2010-03-26 = == Web Server Security == * 因為又遇到了兩次攻擊行為,所以想試試看有沒有辦法透過 iptable 的方式把同時連線太多次的加以刪除。參考 [http://www.debian-administration.org/articles/187 Using iptables to throttle incoming connections] 的文章,修改成統計 80 port 的連線,再用另一台跑 nc 模擬攻擊。發現每 10 個連線會暫停 10 秒鐘。 {{{ iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name DEFAULT --rsource iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 --name DEFAULT --rsource -j DROP }}} * [參考] [http://blog.toknow.idv.tw/?p=277 調整網路 TCP TIME_WAIT,快速釋放 connection] {{{ 在繁忙的server中我們常常會看到許多狀態已是「TIME_WAIT」的連線 透過調整系統參數可使連線更快速的釋放 修改系統預設tcp fin timeout echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout 調整為30sec 調整tcp參數 net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_tw_reuse = 1 表示開啟重用。 允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,預設為0,表示關閉 }}}