1. 精华:立即启用密钥认证、关闭密码登录,结合安全组按最小权限放行SSH访问;
2. 精华:在实例内使用fail2ban + iptables(或UFW)实现动态阻断暴力破解,并记录审计日志;
3. 精华:若有多台主机,部署堡垒机或VPN集中管理SSH出口,配合公网端口白名单与多因子认证。
作为有多年云安全与运维实战经验的工程师,本文针对腾讯云轻量新加坡服务器给出一套可复制、可验证并符合谷歌EEAT标准的SSH加固与防火墙规则建议,强调可操作性与审计可追踪性,适合中小型业务快速上线并保证安全基线。
一、基础策略(先做且必须做)
1) 在腾讯云轻量新加坡服务器控制台先配置安全组,将入站的22端口限制到管理者公网IP或公司出口IP,示例:仅允许203.0.113.5/32访问22端口;
2) 在实例内强制使用密钥认证,编辑/etc/ssh/sshd_config,确保以下关键项:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 22
MaxAuthTries 3
AllowUsers youradmin
推荐将Port改为非标准端口(例如22022),但必须配合安全组规则更新。注意:端口更改只是减低噪声,不可替代密钥+日志策略。
二、动态防护:fail2ban + iptables/UFW
1) 安装与配置:在Ubuntu/Debian上:
apt update && apt install -y fail2ban
2) 简单的 jail.local 配置:
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
3) 若使用UFW:
ufw default deny incoming
ufw default allow outgoing
ufw allow from 203.0.113.5 to any port 22 proto tcp
ufw enable
或使用iptables做更细粒度限制,例如对SSH速率限制:
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 6 -j DROP
三、审计与告警(必须长期运行)
1) 开启系统审计日志(rsyslog 或 journald),并把关键登录事件转发到集中日志系统或腾讯云日志服务;保证在被攻击时能快速回溯IP与行为轨迹。
2) 配置告警:fail2ban 可通过邮件或脚本触发告警,结合腾讯云监控(CM)设置异常流量告警与带宽波动告警。
四、进阶防护(强烈建议)
1) 部署堡垒机或VPN:将所有运维入口集中到堡垒机,堡垒机再访问内网实例。堡垒机上启用多因子认证(MFA),并记录会话录像与命令审计;
2) 使用密钥托管与硬件密钥:对高权限账号使用带PIN的硬件密钥或云端KMS托管密钥,避免私钥平铺在开发者机器;
3) 最小化暴露面:只开放业务必须端口,数据库与管理端口建议置于私有子网,通过内网或VPN访问。
五、应急与恢复
1) 当发现异常暴力破解或已被入侵的迹象时,立即在控制台修改安全组为封闭模式,只允许可信IP访问;
2) 使用快照或镜像在隔离网络内恢复样本进行取证,保留/var/log和/var/log/auth.log的完整副本;
3) 建议预置应急账号和密钥轮换流程,定期演练恢复步骤并保存到安全管理平台。
六、落地清单(可复制执行)
1) 控制台:更新安全组
2) 实例内:修改/etc/ssh/sshd_config,重启sshd;
3) 安装fail2ban并启用针对sshd的规则;
4) 安装并配置UFW或iptables速率限制规则;
5) 开通日志同步与监控告警;
6) 对关键账号启用MFA,并将运维入口集中到堡垒机或VPN。
结语:对于部署在新加坡的腾讯云轻量新加坡服务器而言,安全并非一劳永逸,而是“最小暴露 + 动态防护 + 可审计”的持续工程。按上面步骤,从控制台的安全组SSH加固防火墙规则
如果需要,我可以生成一份基于你当前公网IP、业务端口和操作系统版本的定制化命令清单与sshd_config模板,帮你一步步落地部署并测试。