作为IT工程师,保护Linux服务器的安全是首要任务。以下是一套系统化的命令行安全加固方案,建议按步骤实施:
一、基础安全加固 1. 用户与权限管理
# 创建低权限用户
sudo adduser deploy --shell=/bin/bash --disabled-password
# 禁用root SSH登录
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# 设置sudo权限(示例)
echo "deploy ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/systemctl restart nginx" | sudo tee /etc/sudoers.d/deploy
# 更改默认端口并限制IP
echo "Port 58222" | sudo tee -a /etc/ssh/sshd_config
echo "AllowUsers deploy@192.168.1.*" | sudo tee -a /etc/ssh/sshd_config
# 启用密钥认证
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 应用配置
sudo systemctl restart sshd
二、实时防护措施 1. 防火墙配置(UFW示例)
sudo ufw default deny incoming
sudo ufw allow 58222/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
# 安装配置fail2ban
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 自定义SSH防护规则
sudo tee /etc/fail2ban/jail.d/sshd.local <<EOF
[sshd]
enabled = true
port = 58222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
EOF
sudo systemctl restart fail2ban
三、系统监控与审计 1. 日志监控
# 安装日志分析工具
sudo apt install logwatch
# 配置每日安全报告
sudo tee /etc/logwatch/conf/logwatch.conf <<EOF
Output = mail
Format = html
MailTo = admin@yourdomain.com
EOF
# 安装AIDE(高级入侵检测环境)
sudo apt install aide
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# 设置每日自动检查
echo "0 3 * * * root /usr/bin/aide --check" | sudo tee /etc/cron.daily/aide-check
四、高级安全工具 1. 漏洞扫描
# 使用Lynis进行安全审计
sudo apt install lynis
sudo lynis audit system
# 启用ASLR(地址空间布局随机化)
echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
# 永久生效配置
echo "kernel.randomize_va_space = 2" | sudo tee -a /etc/sysctl.conf
五、应急响应准备 1. 创建应急响应工具包
sudo apt install rkhunter chkrootkit unhide
sudo rkhunter --update
sudo rkhunter --propupd
# 示例:每日增量备份
sudo tee /etc/cron.daily/backup <<EOF
#!/bin/bash
tar -czf /backups/$(date +\%Y\%m\%d).tar.gz --listed-incremental=/backups/snapshot.snar /etc /var/www
EOF
sudo chmod +x /etc/cron.daily/backup
实施建议:
1. 所有操作前先创建系统快照
2. 修改配置后务必测试连接再断开当前会话
3. 定期检查安全工具的输出报告
4. 保持系统更新:sudo apt update && sudo apt upgrade -y
安全是一个持续过程,建议结合以下实践: - 每月进行安全审计 - 使用Ansible等工具实现配置自动化 - 建立完整的变更记录文档
注意:实际实施时应根据具体业务需求调整参数,生产环境建议先在测试环境验证。