1、Firewalld默认策略
默认情况会阻止流量流入,但允许流量流出。
2、Firewalld区域概念
拒绝区域drop、默认区域public、允许区域trusted
3、区域规则
区域与网卡接口
默认区域规则
常用的有trusted (相当于白名单)、work/public 区、dmz/drop区
4、语法规则介绍
区域命令语法和接口命令语法
服务命令语法、 端口命令语法、管理命令语法
5、Firewalld区域配置(重点*)
systemctl start firewalld
firewall-cmd --get-default-zone
firewall-cmd --list-all
#下图显示的默认区域是public,绑定eth0和eth1网卡。`仅`允许访问ssh、dhcpv6-client
5.1多区域配合使用
#要求
使用firewalld各个区域规则结合配置
调整默认public区域拒绝所有流量,但如果来源IP是10.0.0.0/24网段则允许。
1.将默认的public区域中的服务全部删除;
⒉.将来源地址来自于10.0.0.0/24统统都走白名单
#操作
firewall-cmd --remove-service=ssh
firewall-cmd --remove-service=dhcpv6-client
firewall-cmd --list-all
firewall-cmd --add-source=10.0.0.0/4 --zone=trusted
firewall-cmd --get-active-zone
和
6、Firewalld规则配置
#刚才上述的操作是临时的,如果是有重载,则刚才配置全部失效
firewall-cmd --reload
6.1配置端口规则
#单个 与 多个
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port={80/tcp,8080/tcp}
#永久
firewall-cmd --add-port={80/tcp,8080/tcp} --permanet
firewall-cmd --reload
#查看放行端口
firewall-cmd --list-ports
#移除端口规则
firewall-cmd --remove-port={80/tcp,8080/tcp}
6.2配置服务规则
firewall-cmd -add-service=http
firewall-cmd -add-service={http,https}
可放行的服务列表
firewall-cmd --get-services
6.2.1 自定义放行的服务 (可略)
rpm -ql firewalld
cd /usr/lib/firewalld/services/
cp ssh.xml zabbix-agent.xml ; vim zabbix-agent.xml
firewall-cmd --reload
firewall-cmd -add-service=zabbix-agent
8、Firewalld实现路由器功能
8.1 Firewalld-实现DNAT
#都开启ipv4转发 ,#添加下面一行
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#使内核修改生效
sysctl -p
#环境说明
#eth0可连接外部网络,eth1对应的网段是内网网段
Firewalld
eth0: 10.0.0.200 5555端口
eth1: 172.16.1.200
web:
eth1: 172.16.1.9 22端口
#实现外部网络访问内部资源
firewall-cmd --add-forward-port=port=5555:proto=tcp:toport=22:toaddr=172.16.1.9
#iptables写法
#iptables -t nat -I PREROUTING -d 10.0.0.200 -p tcp --dport 5555 -j DNAT --to-destination 172.16.1.9:22
测试操作
8.12Firewalld-实现SNAT
在指定的带有公网IP的服务器上启动Firewalld实现内部集群共享上网;
#firewalld机器操作。 确保firewalld端可以上网,配置开启masquerade 即可,暂不用写snat规则。
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
#客户端将网关指向firewalld服务器,配置DNS
#web03操作
cat /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=172.16.1.61
DNS1=223.5.5.5
nmcli connection reload
nmcli connection down eth1 && nmcli connection up eth1
firewalld端
web端
END
9、 Firewalld复规则Rule
firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号
源地址和目标地址等诸多信息进行更有针对性的策略配置,优先级在所有的防火墙策略中也是最高的。
语法:
rule执行顺序
9.1 示例1
#1.比如允许10.0.0.10主机能够访问http服务,允许172.16.1.0/24能访问22端口
firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.10/32 service name=http accept'
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name=ssh accept'
9.2 示例2
#⒉默认public区域对外开放所有人能通过ssh服务连接,但拒绝172.16.1.0/24网段通过ssh连接服务器
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name="ssh" drop'
9.3 示例3
#2.使用firewalld,允许所有人能访问http, https服务,但只有10.0.0.1主机可以访问ssh服务
firewall-cmd --reload
firewall-cmd --remove-service=ssh
firewall-cmd --add-service={http,https}
firewall-cmd --add-rich-rule "rule family=ipv4 source address=10.0.0.1/32 port="22" protocol="tcp" accept "
9.4 示例4
#4.当用户来源卫地址是10.0.0.1主机,则将用户请求的5555端口转发至后端172.16.1.9的22端口
firewall-cmd --add-masquerade
firewall-cmd --add-rich-rule'rule family=ipv4 source address=10.0.0.1/32 forward-port port="5555" protocol="tcp" to-port="22" to-addr="172.16.1.9"'
by oldxu
END