Linux服务器安全配置指南:新手也能轻松上手的5个实用技巧

刚买了一台云服务器,或是自己折腾了一台Linux主机,是不是总觉得心里没底?怕被黑客入侵、怕数据丢失、怕莫名其妙被挂马。别慌,我刚开始玩服务器的时候也跟你一样,甚至半夜起来看日志。今天我就把自己踩过的坑和常用的安全配置分享给你,全程干货,照着操作就行。

一、SSH安全设置:把你的大门钥匙换一把

默认的SSH端口22是扫描器最爱光顾的地方,每天都有无数bot在尝试暴力破解。我见过一台裸奔的服务器,一天被尝试登录超过3000次。所以第一件事就是改端口、禁用root登录、使用密钥认证。

先备份SSH配置文件,然后编辑:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo vi /etc/ssh/sshd_config

找到并修改或添加以下内容:

Port 2222                    # 改掉默认22端口,选个不常用的

PermitRootLogin no # 禁止root直接登录
PasswordAuthentication no # 关闭密码登录,只允许密钥
PubkeyAuthentication yes # 开启密钥认证
MaxAuthTries 3 # 最多尝试3次
ClientAliveInterval 300 # 每300秒检测一次客户端存活
ClientAliveCountMax 2 # 连续2次无响应则断开

保存后重启服务:

sudo systemctl restart sshd

在本地生成密钥对,然后上传公钥到服务器(前提是你还能用密码登录):

ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-copy-id -p 2222 user@your_server_ip

之后就可以用密钥登录了。记得测试一下,确认没问题再彻底关闭密码登录。改端口后,防火墙规则也要跟着调整,别把自己锁在门外。

二、防火墙配置:只开需要的门

我推荐用ufw(Uncomplicated Firewall),对新手特别友好。先安装并设置默认策略:

sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing

然后放行必要的端口,注意要包含你刚改的SSH端口:

sudo ufw allow 2222/tcp   # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable

查看状态:

sudo ufw status verbose

如果用了云服务商的安全组(比如雨云服务器的安全组规则),记得在控制台同步放行这些端口,双重保险更安全。防火墙只开需要的端口,其他全部拒绝,这是最基础也是最重要的原则。

三、定期备份策略:别等数据没了才后悔

有一次我手滑删了一个数据库表,幸亏有备份才没被老板骂死。备份不是可选项,是必选项。最简单的方案是用crontab定期打包重要目录,然后同步到别的机器或对象存储。

写一个备份脚本,比如 /home/user/backup.sh

#!/bin/bash

备份网站和数据库到 /backup

BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d%H%M)
mkdir -p $BACKUP_DIR

备份网站文件(假设网站目录是 /var/www/html)

tar -czf $BACKUP_DIR/www_$DATE.tar.gz /var/www/html

备份MySQL数据库(需要输入密码,建议使用配置文件)

mysqldump -u root -p'你的密码' --all-databases > $BACKUP_DIR/db_$DATE.sql

删除7天前的备份

find $BACKUP_DIR -type f -mtime +7 -exec rm {} \;
echo "备份完成:$DATE"

赋予执行权限并加入定时任务:

chmod +x /home/user/backup.sh
crontab -e

添加一行,每天凌晨3点执行:

0 3   * /home/user/backup.sh

建议把备份文件再远程同步一份,可以用rsync到另一台服务器,或者用云存储的CLI工具。备份策略的核心是3-2-1原则:3份数据,2种介质,1份异地。

四、常见攻击防护:用Fail2Ban拦截暴力破解

Fail2Ban是一个轻量级的入侵防护工具,能自动扫描日志,发现多次失败的登录尝试就封禁IP。安装配置很简单:

sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vi /etc/fail2ban/jail.local

[sshd] 部分修改:

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600

意思是:SSH服务最多失败3次,封禁1小时。重启服务:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

这样就能看到被封禁的IP列表了。我用它之后,服务器日志里的暴力破解尝试几乎降为0。

另外,一定要记得定期更新系统补丁

sudo apt update && sudo apt upgrade -y

很多入侵都是利用已知漏洞,及时打补丁能堵住大部分坑。

五、我的经验与总结

安全配置不是一次性工作,而是一个持续的过程。除了上面这些,我还建议你:

  • 2FA认证保护SSH登录(Google Authenticator插件)
  • 监控系统登录日志:sudo tail -f /var/log/auth.log
  • 定期检查开放端口:sudo netstat -tulpn
  • 不要在服务器上装来路不明的软件,尤其是root权限运行的

我刚开始用服务器时也怕这怕那,但把上面这些步骤都做完后,心里踏实多了。其实大部分攻击都是自动化脚本,只要把基本的安全措施做到位,就能挡住99%的骚扰。

记住:安全不是绝对,而是风险控制。你的目标是让攻击成本远大于收益。

如果你还没服务器,想练手的话,可以看看雨云服务器,新用户有优惠(优惠码:aabh),性价比不错,适合新手折腾。不过配置再好的服务器,不做好安全设置也等于裸奔。希望这篇指南能帮到你,有问题欢迎在评论区交流,我会尽量解答。

最后说一句:配置完一定要重启测试,确保没有把自己锁在门外。祝你的服务器稳如老狗,永不宕机!

评论区: