
需求 80 22 21端口放行 22端口需要指定一个ip段


ipt 定义一个变量
-F 清空原有规则
-P 默认规则
-m state --state RELATED,ESTABLISHED -j ACCEPT 3次握手4次挥手   把已建立通信和保持连接的通信的数据包放行,这条是必须有的指令
执行脚本

查看规则

iptables -I INPUT -p icmp --icmp-type 8 -j DROP 这个规则作用可以使本机可以ping其他机器,但是其他机器无法ping通本机
10.16/10.17/10.18 iptables nat表应用

首先准备1个虚拟机1,克隆一个2,虚拟机1添加一个私网网卡,做好快照,2的外网网卡禁用,添加网卡并使用同样的LAN区段,快照,启动2个机器

虚拟机1

给虚拟机1 ens37设置内网ip,可以使用命令行,也可以编辑配置文件

给虚拟机2 ens37设置内网ip 这时两台机器内网ip能够相互ping通,2不能连外网

1机器
cat /proc/sys/net/ipv4/ip_forward 查看端口转发,默认是0,没打开,设置为1打开端口转发
echo "1" > /proc/sys/net/ipv4/ip_forward

1机器增加nat规则
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

2机器设置网关 DNS 可以连外面的网,外网ping不通
route add default gw 192.168.100.1



需求 3机器通过1机器连接2机器   端口映射
打开1机器端口转发
echo "1" > /proc/sys/net/ipv4/ip_forward
1机器增加规则
iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22  进去的包转发到192.168.100.100的22端口
iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130  出来的包把目标地址改为192.168.133.130
给2机器加上网关

3机器


扩展
1. iptables应用在一个网段  http://www.aminglinux.com/bbs/thread-177-1-1.html
http://www.aminglinux.com/bbs/thread-177-1-1.html 
2. sant,dnat,masquerade    http://www.aminglinux.com/bbs/thread-7255-1-1.html
http://www.aminglinux.com/bbs/thread-7255-1-1.html 
3. iptables限制syn速率     http://www.aminglinux.com/bbs/thread-985-1-1.html
http://www.aminglinux.com/bbs/thread-985-1-1.html  http://jamyy.us.to/blog/2006/03/206.html
http://jamyy.us.to/blog/2006/03/206.html 
                        
原文:http://blog.51cto.com/4375471/2065265