限制网络访问是降低服务器被攻击风险的核心思路之一,因为绝大多数入侵都是从开放的网络入口开始的。思路是“减少暴露面 + 精确授权”,让服务器只对必要的人、必要的业务开放。我给你分成几个层次来说明,从最外层网络入口到最内层系统配置都涉及到限制网络访问的措施。
1. 网络层面:减少暴露入口
目标:只开放业务需要的端口和 IP,拒绝其余一切。
防火墙规则(iptables、firewalld、ufw):例如只开放 80、443、22(SSH),其他全部丢弃:
# 允许 HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 限制 SSH 只允许公司固定 IP
iptables -A INPUT -p tcp --dport 22 -s 203.0.113.10 -j ACCEPT
# 默认拒绝所有其他
iptables -P INPUT DROP
云厂商安全组:如果是云服务器,优先在安全组中限制入站规则,只放通业务必需端口。
使用端口映射和变更默认端口:比如将 SSH 端口改成非 22(虽然不能防御有心人,但能减少自动化扫描攻击)。
2. 应用层面:限制访问来源
目标:在应用程序内部也做访问限制,形成双重防护。
Nginx/Apache 白名单限制:只允许特定 IP 访问后台
location /admin {
allow 203.0.113.0/24;
deny all;
}
API Token + IP 绑定:对外 API 增加访问密钥,并绑定固定来源 IP,避免被盗用。
3. 管理接口隔离
目标:不让管理面暴露在公网,减少被扫端口的机会。
SSH 端口限制:SSH 仅开放给内网或用户。
面板访问限制:如宝塔、Webmin、phpMyAdmin 等,必须配置 IP 白名单,或通过反向代理加认证。
跳板机:管理所有服务器只通过一台跳板机登录,其他服务器禁用直连 SSH。
4. 网络隔离与分区
目标:即便某台机器被攻破,也不能横向渗透到其他系统。
VPC 子网隔离:前端、后端、数据库分不同子网,通过安全组控制流量。
物理隔离敏感服务:重要数据库不要直接暴露公网,只能内网访问。
反向代理隔离:外部请求先经过反向代理(如 Nginx、HAProxy),再转发到应用,后端不直接暴露。
5. 主动防御机制
目标:发现异常访问时快速阻断。
Fail2ban / SSHGuard:监控日志,一旦发现连续错误登录,自动封禁 IP。
WAF(Web 应用防火墙):阻挡 SQL 注入、XSS、恶意爬虫等。
流量清洗/高防 IP:如果面临大流量 DDoS,使用云厂商防护或接入 CDN。
6. 最佳实践建议
最小开放原则:开放前问自己“这个端口/接口真的要公网访问吗?”
分层防护:外层云安全组、内层防火墙、应用级限制叠加使用。
定期审计:用 nmap、netstat 检查开放端口,确认无多余入口。
如果你愿意,我可以帮你整理一个**“限制网络访问防御方案配置清单”**,直接按这个清单操作,就能一步步降低风险,几乎不留不必要的入口。这样你不需要自己东拼西凑规则,也更适合服务器长期维护。