CentOS7默认使用firewalld作为防火墙服务,它提供了更加灵活的防火墙管理方式。firewalld采用动态防火墙管理,可以在不中断服务的情况下动态地添加、删除、修改防火墙规则。在CentOS7中,防火墙默认打开,但只开放了一些基本的端口,如SSH端口(22号端口)。如果需要开放更多的端口,就需要对防火墙进行相应的配置。
1. 查看当前防火墙状态和已开放的端口
可以使用以下命令来查看当前防火墙的状态和已开放的端口:
(1) 查看防火墙状态:
firewall-cmd --state
(2) 查看已开放的端口:
firewall-cmd --list-ports
2. 开放指定端口
使用以下命令可以开放指定的端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
其中:
- --zone=public 指定操作的防火墙区域,public是最常用的公共区域
- --add-port=80/tcp 开放80端口的TCP协议
- --permanent 表示将此规则永久生效,否则重启后失效
执行此命令后,需要重新加载防火墙才能生效:
firewall-cmd --reload
3. 关闭指定端口
使用以下命令可以关闭指定的端口:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
执行此命令后,同样需要重新加载防火墙才能生效:
firewall-cmd --reload
4. 开放服务对应的端口
除了手动开放指定端口,firewalld还支持开放已定义好的服务所对应的端口。可以使用以下命令查看已定义好的服务:
firewall-cmd --get-services
如果需要开放HTTP服务所对应的端口,可以使用以下命令:
firewall-cmd --zone=public --add-service=http --permanent
执行此命令后,同样需要重新加载防火墙才能生效:
firewall-cmd --reload
5. 开放端口范围
有时候需要开放一个端口范围,可以使用以下命令:
firewall-cmd --zone=public --add-port=8000-8100/tcp --permanent
此命令会开放8000到8100之间的TCP端口。同样需要重新加载防火墙才能生效。
6. 设置默认的防火墙策略
默认情况下,firewalld的策略是拒绝所有未配置的端口和服务。如果需要改变这个默认策略,可以使用以下命令:
firewall-cmd --set-default-zone=trusted
此命令将默认区域设置为trusted,这个区域下所有端口和服务都是允许的。当然,这种做法并不安全,仅供测试使用。生产环境下,最好还是采用手动开放指定端口的方式。
总之,通过本文的介绍,相信您已经掌握了在CentOS7中灵活管控防火墙端口的技巧。无论是开放指定端口、关闭端口,还是开放服务对应的端口,甚至设置默认的防火墙策略,都可以通过firewalld命令来实现。希望这些内容对您有所帮助。