centos7下配置firewalld实现nat转发软路由

2023-05-19 17:34:04 浏览数 (2)

如果配合 DHCP 服务或实现更多功能。

☼ NAT 转发软路由

开启 NAT 转发之后,只要本机可以上网,不论是单网卡还是多网卡,局域网内的其他机器可以将默认网关设置为已开启 NAT 转发的服务器 IP ,即可实现上网。

开启 NAT 转发 firewall-cmd --permanent --zone=public --add-masquerade # 开放 DNS 使用的 53 端口,UDP # 必须,否则其他机器无法进行域名解析 firewall-cmd --zone=public --add-port=80/tcp --permanent # 检查是否允许 NAT 转发 firewall-cmd --query-masquerade # 禁止防火墙 NAT 转发 firewall-cmd --remove-masquerade

☼ 端口转发

端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定 ip 的话就默认为本机,如果指定了 ip 却没指定端口,则默认使用来源端口。

将80端口的流量转发至8080 firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至192.168.0.1 firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1 # 将80端口的流量转发至192.168.0.1的8080端口 firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080

1、限制IP地址访问

(1)比如限制IP为192.168.0.200的地址禁止访问80端口即禁止访问机器

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" reject"

(2)重新载入一下防火墙设置,使设置生效

firewall-cmd --reload

(3)查看已经设置的规则

firewall-cmd --zone=public --list-rich-rules

2、解除IP地址限制

(1)解除刚才被限制的192.168.0.200

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" accept"

(2)重新载入一下防火墙设置,使设置生效

firewall-cmd --reload

(3)再查看规则设置发现已经没有192.168.0.200的限制了

firewall-cmd --zone=public --list-rich-rules

如设置未生效,可尝试直接编辑规则文件,删掉原来的设置规则,重新载入一下防火墙即可

vi /etc/firewalld/zones/public.xml

限制IP地址段

(1)如我们需要限制10.0.0.0-10.0.0.255这一整个段的IP,禁止他们访问

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="80" reject"

其中10.0.0.0/24表示为从10.0.0.0这个IP开始,24代表子网掩码为255.255.255.0,共包含256个地址,即从0-255共256个IP,即正好限制了这一整段的IP地址,具体的设置规则可参考下表

重新载入一下防火墙设置,使设置生效

firewall-cmd --reload

(3)查看规则,确认是否生效

firewall-cmd --zone=public --list-rich-rules

(4)同理,打开限制为

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="80" accept"

firewall-cmd --reload

#查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)

firewall-cmd --list-all-zones

#允许http服务(对应服务策略目录:/usr/lib/firewalld/services/)

firewall-cmd --permanent --add-service=http

#关闭http服务(对应服务策略目录:/usr/lib/firewalld/services/)

firewall-cmd --permanent --remove-service=http

将接口添加到区域,默认接口都在public

firewall-cmd --zone=public --add-interface=eth0 永久生效再加上 --permanent 然后reload防火墙

设置默认接口区域

firewall-cmd --set-default-zone=public 立即生效无需重启 firewall-cmd --reload

查看防火墙端口开启状态

firewall-cmd --list-ports

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent

删除

firewall-cmd --zone=public --remove-port=80/tcp --permanent

0 人点赞