引言
CentOS作为一款流行的Linux发行版,内置了firewalld作为默认的防火墙管理工具。firewalld相较于传统的iptables提供了更加灵活和动态的防火墙管理方式。本文将详细介绍CentOS中firewalld的设置方法,包括如何开启、关闭防火墙,以及如何配置防火墙规则,帮助用户轻松掌握防火墙的实战技巧。
Firewalld基础概念
1. 什么是Firewalld
Firewalld是一个动态管理防火墙的守护进程,提供基于区域的网络流量管理。它允许系统管理员在不中断现有连接的情况下动态更改规则,支持基于信任级别的区域划分,并且可以通过服务名称来配置规则。
2. Firewalld的特性
- 动态管理:支持在不中断现有连接的情况下动态更改规则。
- 区域概念:基于信任级别定义不同的区域,每个区域有不同的规则。
- 服务管理:可以通过服务名称而不是端口号来配置规则。
- 接口绑定:可以将网络接口绑定到特定的区域。
- 丰富的接口:提供命令行工具firewall-cmd和图形界面工具(如firewall-config)进行管理。
3. Firewalld与iptables的区别
- 设计理念和管理方式:
- iptables:使用静态规则集,所有规则在启动时加载到内核并在运行时保持不变。任何更改都需要重新应用整个规则集。
- firewalld:支持动态规则集,允许在运行时添加、删除或修改规则。
开启和关闭防火墙
开启防火墙
sudo systemctl start firewalld
sudo systemctl enable firewalld
关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
配置防火墙规则
添加规则
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-port=8080/tcp
删除规则
sudo firewall-cmd --permanent --remove-service=http
sudo firewall-cmd --permanent --remove-port=8080/tcp
查看当前规则
sudo firewall-cmd --list-all
区域管理
设置默认区域
sudo firewall-cmd --set-default-zone=public
添加或删除区域
sudo firewall-cmd --permanent --add-zone=dmz
sudo firewall-cmd --permanent --remove-zone=dmz
设置区域规则
sudo firewall-cmd --permanent --zone=dmz --add-service=https
实战应用
1. 允许SSH远程登录
sudo firewall-cmd --permanent --add-service=ssh
2. 允许80端口访问
sudo firewall-cmd --permanent --add-port=80/tcp
3. 设置自定义规则
sudo firewall-cmd --permanent --direct --add-rule before INPUT 0 -s 192.168.1.100 -j ACCEPT
总结
通过本文的介绍,用户应该已经掌握了CentOS中firewalld的基本设置方法。在实际应用中,可以根据需要灵活配置防火墙规则,以确保系统的安全。同时,建议定期检查和更新防火墙规则,以应对新的安全威胁。