firewalld
1. firewalld的开启
iptables 切换 firewalld
# systemctl stop iptables.service
# systemctl disable iptables.service 关闭firewalld并且开机关闭
# systemctl mask iptables.service 为确保关闭可以冻结
# systemctl enable --now firewalld.service 开启iptables并且开机启动
2. 关于firewalld的域
trusted 接受所有网络连接
home 用于家庭网络,允许接受ssh,dns,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,dhcp-client
external ipv4网络地址伪妆转发
# firewall-cmd --get-zones 获取域名
3. 关于firewalld的设定原理及数据
/etc/firewalld 火墙配置目录
/usr/lib/firewalld/ 火墙模块目录
添加自定义服务
# cd /etc/firewalld/zones/
# vim public.xml 添加
# cd /usr/lib/firewalld/services/
# cp http.xml yueyue.xml
# vim yueyue.xml 添加描述
# firewall-cmd --reload 刷新服务
测试
# firewall-cmd --get-services | grep yueyue
# firewall-cmd --list-all
4.firewalld的管理命令
firewall-cmd --state 查看火墙状态
firewall-cmd --get-active-zones 查看生效的域
firewall-cmd --get-default-zone 查看默认域
firewall-cmd --list-all 查看默认域中的火墙策略
firewall-cmd --list-all zone=work 查看指定域的火墙策略
firewall-cmd --get-services 查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit 移除服务
firewall-cmd --reload 刷新服务
# firewall-cmd --permanent --add-source=192.168.1.0/24 --zone=block 指定数据来源访问指定域
# firewall-cmd --permanent --remove-source=192.168.1.0/24 --zone=block 移除
# firewall-cmd --permanent --change-interface=ens224 --zone=block 更改指定域网络接口
# firewall-cmd --reload
5. firewalld的高级规则
# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport=22 -j ACCEPT
# firewall-cmd --direct --get-all-rules
6. firewalld中的NAT
SNAT
# firewall-cmd --permanent --add-masquerade
# firewall-cmd --reload 重启服务
测试
# ifconfig
# ssh -l root 192.168.1.33
DNAT
# firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.33
# firewall-cmd --reload
测试
# ssh -l root 192.168.1.32