引言

CentOS 7 版本引入了firewalld作为系统防火墙,它是一个更现代、更灵活的防火墙管理工具,提供了丰富的功能和易于使用的界面。虽然firewalld在功能和复杂性上与iptables有所不同,但它们都旨在提供强大的网络防护。本文将深入探讨CentOS 7版firewalld的使用,帮助读者轻松掌握类似iptables的高级网络防护技巧。

firewalld简介

firewalld是一个动态的防火墙管理工具,它允许管理员实时地添加、删除和修改规则。与iptables相比,firewalld使用更高级的规则引擎,支持网络命名空间和的区域概念,使得网络配置更加灵活。

安装firewalld

在CentOS 7上,firewalld是默认安装的。如果需要,可以使用以下命令进行安装:

sudo yum install firewalld

管理firewalld

查看当前状态

要查看firewalld的当前状态,可以使用以下命令:

sudo systemctl status firewalld

启用或禁用firewalld

要启用或禁用firewalld,可以使用以下命令:

sudo systemctl enable firewalld
sudo systemctl disable firewalld

启动或停止firewalld

要启动或停止firewalld,可以使用以下命令:

sudo systemctl start firewalld
sudo systemctl stop firewalld

配置firewalld规则

添加规则

要添加一个新的规则,可以使用以下命令:

sudo firewall-cmd --permanent --add-port=80/tcp

这条命令将允许TCP端口80的访问,使其永久生效。

移除规则

要移除一个规则,可以使用以下命令:

sudo firewall-cmd --permanent --remove-port=80/tcp

查看规则

要查看所有规则,可以使用以下命令:

sudo firewall-cmd --permanent --list-all

更改默认区域

firewalld将网络接口分为不同的区域,每个区域有不同的默认策略。要更改默认区域,可以使用以下命令:

sudo firewall-cmd --permanent --set-default-zone=public

允许或拒绝服务

要允许或拒绝特定服务,可以使用以下命令:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --remove-service=http

高级网络防护技巧

使用规则优先级

firewalld规则是按顺序应用的,你可以通过设置规则优先级来控制规则的执行顺序。优先级越高,规则越早被应用。

sudo firewall-cmd --permanent --zone=public --add-rule before='22' 0 'rule family="ipv4" source address="192.168.1.100/24" port port=22 protocol=tcp accept'

使用ICMP规则

ICMP规则可以用来允许或拒绝ping请求。

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100/24" protocol icmp accept'

使用网络命名空间

firewalld支持网络命名空间,允许你为不同的容器或虚拟机配置的防火墙。

sudo firewall-cmd --permanent --zone=public --add-nic=eth0

总结

通过使用firewalld,你可以轻松地配置和调整CentOS 7的网络防护。尽管firewalld在语法和功能上与iptables有所不同,但它提供了强大的网络防护能力。通过本文的学习,读者应该能够掌握firewalld的基本使用和高级网络防护技巧。