http://www.xxlinux.com/linux/article/network/security/20060608/1142_2.html
wed -p tcp --syn -j ACCEPT4s2Linux联盟
iptables -A allowed -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT4s2Linux联盟
iptables -A allowed -p tcp -j DROP4s2Linux联盟
4s2Linux联盟
#定义icmp规则包,防止ping死攻击4s2Linux联盟
# ICMP rules chain4s2Linux联盟
iptables -A icmp_packets -p icmp -s 0/0 --icmp-type 8 -j ACCEPT4s2Linux联盟
iptables -A icmp_packets -p icmp -s 0/0 --icmp-type 11 -j ACCEPT4s2Linux联盟
# limited_packets rules chain4s2Linux联盟
#iptables -A limited_packets -p tcp ! --syn -m state --state NEW -j DROP4s2Linux联盟
#iptables -A INPUT -i $INET_IF -s 192.168.0.0/16 -j DROP4s2Linux联盟
#iptables -A INPUT -p udp -i $LAN_IF --dport 67 --sport 68 -j ACCEPT4s2Linux联盟
#4s2Linux联盟
######################################################################4s2Linux联盟
##对input链做bad_tcp_packets过滤4s2Linux联盟
# The first bad_tcp_packets filter of INPUT chain4s2Linux联盟
iptables -A INPUT -p tcp -j bad_tcp_packets4s2Linux联盟
##对input链做icmp_packets过滤4s2Linux联盟
# The second icmp_packets filter of INPUT chain4s2Linux联盟
iptables -A INPUT -p icmp -i $INET_IF -j icmp_packets4s2Linux联盟
# Open trusted ports4s2Linux联盟
#echo "Open trusted ports....."4s2Linux联盟
#iptables -N services4s2Linux联盟
#for PORT in $TRUSTED_TCP_PORT; do4s2Linux联盟
#iptables -A tcp_packets -s 0/0 -p tcp --dport $PORT -j allowed4s2Linux联盟
#done4s2Linux联盟
#for PORT in $TRUSTED_UDP_PORT; do4s2Linux联盟
#iptables -A tcp_packets -s 0/0 -p udp --dport $PORT -j allowed4s2Linux联盟
#done4s2Linux联盟
# The trust port of INPUT chain4s2Linux联盟
#iptables -A INPUT -p tcp -i $INET_IF -j tcp_packets4s2Linux联盟
##拒绝欺骗攻击4s2Linux联盟
# deny local cheat4s2Linux联盟
iptables -A INPUT -i $INET_IF -s 192.168.0.0/16 -j DROP 4s2Linux联盟
iptables -A INPUT -i $INET_IF -s 10.0.0.0/8 -j DROP 4s2Linux联盟
iptables -A INPUT -i $INET_IF -s 172.16.0.0/12 -j DROP 4s2Linux联盟
iptables -A INPUT -i $INET_IF -s 127.0.0.0/8 -j DROP 4s2Linux联盟
# allow DHCP_packets from LAN4s2Linux联盟
#iptables -A INPUT -p udp -i $LAN_IF --dport 67 --sport 68 -j ACCEPT4s2Linux联盟
##拒绝burst攻击4s2Linux联盟
# deny attack of hack to input chain4s2Linux联盟
iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT packets died:"4s2Linux联盟
4s2Linux联盟
4s2Linux联盟
##定义forward链上的规则4s2Linux联盟
# FORWARD chain4s2Linux联盟
##bad_tcp_packets filter检查4s2Linux联盟
# bad_tcp_packets filter4s2Linux联盟
iptables -A FORWARD -p tcp -j bad_tcp_packets4s2Linux联盟
# address of limited filter4s2Linux联盟
#iptables -A FORWARD -p tcp -j limited_packets4s2Linux联盟
##从内网出去的包不做流量外的限制4s2Linux联盟
# allow the packets from LAN to WAN4s2Linux联盟
iptables -A FORWARD -o $INET_IF -s $LAN_IP_RANGE -j ACCEPT4s2Linux联盟
iptables -A FORWARD -i $LAN_IF -s $LAN_IP_RANGE -j ACCEPT4s2Linux联盟
##定义从ppp0进来的包通过foward链的规则4s2Linux联盟
# allow the packets from wan to lan4s2Linux联盟
iptables -A FORWARD -i $INET_IF -d $LAN_IP_RANGE -m state --state ESTABLISHED,RELATED -j ACCEPT4s2Linux联盟
##对forward做burst检测4s2Linux联盟
# deny attack of hack to forward chain4s2Linux联盟
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packets died:"4s2Linux联盟
##对forward链做icmp(ping攻击)检测4s2Linux联盟
# deny ping attack of hack4s2Linux联盟
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT4s2Linux联盟
iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT4s2Linux联盟
4s2Linux联盟
##对forward链做简单的ddos防御4s2Linux联盟
# deny DDOS attack4s2Linux联盟
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT4s2Linux联盟
4s2Linux联盟
##做伪装(net转换)4s2Linux联盟
# allow UDP 4s2Linux联盟
#iptables -A FORWARD -p udp -d $LAN_IP_RANGE -i $EXT_IF -j ACCEPT4s2Linux联盟
# the servies of www to the port for Squid4s2Linux联盟
#iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 31284s2Linux联盟
# the other servies use nat chain to masquerade 4s2Linux联盟
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE4s2Linux联盟
############mark for mangle filter############4s2Linux联盟
echo "Enabling mangle "4s2Linux联盟
# uploads4s2Linux联盟
#iptables -t mangle -A PREROUTING -s 192.168.0.6 -m layer7 --l7proto dns -j MARK --set-mark 104s2Linux联盟
#iptables -t mangle -A PREROUTING -s 192.168.0.6 -m layer7 --l7proto smtp -j MARK --set-mark 204s2Linux联盟
#iptables -t mangle -A PREROUTING -s 192.168.0.6 -m layer7 --l7proto http -j MARK --set-mark 304s2Linux联盟
##为ip地址打标记以便进行流量控制--上传4s2Linux联盟
#iptables -t mangle -A PREROUTING -s 192.168.0.52 -j MARK --set-mark 404s2Linux联盟
#iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -j MARK --set-mark 704s2Linux联盟
#iptables -t mangle -A PREROUTING -s 192.168.0.3 -j MARK --set-mark 604s2Linux联盟
# downloads4s2Linux联盟
#iptables -t mangle -A POSTROUTING -d 192.168.0.6 -m layer7 --l7proto dns -j MARK --set-mark 104s2Linux联盟
#iptables -t mangle -A POSTROUTING -d 192.168.0.6 -m layer7 --l7proto smtp -j MARK --set-mark 204s2Linux联盟
#iptables -t mangle -A POSTROUTING -d 192.168.0.6 -m layer7 --l7proto http -j MARK --set-mark 304s2Linux联盟
##为ip地址打标记以便进行流量控制--下载4s2Linux联盟
#iptables -t mangle -A POSTROUTING -d 192.168.0.52 -j MARK --set-mark 404s2Linux联盟
#iptables -t mangle -A POSTROUTING -d 192.168.0.0/24 -j MARK --set-mark 704s2Linux联盟
#iptables -t mangle -A POSTROUTING -d 192.168.0.3 -j MARK --set-mark 604s2Linux联盟
4s2Linux联盟
################################### iptables END########################################4s2Linux联盟
echo "iptables END"4s2Linux联盟
#echo "Enabling Squid"4s2Linux联盟
#/usr/local/squid/sbin/squid4s2Linux联盟
echo "Enabling ADSL"4s2Linux联盟
adsl-start4s2Linux联盟
##########################################################4s2Linux联盟
每个人的linux安装的不一样,netfilter模块加载的也不一样,在模块加载处估计各位要进行微调,将需要加载的模块前带#的去掉几个估计就可以了,tc处可根据自己的实际情况进行微调。4s2Linux联盟
本配置已经实际运行了3年,没出现什么问题(配置上),但要是某个高手盯上你了,估计。。。。嘿嘿,技术就是这样,没有绝对的,反正我的配置(p3赛阳 600,128mpc100,10g硬盘,810e主板,双8139d百兆网卡,debian woody 2.4.32核心)不关机除了每两个月的正常清洁外没出现过什么异常(因为对内网是没有限制的,故清理内鬼是比较重要的)。欢迎大家多多指教,把此脚本多多完善,本人不胜感激。学以致用,linux学习更应如此 。
没有评论:
发表评论