插件窝 干货文章 Linux系统下常见的安全事件预防措施

Linux系统下常见的安全事件预防措施

sudo 安全 bash etc 872    来源:    2025-04-18

Linux系统安全事件预防措施

作为IT工程师,以下是Linux系统下常见的安全事件预防措施,分为多个关键方面:

1. 系统基础安全配置

  • 定期更新系统

    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade -y
    
    # RHEL/CentOS
    sudo yum update -y
    
    # Fedora
    sudo dnf upgrade -y
    
  • 最小化安装原则:只安装必要的软件包和服务

  • 禁用不必要的服务

    sudo systemctl disable <不需要的服务名>
    sudo systemctl stop <不需要的服务名>
    

2. 用户和权限管理

  • 使用强密码策略

    • 修改/etc/login.defs设置密码过期时间、最小长度等
    • 安装libpam-cracklib增强密码复杂度要求
  • 限制root登录

    # 禁止root直接SSH登录
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    sudo systemctl restart sshd
    
  • 使用sudo代替su:限制普通用户通过sudo执行特权命令

  • 定期检查用户账户

    # 检查空密码账户
    sudo awk -F: '($2 == "") {print}' /etc/shadow
    
    # 检查UID为0的账户
    sudo awk -F: '($3 == "0") {print}' /etc/passwd
    

3. 网络安全防护

  • 配置防火墙

    # 使用ufw(简单)
    sudo ufw enable
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    
    # 或使用iptables/nftables(更灵活)
    
  • SSH安全加固

    # 修改SSH端口
    sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
    
    # 仅允许密钥认证
    sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
    
    # 限制SSH访问IP
    echo "sshd: 192.168.1.0/24" >> /etc/hosts.allow
    echo "sshd: ALL" >> /etc/hosts.deny
    
    sudo systemctl restart sshd
    
  • 禁用不安全的协议:如telnet、ftp、rlogin等

4. 文件系统安全

  • 设置适当的文件权限

    # 关键目录权限
    sudo chmod 750 /etc/sudoers.d
    sudo chmod 700 /root
    
    # 查找全局可写文件
    sudo find / -xdev -type f -perm -0002 -exec ls -l {} \;
    
  • 使用文件属性

    # 防止关键文件被修改
    sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/sudoers
    
    # 防止二进制文件被替换
    sudo chattr +i /usr/bin/*
    
  • 配置umask:在/etc/profile中设置默认umask为027或077

5. 入侵检测与监控

  • 安装入侵检测系统

    # 安装AIDE(高级入侵检测环境)
    sudo apt install aide
    sudo aideinit
    sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
    # 定期检查:sudo aide.wrapper --check
    
  • 日志监控

    • 配置/etc/rsyslog.conf集中管理日志
    • 使用logwatch或logcheck分析日志
    • 监控/var/log/auth.log, /var/log/secure等关键日志
  • 安装rootkit检测工具

    sudo apt install rkhunter chkrootkit
    sudo rkhunter --update
    sudo rkhunter --check
    

6. 服务和应用安全

  • 使用SELinux/AppArmor

    # 检查SELinux状态
    sestatus
    
    # 安装AppArmor
    sudo apt install apparmor apparmor-utils
    sudo aa-status
    
  • 限制SUID/SGID程序

    # 查找所有SUID/SGID文件
    sudo find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -print0 | xargs -0 ls -l
    
    # 移除不必要的SUID/SGID
    sudo chmod u-s /path/to/file
    sudo chmod g-s /path/to/file
    

7. 备份与恢复

  • 定期备份关键数据

    # 使用tar备份
    sudo tar -czvf /backup/etc_backup_$(date +%Y%m%d).tar.gz /etc
    
    # 或使用rsync
    sudo rsync -avz /important/data /backup/location/
    
  • 测试恢复流程:定期验证备份的完整性和可恢复性

8. 其他安全措施

  • 内核安全参数调优

    # 修改/etc/sysctl.conf
    net.ipv4.conf.all.rp_filter=1
    net.ipv4.conf.default.rp_filter=1
    net.ipv4.icmp_echo_ignore_broadcasts=1
    net.ipv4.conf.all.accept_redirects=0
    net.ipv6.conf.all.accept_redirects=0
    kernel.exec-shield=1
    kernel.randomize_va_space=2
    
  • 使用安全审计工具

    sudo apt install lynis
    sudo lynis audit system
    

通过实施这些措施,可以显著提高Linux系统的安全性,预防大多数常见的安全事件。安全是一个持续的过程,需要定期审查和更新安全策略。