Ubuntu 新机第一件事:安全加固清单
我的 VPS 刚装好 Ubuntu 那天晚上,我正规划博客长什么样,顺手看了一眼 /var/log/auth.log,整个人瞬间清醒了:机器上线还不到一小时,日志里已经躺了几十条失败登录记录,全是来撞 22 端口的。好家伙,我这台刚出生的小机器,被全世界惦记的勤快程度,堪比我们 HOA 查违建。 那天晚上博客没装成,我先花了半小时把门锁死。下面这份清单就是我当时一步步做下来的,每一步都有命令和原因,照着走一遍大概二十分钟。二十分钟,换以后半夜不用爬起来救火——第二天还要送孩子上学的人,伤不起。 1. 先更新系统,再干别的 sudo apt update && sudo apt upgrade -y 新装的镜像多少都带点旧软件包,旧版本等于已知漏洞。先把系统补到最新,后面的配置才站在干净的地基上。这一步零技术含量,但很多人一兴奋就跳过。当晚的我差点也跳过,还好被那几十条登录记录吓清醒了。 2. 新建日常用户,告别天天 root adduser blog usermod -aG sudo blog root 权限太大,手一抖就是灾难现场。我建了个叫 blog 的普通用户,日常操作都用它,真要提权再 sudo。多敲四个字母,换来一道保险。这个习惯跟开车系安全带一样:平时觉得麻烦,出事时救命。 3. 改 SSH 端口,禁密码登录,只留密钥 这是整份清单里最重要的一步,也是我差点翻车的一步。默认的 22 端口每天被扫几万次,改掉端口能挡掉绝大部分自动化扫描。这不是什么高深防御,就是把你家从大街上挪到小巷里,小偷懒得找。 先编辑 SSH 配置: sudo nano /etc/ssh/sshd_config 改这三行(没有就加上): Port 2222 PasswordAuthentication no PermitRootLogin no Port 2222 是把端口从 22 换掉。我这里写 2222 只是举例,别真用这个,太常见了,换个自己记得住的四位数。PasswordAuthentication no 关掉密码登录,只认密钥,暴力破解直接失业。PermitRootLogin no 禁止 root 直接登录,攻击者连用户名都猜不对。 改完先检查语法,再重启: sudo sshd -t sudo systemctl restart sshd 重点来了:重启之前,一定先新开一个终端窗口,用新端口加密钥测试能连上,再关掉当前这个。把自己锁在门外是新手村最经典的翻车,我当时手心都出汗了。好在 DMIT 本来就只支持密钥登录,逼着我提前配好了密钥,阴差阳错躲过一劫。不然那天晚上,我就得给服务商发工单求救了——想想都头大。 ...