Changes between Version 44 and Version 45 of jazz/Trac_Updates


Ignore:
Timestamp:
Mar 27, 2010, 12:01:43 AM (15 years ago)
Author:
jazz
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • jazz/Trac_Updates

    v44 v45  
    428428# Completed on Fri Mar 26 22:27:36 2010
    429429}}}
     430 * 因為又遇到了兩次攻擊行為,所以想試試看有沒有辦法透過 iptable 的方式把同時連線太多次的加以刪除。參考 [http://www.debian-administration.org/articles/187 Using iptables to throttle incoming connections] 的文章,修改成統計 80 port 的連線,再用另一台跑 nc 模擬攻擊。發現每 10 個連線會暫停 10 秒鐘。
     431{{{
     432iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name DEFAULT --rsource
     433iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 --name DEFAULT --rsource -j DROP
     434}}}
     435 * [參考] [http://blog.toknow.idv.tw/?p=277 調整網路 TCP TIME_WAIT,快速釋放 connection]
     436{{{
     437在繁忙的server中我們常常會看到許多狀態已是「TIME_WAIT」的連線
     438透過調整系統參數可使連線更快速的釋放
     439修改系統預設tcp fin timeout
     440
     441    echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
     442
     443調整為30sec
     444
     445調整tcp參數
     446
     447    net.ipv4.tcp_tw_reuse = 0
     448
     449net.ipv4.tcp_tw_reuse = 1 表示開啟重用。
     450允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉
     451
     452    net.ipv4.tcp_tw_recycle = 0
     453
     454net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,預設為0,表示關閉
     455}}}
     456 * 彙整以上的規則,寫一隻 script 來當做開機時啟用安全防護的機制。
     457{{{
     458#!sh
     459echo "clear rules"
     460iptables -F
     461iptables -X
     462iptables -Z
     463iptables -t nat -F
     464echo "drop ping and traceroute"
     465iptables -A INPUT -i eth0 -p icmp -s any/0 --icmp-type 8 -j DROP
     466iptables -A OUTPUT -o eth0 -p icmp --icmp-type 3 -d any/0 -j DROP
     467iptables -A OUTPUT -o eth0 -p icmp --icmp-type 11 -d any/0 -j DROP
     468echo "drop abuse IP connections"
     469iptables -A INPUT -s 124.254.15.50 -j DROP
     470iptables -A INPUT -s 222.191.249.106 -j DROP
     471iptables -A INPUT -s 121.235.30.92 -j DROP
     472echo "drop connect more than 10 times in 10 seconds ..."
     473iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name DEFAULT --rsource
     474iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 --name DEFAULT --rsource -j DROP
     475echo "decrease TCP socket TIME_WAIT time"
     476echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
     477sysctl net.ipv4.tcp_tw_reuse=1
     478sysctl net.ipv4.tcp_tw_recycle=1
     479}}}