实验主机:
双网卡主机ens160网卡IP:192.168.1.104
双网卡主机ens224网卡IP:172.25.254.104
单网卡主机IP:172.25.254.4
实验环境:RHEL8
一、开启服务
- 通常情况下,在系统中默认firewalld的自动开启的
- 当系统开启iptables,从iptables切换到firewalld:
二、关于firewalld的域
查看火墙中的域:firewall-cmd --get-zones
域 | 含义 |
---|---|
trusted | 接收所有的网络连接 |
home | 用于家庭网络,允许接收ssh、mdns、ipp-client、samba-client、dhcp-client |
work | 工作网络 ssh、ipp-client、dhcp-client |
public | 公共网络 ssh、dhcp-client |
dmz | 军级网络 ssh |
block | 拒绝所有 |
drop | 丢弃 所有数据全部丢弃无任何回复 |
internal | 内部网络 ssh、mdns、ipp-client、samba-client、dhcp-client |
external | ipv4网络地址伪装转发 sshd |
三、设定原理及数据存储
- 火墙配置目录:/etc/firewalld
- 火墙模块目录:/lib/firewalld
(1)可以在配置文件中修改默认域:vim /etc/firewalld/firewalld.conf
(2)添加被允许的服务到火墙策略中,可以使用命令【firewall-cmd --permanent --add-service=】;
也可以在配置目录中的子目录文件中 【/etc/firewalld/zones/public.xml】 添加数据:
注意:其中【- -permanent】表示永久添加,服务会添加到上述文件中,重启火墙后,服务还继续存在;不加- -permanent表示临时添加。
(3)对于系统未被允许过的服务,如果要添加到火墙策略中,需要多加一步操作,编辑模块目录中的认证文件,否则直接添加不成功:
在模块目录中的子目录 【/lib/firewalld/services】 中添加认证文件【vim jia.xml 】,设定服务被系统允许:
四、管理命令
(1)查看火墙状态:firewall-cmd --state
(2)查看当前火墙中生效的域:firewall-cmd --get-active-zones
(3)查看默认域:firewall-cmd --get-default-zone
(4)查看默认域中的火墙策略:firewall-cmd --list-all
(5)查看指定域的火墙策略:firewall-cmd --list-all --zone=work
(6)设定默认域:irewall-cmd --set-default-zone=trusted
(7)查看所有可以设定的服务:firewall-cmd --get-services
(8)移除服务:firewall-cmd --permanent --remove-service=jia
(9)指定数据来源访问指定域:firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block
(10)删除自定域中的数据来源:firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block
(11)删除指定域的网络接口:firewall-cmd --permanent --remove-interface=ens224 --zone=public
(12)添加指定域的网络接口:firewall-cmd --permanent --add-interface=ens224v --zone=block
(13)更改网络接口到指定域:firewall-cmd --permanent --change-interface=ens224 --zone=public
五、高级规则
- 查看高级规则:firewall-cmd --direct --get-all-rules
- 添加高级规则:firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport 22 -j ACCEPT
以ipv4协议,在filter表中的INPUT链中添加规则1,让来源为172.25.254网段的数据允许通过22端口
六、NAT
1. SNAT
- 操作步骤:在双网卡主机中开启masquerade,并重新加载火墙策略
- 使用命令:firewall-cmd --permanent --add-masquerade
- 作用:让单网卡主机可以伪装本机IP,连接处在不同网段的外网主机。
2. DNAT
- 在双网卡中完成地址转发并重启,可以让第三方主机访问路由器【双网卡主机ens160网卡】时,路由把地址转发到设定的指定主机【172.25.254.35】
- 使命命令:firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.36