先将双网卡的desktop的firewalld关闭,并锁定
[root@dektop ~]# systemctl stop firewalld
[root@dektop ~]# systemctl mask firewalld
ln -s '/dev/null' '/etc/systemd/system/firewalld.service'
[root@dektop ~]#
iptables基本操作命令一览
iptable
-t ##指定表名称
-n ##不作解析
-L ##列出指定表中的策略
-A ##增加策略
-p ##网络协议
--dport ##端口
-s ##数据来源
-j ##动作
ACCEPT ##允许
REJECT ##拒绝
DROP ##丢弃
-N ##增加链
-E ##修改链名称
-X ##删除链
-D ##删除指定策略
-I ##插入
-R ##修改策略
-P ##修改默认策略
iptables -t filter -nL #查看filter表中的策略 -t 后面不跟表名的话,默认为filter表
iptable -F #刷掉filter表中的所有策略,当没有用-t指定表名称>时默认时filter
service iptables save #保存当前策略 保存在了/etc/sysconfig/iptables里
iptables -A INPUT -i lo -j ACCEPT #允许lo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允许访问22端口
iptables -A INPUT -s 172.25.254.250 -j ACCEPT ##允许250主机访问本机所有端口
iptables -A INPUT -j REJECT ##拒绝所有主机的数据来源
iptables -N redhat ##增加链redhat
iptables -E redhat westos ##改变链名称
iptables -X westos ##删除westos链
iptable -D INPUT 2 ##删除INPUT链中的第二条策略
iptables -I INPUT -p tcp --dport 80 -j REJECT ##插入策略到INPUT中的第一条
iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改第一条策略
iptable -P INPUT DROP ##把INPUT表中的默认策略改为drop
命令演示
iptables -t filter -nL 查看filter表,-t不指定的话,默认为filter表
iptables -A INPUT -i lo -j ACCEPT #-A 表示添加 -j 表示动作,允许lo
Iptables -t filter -L -n是不做解析,不带-n是做解析
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允许访问22端口 -p表示网络协议
iptables -A INPUT -s 172.25.254.13 -j ACCEPT ##允许250主机访问本机所有端口
iptables -A INPUT -j REJECT ##拒绝所有主机的数据来源
把这条加在允许13主机的所有端口这条策略之后,那么会如何让执行呢,
它会从第一条开始,只要读到匹配项就停止了
还可以连接,说明它读了第一条策略匹配后停止,第二条侧路并美生效
iptables -i INPUT -j REJECT 拒绝所有主机的数据来源,插入到第一条
iptable -D INPUT 3 ##删除INPUT链中的第3条策略
iptables -N redhat ##增加链redhat
iptables -E redhat westos ##改变链名称
iptables -X westos ##删除westos链
iptables -R INPUT 2 -j REJECT ##修改第2条策略
iptable -P INPUT DROP ##把INPUT表中的默认策略改为drop
iptable -F #刷掉filter表中的所有策略,当没有用-t指定表名称>时默认时filter
端口转发
[root@dektop ~]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.213:22
[root@dektop ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 to:1.1.1.213:22
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
操作和firewalld的作用是一样的,只是通过不同的方式
测试
在真机
[kiosk@foundation13 ~]$ ssh [email protected]
[email protected]'s password:
Last login: Sat Jun 1 01:38:06 2019 from 1.1.1.113
查看ip,是1网段的server虚拟机
地址伪装
[root@dektop ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.113
[root@dektop ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 to:1.1.1.213:22
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 0.0.0.0/0 0.0.0.0/0 to:172.25.254.113
测试
在server虚拟机
ping 172.25.254.13