Linux服务器访问控制是分层叠加策略体系:网络层用ufw/iptables限IP,服务层通过SSH配置用户与认证,文件层借助ACL细粒度授权,Web层在Nginx/Apache中实现IP与路径级拦截。

Linux 服务器访问控制不是单一配置,而是分层叠加的策略体系。核心思路是:网络层控来源、服务层控用户、文件层控数据、运行时控行为。配得对,安全才扎实;只做一层,容易被绕过。
网络入口:用防火墙限制可连IP
这是第一道防线,直接拒绝非法来源连接,不给后续验证机会。
- 用 ufw(Ubuntu/Debian)快速启用: sudo ufw allow from 203.0.113.10 to any port 22(只允特定IP连SSH) sudo ufw allow from 192.168.10.0/24 to any port 80(只允内网访Web) sudo ufw enable
- 用 iptables(CentOS/RHEL)更精细控制: 先清空默认链:sudo iptables -P INPUT DROP 再放行必要规则:sudo iptables -A INPUT -s 2001:db8::/32 -p tcp --dport 22 -j ACCEPT(支持IPv6) 保存规则:sudo service iptables save 或 sudo iptables-save > /etc/sysconfig/iptables
服务登录:SSH 配置用户与认证方式
即使端口开放,也要确保只有可信用户能进系统。
- 编辑 /etc/ssh/sshd_config: Port 2222(改默认端口,减少暴力扫描) PermitRootLogin no(禁用 root 直接登录) PasswordAuthentication no(强制密钥登录) AllowUsers alice@192.168.5.0/24 bob@203.0.113.25(指定用户+来源IP)
- 重启生效:sudo systemctl restart sshd 注意:操作前务必留一个已登录终端,避免锁死
文件与目录:ACL 实现细粒度权限分配
传统 rwx 权限太粗,多人协作或混合服务场景下,ACL 是刚需。
- 确认文件系统支持 ACL:mount | grep " /home " | grep acl 若无输出,在 /etc/fstab 对应行加 ,acl,再执行 sudo mount -o remount /home
- 为共享文档目录授权:sudo setfacl -Rm u:devuser:rwx /var/www/docs 给组批量赋权:sudo setfacl -Rm g:editors:rwX /var/www/docs(X 表示“有x则加,无则不加”,对目录安全) 查看效果:getfacl /var/www/docs
Web 服务:Nginx/Apache 层 IP 与路径级拦截
面向用户的 HTTP 服务需独立管控,尤其后台、API、管理界面等敏感路径。
- Nginx 示例(在 location /admin 块中): allow 10.0.20.0/24; allow 2001:db8:2::/64; deny all;
- Apache 示例(在 <Directory "/var/www/html/admin"> 中): Require ip 172.16.100.0/24 Require ip 2001:db8:3::/48
- 重载服务:sudo nginx -s reload 或 sudo systemctl reload httpd


















