插件窝 干货文章 如何保护CentOS服务器免受网络攻击

如何保护CentOS服务器免受网络攻击

bash etc 防护 安全 408    来源:    2025-04-15

保护CentOS服务器免受网络攻击需要多层次的安全策略。以下是一套系统化的防护方案,涵盖基础加固、网络防护、持续监控等关键环节:


一、系统基础加固

  1. 最小化安装与更新

    • 安装时选择"Minimal"模式,减少攻击面
    • 定期执行安全更新: bash yum update --security -y yum install yum-plugin-security # 安全更新插件
  2. 账户安全

    • 禁用root远程登录: bash sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config systemctl restart sshd
    • 强制使用SSH密钥认证,禁用密码登录
    • 设置账户锁定策略(失败5次锁定10分钟): bash sed -i 's/auth.*required.*pam_deny.so/auth required pam_faillock.so deny=5 unlock_time=600 fail_interval=900/' /etc/pam.d/system-auth
  3. 防火墙配置(firewalld)

    systemctl enable --now firewalld
    firewall-cmd --permanent --add-service=ssh  # 仅开放必要端口
    firewall-cmd --reload
    

二、网络层防护

  1. Fail2Ban防暴力破解

    yum install epel-release -y
    yum install fail2ban -y
    systemctl enable --now fail2ban
    

    配置示例(/etc/fail2ban/jail.local):

    [sshd]
    enabled = true
    maxretry = 3
    bantime = 1h
    
  2. TCP Wrappers访问控制

    echo "sshd: 192.168.1.0/24" >> /etc/hosts.allow
    echo "ALL: ALL" >> /etc/hosts.deny
    
  3. 内核级防护(SYN Flood防御)

    echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
    sysctl -p
    

三、服务安全配置

  1. SSH高级加固

    sed -i 's/^#Protocol.*/Protocol 2/' /etc/ssh/sshd_config
    sed -i 's/^#LogLevel.*/LogLevel VERBOSE/' /etc/ssh/sshd_config
    echo "AllowUsers admin@192.168.1.*" >> /etc/ssh/sshd_config
    systemctl restart sshd
    
  2. 禁用不必要服务

    systemctl disable postfix cups abrtd
    
  3. SELinux强制模式

    sed -i 's/SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config
    setenforce 1
    

四、文件系统防护

  1. 关键目录权限控制

    chmod 700 /etc/cron* /etc/ssh/ssh_host_*_key
    chattr +i /etc/passwd /etc/shadow
    
  2. AIDE入侵检测

    yum install aide -y
    aide --init
    mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
    # 每日自动检测
    echo "0 5 * * * /usr/sbin/aide --check" | crontab -
    

五、应用层防护

  1. Web服务器防护(以Nginx为例)

    • 隐藏版本信息: nginx server_tokens off; more_set_headers "Server: Secure Server";
    • 限制HTTP方法: nginx if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; }
  2. 数据库安全(MySQL/MariaDB)

    DELETE FROM mysql.user WHERE User='';
    FLUSH PRIVILEGES;
    

六、监控与响应

  1. 实时日志监控

    yum install logwatch -y
    # 配置邮件报警
    echo "Logwatch --output mail --mailto admin@example.com --detail high" > /etc/cron.daily/0logwatch
    
  2. OSSEC主机入侵检测

    yum install ossec-hids-server -y
    /var/ossec/bin/ossec-control start
    
  3. 网络流量监控(ntopng)

    yum install ntopng -y
    systemctl enable --now ntopng
    

七、备份与恢复

  1. 自动化备份策略

    tar -zcvf /backups/$(date +%F)_full.tar.gz --exclude=/proc --exclude=/sys --exclude=/backups /
    
  2. 快照管理(LVM或云平台)

    lvcreate -L 1G -s -n root_snap /dev/centos/root
    

八、应急响应预案

  1. 建立事件响应流程文档
  2. 保留安全事件取证镜像: bash dd if=/dev/sda of=/evidence/server.img bs=1M conv=noerror

最后建议: - 每季度执行安全审计:lynis audit system - 使用OpenSCAP进行合规检查 - 考虑部署CrowdSec等现代协同防御系统

通过以上分层防护策略,可有效降低CentOS服务器遭受网络攻击的风险。安全防护需要持续维护,建议建立定期检查机制(如每月安全补丁日)。