首页主机资讯centos防火墙如何进行测试

centos防火墙如何进行测试

时间2025-10-01 06:27:04发布访客分类主机资讯浏览694
导读: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)。
  • 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)执行相同命令,应被拒绝。
  • 查看富规则: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
centos上composer依赖如何管理 CentOS Node.js的错误日志如何查看

游客 回复需填写必要信息