限制管理后台访问需用富规则精准控制,先确认端口、允许ip等特征,再依次配置放行(含日志与限速)、兜底拒绝规则,并重载生效。

要限制管理后台访问,核心是用富规则精准控制谁能在什么条件下访问哪个端口。它不是简单开个端口,而是把“来源IP、目标端口、协议、动作”绑在一起,还能加日志和限速。
明确管理后台的访问特征
先确认几个关键信息,否则规则写不对:
- 管理后台跑在哪个端口?比如 8080(Web)、22(SSH)、3306(数据库)或自定义端口
- 允许哪些 IP 访问?是单个运维机(如 192.168.5.10),还是整个办公网段(如 192.168.5.0/24)
- 是否需要拒绝其他所有访问?富规则默认不兜底,得额外加一条通用 reject 规则
写一条基础放行规则
例如只允许 192.168.5.10 访问服务器的 8080 管理界面:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.5.10" port port="8080" protocol="tcp" accept'
注意点:
- 必须写 family="ipv4",否则混用 IPv6 地址会静默失败
- port 和 protocol 要同时写,不能只写端口
- 这条规则只放行,不阻止别人——后面还得补拒绝规则
加上日志和限速防暴力试探
管理后台常被扫描,建议加 log 和 limit:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.5.10" port port="8080" protocol="tcp" log prefix="admin-access-" level="notice" limit value="3/m" accept'
说明:
- log prefix 必须无空格、无特殊字符,否则报错 Invalid argument
- limit value="3/m" 表示每分钟最多新建 3 个连接,防爆破
- 日志会出现在 /var/log/messages 或用
journalctl -u firewalld | grep "admin-access"查看
补一条兜底拒绝规则
上面只放行了白名单,但没拦其他人。加一条无 source 的 reject 规则,确保未授权 IP 连不上:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="8080" protocol="tcp" reject'
注意顺序:firewalld 按添加顺序匹配,所以先加 accept,再加 reject,否则 reject 会提前生效。
全部配完别忘了重载:
sudo firewall-cmd --reload
验证是否生效:
- 查永久规则:
sudo firewall-cmd --permanent --list-rich-rules - 查运行时规则:
sudo firewall-cmd --list-rich-rules - 从白名单 IP 测试能否访问,再从其他 IP 测试是否被拒











