在现代网络环境中,服务器的安全至关重要。防火墙作为一种网络保护工具,能够有效地阻止未经授权的访问,过滤进出的网络流量,从而保护服务器不受恶意攻击。本文将指导如何在CentOS服务器上配置firewalld,一种广泛使用的防火墙管理工具。
防火墙的主要目的是减少或消除不需要的网络通信,同时允许所有合法通信自由流动。它通过用户定义的规则集来过滤进出网络的流量,从而提高安全性。
在某些Linux发行版中,firewalld可能已经预装。如果没有,可以通过以下命令进行安装:
sudo yum install firewalld
安装完成后,可以使用以下命令检查firewalld的状态:
sudo systemctl status firewalld
安装完成后,启用服务并重启服务器:
sudo systemctl enable firewalld
sudo reboot
服务器重启后,防火墙应该启动,网络接口应该配置为设置的区域或默认区域,并且与区域相关的规则将应用于相关接口。
可以通过以下命令检查服务是否运行:
sudo firewall-cmd --state
命令的输出应该是“running”,这表明防火墙正在运行,并使用默认配置。
防火墙区域定义了连接所用接口的信任级别。它们是一组由firewalld守护进程管理的规则。以下是FirewallD提供的预定义区域,按照信任级别(从最不信任到最信任)排序:
要获取可用区域类型的列表,请使用以下命令:
sudo firewall-cmd --get-zones
要查看当前选定为默认的区域,请使用以下命令:
sudo firewall-cmd --get-default-zone
要查看活动区域(控制接口流量的区域),请使用以下命令:
sudo firewall-cmd --get-active-zones
要查看默认区域的配置,请使用以下命令:
sudo firewall-cmd --list-all
创建自己的区域:
sudo firewall-cmd --permanent --new-zone=office
验证创建是否成功:
sudo firewall-cmd --permanent --get-zones
重新加载防火墙以将这些新区域带入运行实例:
sudo firewall-cmd --reload
成功创建区域后,可以开始将适当的服务和端口分配给区域。
要获取可用服务的列表,请使用以下命令:
sudo firewall-cmd --get-services
要添加新服务到区域:
sudo firewall-cmd --permanent --new-service=<服务名称>
例如,如果正在运行一个提供HTTPS流量的Web服务器,可以允许此流量在“public”区域的接口上,并使其“永久”:
firewall-cmd --zone=public --permanent --add-service=https
可以添加的其他示例服务:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=mysql
要验证操作是否成功,请使用以下命令:
sudo firewall-cmd --zone=public --list-services
要列出防火墙中允许的所有端口,请使用以下命令:
sudo firewall-cmd --zone=public --list-ports
在防火墙中打开端口:
要打开端口,请指定端口或端口范围以及与端口关联的协议。请参见以下命令:
sudo firewall-cmd --zone=public --add-port=14000/udp
sudo firewall-cmd --zone=public --add-port=6001/tcp
要验证此操作是否成功,请使用以下命令:
sudo firewall-cmd --zone=work --list-ports
要使此端口添加永久并在重新加载后仍然存在,请使用以下命令:
sudo firewall-cmd --zone=public --permanent --add-port=14000/udp
sudo firewall-cmd --zone=public --permanent --add-port=6001/tcp
sudo firewall-cmd --zone=work --permanent --list-ports