问题: - 使用默认或弱密码容易被暴力破解 - 默认安装的服务可能保留默认凭证
解决方案:
# 强制密码复杂度策略
sudo apt install libpam-pwquality # Debian/Ubuntu
sudo yum install libpwquality # CentOS/RHEL
# 修改/etc/pam.d/common-password或/etc/pam.d/system-auth添加:
password requisite pam_pwquality.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
# 禁用root远程登录
sudo sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
# 使用SSH密钥认证替代密码
ssh-keygen -t rsa -b 4096
ssh-copy-id user@remote_host
问题: - 过期的软件包包含已知漏洞 - 未及时应用安全更新
解决方案:
# 设置自动安全更新
sudo apt install unattended-upgrades # Debian/Ubuntu
sudo dpkg-reconfigure -plow unattended-upgrades
# 对于RHEL/CentOS:
sudo yum install yum-cron
sudo systemctl enable --now yum-cron
# 定期手动检查更新
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo yum update # RHEL/CentOS
# 使用漏洞扫描工具
sudo apt install lynis
sudo lynis audit system
问题: - 不必要的服务运行 - 服务配置过于宽松
解决方案:
# 禁用不必要的服务
sudo systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable <unneeded_service>
# 检查网络服务
sudo netstat -tulnp
sudo ss -tulnp
# 使用防火墙限制访问
sudo ufw enable # Ubuntu
sudo firewall-cmd --permanent --add-service=ssh # CentOS/RHEL
sudo firewall-cmd --reload
# 强化SSH配置
sudo nano /etc/ssh/sshd_config
# 修改以下参数:
Port 2222 # 非标准端口
PermitRootLogin no
PasswordAuthentication no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 0
问题: - SUID/SGID程序配置不当 - 内核漏洞导致权限提升
解决方案:
# 查找危险的SUID/SGID文件
find / -perm -4000 -type f -exec ls -la {} \; 2>/dev/null
find / -perm -2000 -type f -exec ls -la {} \; 2>/dev/null
# 移除不必要的SUID/SGID
sudo chmod u-s /path/to/file
sudo chmod g-s /path/to/file
# 使用Linux安全模块
sudo apt install apparmor # Debian/Ubuntu
sudo aa-enforce /etc/apparmor.d/*
# 或使用SELinux (RHEL/CentOS)
sudo setenforce 1
sudo semanage boolean -l | grep httpd # 示例检查
问题: - SQL注入 - XSS攻击 - 文件包含漏洞
解决方案:
# 安装和配置ModSecurity
sudo apt install libapache2-mod-security2 # Apache
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo nano /etc/modsecurity/modsecurity.conf
# 修改: SecRuleEngine On
# 安装Fail2Ban防止暴力破解
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# 配置适当的参数
# 定期扫描Web漏洞
sudo apt install nikto
nikto -h http://yourdomain.com
问题: - 木马程序 - 后门程序 - 内核级rootkit
解决方案:
# 安装防病毒软件
sudo apt install clamav
sudo freshclam # 更新病毒库
sudo clamscan -r --bell -i /
# 安装rootkit检测工具
sudo apt install rkhunter chkrootkit
sudo rkhunter --update
sudo rkhunter --checkall
sudo chkrootkit
# 监控系统完整性
sudo apt install aide
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
sudo aide.wrapper --check
问题: - 未能检测入侵尝试 - 缺乏集中日志管理
解决方案:
# 配置rsyslog集中日志
sudo nano /etc/rsyslog.conf
# 添加远程日志服务器
*.* @remote-log-server:514
# 安装和配置auditd
sudo apt install auditd
sudo nano /etc/audit/audit.rules
# 添加监控规则,例如:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
# 使用日志分析工具
sudo apt install logwatch
sudo logwatch --output mail --mailto admin@example.com --detail high
问题: - 容器逃逸 - 镜像漏洞 - 过度权限
解决方案:
# 扫描容器镜像漏洞
docker scan <image_name>
# 以非root用户运行容器
docker run -u 1000:1000 <image>
# 限制容器能力
docker run --cap-drop=all --cap-add=NET_BIND_SERVICE <image>
# 使用只读文件系统
docker run --read-only <image>
# 定期更新容器基础镜像
docker pull <image>:latest
通过实施这些措施,可以显著提高Linux系统的安全性,减少被攻击的风险。