centos防火墙如何进行测试
导读:CentOS防火墙测试方法 1. 检查防火墙基础状态 首先确认防火墙服务是否运行及当前状态,这是测试的前提: 执行 systemctl status firewalld:若显示“active (running ”则表示防火墙正在运行;若未...
CentOS防火墙测试方法
1. 检查防火墙基础状态
首先确认防火墙服务是否运行及当前状态,这是测试的前提:
- 执行
systemctl status firewalld
:若显示“active (running)”则表示防火墙正在运行;若未运行,可通过systemctl start firewalld
启动。 - 执行
firewall-cmd --state
:直接返回“running”则说明防火墙处于激活状态。
2. 查看开放的端口与服务
明确当前防火墙允许的流量通道,避免测试方向错误:
- 执行
firewall-cmd --list-all
:查看当前区域的所有规则(包括开放端口、允许服务、富规则等); - 执行
firewall-cmd --list-ports
:仅查看开放的TCP端口(如80、443); - 执行
firewall-cmd --list-services
:查看允许的服务(如http、ssh,对应预定义端口)。
3. 测试端口连通性(最常用)
通过工具模拟外部访问,验证端口是否真正开放:
- nc(netcat):支持TCP/UDP测试,最灵活。
- TCP测试:
nc -vz < 目标IP或localhost> < 端口号>
(如nc -vz localhost 80
);若端口开放,会显示“succeeded!”;若关闭,提示“Connection refused”。 - UDP测试:
nc -vzu < 目标IP或localhost> < 端口号>
(如nc -vzu localhost 53
)。
- TCP测试:
- telnet:仅支持TCP测试,简单直观。
- 命令:
telnet < 目标IP或localhost> < 端口号>
(如telnet localhost 22
);若连接成功,显示“Connected to localhost”;若失败,提示“Connection refused”。
- 命令:
- curl:针对HTTP/HTTPS服务,验证服务响应。
- 命令:
curl -v http://localhost:< 端口号>
(如curl -v http://localhost:8080
);若返回HTML内容或状态码(如200),说明端口及服务正常。
- 命令:
4. 测试服务访问权限
针对特定服务(如SSH、FTP),验证防火墙是否允许合法访问:
- 本地测试:在服务器本机执行
curl http://localhost
(HTTP)或ssh localhost
(SSH),确认服务本身是否正常运行。 - 远程测试:从另一台电脑执行
telnet < 服务器IP> < 端口号>
或nc -zv < 服务器IP> < 端口号>
,验证防火墙是否允许外部IP访问该端口。例如,开放SSH端口(22)后,从客户端执行telnet 服务器IP 22
,若连接成功则规则生效。
5. 测试富规则(高级场景)
若配置了针对特定IP、协议的富规则,需针对性验证:
- 示例:添加允许192.168.1.100访问22端口的富规则:
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port port='22' protocol='tcp' accept"
- 验证:
- 从192.168.1.100执行
telnet 服务器IP 22
,应能连接成功; - 从其他IP(如192.168.1.101)执行相同命令,应被拒绝。
- 从192.168.1.100执行
- 查看富规则:
firewall-cmd --list-rich-rules
,确认规则是否添加成功。
6. 查看防火墙日志(排查问题)
若测试异常(如端口不通),通过日志定位原因:
- 执行
journalctl -xe
:查看系统日志,过滤“firewalld”关键字(如grep firewalld /var/log/messages
),获取防火墙拦截事件的详细信息(如拒绝的IP、端口、协议)。
7. 临时关闭防火墙测试(备用方案)
若怀疑防火墙导致问题,可临时关闭以确认:
- 执行
systemctl stop firewalld
:立即关闭防火墙; - 再次测试端口或服务(如
telnet localhost 80
); - 若此时能正常访问,说明问题出在防火墙配置上;测试完成后,执行
systemctl start firewalld
恢复防火墙。
注意事项
- 测试前确保防火墙规则已重新加载(
firewall-cmd --reload
),避免新规则未生效; - 生产环境避免随意关闭防火墙,优先通过日志和规则验证排查问题;
- UDP端口测试需使用
nc -zvu
,因UDP是无连接的,结果可能不如TCP准确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos防火墙如何进行测试
本文地址: https://pptw.com/jishu/715351.html