新手必看:Linux服务器安全配置全攻略

很多新手第一次买VPS或云服务器,第一件事就是赶紧搭网站、跑服务,却完全忽略了安全配置。结果没几天就被黑客盯上——后台日志里全是暴力破解的尝试,甚至服务器被植入挖矿程序、变成肉鸡。其实,只要花半小时做好几项基础安全设置,就能挡住90%的常见攻击。今天我就用最直白的方式,带你一步步把Linux服务器武装起来。

一、SSH安全设置:守住第一道门

SSH是远程管理服务器的唯一通道,也是最常被攻击的目标。默认端口22、允许root直接登录,简直就是给黑客留了后门。下面这三步做完,暴力破解基本就废了。

1. 修改SSH默认端口

把端口改成10000以上的高位端口,能直接避开大量扫描脚本的骚扰。编辑SSH配置文件:

sudo nano /etc/ssh/sshd_config

找到 #Port 22 这一行,去掉注释并改成你想要的端口,比如:

Port 2222

保存退出后重启SSH服务:

sudo systemctl restart sshd

别忘了在防火墙里放行新端口,否则你会把自己锁在外面。

2. 禁止root直接登录

root权限太大,一旦被破解就是灾难。建议先用普通用户登录,需要提权时再用 sudo。同样在 sshd_config 里设置:

PermitRootLogin no

3. 使用密钥认证,关闭密码登录

密钥比密码安全无数倍,而且登录更方便。先在本地生成密钥对:

ssh-keygen -t ed25519

然后把公钥上传到服务器:

ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP -p 端口

确认能密钥登录后,再在 sshd_config 里关闭密码认证:

PasswordAuthentication no

最后重启SSH服务生效。

4. 安装fail2ban(强烈推荐)

fail2ban能自动封禁多次尝试失败的IP,对暴力破解有奇效。安装和配置非常简单:

sudo apt install fail2ban   # Debian/Ubuntu

sudo yum install fail2ban # CentOS/RHEL

启动并设置开机自启:

sudo systemctl enable --now fail2ban

默认配置已经能防SSH暴力破解,你也可以自定义规则。用 sudo fail2ban-client status sshd 查看封禁情况。

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

默认情况下,服务器所有端口都是开放的,这等于告诉黑客“快来扫我”。用防火墙把不需要的端口全部关掉,只保留必要服务。推荐用 ufw(Ubuntu)或 firewalld(CentOS),操作更友好。

UFW(Ubuntu/Debian)示例:

sudo ufw default deny incoming    # 默认阻止所有入站流量
sudo ufw default allow outgoing # 允许出站
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 # 查看规则

firewalld(CentOS/RHEL)示例:

sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

如果你用的是云服务器(比如雨云服务器,优惠码:aabh),别忘了同时在云控制台的安全组里放行相应端口,因为云厂商的防火墙是独立于系统防火墙的。

三、定期备份策略:给数据上保险

安全配置再完善,也怕误操作或被勒索。定期备份是最后的救命稻草。新手不用搞太复杂,一个简单的 rsync + 定时任务就能搞定。

本地备份示例:

rsync -avz --delete /重要目录/ /备份目录/

远程备份(备份到另一台服务器):

rsync -avz -e "ssh -p 2222" /重要目录/ 用户@远程IP:/备份目录/

结合crontab实现每天自动备份:

crontab -e

添加一行:

0 3   * rsync -avz --delete /data/ /backup/

这样每天凌晨3点自动备份。更专业的可以用 borgbackuprestic,支持增量备份和加密。但新手先用 rsync 完全够用,关键是养成备份习惯。

四、常见攻击防护:主动防御

除了上面提到的SSH和防火墙,还有几件事能大幅提升安全性:

  • 保持系统更新: 很多攻击利用的是已知漏洞,及时打补丁是最简单的防护。建议开启自动安全更新:
    sudo apt install unattended-upgrades(Debian/Ubuntu)或 sudo yum update --security(CentOS)。
  • 安装并配置SELinux或AppArmor: 这些强制访问控制模块能限制进程权限,即使服务被攻破,也能阻止进一步破坏。新手可以先用默认模式,不要轻易关闭。
  • 监控登录日志: 定期检查 /var/log/auth.log/var/log/secure,看看有没有异常登录。用 lastb 命令可以查看最近失败的登录记录。
  • 使用Cloudflare或类似服务: 如果你的网站面向公网,套一层Cloudflare能隐藏真实IP,还能防DDoS。
  • 最小化安装: 服务器上只装必要的软件,不用的服务统统卸载或禁用,减少攻击面。

五、总结:安全是一种习惯

做完上面这些配置,你的服务器基本已经能抵御绝大多数自动化攻击了。但安全不是一劳永逸的——新的漏洞每天都在出现,攻击手段也在进化。我的建议是:

把安全当成日常运维的一部分,每周抽几分钟看看日志、更新系统、检查配置。不要等到被入侵了才后悔。

另外,如果你刚开始玩服务器,选一个靠谱的服务商也能省心不少。比如我一直在用的雨云服务器(优惠码:aabh),自带安全组和快照功能,配合本文的配置方案,新手也能轻松搭建一个安全可靠的环境。

最后送大家一句话:安全配置花的时间,永远比被黑后恢复的时间少。 别偷懒,现在就动手加固你的服务器吧!

评论区: