- 註冊時間
- 2006-2-19
- 最後登錄
- 2024-5-4
- 在線時間
- 1750 小時
- 閱讀權限
- 90
- 積分
- 28603
- 帖子
- 7155
- 精華
- 0
- UID
- 160
|
本文章最後由 kevin 於 2010-6-1 23:33 編輯
SHARE我用的FIREWALL SCRIPT
有一個自訂CHAIN,可以擋SYN-FLOODING
不過有很多參數需要再修改符合自用..
沒有做ROUTER,也不用FORWARD CHAIN,沒做NAT也不用,單純SERver,只要用input chain
#!/bin/bash
#=========<<enable linux router>>===========
echo "1" > /proc/sys/net/ipv4/ip_forward
#=========<<define related syn_flooding rule>>======
rm -f /etc/modprobe.conf
modprobe ipt_recent ip_list_tot=16384
iptables -N SYN_FLOODING
#=========<<erase original rule>>===========
iptables -t filter -F
iptables -t nat -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
#=========<<set variability>>===============
WAN=10.10.96.33
LAN=172.21.60.7
IPTF="/sbin/iptables -t filter"
IPTN="/sbin/iptables -t nat"
#=========<<Define input filter chain>>======
#$IPTF -A INPUT -p icmp -j ACCEPT
$IPTF -A INPUT -p all -m state --state INVALID -j DROP
$IPTF -A INPUT -p tcp --syn --dport 3128 -m limit --limit 1/m --limit-burst 300 -j ACCEPT
$IPTF -A INPUT -p tcp --syn --dport 3128 -j SYN_FLOODING
$IPTF -A INPUT -p tcp -s 172.21.60.0/23 -m state --state NEW -m multiport --dports 21,22,3128 -d 172.21.60.7 -j ACCEPT
$IPTF -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
#=========<<define syn_flooding chain>>==========
$IPTF -A SYN_FLOODING -p tcp --syn --dport 3128 -m recent --name SYN_FLOODING --update --second 120 --hitcount 1 -j ACCEPT
$IPTF -A SYN_FLOODING -p tcp --syn --dport 3128 -m recent --name SYN --set
$IPTF -A SYN_FLOODING -p tcp --syn -j DROP
#=========<Define forward filter chain>>===========
$IPTF -A FORWARD -p all -m state --state INVALID -j DROP
$IPTF -A FORWARD -i eth1 -o eth0 -p all -m state --state NEW -s 172.21.60.0/23 -j ACCEPT
$IPTF -A FORWARD -i eth1 -o eth0 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
#=========<<Define nat postrouting chain>>==============
$IPTN -A POSTROUTING -o eth0 -s 172.21.60.0/23 -j SNAT --to $WAN
#=========<<Define trasparent proxy>>===================
$IPTN -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#=======================<<the end>>======================================= |
|
|
|
|
|