sudo-iのBlog

  • 🍟首页
  • 🍊目录
    • 技术分享
    • vps教程
    • 软件分享
    • 干货分享
  • 🍎链接
  • 🍓工具
    • 🌽IP路由追踪
    • 域名被墙检测
    • KMS激活
    • 域名whois查询
  • 🍕联系
  • 🍌登录
Sudo-i
关注互联网,生活,音乐,乐此不疲
  1. 首页
  2. 干货分享
  3. 正文

Linux 服务器安全加固完整指南:从入门到精通

22 2 月, 2026 21点热度 0人点赞 0条评论

Linux 服务器安全加固完整指南:从入门到精通

发布时间:2026 年 2 月 | 预计阅读时间:15 分钟


🔐 引言

在云计算和 DevOps 时代,Linux 服务器安全比以往任何时候都更加重要。一次配置疏忽可能导致数据泄露、服务中断,甚至整个基础设施被攻陷。本文将带你从零开始,系统性地加固你的 Linux 服务器。

📋 目录

  • 一、基础安全配置
  • 二、SSH 安全加固
  • 三、防火墙配置
  • 四、用户权限管理
  • 五、日志监控与审计
  • 六、自动化安全脚本

一、基础安全配置

1.1 系统更新

保持系统更新是安全的第一道防线:

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS/RHEL
sudo yum update -y

# 启用自动安全更新
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

1.2 禁用不必要的服务

# 查看运行的服务
systemctl list-units --type=service --state=running

# 禁用不需要的服务
sudo systemctl disable cups.service
sudo systemctl disable bluetooth.service

二、SSH 安全加固

2.1 修改 SSH 配置文件

编辑 /etc/ssh/sshd_config:

# 禁用 root 登录
PermitRootLogin no

# 禁用密码认证,仅使用密钥
PasswordAuthentication no
PubkeyAuthentication yes

# 修改默认端口(可选)
Port 2222

# 限制用户登录
AllowUsers yourusername

# 设置登录尝试限制
MaxAuthTries 3
LoginGraceTime 60

# 启用双因素认证(推荐)
AuthenticationMethods publickey,keyboard-interactive

2.2 生成 SSH 密钥

# 生成 ED25519 密钥(推荐)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 或使用 RSA 4096
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 复制公钥到服务器
ssh-copy-id -p 2222 yourusername@yourserver.com

2.3 使用 Fail2Ban 防止暴力破解

# 安装 Fail2Ban
sudo apt install fail2ban -y

# 创建 SSH 保护配置
sudo cat > /etc/fail2ban/jail.local << EOF
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
EOF

# 重启服务
sudo systemctl restart fail2ban

三、防火墙配置

3.1 UFW 配置(Ubuntu)

# 安装 UFW
sudo apt install ufw

# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 允许 SSH(如果使用非标准端口)
sudo ufw allow 2222/tcp

# 允许 HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status verbose

3.2 Firewalld 配置(CentOS)

# 启动 firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

# 添加服务
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# 重新加载
sudo firewall-cmd --reload

四、用户权限管理

4.1 创建受限用户

# 创建新用户
sudo adduser deploy

# 添加到 sudo 组(谨慎)
sudo usermod -aG sudo deploy

# 或创建仅特定命令的 sudo 权限
sudo visudo

# 添加以下内容(允许特定命令)
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/docker

4.2 文件权限审计

# 查找 SUID 文件
find / -perm -4000 -type f 2>/dev/null

# 查找世界可写文件
find / -perm -0002 -type f 2>/dev/null

# 修复敏感文件权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 644 /etc/passwd
chmod 600 /etc/shadow

五、日志监控与审计

5.1 配置系统日志

# 安装 rsyslog(通常已预装)
sudo apt install rsyslog

# 查看认证日志
sudo tail -f /var/log/auth.log

# 查看系统日志
sudo tail -f /var/log/syslog

5.2 使用 Logwatch 进行日志分析

# 安装 Logwatch
sudo apt install logwatch

# 手动运行
sudo logwatch --detail high --mailto your@email.com

# 配置每日报告
sudo nano /etc/logwatch/conf/logwatch.conf

# 添加:
MailTo = your@email.com
Detail = High

5.3 安装 OSSEC 主机入侵检测

# 下载并安装 OSSEC
wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
tar -xzf 3.6.0.tar.gz
cd ossec-hids-3.6.0
sudo ./install.sh

# 选择本地安装模式
# 配置完成后启动
sudo /var/ossec/bin/ossec-control start

六、自动化安全脚本

6.1 安全加固一键脚本

#!/bin/bash
# security-hardening.sh

echo "🔒 开始 Linux 服务器安全加固..."

# 更新系统
apt update && apt upgrade -y

# 创建新用户
read -p "输入新用户名:" username
adduser $username
usermod -aG sudo $username

# 配置 SSH
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cat > /tmp/sshd_config << EOF
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers $username
MaxAuthTries 3
EOF
mv /tmp/sshd_config /etc/ssh/sshd_config

# 安装安全工具
apt install -y ufw fail2ban unattended-upgrades

# 配置 UFW
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
echo "y" | ufw enable

echo "✅ 安全加固完成!请记得:"
echo "1. 将你的 SSH 公钥添加到 ~/.ssh/authorized_keys"
echo "2. 测试新 SSH 配置后再退出当前会话"
echo "3. 保存新的 SSH 端口:2222"

6.2 安全巡检脚本

#!/bin/bash
# security-audit.sh

echo "📊 安全巡检报告 - $(date)"
echo "================================"

echo -e "\n🔐 登录尝试统计:"
grep "Failed password" /var/log/auth.log | wc -l

echo -e "\n👥 当前登录用户:"
who

echo -e "\n🚀 运行的服务:"
systemctl list-units --type=service --state=running --no-pager

echo -e "\n📁 世界可写文件:"
find /home -perm -0002 -type f 2>/dev/null | head -10

echo -e "\n🔥 防火墙状态:"
ufw status verbose

echo -e "\n💾 磁盘使用:"
df -h

🎯 总结与最佳实践

安全检查清单

  • ✅ 系统保持最新
  • ✅ SSH 密钥认证,禁用密码
  • ✅ 防火墙配置正确
  • ✅ Fail2Ban 运行中
  • ✅ 最小权限原则
  • ✅ 日志监控启用
  • ✅ 定期备份

定期维护建议

  • 每日:检查日志异常
  • 每周:运行安全审计脚本
  • 每月:系统更新和补丁
  • 每季度:审查用户权限和访问策略

安全是一个持续的过程,而不是一次性的配置。保持警惕,定期审查,你的服务器才能长治久安。

觉得有用?欢迎分享和收藏!👍

无关联文章

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:23 2 月, 2026

李炫炫

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2025 sudo-iのBlog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2024054662号

鲁公网安备37108102000450号