您的Ubuntu服务器的SSH访问是否足够安全?
确保 SSH 访问安全是任何 Linux 服务器最基本也是最重要的步骤之一,尤其是在服务器托管网站、数据库、交易服务器或 GPU 节点等关键服务时。本指南将介绍五种实用且技术性的解决方案。 Ubuntu 上的 SSH 安全加固 它包含可操作的说明、配置示例以及适用于交易、游戏、人工智能和网络托管场景的实用技巧。.
概述和目标
本指南旨在提供五个关键要点,这些要点结合了以下原则: 保密性, 攻击范围缩小, 入侵检测与响应 并增加 可持续性 封面。.
- 用以下方式替换身份验证 SSH密钥 而不是密码
- 访问限制(端口、用户、IP 地址)
- 实施诸如以下保护措施 失败2Ban 和 UFW/iptables
- 监控和审计(日志、
sshd -T(评论工具) - 使用双因素身份验证或堡垒机/跳板机方法
1)使用强SSH密钥并禁用密码
使用 SSH密钥 它取代了密码,能够抵御暴力破解攻击,并简化访问管理。新型密钥,例如: ed25519 如果您需要与旧系统兼容,则特别推荐使用它们。 RSA 4096 使用。.
在客户端创建安全密钥:
ssh-keygen -t ed25519 -a 100 -o -f ~/.ssh/id_ed25519 -C "user@host"或者(为了兼容性):
ssh-keygen -t rsa -b 4096 -o -a 100 -f ~/.ssh/id_rsa -C "user@host"将密钥传输到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server/etc/ssh/sshd_config 中一些重要设置的示例:
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys上传 SSH 配置:
sudo systemctl reload sshdGPU节点场景示例(AI)
推荐用于机器学习/人工智能团队使用的GPU服务器 访问组 为每个用户创建并颁发唯一密钥。使用加密文件系统存放密钥文件夹并启用 AppArmor (如果可用,建议使用 SELinux).
2) 访问限制:端口、用户、地址和允许用户/允许组
降低访问权限或 攻击面 减少入侵尝试。常用方法包括端口更改、用户限制和基于 IP 地址的限制。.
更改默认端口:
Port 2222限制用户或用户组:
AllowUsers deploy [email protected]/24
# or
AllowGroups sshusers基于 IP 的 UFW 限制:
sudo ufw allow from 203.0.113.5 to any port 2222 proto tcp禁用高风险功能:
AllowTcpForwarding no
X11Forwarding no
PermitTunnel no减少因登录失败而花费的时间和精力:
LoginGraceTime 30
MaxAuthTries 3
MaxSessions 23) 暴力破解防御和攻击管理:Fail2Ban、UFW 和 Anti-DDoS
自动化攻击和暴力破解攻击很常见;诸如此类的工具包括: 失败2Ban 主机级防火墙可以阻止恶意流量。此外,还可以使用反DDoS服务来抵御第4层和第7层攻击。.
安装和配置 Fail2Ban:
sudo apt install fail2ban
# create /etc/fail2ban/jail.d/sshd.local with:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600使用 UFW 进行基本防火墙配置:
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable如果您需要更强的网络层保护,请使用 反DDoS服务 选择我们公司。我们的反DDoS服务器可以与BGP/任播和CDN网络结合使用,在网络边缘拦截恶意流量。.
比较不同地点及其对安全性的影响
公司在全球85多个地点设有数据中心,其中一些数据中心配备了边缘防火墙、BGP和基于硬件的DDoS防护等网络功能。对于交易服务器或对安全性要求较高的服务器而言,选择具备DDoS防护支持且与金融市场(例如伦敦、法兰克福、纽约、新加坡、东京)网络连接路径较短的数据中心至关重要。.
4) 监控、审计和入侵检测
了解哪些用户连接到了服务器以及哪些连接尝试失败至关重要。日志和审计工具有助于快速检测入侵行为。.
一些有用的检查命令:
sshd -T
ss -tulpn | grep ssh
sudo tail -n 200 /var/log/auth.log
last -a要分析日志,您可以使用 rsyslog, 日志观察 或者使用集中式日志服务(例如 Elasticsearch/Graylog)。其他有用的工具包括 SSH审计 和 莱尼斯 以及 IDS/IPS 等 OSSEC 或者 狐獴 没错。.
5) 双因素认证、堡垒机和访问管理(PAM、2FA)
添加第二层身份验证可以防止攻击者在密钥被盗或帐户被盗用时仍能获得访问权限。可选方案包括使用 Google Authenticator (PAM)、企业级多因素身份验证 (MFA) 服务以及使用堡垒机/跳转主机。.
安装 Google Authenticator PAM:
sudo apt install libpam-google-authenticator
# then run for each user:
google-authenticator配置 PAM 和 sshd:
# add to /etc/pam.d/sshd
auth required pam_google_authenticator.so
# in /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
UsePAM yes对于组织而言,使用 MFA 服务,例如 二人组 或者 奥克塔 也建议放置一个 堡垒宿主 凭借双因素身份验证、集中式日志记录和统一的身份与访问管理策略,这是大型团队的最佳解决方案。.
管理钥匙和课程的实用技巧
定期轮换密钥、删除不活跃密钥以及使用身份管理(LDAP/AD/SSO)进行集中控制对于维护安全性至关重要。.
建议的 sshd_config 配置示例
以下示例显示了推荐设置(可能需要根据您的具体需求进行进一步调整):
Protocol 2
Port 2222
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding no
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
LogLevel VERBOSE
AllowUsers deploy [email protected]针对特定场景的更多实用技巧
交易员: 使用靠近交易所的专用交易VPS,通过网络测试工具测量响应时间,并仅允许特定IP地址访问SSH。启用DDoS防护和BGP网络协议。.
游戏: 对于VPS游戏,请使用低延迟的服务器和私有网络。通过堡垒机控制管理员权限。.
人工智能和渲染: 选择 AI 专用位置的 GPU 服务器,使用密钥和双因素身份验证限制 SSH 访问,并为不同的团队使用 AllowGroups。.
网站服务器和 WordPress: 使用 SSH 密钥管理管理员,使用安全的 SFTP 进行内容上传,并使用 SSH 部署密钥实现 CI/CD。.
服务和基础设施信息
服务公司在超过 全球85个地点 服务内容:各类用于交易和游戏的 VPS 服务器、高性能云服务器、图形服务器 (GPU)、防 DDoS 服务器、主机和域名服务、CDN 以及支持 BGP 的网络。.
- 对于公共服务,请使用具备防DDoS功能的服务器位置。.
- 为了确保安全访问,建议在专用网络上部署 Bastion,并通过 VPN 或静态 IP 进行访问。.
- 选择位于人工智能专用地点的 GPU 服务器,以获得最低延迟。.
- 为了保护应用层,除了其他安全措施外,还应包括 CDN 和 WAF。.
摘要和快速实施清单
实施上述内容的十步清单:
- 创建和使用安全的 SSH 密钥(ed25519 或者 RSA4096)
- 停用
密码验证和允许Root登录 - 更改默认 SSH 端口并限制其他权限
- 安装 失败2Ban 和配置 UFW/iptables
- IP限制和使用
允许用户/允许组 - 启用日志记录并将日志发送到中央服务
- 对敏感访问实施双因素身份验证 (2FA) 或多因素身份验证 (MFA)
- 使用堡垒机/跳板机进行远程访问
- 检查配置
sshd -T和审计工具 - 定期检查钥匙,移除旧钥匙,并轮换使用钥匙。









