一、学习Linux 系统防御
(一)Linux系统核心防御
1. 最小化安装与服务加固
核心:少开一个服务,少一个入口
- 只装必要包,卸载无用:
apt remove(Debian系统专用) / yum erase(Centos系统专用) - 关闭 / 禁用不必要服务:
systemctl stop cups bluetooth && systemctl disable cups bluetooth- 禁用不必要内核模块(如 unused 文件系统、协议):
echo "install udf /bin/true" >> /etc/modprobe.d/blacklist.conf2. 系统更新与补丁管理
# Debian/Ubuntu apt update && apt upgrade -y # CentOS/RHEL yum update -y # 或 dnf建议:每周一次,高危补丁立即更。
3. 账号与权限加固(非常关键)
- 禁用 root 远程登录:
vim /etc/ssh/sshd_config PermitRootLogin no systemctl restart sshd- 清理 / 锁定无用账号:
userdel -r 用户名 usermod -L 用户名 # 锁定- 强密码策略(PAM):
vim /etc/pam.d/common-password # 加入: password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1- 普通用户日常操作,能用 sudo 绝不 root。
4. SSH 加固
- 修改默认端口(22→高位端口)
- 启用密钥登录、关闭密码登录(可选,更安全):
5. 防火墙(iptables /nftables/firewalld)
- 只放行必要端口(SSH、HTTP、HTTPS)
- 拒绝所有入站,再按需放行:
# iptables 示例 iptables -P INPUT DROP iptables -A INPUT -p tcp --dport 23456 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT6. SELinux / AppArmor(强制访问控制)
- 防止进程越权,即使被入侵也难以提权
- 检查状态:
sestatus # SELinux aa-status # AppArmor- 生产环境建议:enforcing /complain 模式
7. 日志审计与监控(auditd + rsyslog)
- 记录关键操作:登录、sudo、文件修改
auditctl -w /etc/passwd -p rwxa -k passwd_change- 集中日志,便于追溯与告警。
8. 文件系统保护
- 关键文件设为只读:
- /tmp 目录挂载noexec,nosuid,nodev:
(二)第三方防御工具
1. Fail2ban —— 防 SSH / 服务暴力破解(必装)
原理:监控日志,多次失败自动封 IP安装:
# Debian apt install fail2ban -y # CentOS yum install epel-release && yum install fail2ban -y配置/etc/fail2ban/jail.local:
[DEFAULT] bantime = 3600 findtime = 600 maxretry = 5 ignoreip = 127.0.0.1 [sshd] enabled = true port = 23456 logpath = /var/log/auth.logsystemctl enable --now fail2ban2. ClamAV —— 开源杀毒 / 恶意软件查杀
原理:病毒库 + 扫描,查杀木马、病毒、恶意脚本安装:
apt install clamav clamav-daemon -y freshclam # 更新病毒库 systemctl enable --now clamav-daemon扫描:
clamscan -r /home3. Rkhunter / Chkrootkit —— Rootkit / 后门检测
- Rkhunter:检测 rootkit、后门、异常文件
apt install rkhunter -y rkhunter --update rkhunter --check- Chkrootkit:轻量 rootkit 扫描
apt install chkrootkit -y chkrootkit4. AIDE / Tripwire —— 文件完整性监控(FIM)
原理:对系统文件做哈希快照,篡改即告警AIDE 安装:
apt install aide -y aide --init mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db # 定期检查 aide --check5. Lynis —— 主机安全审计 / 加固工具
原理:一键扫描系统配置漏洞并给出修复建议
apt install lynis -y lynis audit system6. OSSEC / Suricata / Snort —— IDS/IPS(入侵检测 / 防御)
- OSSEC:主机型 IDS,日志分析、文件监控、告警
- Suricata:多线程网络 IDS/IPS,规则检测恶意流量
- Snort:经典网络 IDS,社区规则丰富
7. ModSecurity —— Web 应用防火墙(WAF)
防护 SQLi、XSS、Shellshock 等 Web 攻击
apt install libapache2-mod-security2 -y # 启用 OWASP 核心规则8. OpenVAS / Nessus —— 漏洞扫描器
定期扫描系统 / 服务漏洞,提前修复
- OpenVAS:开源免费
- Nessus:商业版,规则更全
(三)防御组合
系统:最小化 + 定期更新 + SSH 改端口 + 禁 root + 强密码
权限:普通用户 + sudo + 关键文件
chattr +i网络:防火墙只开必要端口 + /tmp noexec
工具:Fail2ban + ClamAV + Rkhunter + AIDE + Lynis
监控:auditd + 集中日志 + 定期漏洞扫描