端口暴露风险排查方法

通过端口扫描工具(如nmap)检测当前开放的端口:

nmap -sS -p 1-65535 <服务器IP>

检查结果中非必要开放的端口(如MySQL默认3306、Redis默认6379),若未使用应立即关闭。

查看服务器当前监听的端口及对应进程:

netstat -tulnp

或使用ss命令替代:

ss -tulnp

防火墙配置策略

启用防火墙(如iptablesfirewalld)并仅放行业务必要端口。以下为iptables示例,仅允许SSH(22)和HTTP(80):

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j DROP

使用firewalld的等价操作:

firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

最小权限原则实施

修改服务默认端口以降低扫描风险(如将SSH端口改为非22):
编辑/etc/ssh/sshd_config

Port 2222

重启服务生效:

systemctl restart sshd

数据库类服务(如MySQL)限制访问源IP:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'特定IP' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;

安全组与网络ACL配置

在云平台(如AWS、阿里云)配置安全组规则:

  • 入方向:仅允许业务端口(如80、443)及管理端口(SSH/RDP)来自可信IP。
  • 出方向:默认拒绝,按需放行。

网络ACL(如阿里云)建议规则:

  • 优先级1:放行特定IP访问管理端口。
  • 优先级100:拒绝所有其他入站流量。

日志监控与自动化告警

启用日志审计工具(如fail2ban)自动封禁恶意IP:
安装并配置fail2ban

apt install fail2ban  # Debian/Ubuntu
systemctl enable fail2ban

编辑/etc/fail2ban/jail.local

[sshd]
enabled = true
maxretry = 3

通过云平台日志服务(如AWS CloudTrail、阿里云ActionTrail)监控异常登录行为,并设置阈值告警。

更多推荐