一、入侵检测与应急处理
1. 异常行为检测
bash
# 查看异常登录记录
sudo lastb | awk '{print $3}' | sort | uniq -c | sort -nr
sudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c
# 检查可疑进程
ps auxf | grep -E '(curl|wget|bash|sh|\.\/)'
netstat -antulp | grep ESTABLISHED
2. 快速隔离措施
bash
# 阻断可疑IP(示例IP:123.45.67.89)
sudo iptables -A INPUT -s 123.45.67.89 -j DROP
# 临时关闭SSH端口(生产环境慎用)
sudo ufw deny 22/tcp
3. 后门排查与清除
bash
# 查找隐藏后门文件
find / -name "*.php" -mtime -3 # 查找最近3天修改的PHP文件
find / -type f -perm 0777 # 查找异常权限文件
# 检查定时任务
crontab -l
ls -al /etc/cron.*
二、系统安全加固
1. SSH安全配置
bash
sudo vim /etc/ssh/sshd_config
# 修改关键配置项:
Port 5022 # 修改默认端口
PermitRootLogin no # 禁止root登录
MaxAuthTries 3 # 最大尝试次数
PasswordAuthentication no # 关闭密码认证
2. 防火墙强化配置
bash
# 基础防火墙规则模板
sudo ufw default deny incoming
sudo ufw allow 5022/tcp # SSH新端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
3. 自动化入侵防御
bash
# 安装并配置fail2ban
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 自定义SSH防护规则
sudo vim /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = 5022
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1d