跳到主要内容

CentOS 防火墙配置

防火墙是保护服务器免受未经授权访问的重要工具。在CentOS中,firewalld 是默认的防火墙管理工具,它提供了动态管理防火墙规则的能力。本文将逐步介绍如何在CentOS中配置防火墙,确保您的服务器安全。

什么是防火墙?

防火墙是一种网络安全系统,它根据预定义的安全规则监控和控制传入和传出的网络流量。防火墙可以是硬件设备,也可以是软件程序。在CentOS中,firewalld 是一个动态管理防火墙的工具,它允许您轻松地添加、删除和修改防火墙规则。

安装和启动 firewalld

在大多数CentOS系统中,firewalld 已经预装。如果您的系统没有安装,可以使用以下命令进行安装:

bash
sudo yum install firewalld

安装完成后,启动并启用 firewalld 服务:

bash
sudo systemctl start firewalld
sudo systemctl enable firewalld

您可以使用以下命令检查 firewalld 的状态:

bash
sudo systemctl status firewalld

基本防火墙配置

查看当前防火墙状态

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

bash
sudo firewall-cmd --state

如果防火墙正在运行,输出将是 running

查看当前防火墙规则

要查看当前防火墙的规则,可以使用以下命令:

bash
sudo firewall-cmd --list-all

这将显示当前防火墙的所有规则,包括允许的服务、端口和区域。

允许和拒绝服务

firewalld 使用服务来管理防火墙规则。例如,要允许HTTP服务,可以使用以下命令:

bash
sudo firewall-cmd --zone=public --add-service=http --permanent

--permanent 选项表示将规则永久保存,即使防火墙重启后也会生效。

要拒绝某个服务,可以使用以下命令:

bash
sudo firewall-cmd --zone=public --remove-service=http --permanent

允许和拒绝端口

除了服务,您还可以直接允许或拒绝特定端口。例如,要允许TCP端口8080,可以使用以下命令:

bash
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

要拒绝某个端口,可以使用以下命令:

bash
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent

重新加载防火墙规则

在修改防火墙规则后,需要重新加载防火墙以使更改生效:

bash
sudo firewall-cmd --reload

实际案例

假设您正在运行一个Web服务器,并且希望允许外部访问HTTP(端口80)和HTTPS(端口443)服务,同时拒绝所有其他端口。您可以按照以下步骤配置防火墙:

  1. 允许HTTP服务:
bash
sudo firewall-cmd --zone=public --add-service=http --permanent
  1. 允许HTTPS服务:
bash
sudo firewall-cmd --zone=public --add-service=https --permanent
  1. 拒绝所有其他端口:
bash
sudo firewall-cmd --zone=public --remove-port=1-65535/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=1-65535/udp --permanent
  1. 重新加载防火墙规则:
bash
sudo firewall-cmd --reload

现在,您的Web服务器将只允许HTTP和HTTPS流量,其他所有端口都将被阻止。

总结

通过本文,您已经学习了如何在CentOS中配置防火墙,包括安装和启动 firewalld、查看防火墙状态、允许和拒绝服务及端口,以及如何重新加载防火墙规则。防火墙是保护服务器安全的重要工具,合理配置防火墙可以有效防止未经授权的访问。

附加资源

练习

  1. 在您的CentOS服务器上安装并启动 firewalld
  2. 允许SSH服务(端口22)并拒绝所有其他端口。
  3. 查看当前防火墙规则,并确保只有SSH服务被允许。

通过完成这些练习,您将更深入地理解CentOS防火墙配置的实际应用。