Firewalld防火墙
CentOS7/RHEL7是一个集合多款防火墙管理工具并存的系统。
Firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和iptables一样。
Firewalld防火墙区域概念
相比于传统的防火墙管理工具还支持了动态更新技术并加入了“zone区域”的概念。
firewalld将所有网络流量划分为多个区域,从而简化防火墙管理。
根据数据包源IP地址或传入网络接口等条件,流量将转入相应区域的防火墙规则。
每个区域都可以具有自己要打开或者关闭的端口和服务列表。
Firewalld防火墙命令参数
Firewalld防火墙配置策略
需要注意firewalld的规则分两种状态:
runtime:运行时修改规则马上生效,但如果重启服务则马上失败,测试建议;
permanent:持久配置修改规则后需要reload重载服务才会生效,生产建议
启动firewalld防火墙,并加入开机自启动服务
systemctl start firewalld.service
systemctl enable firewalld.service
防火墙基础配置
# 查看系统中目前已有的所有区域
[root@firewalld ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
# 通过--get-default-zone获取当前默认使用的区域
[root@firewalld ~]# firewall-cmd --get-default-zone
public
# 临时移除默认区域的规则策略
[root@firewalld ~]# firewall-cmd --remove-service=ssh --remove-service=dhcpv6-client
success
# 添加来源是10.0.0.0/24网段,将其加入白名单(更精细化控制使用富规则)
[root@firewalld ~]# firewall-cmd --add-source=10.0.0.0/24 --zone=trusted
# 检查当前活动的区域配置信息
[root@firewalld ~]# firewall-cmd --get-active-zone
public
interfaces: eth0 eth1
trusted
sources: 10.0.0.0/24
# 临时添加规则策略信息
[root@firewalld ~]# firewall-cmd --add-port=8080/tcp
# 永久添加规则策略信息
[root@firewalld ~]# firewall-cmd --add-port=8080/tcp --permanent
[root@firewalld ~]# firewall-cmd --reload
说明:永久添加的配置需要重载识别
# 临时添加多个端口信息
[root@firewalld ~]# firewall-cmd --add-port={80/tcp,8080/tcp}
# 永久添加多个端口信息
[root@firewalld ~]# firewall-cmd --add-port={80,8080}/tcp --permanent
[root@firewalld ~]# firewall-cmd --reload
说明:永久添加的配置需要重载识别
[root@firewalld ~]# firewall-cmd --list-ports
80/tcp 8080/tcp
# 移除指定端口信息
[root@firewalld ~]# firewall-cmd --remove-port={80/tcp,8080/tcp}
# 临时添加规则策略信息
[root@firewalld ~]# firewall-cmd --add-service=http
# 永久添加规则策略信息
[root@firewalld ~]# firewall-cmd --add-service=https --permanent
[root@firewalld ~]# firewall-cmd --reload
说明:永久添加的配置需要重载识别
# 临时添加多个端口信息
[root@firewalld ~]# firewall-cmd --add-service={http,https}
# 永久添加多个端口信息
[root@firewalld ~]# firewall-cmd --add-service={http,https} --permanent
[root@firewalld ~]# firewall-cmd --reload
说明:永久添加的配置需要重载识别
[root@firewalld ~]# firewall-cmd --list-services
http https
# 移除端口信息
[root@firewalld ~]# firewall-cmd --remove-port={http,https}
防火墙端口转发
端口转发是指传统的目标地址映射,实现外网访问内网资源,流量转发命令格式:
firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
如果需要将当前的10.0.0.61:5555端口转发至后端172.16.1.9:22端口
开启masquerade,实现地址转换功能
# firewall-cmd --add-masquerade --permanent
配置转发规则信息
# firewall-cmd --permanent --zone=public --add-forward-port=port=6666:proto=tcp:toport=22:toaddr=172.16.1.9
# firewall-cmd --reload
Firewalld防火墙
http://www.jcwit.com/article/12/