本文目录导读:

保障服务器远程登录安全是运维工作的重中之重,以下是经过实践检验、按重要性排序的核心防护措施,建议分层实施:
第一层:账户与认证加固(最基础且见效最快)
- 禁用 root 直接登录:
- 操作:修改
sshd_config文件,设置PermitRootLogin no。 - 理由:root 账户是黑客的首要爆破目标,禁用后,需要使用普通用户登录再
su或sudo。
- 操作:修改
- 使用密钥认证,禁用密码登录:
- 操作:生成 SSH 密钥对(
ssh-keygen),将公钥添加到服务器~/.ssh/authorized_keys,在sshd_config中设置PasswordAuthentication no。 - 理由:密码登录易被暴力破解或弱口令猜解,而 2048 位以上的密钥几乎无法被破解。
- 操作:生成 SSH 密钥对(
- 更换默认端口:
- 操作:
sshd_config中设置Port 2222(或一个大于 1024 的非标准端口)。 - 理由:大量自动化扫描脚本默认攻击 22 端口,换端口能直接过滤掉 99% 的初级攻击。
- 操作:
- 使用强密码策略(如果必须保留密码登录):
- 要求:至少 12 位,包含大小写字母、数字、符号,无键盘序列(如
1qaz2wsx)或个人相关信息。
- 要求:至少 12 位,包含大小写字母、数字、符号,无键盘序列(如
第二层:访问控制与网络层防护(限制打击面)
- 设置 IP 白名单:
- 操作:在
sshd_config的Match Address块中,或通过防火墙(iptables、firewalld、UFW)限制仅允许特定 IP 或 IP 段访问 SSH 端口。 - 举例:
AllowUsers youruser@xxx.xxx.xxx.xxx
- 操作:在
- 使用防火墙限制连接频率:
- 工具:
fail2ban或DenyHosts。 - 效果:多次密码错误(如 3 次)后,该 IP 被自动封禁一段时间,这是防暴力破解的“杀手锏”。
- 工具:
- 禁止空密码:
sshd_config中确认PermitEmptyPasswords no。
第三层:传输协议与应用层安全(纵深防御)
- 仅使用 SSH 协议版本 2:
sshd_config:Protocol 2,协议 1 存在已知安全漏洞,应完全禁用。
- 限制用户权限:
- 操作:使用
AllowUsers或AllowGroups指令,明确指定哪些用户或用户组可以 SSH 登录。 - 理由:避免服务器上的所有系统用户(如 www-data、nobody)都有 SSH 登录权限。
- 操作:使用
- 启用二因素认证(2FA):
- 工具:
libpam-google-authenticator。 - 效果:即使密码或密钥泄露,攻击者没有手机上的动态验证码也无法登录。
- 工具:
- 禁用 SSH 转发(如果不需要):
- 若用户不需要通过服务器进行端口转发或 X11 转发,在
sshd_config中关闭AllowTcpForwarding no、X11Forwarding no,可防范反弹 shell 或内网渗透。
- 若用户不需要通过服务器进行端口转发或 X11 转发,在
第四层:监控、审计与应急(亡羊补牢)
- 记录并分析登录日志:
- 查看:
/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(CentOS/RHEL)。 - 自动化:配置脚本或工具(如
auditd)监控Failed password和Accepted publickey等关键事件。
- 查看:
- 设置登录警告:
- 在
sshd_config或/etc/motd中设置法律声明,如“未经授权禁止访问”,虽然无法完全阻止攻击,但在法律诉讼中有助于证明非授权入侵。
- 在
- 定期更新系统与 OpenSSH:
- 操作:
sudo apt update && sudo apt upgrade openssh-server(或对应发行版命令)。 - 理由:及时修补已知的 SSH 协议漏洞(如 CVE-2024-6387 等),旧版 OpenSSH 常被发现可使用漏洞。
- 操作:
- 使用 SSH 蜜罐或代理(高级):
- 概念:将对外暴露的 SSH 端口指向一个内部蜜罐(如
Cowrie),记录攻击行为并隔离真实系统,或使用ssh-audit工具检查服务端配置的健壮性。
- 概念:将对外暴露的 SSH 端口指向一个内部蜜罐(如
实施建议(按优先级从高到低)
- 立即做:禁用 root 密码登录,改用密钥 + 普通用户 + sudo。
- 马上做:配置
fail2ban。 - 尽快做:更换 SSH 端口,设置 IP 白名单(如果办公 IP 固定)。
- 长期维护:启用 2FA,定期审计日志和更新软件。
如果服务器托管在云上(如 AWS、阿里云等),强烈建议在云平台的安全组或 ACL(访问控制列表 / 网络访问控制列表)中直接限制源 IP,这是网络层面的白名单,比服务器自身配置更可靠且不易被绕过。
标签: 防火墙策略
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。