Linux端口安全管理核心是查清开放端口、防火墙精准管控、服务层加固及SELinux细粒度控制;需定期用ss和firewall-cmd核查规则有效性。

Linux端口安全管理核心就三点:看清哪些端口开着、控制谁可以连、限制服务本身能用什么端口。不复杂,但容易忽略细节。
查清当前开放和监听的端口
先摸清家底,避免“不知道自己开了什么”。常用命令有:
-
ss -tulpn:推荐首选,比netstat更快更准确,显示所有TCP/UDP监听端口及对应进程
-
lsof -i :22:查特定端口(比如22)被哪个进程占用,适合排错
-
nmap -sT -p1-1000 localhost:模拟外部扫描,验证真实暴露面(注意别扫生产环境全端口)
用firewalld精准放行或封禁端口
RHEL/CentOS 7+ 及 Fedora 默认用 firewalld,规则清晰、支持动态重载:
- 只允许本机或内网访问 SSH:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="22" protocol="tcp" accept'
- 开放 Web 端口并限制为 TCP:firewall-cmd --permanent --add-port=80/tcp
- 批量关闭高危端口段:firewall-cmd --permanent --remove-port=3389-3395/tcp
- 改完务必重载:firewall-cmd --reload
从服务层加固:改默认端口 + 限IP访问
防火墙是第一道门,服务自身配置是第二道锁:
- 修改 /etc/ssh/sshd_config 中的 Port 2222,再 systemctl restart sshd,避开暴力扫描主力目标
- 用 TCP Wrappers 控制基础访问:在 /etc/hosts.allow 写 sshd: 10.0.2.0/24,再在 /etc/hosts.deny 写 sshd: ALL,实现白名单机制
- 对数据库等敏感服务,禁用监听公网地址,改用 bind-address = 127.0.0.1(MySQL)或 listen_addresses = 'localhost'(PostgreSQL)
启用SELinux做细粒度端口管控
当需要按“服务类型”而非“端口号”授权时,SELinux 是关键补充:
- 查看当前端口映射:semanage port -l | grep http_port_t
- 把自定义端口(如8080)加入 HTTP 服务允许范围:semanage port -a -t http_port_t -p tcp 8080
- 禁止某服务绑定任意端口:setsebool -P deny_sys_network on(慎用,影响较大)
基本上就这些。日常运维中,建议每季度跑一次 ss -tulpn + firewall-cmd --list-all 对照检查,比堆砌规则更重要的是知道每条规则为什么存在。
以上就是Linux端口安全管理说明_Linux控制网络访问权限方法的详细内容,更多请关注php中文网其它相关文章!