我是疯子 我怕谁?

所有的东西都是乱弹和自己的技术积累和网络见闻

iptables规则

tcsm | 12 二月, 2009 22:41

#!/bin/bash

PATH=/sbin:/usr/sbin:/bin:/usr/bin

RC_SQUID=/etc/rc.d/init.d/squid

# 外网

EXTIF="eth1"

# 内网

INTIF="eth0"

INNET="192.168.100.1/24"

# 针对 NAT & DHCP

NATNET="eth2"

NTNET="192.168.21.1/24"

#加载 module

/sbin/modprobe ip_tables

/sbin/modprobe ip_nat_ftp

/sbin/modprobe ip_conntrack

/sbin/modprobe ip_conntrack_ftp

# 清除规则

/sbin/iptables -F

/sbin/iptables -X

/sbin/iptables -Z

/sbin/iptables -F -t nat

/sbin/iptables -X -t nat

/sbin/iptables -Z -t nat

/sbin/iptables -P INPUT DROP

/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -P FORWARD ACCEPT

/sbin/iptables -t nat -P PREROUTING ACCEPT

/sbin/iptables -t nat -P POSTROUTING ACCEPT

/sbin/iptables -t nat -P OUTPUT ACCEPT

# 打开特定端口

/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 22 -j DROP # SSH

/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 25 -j ACCEPT #SMTP

/sbin/iptables -A INPUT -p UDP -i $EXTIF --dport 53 -j ACCEPT # DNS

/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 53 -j ACCEPT # DNS

/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 80 -j ACCEPT # WWW

/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 110 -j ACCEPT #POP3

/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 113 -j ACCEPT #AUTH

/sbin/iptables -A INPUT -p TCP -i $INTIF --dport 137 -j ACCEPT #SMB

/sbin/iptables -A INPUT -p TCP -i $INTIF --dport 138 -j ACCEPT #SMB

/sbin/iptables -A INPUT -p TCP -i $INTIF --dport 139 -j ACCEPT #SMB

/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 7021 -j ACCEPT #VFTP

/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 6080 -j ACCEPT #WWW

/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -P FORWARD DROP

/sbin/iptables -t filter -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATE -j ACCEPT

/sbin/iptables -t filter -A FORWARD -i eth2 -o eth1 -p tcp -s 192.168.100.0/24 --dport 6080 -j ACCEPT

 
# 检查 IP

if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]

then

for f in /proc/sys/net/ipv4/conf/*/rp_filter

do

echo 1 〉 $f

done

fi

 
# 防止 sync flood dos

/sbin/iptables -N synfoold

/sbin/iptables -A synfoold -p tcp --syn -m limit --limit 1/s -j RETURN

/sbin/iptables -A synfoold -p tcp -j REJECT --reject-with tcp-reset

/sbin/iptables -A INPUT -p tcp -m state --state NEW -j synfoold

 
# 防止 Ping of Death

/sbin/iptables -N ping

/sbin/iptables -A ping -p icmp --icmp-type echo-request -m limit --limit 1/second -j RETURN

/sbin/iptables -A ping -p icmp -j REJECT

/sbin/iptables -I INPUT -p icmp --icmp-type echo-request -m state --state NEW -j ping

 
# 防止恶意扫描

/sbin/iptables -A INPUT -i $EXTIF -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP

/sbin/iptables -A INPUT -i $EXTIF -p tcp --tcp-flags ALL ALL -j DROP

/sbin/iptables -A INPUT -i $EXTIF -p tcp --tcp-flags ALL

SYN,RST,ACK,FIN,URG -j DROP

/sbin/iptables -A INPUT -i $EXTIF -p tcp --tcp-flags ALL NONE -j DROP

/sbin/iptables -A INPUT -i $EXTIF -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

/sbin/iptables -A INPUT -i $EXTIF -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

 
# 放行内网数据

/sbin/iptables -A INPUT -i $INTIF -j ACCEPT

/sbin/iptables -A INPUT -i $NATNET -j ACCEPT

 
# 重定向www 到Squid (透通代理)

/sbin/iptables -t nat -A PREROUTING -i $NATNET -p tcp --dport 80 -j REDIRECT --to -port 6080

 
# 启用ip伪装

/sbin/iptables -t nat -A POSTROUTING -s $NATNET -o $EXTIF -j MASQUERADE

 
# mac地址绑定

# Kernel 2.4 系列新功能,主要防止 Client 非法抢 IP

# /sbin/iptables -A INPUT -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP

 
# 关闭外部请求

/sbin/iptables -A INPUT -i $NATNET -m state --state NEW,INVALID -j DROP

/sbin/iptables -A FORWARD -i $NATNET -m state --state NEW,INVALID -j DROP

 
# 防止超量攻击

echo 1 〉 /proc/sys/net/ipv4/tcp_syncookies

 
#启动ip转发

echo 1 〉 /proc/sys/net/ipv4/ip_forward

 

评论

发表评论
 authimage
 
Accessible and Valid XHTML 1.0 Strict and CSS
Powered by LifeType - Design by BalearWeb