iptables filter表案例 iptables nat表应用

iptables filter表案例  iptables nat表应用
ipt="usr/sbin/iptables" //定义变量,尽量写全局的绝对路径,这样在脚本中不会有变量问题导致不可执行
$ipt -F //清空之前的规则
$ipt -P INPUT DROP //定义默认策略
$ipt -P OUTPUT ACCEPT //定义默认策略
$ipt -P FORWARD ACCEPT //定义默认策略
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //为了让各数据包之间更好的连接
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT //把192.168.133网段和22端口放行
$ipt -A INPUT -p tcp --drop 80 -j ACCEPT //放行80端口数据包,没有指定源ip指所有ip都能访问到
$ipt -A INPUT -p tcp --drop 21 -j ACCEPT //放行21端口数据包,没有指定源ip指所有ip都能访问到

icmp示例:
iptables -I INPUT -p icmp --icmp -type 8 -j DROP //禁ping,加上这条规则后本机可以ping外面的机器,但是外面的机器不能ping通本机,-type 8指icmp 8种类型

二、iptables nat表应用
iptables filter表案例  iptables nat表应用
1、实现上图需求1前期准备工作
A机器上先添加一块网卡,设置为内网网卡,网络连接选择:LAN区段,在LAN区段自定义一个名称,并选择它
iptables filter表案例  iptables nat表应用
B机器同样添加一块网卡,也是内网网卡(可以把之前第一块网卡先禁用),也选择LAN区段,这两台机器必须选择同一个交换机同一个区段
iptables filter表案例  iptables nat表应用
设置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,没有开启内核转发
iptables filter表案例  iptables nat表应用
#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端口已被占用了)
iptables filter表案例  iptables nat表应用
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表应用

猜你喜欢

转载自blog.51cto.com/13669226/2114669