保护CentOS服务器免受网络攻击需要多层次的安全策略。以下是一套系统化的防护方案,涵盖基础加固、网络防护、持续监控等关键环节:
最小化安装与更新
bash
yum update --security -y
yum install yum-plugin-security # 安全更新插件
账户安全
bash
sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd
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
防火墙配置(firewalld)
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh # 仅开放必要端口
firewall-cmd --reload
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
TCP Wrappers访问控制
echo "sshd: 192.168.1.0/24" >> /etc/hosts.allow
echo "ALL: ALL" >> /etc/hosts.deny
内核级防护(SYN Flood防御)
echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
sysctl -p
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
禁用不必要服务
systemctl disable postfix cups abrtd
SELinux强制模式
sed -i 's/SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config
setenforce 1
关键目录权限控制
chmod 700 /etc/cron* /etc/ssh/ssh_host_*_key
chattr +i /etc/passwd /etc/shadow
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 -
Web服务器防护(以Nginx为例)
nginx
server_tokens off;
more_set_headers "Server: Secure Server";
nginx
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
数据库安全(MySQL/MariaDB)
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
实时日志监控
yum install logwatch -y
# 配置邮件报警
echo "Logwatch --output mail --mailto admin@example.com --detail high" > /etc/cron.daily/0logwatch
OSSEC主机入侵检测
yum install ossec-hids-server -y
/var/ossec/bin/ossec-control start
网络流量监控(ntopng)
yum install ntopng -y
systemctl enable --now ntopng
自动化备份策略
tar -zcvf /backups/$(date +%F)_full.tar.gz --exclude=/proc --exclude=/sys --exclude=/backups /
快照管理(LVM或云平台)
lvcreate -L 1G -s -n root_snap /dev/centos/root
bash
dd if=/dev/sda of=/evidence/server.img bs=1M conv=noerror
最后建议:
- 每季度执行安全审计:lynis audit system
- 使用OpenSCAP进行合规检查
- 考虑部署CrowdSec等现代协同防御系统
通过以上分层防护策略,可有效降低CentOS服务器遭受网络攻击的风险。安全防护需要持续维护,建议建立定期检查机制(如每月安全补丁日)。