10.15 iptables filter表案例
10.16/10.17/10.18 iptables nat表应用
10.15 iptables小案例
我们这里想要使用脚本的形式来配置iptables,要求允许所有网段的数据访问本机的80和21端口,而且只有192.168.80.0/24的网段可以访问22端口
先在/usr/local/sbin/目录下建立叫iptables.sh的文件,然后编辑它1
[root@kun0769 ~]# vim /usr/local/sbin/iptabls.sh
在文件下面编辑下面命令1
2
3
4
5
6
7
8
9
10#! /bin/bash ##告诉系统这是个shell脚本
a="/usr/sbin/iptables" ##把iptables命令的绝对路径赋值给变量a 以便使用命令
$a -F ##清空规则
$a -P INPUT DROP ##把INPUT默认规则改为DROP
$a -P OUTPUT ACCEPT ##把OUTPUT默认规则改为ACCEPT
$a -P FORWARD ACCEPT ##把FORWARD默认规则改为ACCEPT
$a -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##允许ESTABLISHED RELATED状态的包进入 以便通讯更加顺畅
$a -A INPUT -s 192.168.80.0/24 -p tcp --dport 22 -j ACCEPT ## 只允许192.168.80.0/24的网段访问22端口 用于远程连接
$a -A INPUT -p tcp --dport 80 -j ACCEPT ##允许访问80端口
$a -A INPUT -p tcp --dport 21 -j ACCEPT ##允许访问21端口
运行iptables脚本1
[root@kun0769 ~]# sh /usr/local/sbin/iptabls.sh
在看看规则
不允许外网ping本机 但本机可以ping外网
先把刚刚的规则还原1
[root@kun0769 ~]# systemctl restart iptables ##重新启动服务 加载配置文件的规则
现在用win来ping192.168.80.100是可以ping通的
然后增加拒绝外网ping本机的规则1
[root@kun0769 ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP
而本机是可以ping通外网的
10.16/10.17/10.18 nat表的应用
1 test1机器两块网卡ens33(192.168.80.100)、ens37(1.1.1.1),ens33可以上外网,ens37仅仅是内部网络,test2机器只有ens37(1.1.1.2),要求test2和test1机器ens37可以通信互联。
test1机器上添加一块网卡
设置内网 这里名字为“内网”
test2机器上先把用来的网卡开机断开
再添加一块网卡并加入“内网”
在test1机器上 查看新添加的网卡 并临时为它添加ip地址 1.1.1.11
[root@kun0769 ~]# ifconfig -a
1 | [root@kun0769 ~]# ifconfig ens37 1.1.1.1/24 ##指定ens37的ip地址为1.1.1.1 |
在test2机器同样为新添加的网卡添加1.1.1.2ip地址
在test1机器上开启路由转发 /proc/sys/ent/ipv4/ip_forward
是系统路由转发的配置文件 1是开启 0为关闭1
[root@kun0769 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
然后在POSTROUTING链上添加一条伪装1.1.1.0网段到ens33网卡的规则1
[root@kun0769 ~]# iptables -t nat -A POSTROUTING -s 1.1.1.0/24 -o ens33 -j MASQUERADE ##内网数据流向ens33网卡
再到test2机器上把1.1.1.1添加为网卡 这样就可以同过test1机器作为路由器来ping外网1
route add default gw 1.1.1.1 临时添加网关
成功ping同test1的ens33网卡
然后临时设置一下DNS 在/etc/resolv.comf
下
test2成功连接外网
2:window机器只能和test1通信,让window机器可以直接连通test2机器的22端口 这里使用了端口映射把test1机器的1122端口映射到test2的80端口这样就可以让window机器通过远程连接去连通test2机器了
在test1机器上开启路由转发 /proc/sys/ent/ipv4/ip_forward
是系统路由转发的配置文件 1是开启 0为关闭1
[root@kun0769 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
把刚刚写的规则清空1
[root@kun0769 ~]# iptables -t nat -F
在PREROUTING链上增加一条把192.168.80.100:1122映射到1.1.1.2:22规则1
[root@kun0769 ~]# iptables -t nat -A PREROUTING -p tcp -d 192.168.80.100 --dport 1122 -j DNAT --to 1.1.1.2:22
在POSTROUTING链上增加一条把1.1.1.2转到192.168.80.100规则1
[root@kun0769 ~]# iptables -t nat -A POSTROUTING -p tcp -s 1.1.1.2 -j SNAT --to 192.168.80.100
再到test2上设置网关为1.1.1.11
route add default 1.1.1.1
我们在window上使用XShell来远程连接192.168.80.100:1122
连接test2成功了