一,操作允许ip伪装
1,# 允许防火墙伪装IP
[root@blog ~]# firewall-cmd --add-masquerade --permanent
success
效果:
[root@blog ~]# more /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not
harm your computer. Only selected incoming connections are accepted.</description>
<port port="80" protocol="tcp"/>
<masquerade/>
<rule family="ipv4">
<source address="1.2.3.4"/>
<accept/>
</rule>
...
可以看到public.xml中已添加了<masquerade/>一项
2,检查是否允许伪装ip
[root@blog ~]# firewall-cmd --query-masquerade
no
上面的命令添加了masquerade,需要reload后可以生效:
[root@blog ~]# firewall-cmd --reload
success
[root@blog ~]# firewall-cmd --query-masquerade
yes
可以看到reload后,生效了:
用list-all命令查询:
[root@blog ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services:
ports: 80/tcp
protocols:
masquerade: yes
...
当我们设置了masquerade时,会自动打开ip_forward一项,而此项linux默认是关闭状态
[root@blog ~]# cat /proc/sys/net/ipv4/ip_forward
1
3,# 禁止防火墙伪装IP
[root@blog ~]# firewall-cmd --remove-masquerade
success
查询效果:
[root@blog ~]# firewall-cmd --query-masquerade
no
用list-all命令查询:
[root@blog ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services:
ports: 80/tcp 36888/tcp
protocols:
masquerade: no
说明:此处没有加permanent参数,大家要么手动从public.xml文件中删除,要么执行 --permanent
二,端口转发
1,例子:把15432转发到80
[root@blog zones]# firewall-cmd --add-forward-port=port=15432:proto=tcp:toport=80 --permanent
success
[root@blog zones]# firewall-cmd --add-forward-port=port=15432:proto=tcp:toport=80
success
查看配置文件:
[root@blog zones]# more public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not
harm your computer. Only selected incoming connections are accepted.</description>
<port port="80" protocol="tcp"/>
<masquerade/>
<forward-port port="15432" protocol="tcp" to-port="80"/>
此时从浏览器访问15432端口,会访问到80端口
2,把到指定端口的访问,使访问到另一机器的80端口
[root@blog zones]# firewall-cmd --add-forward-port=port=14322:proto=tcp:toaddr=1.2.3.4:toport=80
success
查看配置文件:
<masquerade/>
<forward-port port="14322" protocol="tcp" to-port="80" to-addr="1.2.3.4"/>
三,,补充:--permanent的用途
firewall-cmd --permanent不会立即生效。
firewall-cmd命令的--permanent选项用于将配置设置为持久化,即将配置写入配置文件中,这样即使系统重启,配置仍然有效。
然而,这意味着配置不会立即生效,而是需要在下次系统启动或手动重新加载防火墙配置后才会生效。
如果不加--permanent选项,命令则会对当前运行的防火墙实例立即产生影响,
但这种影响不会保存到配置文件中,因此不会在系统重启后保持。
四,其他支持实现端口转发的软件:
ssh
rinetd
ncat
socat
portmap
portfwd
以上6个较常用
标签:masquerade,--,cmd,端口,firewalld,blog,firewall,转发,root From: https://www.cnblogs.com/architectforest/p/18355046