Linux 服务器安全加固指南
大家好,今天想跟你们聊聊 Linux 服务器安全加固的事儿。这几年我维护了不少服务器,踩过的坑那是真的不少,所以今天把一些实用的经验整理出来,希望能帮到正在管理服务器的朋友们。
引言
别以为服务器放在数据中心就安全了,实际上每天都有大量的扫描和攻击在互联网上进行。我之前就见过有人把服务器开开心心部署上去,结果没几天就被植入挖矿木马,CPU 跑得飞起,流量也异常得吓人。所以啊,安全加固真的是越早做越好,别等到出事了才后悔莫及。
下面我从几个关键的方面来聊聊怎么加固你的 Linux 服务器。
1. SSH 安全配置
SSH 是我们登录服务器的主要方式,但默认配置其实有不少安全隐患。
首先,禁用密码登录,改用密钥对。这是最基本也是最重要的一步。生成密钥对的方法很简单:
ssh-keygen -t ed25519 -C "[email protected]"
然后把公钥上传到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server_ip
接下来修改 SSH 配置文件 /etc/ssh/sshd_config:
# 禁用密码登录
PasswordAuthentication no
禁用 root 直接登录
PermitRootLogin no
更改默认端口(可选,但能避开大量自动化扫描)
Port 22222
限制允许登录的用户
AllowUser your_user
改完配置记得重启 SSH 服务:
sudo systemctl restart sshd
还有一个小技巧,就是安装 fail2ban 这个工具,它可以自动封禁那些尝试暴力破解 SSH 的 IP:
sudo apt install fail2ban
sudo systemctl enable fail2ban
2. 用户和权限管理
有时候安全问题不是来自外部,而是内部。合理的用户和权限管理能避免很多麻烦。
创建普通用户,别用 root 干所有事:sudo adduser newuser
sudo usermod -aG sudo newuser # 赋予 sudo 权限
awk -F: '($3 == 0) {print}' /etc/passwd
应该只有 root 这一行。
设置合理的 umask,编辑/etc/profile 或者用户家目录下的 .bashrc:
umask 077
这样创建的新文件默认权限会更严格。
定期检查系统用户,看看有没有奇怪的账号:cat /etc/passwd
如果有不在计划内的用户,尤其是 UID 為 0 的,那就要小心了。
3. 防火墙配置
防火墙是服务器的第一道防线。Linux 自带的 iptables 或者 ufw 都很好用。
如果你用的是 Ubuntu,ufw 非常简单:
# 开启防火墙
sudo ufw enable
只允许 SSH
sudo ufw allow 22222/tcp
如果有 Web 服务
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
查看状态
sudo ufw status
如果是 CentOS/RHEL 系列,可以用 firewalld:
sudo firewall-cmd --permanent --add-port=22222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
还有一个很实用的策略:只允许特定 IP 段访问 SSH。如果你有固定的工作地点或者 VPN,可以在防火墙规则里加上:
sudo ufw allow from 192.168.1.0/24 to any port 22222
这样就算密码泄露了,攻击者也从其他地方连不上。
4. 系统更新和漏洞修复
这个真的不用多说,但很多人就是忽略了。服务器上的软件和系统一定要保持更新,因为很多更新就是用来修复安全漏洞的。
设置自动安全更新:Ubuntu/Debian:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
CentOS:
sudo yum install yum-cron
sudo systemctl enable yum-cron
还有个重要的事情:定期检查已安装的软件有没有已知漏洞。可以用 lynis 这个工具:
sudo lynis audit system
它会给你一个很详细的安全报告,告诉你哪些地方需要改进。
5. 日志监控和入侵检测
最后聊聊监控。你得知道服务器上发生了什么。
常用日志位置:- SSH 登录日志:/var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(CentOS)
- 系统日志:/var/log/syslog
- 应用日志:通常在 /var/log/ 下的对应目录
sudo lastb
sudo last
sudo tail -f /var/log/auth.log | grep "Failed password"
如果想更专业一点,可以装 aide 或者 rkhunter 做入侵检测:
# 安装 aide
sudo apt install aide
sudo aideinit
安装 rkhunter
sudo apt install rkhunter
sudo rkhunter --check
这些工具可以帮你检测文件是否被篡改、系统是否有被rootkit入侵的迹象。
总结
好了,今天聊了这么多,其实核心就是几点:锁好 SSH 这扇门、管好用户权限、设好防火墙、保持系统更新、看好日志。这些做起来其实花不了多少时间,但能帮你挡住绝大多数的攻击。
安全这事儿吧,就是平时多用心,出事少糟心。希望大家的服务器都能稳稳当当的。如果觉得有用,转发给身边需要的朋友也看看呗。有问题欢迎在评论区留言讨论~
Linux 服务器安全加固指南
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法