# 配置自动安全更新
sudo yum install yum-cron -y
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
# 手动检查更新
sudo yum update --security
# 查看并禁用不必要的服务
sudo systemctl list-unit-files | grep enabled
sudo systemctl disable <不必要的服务名>
# 安装最小化工具集
sudo yum groupinstall "Minimal Install"
# 启用并配置防火墙
sudo systemctl enable firewalld
sudo systemctl start firewalld
# 只开放必要端口
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
# 查看当前规则
sudo firewall-cmd --list-all
# 禁用root远程登录
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
# 创建具有sudo权限的普通用户
sudo adduser secureadmin
sudo passwd secureadmin
sudo usermod -aG wheel secureadmin
# 编辑密码策略
sudo vi /etc/login.defs
# 修改以下参数:
# PASS_MAX_DAYS 90
# PASS_MIN_DAYS 7
# PASS_MIN_LEN 12
# PASS_WARN_AGE 14
# 安装cracklib加强密码复杂度
sudo yum install cracklib
sudo vi /etc/pam.d/system-auth
# 添加:password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
sudo yum install epel-release
sudo yum install clamav clamd clamav-update
sudo freshclam # 更新病毒数据库
sudo systemctl enable clamd@scan
sudo systemctl start clamd@scan
# 设置定期扫描
sudo crontab -e
# 添加:0 3 * * * /usr/bin/clamscan -r / --exclude-dir=/sys/ --quiet --infected --log=/var/log/clamav/scan.log
sudo yum install rkhunter chkrootkit
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check --sk
# 定期扫描设置
sudo crontab -e
# 添加:0 4 * * * /usr/bin/rkhunter --cronjob --update --quiet
sudo yum install aide
sudo aide --init
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
# 设置定期检查
sudo crontab -e
# 添加:0 5 * * * /usr/sbin/aide --check
sudo yum install -y make gcc
wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
tar -xvzf 3.6.0.tar.gz
cd ossec-hids-3.6.0
sudo ./install.sh
# 按照提示进行安装配置
# 确保SELinux处于强制模式
sudo vi /etc/selinux/config
# 设置:SELINUX=enforcing
# 查看当前状态
sudo sestatus
# 如果修改了配置需要重启
sudo reboot
sudo vi /etc/ssh/sshd_config
# 修改以下参数:
# Protocol 2
# PermitEmptyPasswords no
# MaxAuthTries 3
# LoginGraceTime 60
# ClientAliveInterval 300
# ClientAliveCountMax 2
# AllowUsers secureadmin
sudo systemctl restart sshd
# 禁用telnet、rsh等
sudo yum remove telnet-server rsh-server ypserv tftp-server
# 禁用IPv6(如不需要)
sudo vi /etc/sysctl.conf
# 添加:
# net.ipv6.conf.all.disable_ipv6 = 1
# net.ipv6.conf.default.disable_ipv6 = 1
sudo sysctl -p
sudo yum install rsyslog
sudo systemctl enable rsyslog
sudo systemctl start rsyslog
# 配置日志轮转
sudo vi /etc/logrotate.conf
sudo yum install epel-release
sudo yum install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# 配置SSH防护
sudo vi /etc/fail2ban/jail.local
# 添加:
# [sshd]
# enabled = true
# port = ssh
# filter = sshd
# logpath = /var/log/secure
# maxretry = 3
# bantime = 3600
sudo yum install audit
sudo systemctl enable auditd
sudo systemctl start auditd
# 配置审计规则
sudo vi /etc/audit/audit.rules
# 检查SUID/SGID文件
sudo find / -perm -4000 -o -perm -2000 -type f -exec ls -ld {} \;
# 检查无属主文件
sudo find / -nouser -o -nogroup
# 设置定期备份
sudo crontab -e
# 添加:0 2 * * * /bin/tar -zcvf /backups/system-$(date +\%Y\%m\%d).tar.gz /etc /var/log /home
通过以上配置,您的CentOS系统将具备较强的防御能力,能够有效防止大多数恶意软件的传播和入侵。请根据实际业务需求调整相关配置,并定期检查安全日志和更新防护策略。