作为IT工程师,保护Linux服务器安全是我们的核心任务。以下是一套完整的命令行防御方案,我将从攻击面缩减、实时防御、深度加固三个维度为您呈现专业级防护策略:
一、攻击面最小化(Attack Surface Reduction) 1. 服务管控三板斧:
# 查看开放端口及对应服务
sudo ss -tulnp | awk 'NR>1 {printf "%-8s %-20s %-12s\n", $1, $5, $7}'
# 禁用非必要服务(示例禁用ftp)
sudo systemctl disable vsftpd --now
# 使用firewalld精准控制
sudo firewall-cmd --permanent --remove-service=ssh --remove-port=22/tcp
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
# 特权命令监控(记录sudo使用)
echo 'Defaults logfile=/var/log/sudo.log' | sudo tee -a /etc/sudoers
# 关键目录权限加固
sudo chmod 750 /home/* && sudo chmod 700 /root
sudo find / -perm -4000 -exec ls -ld {} \; | awk '{print $9}' > suid_list.txt
二、实时威胁防御(Real-time Protection) 1. 入侵检测系统:
# 安装配置AIDE(高级入侵检测环境)
sudo apt install aide -y
sudo aideinit && sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# 每日自动校验(加入cron)
echo "0 3 * * * /usr/bin/aide --check | mail -s 'AIDE Report' admin@example.com" | sudo tee /etc/cron.d/aide-check
# 启用fail2ban防御SSH爆破
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo sed -i 's/^bantime.*/bantime = 1h/' /etc/fail2ban/jail.local
sudo systemctl restart fail2ban
# 实时监控异常连接
watch -n 5 'netstat -antp | grep ESTABLISHED | awk '\''{print $5}'\'' | cut -d: -f1 | sort | uniq -c | sort -nr'
三、深度防御加固(Defense in Depth) 1. 内核级防护:
# 启用内核安全模块
sudo grep "grub" /etc/default/grub | grep "selinux=1 enforcing=1"
# 内存保护配置
echo "vm.mmap_min_addr = 4096" | sudo tee -a /etc/sysctl.conf
echo "kernel.exec-shield = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# SSH强化配置(编辑/etc/ssh/sshd_config)
sudo sed -i 's/^#Protocol 2/Protocol 2/' /etc/ssh/sshd_config
sudo sed -i 's/^#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
echo "AllowUsers admin auditor" | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd
# 使用Lynis进行系统扫描
curl -s https://packages.cisofy.com/keys/cisofy-software-public.key | sudo apt-key add -
echo "deb https://packages.cisofy.com/community/lynis/deb/ stable main" | sudo tee /etc/apt/sources.list.d/cisofy-lynis.list
sudo apt update && sudo apt install lynis -y
sudo lynis audit system --quick
四、应急响应预案(Incident Response) 1. 入侵痕迹保留:
# 创建取证快照
sudo dd if=/dev/sda1 of=/mnt/secure_storage/disk_forensic.img bs=4M conv=noerror,sync
sudo chattr +i /mnt/secure_storage/disk_forensic.img
# 关键日志收集
sudo tar czvf /tmp/forensic_$(date +%Y%m%d).tar.gz /var/log/{auth.log*,secure*,messages*} --transform 's/.*\///g'
# 可疑进程排查脚本
ps -eo pid,user,cmd,%cpu,%mem --sort=-%cpu | head -n 10
lsof -i -P -n | grep ESTABLISHED
sudo netstat -antp | awk '$4 ~ /:22$/ && $6 == "ESTABLISHED" {print $5}'
进阶建议:
1. 实施双因素认证:sudo apt install libpam-google-authenticator
2. 配置完整性监控:sudo apt install tripwire
3. 建立安全基线:参考CIS Benchmark进行配置
4. 定期漏洞扫描:使用OpenVAS或Nessus
记住:安全是持续过程而非一次性任务。建议建立以下例行检查清单: - 每周:日志分析、补丁更新、AIDE校验 - 每月:权限审计、防火墙规则复审、备份验证 - 每季度:渗透测试、安全策略评估
通过这套分层防御体系,您的Linux服务器将具备企业级的安全防护能力。需要针对特定场景调整时,请评估业务需求与安全风险的平衡。