Karp 的技术博客

📌 目的

本文档旨在提供一套适用于常见 Linux 服务器(如 Ubuntu、CentOS)的主机安全加固方案,用于防止入侵、控制权限、保障生产环境稳定性。


🧱 基础安全配置

1. 禁用 Root 登录

# 编辑 SSH 配置文件
sudo vim /etc/ssh/sshd_config

# 设置
PermitRootLogin no
PasswordAuthentication no

启用仅限密钥认证,并重启 SSH 服务:

sudo systemctl restart sshd

2. 创建普通用户并授予 sudo 权限

adduser deploy
usermod -aG sudo deploy

3. 配置 SSH 公钥登录

mkdir -p /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
vim /home/deploy/.ssh/authorized_keys
chmod 600 /home/deploy/.ssh/authorized_keys
chown -R deploy:deploy /home/deploy/.ssh

🔥 防火墙设置

Ubuntu (UFW)

sudo ufw default deny incoming
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

CentOS (firewalld)

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload

🔒 文件与权限保护

锁定关键系统文件

chattr +i /etc/passwd
chattr +i /etc/shadow

设置目录权限

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

🧠 系统更新与补丁

Ubuntu

sudo apt update && sudo apt upgrade -y

CentOS

sudo yum update -y

可选安装自动更新服务:

sudo apt install unattended-upgrades

🧪 入侵检测与日志审计

启用 auditd 审计

sudo apt install auditd
sudo systemctl enable --now auditd

登录失败自动封禁(fail2ban)

sudo apt install fail2ban
sudo systemctl enable --now fail2ban

🔍 日志审计命令

# 查看登录历史
last

# 查看最近使用 sudo 的记录
grep 'sudo' /var/log/auth.log

# 查监听端口
ss -tulnp

# 查关键目录改动
find /etc -type f -mtime -1

☁ 云服务建议

云平台建议操作
阿里云启用安骑士、安全组严格控制端口
腾讯云启用云镜、设置访问白名单
AWS配置 VPC、使用 GuardDuty

✅ 总结

维度措施建议
用户权限禁用 root,使用 sudo 普通用户
网络控制防火墙设置、安全组最小开放
文件安全chattr 加锁、目录限权
系统更新启用定期补丁更新
审计与日志配置 auditd,启用 fail2ban
入侵防御安装 AIDE、OSSEC 或其他 HIDS 工具

📎 参考资料

linux

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2025年07月19日 08:32
3

目录

来自 《Linux 主机安全加固指南》