LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1222|回复: 4

iptables的常用规则(希望懂的人都来添加自己的常用规则)

[复制链接]
发表于 2002-9-3 10:02:24 | 显示全部楼层 |阅读模式
modprobe iptable_nat
#加载NAT模块
modprobe ip_tables

modprobe ip_nat_ftp

modprobe ip_conntrack
#加载连接跟踪模块

modprobe ip_conntrack_ftp
#加载FTP连接跟踪模块

echo 1 > /proc/sys/net/ipv4/ip_forward
#启用IP转发

iptables -t nat -A POSTROUTING -o eth0 -s 172.16.128.0/22 -j MASQUERADE

#启用IP欺骗(MASQUERADE),只对源地址为 172.16.128.0/22这段生效

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#将所有80端口的包转发到3128端口



iptables -t nat -A PREROUTING -i eth0 -d 61.x.x.12 -j DNAT --to 172.16.128.x
iptables -t nat -A PREROUTING -i eth0 -d 61.x.x.12 -p tcp --dport 80  -j DNAT --to-destination 172.16.128.x:80

#做地址映射,把目标地址61.x.x.12通过目标地址转换,变成172.16.128.x

iptables -t nat -A POSTROUTING -o eth0 -s 172.16.128.x -j SNAT --to 61.x.x.12

#做地址映射,把源地址172.16.128.x通过源地址转换,变成61.x.x.12

iptables -t nat -A POSTROUTING -p tcp -s 192.168.123.1/32 -d 192.168.123.8/32 -j SNAT --to 192.168.123.254

#把源地址的请求到目标地址做源地址转换,变成x.x.x.254

iptables -F INPUT

#清空入站规则

iptables -F OUTPUT

#清空出站规则

iptables -t nat -F

#清空NAT规则

iptables -P INPUT DROP

#设置默认的入站规则为丢弃(DROP)

iptables -A INPUT --sport 80 -j ACCEPT

#允许此主机下载网页(来自源端口为80的数据包)


iptables -A INPUT -i ! eth1 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp --dport http -m state --state NEW -j ACCEPT
#允许http访问

iptables -A INPUT -p tcp -i eth1 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -i eth1 -j REJECT --reject-with icmp-port-unreachable
#传递TCP连接,处理UDP

iptables -A INPUT -p icmp -m limit --limit 6/m --limit-burst 5 -j ACCEPT
#前四个包正常,第5个包开始每十秒一个正常
 楼主| 发表于 2002-9-3 10:04:06 | 显示全部楼层
以上是我最近做NAT和做防火墙以及地址映射常用到的语句
我想我这样的做法也许不专业.
所以贴到这里来.希望能有专业人员进来帮我改进.也希望能有更多的规则添加进来
算是帮帮我们这些入门者吧!:p
 楼主| 发表于 2002-12-17 11:14:09 | 显示全部楼层
iptables -A INPUT -p tcp -s x.x.x.x/x --dport 22 -j ACCEPT   // 允许源地址为x.x.x.x/x的主机通过22(ssh)端口.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT   // 允许80(http)端口的数据包进入
iptables -A INPUT -p tcp --dport 110 -j ACCEPT  // 允许110(pop3)端口的数据包进入如果不加这规则,就只能通过web页面来收信(无法用OE或Foxmail等来收)
iptables -A INPUT -p tcp --dport 25 -j ACCEPT   // 允许25(smtp)端口的数据包进入,如果不加这规则,就只能通过web页面来发信(无法用OE或Foxmail等来发)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT  // 允许21(ftp)端口的数据包进入(传数据)     
iptables -A INPUT -p tcp --dport 20 -j ACCEPT  // 允许20(ftp)端口的数据包进入(执行ftp命令,如dir等)
iptables -A INPUT -p tcp --dport 53 -j ACCEPT  // 允许53(dns)端口的数据包进入(tcp)
iptables -A INPUT -p udp --dport 53 -j ACCEPT  // 允许53(dns)端口的数据包进入(udp)
iptables -A INPUT -p icmp -j ACCEPT             // 允许ICMP包通过
iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW,INVALID -j ACCEPT //利用 iptables 对连接状态的支持
iptables -P INPUT DROP                                 //把INPUT链的默认规则设置为DROP
发表于 2005-9-14 17:55:29 | 显示全部楼层
echo 7 > /proc/sys/net/ipv4/tcp_retries2
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 >/proc/sys/net/ipv4/conf/eth1/proxy_arp
echo 1 >/proc/sys/net/ipv4/conf/eth0/proxy_arp
iptables -P FORWARD DROP
iptables -A FORWARD -m mac --mac-source 00:0D:87:4B:FA:B1 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
只对某 MAC起做用,的自我友platinum,再次谢谢他
回复 支持 反对

使用道具 举报

发表于 2005-9-15 10:00:01 | 显示全部楼层
wheel 大哥,添点注释啦~~~~~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表