为什么推荐SSH安全配置教程?深度对比与实测
SSH 是服务器最常用的远程管理工具,但默认的 SSH 配置极易成为黑客暴力破解和自动化扫描的目标。为了保障服务器安全,建议按照以下四个维度进行系统化的安全加固:
一、 核心安全配置(修改 /etc/ssh/sshd_config)
更改默认端口:将默认的 Port 22 修改为 10000-65535 之间的冷门端口,可以有效避开绝大多数自动化端口扫描。
禁止 Root 直接登录:将 PermitRootLogin 设置为 no。日常运维应使用普通用户登录后再通过 sudo 或 su - 提权,防止超级管理员密码被暴力破解。
禁用密码认证,启用密钥登录:将 PasswordAuthentication 设置为 no,并确保 PubkeyAuthentication 为 yes。仅允许通过 SSH 密钥对进行身份验证,从根本上杜绝密码泄露风险。
禁止空密码登录:确保 PermitEmptyPasswords 为 no。
限制登录尝试次数:将 MaxAuthTries 设置为 3 或更小,防止恶意用户在同一连接中反复试探密码。
限制登录用户与 IP:
使用 AllowUsers 或 AllowGroups 设置白名单,仅允许特定用户或用户组登录。
如果服务器有多块网卡,可使用 ListenAddress 指定仅监听内网 IP,限制外部直接访问。
二、 协议与加密算法加固
强制使用 SSHv2 协议:确保配置 Protocol 2,彻底禁用存在严重安全漏洞的 SSHv1 协议。
升级加密算法:指定高强度的加密、MAC 和密钥交换算法,禁用不安全的旧算法(如 CBC 模式)。推荐配置如下:
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha2-256,hmac-sha2-512
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
使用现代密钥类型:在生成密钥时,推荐使用性能更好、安全性更高的 Ed25519 算法,若需兼容旧系统则使用 4096 位的 RSA 算法。
三、 会话与连接控制
设置空闲超时断开:配置 ClientAliveInterval 300 和 ClientAliveCountMax 2,当客户端无响应超过设定时间后自动断开连接,防止僵尸会话占用资源。
缩短登录宽限时间:将 LoginGraceTime 设置为 30s,避免未认证的连接长时间挂起消耗系统资源。
关闭不必要的转发功能:若业务不需要,将 X11Forwarding 和 AllowTcpForwarding 设置为 no,减少潜在的攻击面。
四、 配置生效与排查验证
语法检查:修改配置文件后,务必先执行 sshd -t 检查语法是否正确,避免重启失败导致无法远程连接。
重启服务:确认无误后,执行 systemctl restart sshd 使配置生效。
防火墙放行:如果修改了默认端口,必须确保在系统防火墙(如 firewalld 或 ufw)以及云服务商的安全组中放行新的 SSH 端口。
SELinux 调整:在 CentOS/RHEL 等系统上更改非标准端口时,需使用 semanage port -a -t ssh_port_t -p tcp <新端口号> 更新 SELinux 策略。
强烈建议:在进行任何 SSH 配置修改前,务必保持一个已连接的 SSH 终端窗口不要关闭。另开一个窗口测试新配置是否生效,确认可以正常登录后再关闭旧窗口,防止因配置错误导致自己被锁在服务器之外。
-
为什么推荐SSH安全配置教程?深度对比与实测SSH 是服务器最常用的远程管理工具,但默认的 SSH 配置极易成为黑客暴力破解和自动化扫描的目标。为了保障服务器安全,建议按照以下四个维度进行系统化的安全加固:一、 核心安全配置(修改 /etc/ssh/sshd_config)更改默认端口:将默认的 Port 22 修改为 10000-65535 之间的...
-
Sendmail工具故障排查手册:常见报错一站式解决sendmail 是 Linux/Unix 系统下经典的邮件传输代理(MTA),负责在服务器之间路由和传输电子邮件,以及将本地生成的邮件传递给收件人。由于 sendmail 配置较为复杂,现代系统中更常使用 Postfix、Exim 或 OpenSMTPD 作为替代,但为了保持向后兼容,这些现代 MTA 通常会提供与 se...
-
SSH加固故障排查手册:常见报错一站式解决SSH加固是保障Linux服务器安全的核心环节。结合当前最佳实践,为您梳理了一套从基础到高级的系统化加固方案:一、 认证与权限控制(核心防线)禁用密码登录,仅允许密钥认证:彻底消除密码暴力破解的风险。在 /etc/ssh/sshd_config 中配置 PubkeyAuthentication yes 和 Password...