icmp示例:
iptables -I INPUT -p icmp --icmp -type 8 -j DROP //禁ping,加上这条规则后本机可以ping外面的机器,但是外面的机器不能ping通本机,-type 8指icmp 8种类型
二、iptables nat表应用
1、实现上图需求1前期准备工作
A机器上先添加一块网卡,设置为内网网卡,网络连接选择:LAN区段,在LAN区段自定义一个名称,并选择它
B机器同样添加一块网卡,也是内网网卡(可以把之前第一块网卡先禁用),也选择LAN区段,这两台机器必须选择同一个交换机同一个区段
设置A机器新添加网卡的ip地址,使用命令行添加:
#ifconfig ens37 192.168.100.1/24 //设置ip为192.168.100.1,/24指24网段,但是这样添加ip重启机器后就没有了,如果让它永久生效,需要编辑它的配置文件
设置B机器新添加的内网网卡ip,
#ifconfig ens37 192.168.100.100 //设置完之后ping下192.168.100.1是否能通
2、实现需求1功能
A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward //后面这个配置文件默认是0,没有开启内核转发
#echo "1">/proc/sys/net/ipv4/ip_forward //打开端口转发,将默认的值0修改为1
#iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE //添加这条规则,让192.168.100.0这个网段可以上网
B机器上设置网关
#route -n //查看网关的命令
#route add default gw 192.168.100.1 //使用命令行设置网关为192.168.100.1
然后再ping下192.168.133.130,如果可以ping通,证明它可以和公网通信了
#vi /etc/resolv.conf //给它设置下DNS,在配置文件中写入:
nameserver 119.29.29.29(这个是DNS PORE的一个公共DNS地址),保存退出
#ping 119.29.29.29 //如果可以ping通这个DNS,我们就可以ping通外网了
#ping www.qq.com //试着ping下www.qq.com,能ping通,证明就实现了上外网的目的,实际上就是A机器作为路由器,B机器是一个网络设备终端
3、实现图片需求2
端口映射,就是把内网机器(B机器)的22端口映射出来,映射成一个其他的端口,比如1122端口(因为A机器的22端口已被占用了)
A机器上打开路由转发规则 #echo "1">/proc/sys/net/ipv4/ip_forward
#iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE //做这个操作之前先把之前的规则删掉,让nat表是一个空表
#iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 //添加规则,做一个端口转发,转发到100.100的22端口,这个是进去的包
#iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130 //从100.100回来的包经过133.130机器,再做一个SNAT操作
B机器上设置网关
#route add default gw 192.168.100.1 //使用命令行给B机器设置网关为192.168.100.1
然后使用远程工具连接,这里的主机ip是输入A机器的ip 192.168.133.130,端口号是映射的端口号1122,成功远程连接就OK了
iptables filter表案例 iptables nat表应用
原文地址:http://blog.51cto.com/13669226/2114669