Linux 服务器安全加固基线检查实战
作为个人站长,服务器安全是运营的底线。本文将分享一套实用的 Linux 服务器安全基线检查脚本和方法,帮助你快速发现并修复常见安全漏洞。
1. 系统内核参数检查
通过 sysctl 查看和调整内核安全参数:
# 查看当前内核参数
sysctl -a | grep -E "kernel.randomize_va_space|kernel.exec-shield|kernel.core_pattern"
# 关�重要安全参数设置
cat > /etc/sysctl.d/99-security.conf << 'EOF'
# 开启随机化地址空间布局
kernel.randomize_va_space = 2
# 禁止核心转储到本地文件
kernel.core_pattern = |/tmp/creash-helper %e %s %u %g %p
# 开启执行保护
kernel.exec-shield = 1
# 禁用魔术字符串
fs.suid_dumpable = 0
EOF
sysctl --system
2. SSH 安全加固
SSH 是服务器最常见的攻击入口,必须进行严格配置:
- 禁用 root 直接登录
- 改用密钥认证而非密码认证
- 修改默认 SSH 端口
- 限制登录的用户列表
# /etc/ssh/sshd_config 中关键配置
Port 22024 # 修改默认端口
PermitRootLogin no # 禁用 root 登录
PasswordAuthentication no # 禁用密码认证
PubkeyAuthentication yes # 启用密钥认证
AuthorizedKeysFile .ssh/authorized_keys
# 仅允许特定用户登录
AllowUsers zz1984 admin
3. 文件权限最小化
关键文件和目录应仅授予必要的权限:
# 关键配置文件仅 root 可读
chmod 640 /etc/passwd /etc/shadow /etc/grub.conf
chown root:root /etc/passwd /etc/shadow
# Web 目录不应可写
chmod 755 /var/www/html
chmod 750 /var/www
# 设置临时目录粘滞位
chmod +t /tmp /var/tmp
4. 服务最小化启动
使用 systemctl 仅启动必需服务,减小攻击面:
# 查看开机自启服务
systemctl list-unit-files --type=service | grep enabled
# 禁用不必要服务
systemctl disable chronyd # 如果不需要时间同步
systemctl disable avahi-daemon # 如果不需要 Bonjour 服务
# 仅保留必需
systemctl enable sshd
systemctl enable firewalld
5. 防火墙规则审计
# 查看开放端口
firewall-cmd --list-all
# 仅开放必要端口
firewall-cmd --add-port=22024/tcp --permanent
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
6. 安全工具自动化检查
定期运行安全扫描工具:
# 安装并运行 Bastille Linux
yum install bastille-linux
bastille --scan
# 检查内核模块
lsmod | grep -E "ip_conntrack|nf_conntrack"
# 检查开放文件描述符限制
ulimit -n
总结
服务器安全是一个系统工程,建议每月进行一次完整基线检查,并及时应对新出现的安全威胁。记住:最小权限原则 是所有安全配置的核心。
如果你有其他实用的安全检查技巧,欢迎在评论区分享交流。