防火墙配置指南

在现代网络环境中,服务器的安全至关重要。防火墙作为一种网络保护工具,能够有效地阻止未经授权的访问,过滤进出的网络流量,从而保护服务器不受恶意攻击。本文将指导如何在CentOS服务器上配置firewalld,一种广泛使用的防火墙管理工具。

防火墙的基本概念

防火墙的主要目的是减少或消除不需要的网络通信,同时允许所有合法通信自由流动。它通过用户定义的规则集来过滤进出网络的流量,从而提高安全性。

安装firewalld

在某些Linux发行版中,firewalld可能已经预装。如果没有,可以通过以下命令进行安装:

sudo yum install firewalld

安装完成后,可以使用以下命令检查firewalld的状态:

sudo systemctl status firewalld

启用并重启firewalld

安装完成后,启用服务并重启服务器:

sudo systemctl enable firewalld sudo reboot

服务器重启后,防火墙应该启动,网络接口应该配置为设置的区域或默认区域,并且与区域相关的规则将应用于相关接口。

验证firewalld是否运行

可以通过以下命令检查服务是否运行:

sudo firewall-cmd --state

命令的输出应该是“running”,这表明防火墙正在运行,并使用默认配置。

配置区域

防火墙区域定义了连接所用接口的信任级别。它们是一组由firewalld守护进程管理的规则。以下是FirewallD提供的预定义区域,按照信任级别(从最不信任到最信任)排序:

  • drop:最低信任级别。所有传入连接都被丢弃,不发送任何通知,只允许传出连接。
  • block:与drop类似,只允许传出连接,但block会拒绝所有传入连接,并发送ICMP消息。
  • public:代表不受信任的公共区域。不信任网络上的其他计算机,但可以根据情况允许选定的传入连接。
  • external:用于启用NAT伪装的外部网络,当系统作为网关或路由器时。只允许选定的传入连接。
  • internal:用于内部网络,当系统作为网关或路由器时。网络上的其他系统通常受信任。只允许选定的传入连接。
  • dmz:用于位于非军事区的计算机,这些计算机对网络的其余部分有有限的访问权限。只允许某些传入连接。
  • work:用于工作机器,信任网络上的大多数计算机。只允许选定的传入连接。
  • home:用于家庭,通常意味着网络上的其他计算机通常受信任。只允许选定的传入连接。
  • trusted:这是最开放的选项,因为所有网络连接都被接受。网络上的所有计算机都受信任。

要获取可用区域类型的列表,请使用以下命令:

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
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485