插件窝 干货文章 提高Linux服务器的安全性:常见安全漏洞和修复方法

提高Linux服务器的安全性:常见安全漏洞和修复方法

sudo install 检查 etc 538    来源:    2025-04-11

Linux服务器安全加固指南

常见安全漏洞及解决方案

1. 弱密码和默认账户

  • 风险:默认账户和弱密码是常见入侵途径
  • 解决方案

    # 强制密码复杂度策略
    sudo apt install libpam-pwquality  # Debian/Ubuntu
    sudo yum install pam_pwquality    # 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 enforce_for_root
    
    # 禁用root远程登录
    sudo sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
    sudo systemctl restart sshd
    

2. 未打补丁的软件

  • 风险:已知漏洞可能被利用
  • 解决方案

    # 设置自动安全更新
    sudo apt install unattended-upgrades  # Debian/Ubuntu
    sudo dpkg-reconfigure -plow unattended-upgrades
    
    # CentOS/RHEL
    sudo yum install yum-cron
    sudo systemctl enable --now yum-cron
    
    # 定期手动检查更新
    sudo apt update && sudo apt upgrade  # Debian/Ubuntu
    sudo yum update                     # CentOS/RHEL
    

3. 不必要的服务和开放端口

  • 风险:增加攻击面
  • 解决方案

    # 查看运行的服务
    sudo systemctl list-units --type=service --state=running
    
    # 查看监听端口
    sudo ss -tulnp
    
    # 禁用不必要的服务
    sudo systemctl disable --now <service_name>
    
    # 配置防火墙
    sudo ufw enable  # Ubuntu
    sudo ufw default deny incoming
    sudo ufw allow ssh
    
    # CentOS/RHEL
    sudo systemctl enable --now firewalld
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    

4. 配置不当的文件权限

  • 风险:敏感数据泄露或系统被篡改
  • 解决方案

    # 设置关键目录权限
    sudo chmod 700 /root
    sudo chmod 600 /etc/shadow
    sudo chmod 644 /etc/passwd
    
    # 查找全局可写文件
    sudo find / -xdev -type f -perm -o+w
    
    # 查找无主文件
    sudo find / -xdev -nouser -o -nogroup
    

5. 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" | sudo tee -a /etc/hosts.allow
    echo "sshd: ALL" | sudo tee -a /etc/hosts.deny
    
    # 安装fail2ban防暴力破解
    sudo apt install fail2ban  # Debian/Ubuntu
    sudo yum install fail2ban  # CentOS/RHEL
    sudo systemctl enable --now fail2ban
    

高级安全措施

1. SELinux/AppArmor

# 检查SELinux状态
sestatus

# 启用SELinux (CentOS/RHEL)
sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/' /etc/selinux/config

# 安装AppArmor (Ubuntu/Debian)
sudo apt install apparmor apparmor-utils
sudo aa-enforce /etc/apparmor.d/*

2. 日志监控

# 配置日志轮转
sudo nano /etc/logrotate.conf

# 安装日志分析工具
sudo apt install logwatch  # Debian/Ubuntu
sudo yum install logwatch  # CentOS/RHEL

# 配置定期日志报告
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
sudo nano /etc/logwatch/conf/logwatch.conf

3. 入侵检测系统

# 安装AIDE (文件完整性检查)
sudo apt install aide  # Debian/Ubuntu
sudo yum install aide  # CentOS/RHEL

# 初始化数据库
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

# 设置定期检查
sudo crontab -e
# 添加: 0 5 * * * /usr/bin/aide --check

定期安全检查清单

  1. 检查用户和组:cat /etc/passwd, cat /etc/group
  2. 检查SUID/SGID文件:find / -perm -4000 -o -perm -2000
  3. 检查cron作业:ls -la /etc/cron.*
  4. 检查网络连接:netstat -antp
  5. 检查内核参数:sysctl -a | grep kernel

通过实施这些措施,您可以显著提高Linux服务器的安全性,减少被攻击的风险。