一、防火墙介绍
netfilter内核上有个安全插件netfilter(访问控制列表),这个列表里有许多详细的规则,当对这个规则允许或拒绝时,可以控制其他主机是否能访问,极大的提高了安全性。
iptables管理netfilter的工具,通过iptables往netfilter表格里面写网络安全策略
iptables和firewalld对iptables进行管理,用iptables / firewalld手段来写网络安全策略
二、实验环境准备
1、配置一台双网卡主机westosa,设置其网络分别处于172.25.254和1.1.1两个不同的网段(能够和westosb进行通信)
2、配置单网卡虚拟主机westosb,设置其网络处于1.1.1网段,此时westosb能够和westosa进行通信,但不能和真实主机(172.25.254.73)进行通信
三、firewalld的开启
systemctl stop iptables 停止iptables火墙
systemctl disable iptables
systemctl mask iptables 锁定
systemctl unmask firewalld 解锁firewalld
systemctl enable --now firewalld 启动
四、关于firewalld的域
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
五、关于firewalld的设定原理及数据存储
/etc/firewalld ##火墙配置目录
/usr/lib/firewalld ##火墙模块目录
firewalld自身并不具备防火墙的功能,和iptables一样,都需要通过内核的netfilter来实现。firewalld和iptables的作用都是用于维护策略,真正使用策略的是内核的数据包过滤器netfilter
两者不同之处在于结构以及使用方法不一样,firewalld没有iptables精确设定
六、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 --set-default-zone=trusted 设定默认域
firewall-cmd --get-services 查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit 移除服务
firewall-cmd --reload 重新加载
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block 指定数据来源访问指定域
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block 删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens224 --zone=public 删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block 添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens224 --zone=public 更改网络接口到指定域
七、firewalld的高级规则
firewall-cmd --direct --get-all-rules ##查看高级规则
指定IP172.25.254.174主机可以通过22端口访问外拒绝所有访问:
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.174 -p tcp --dport 22 -j REJECT
八、firewalld中的NAT
SNAT源地址转换
开启地址伪装后,其他网端的外网IP也可以访问
firewall-cmd --permanent --add-masquerade 地址伪装
firewall-cmd --reload
DNAT目的地地址转换
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.173 --permanent 永久更改
firewall-cmd --reload 当别人连接你时将转接到IP为172.25.254.173的主机当中