雷灵模板

Linux 服务器安全加固:我这些年吃过亏才记住的 10 件事

avatar

雷灵

🤖AI摘要
本文提供了10个Linux服务器安全加固步骤,旨在帮助用户防止自动化攻击和数据丢失。核心措施包括修改默认端口和密码、配置Fail2Ban、开启防火墙、配置自动更新、禁用不必要的服务、配置日志监控、限制SSH登录IP、配置文件系统权限、配置定期备份和安装入侵检测工具。通过执行这些步骤,可以将99%的自动化攻击挡在门外。

刚买回来的 Linux 服务器,默认配置其实挺"裸"的。很多人急着往上丢程序、搭网站,结果没几天就被扫描、被爆破,轻则变成矿机,重则数据全丢。

这篇文章不整那些虚头巴脑的理论,直接上干货。下面是我这些年踩坑后总结的 10 个加固步骤,按顺序做下来,基本能把 99% 的自动化攻击挡在门外。

一、第一时间修改默认端口和弱密码

别觉得这是老生常谈。我见过太多人服务器被黑,原因就是 SSH 还用着 22 端口,密码还是 123456 这种。

操作要点:

# 修改 SSH 端口
sudo nano /etc/ssh/sshd_config
# Port 22 改成 Port 23456

# 禁用 root 远程登录
PermitRootLogin no

# 禁用密码登录
PasswordAuthentication no

改完记得先别重启 SSH 服务,先用新端口开个新会话测试,确认能连上再重启,不然容易把自己锁外面。

二、配置 Fail2Ban 防爆破

Fail2Ban 是个好东西,能自动把多次尝试登录的 IP 拉黑。默认配置就能挡掉大部分自动化脚本。

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

配置文件在 /etc/fail2ban/jail.local,可以根据需要调整阈值。默认是 5 次失败封 10 分钟,对普通站点够用了。

三、开启防火墙,只开放必要端口

别把所有端口都敞开着。用 UFW 配置很简单:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 23456/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

要是有其他服务,比如数据库、Redis,记得只允许内网访问,别暴露在公网。

四、配置自动更新

安全补丁要及时打。可以配置自动更新,但建议只自动更新安全补丁,系统大版本升级还是手动来。

# Ubuntu/Debian
sudo apt install unattended-upgrades

# CentOS
sudo yum install yum-cron
sudo systemctl enable yum-cron

五、禁用不必要的服务

服务器不是个人电脑,用不到的服务统统关掉。每个运行的服务都是潜在的攻击面。

systemctl list-units --type=service --state=running
sudo systemctl disable bluetooth.service
sudo systemctl disable cups.service

像蓝牙、打印这种,服务器上根本用不到,直接禁了就是。

六、配置日志监控

日志不看出问题就是马后炮。用 Logwatch 可以每天给你发日志摘要:

sudo apt install logwatch
sudo nano /etc/logwatch/conf/logwatch.conf

也可以配合 Fail2Ban 实现自动告警,有异常登录马上知道。

七、限制 SSH 登录 IP

如果条件允许,最好配置 SSH 白名单,只允许特定 IP 登录。在防火墙上加规则:

sudo ufw allow from 192.168.1.100 to any port 23456

要 IP 不固定,至少做到禁用 root 登录 + 密钥认证 + Fail2Ban 三重防护。

八、配置文件系统权限

别让用户有不必要的写权限。特别是网站目录,运行 Web 的用户有写权限就够了,其他用户只读。

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

上传目录可以单独设置,但要用脚本定期扫描,防止上传 WebShell。

九、配置定期备份

安全做得再好也怕万一。定期备份是最后的保险。

#!/bin/bash
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)
mysqldump -u root -p database > $BACKUP_DIR/db_$DATE.sql
tar -czf $BACKUP_DIR/www_$DATE.tar.gz /var/www/html

备份文件要传到其他服务器或者云存储,别跟主服务器放一起,不然服务器炸了一起没。

十、安装入侵检测工具

最后,可以装个 Rootkit 检测工具,定期检查系统完整性:

sudo apt install rkh chkrootkit
sudo rkh --check
sudo chkrootkit

这玩意儿不能防攻击,但能帮你发现系统是否已经被植入后门。

总结

上面这 10 步做完,你的服务器安全性能超过 90% 的站点。但安全不是一劳永逸的事,要养成几个习惯:

  1. 定期查看日志
  2. 及时更新系统
  3. 最小权限原则
  4. 备份!备份!备份!

服务器安全就像锁门,你不锁,别人进来别怪你没提醒。花半小时做好这些基础防护,能避免后面无数麻烦。

黔ICP备2022004976号
powered by 雷灵模板