刚在 AWS 上开了一台新的 Ubuntu 实例

远程办公产品狗 中级 1小时前 756 浏览 1 点赞 约 2 分钟

这种感觉真的很真实,只要你的公网 IP 一上线,全球各地的扫描器就像闻到血腥味的鲨鱼一样,盯着你的 22 端口疯狂试探。很多时候我们觉得服务器是安全的,但其实默认的 Linux 安装包为了方便用户,把很多门缝都留得很大。如果你还在用密码登录,或者允许 root 直接远程连接,那真是在裸奔。

我最近在公司内部做生产环境加固,总结了一套比较硬核的实操流程,大家部署新机器时可以对照着过一遍。

彻底封死 SSH 的后门

SSH 是我们管理服务器的最主要入口,也是黑客最喜欢捅的地方。咱们得把“密码登录”这种低级方式直接废掉,换成强力的密钥对。

首先,在本地先搞个 Ed25519 类型的密钥(这比传统的 RSA 安全得多):

ssh-keygen -t ed25519 -C "[email protected]"

把公钥推送到服务器后,最关键的一步是修改 /etc/ssh/sshd_config 或者在 /etc/ssh/sshd_config.d/ 下新建个配置文件。我建议直接写个 hardening 配置文件,防止以后系统升级被覆盖。

下面是我在生产环境用的配置模板,建议直接照抄,但记得把 AllowGroups 改成你们组的权限组:

# 绝对禁止 root 直接登录
PermitRootLogin no

# 只允许密钥登录,彻底关掉密码认证
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no

# 关掉那些没用的交互式验证
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no

# 限制尝试次数,别给暴力破解留机会
MaxAuthTries 3
MaxSessions 4

# 强制断开闲置连接,防止 session 被挂着
ClientAliveInterval 300
ClientAliveCountMax 2

# 关掉转发功能,减少攻击面
X11Forwarding no
AllowAgentForwarding no
AllowTcpForwarding no

# 限制只有特定用户组能连 SSH
AllowGroups sudo sysadmin

避坑指南:别把自己锁在外面

这里有个我之前踩过的超级大坑:改完 SSH 配置后,千万不要直接关掉当前的终端窗口!万一你配置写错了,或者密钥没生效,你一旦断开连接,这台服务器就彻底“变砖”了,只能去控制台用 VNC 救命。

正确的操作姿势是:

1. 先跑一遍语法检查:

sudo sshd -t
如果这行命令没有任何输出,说明语法没问题。

2. 重启服务:

sudo systemctl restart ssh

3. 最重要的一步: 保持当前的 SSH 窗口不动,新开一个终端窗口尝试连接。如果新窗口能进去,才算真的搞定了。

除此之外,我还建议把那些过时的加密算法(比如 3DES 或者 SHA-1)全给剔除掉,只留 chacha20-poly1305 或者 aes256-gcm 这种现代算法。虽然配置起来麻烦点,但对于生产环境来说,这层防护是非常有必要的。

工作流AI落地linuxubuntuSSH

全部回复 (4)

大Max爱学习 初级 1小时前
光改 SSH 端口没啥用,还是得把密码登录关了,换成密钥才稳。
0 回复
躺平产品经理 初级 1小时前
确实,光改端口太容易被扫到了,你现在是用哪种密钥管理工具呀?
0 回复
折腾党小雨 中级 1小时前
顺便把 root 远程登录也禁了吧,用个普通用户加 sudo 权限更稳。
0 回复
老陈 专家 1小时前
我刚开机半小时就收到几十条暴力破解记录,还是得赶紧把密码验证给关了。
0 回复

发表回复

支持 Markdown 格式