引言

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的基本设置方法。在实际应用中,可以根据需要灵活配置防火墙规则,以确保系统的安全。同时,建议定期检查和更新防火墙规则,以应对新的安全威胁。