温馨提示×

如何通过CentOS Extract提升网站安全性

小樊
45
2025-11-08 00:44:14
栏目: 云计算

1. 账户安全与权限精细化管理

  • 禁用非必要超级用户:通过/etc/passwd文件识别并锁定不必要的超级账户(如除root外的其他超级用户),使用passwd -l <用户名>命令锁定账户,减少系统受攻击的风险。
  • 清理默认无效账户:删除admlpsync等默认不需要的账户,降低系统暴露面。
  • 强化口令复杂度:修改/etc/login.defs文件,设置PASS_MAX_DAYS(口令最长有效期,建议≥90天)、PASS_MIN_DAYS(口令修改最小间隔,建议≥2天)、PASS_MIN_LEN(口令最小长度,建议≥8位)、PASS_WARN_AGE(口令过期提醒天数,建议≥7天)等参数;同时通过/etc/pam.d/system-auth添加pam_pwquality.so模块,强制口令包含大小写字母、数字和特殊字符(如minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1)。
  • 保护口令文件:使用chattr +i命令给/etc/passwd/etc/shadow/etc/group/etc/gshadow等关键文件添加不可更改属性,防止未授权修改。

2. 服务与端口最小化开放

  • 禁用不必要服务:使用systemctl disable <服务名称>命令关闭不需要的服务(如telnetftprpcbind等),减少潜在攻击入口。
  • SSH服务安全加固:编辑/etc/ssh/sshd_config文件,设置PermitRootLogin no(禁止root直接登录)、PasswordAuthentication no(禁用密码登录,推荐使用密钥)、AllowUsers <指定用户>(仅允许特定用户通过SSH登录);修改完成后重启SSH服务(systemctl restart sshd)。
  • 防火墙精准配置:使用firewalld(CentOS 7及以上默认)配置防火墙规则,仅开放必要端口(如HTTP的80端口、HTTPS的443端口、SSH的22端口),通过firewall-cmd --permanent --zone=public --add-port=<端口号>/tcp添加规则,firewall-cmd --reload重载配置;结合Fail2Ban工具(yum install fail2ban安装),自动封禁多次认证失败的IP地址(如/etc/fail2ban/jail.local中设置[sshd] enabled = true maxretry = 5 bantime = 300)。

3. SELinux强制访问控制启用与配置

  • 确认SELinux状态:使用getenforce命令检查SELinux是否开启(Enforcing为开启状态,Permissive为仅记录不拦截)。
  • 设置SELinux为Enforcing模式:编辑/etc/selinux/config文件,将SELINUX=的值修改为enforcing,保存后重启系统使设置生效。
  • 调整SELinux策略:根据业务需求调整SELinux策略(如网站目录的上下文),使用semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"命令添加目录上下文,restorecon -Rv /var/www/html恢复上下文,确保Web服务正常运行的同时限制非法访问。

4. 系统与软件安全更新常态化

  • 定期更新系统与软件包:使用yum update命令定期更新系统和所有已安装的软件包,修复已知安全漏洞(建议每周执行一次)。
  • 启用EPEL仓库:通过yum install epel-release安装EPEL(Extra Packages for Enterprise Linux)仓库,获取更多安全增强的软件包(如fail2banauditd等)。

5. 文件系统与敏感数据保护

  • 设置合理umask值:修改/etc/profile文件,添加umask 027(新创建文件的属主拥有读写执行权限,同组用户拥有读和执行权限,其他用户无权限),增强文件默认安全性。
  • 保护关键系统文件:使用chattr +i命令锁定/etc/passwd/etc/shadow等关键文件,防止未授权修改;使用chattr +a命令设置/var/log/messages等日志文件为仅追加模式,避免日志被篡改。
  • 加密敏感数据:对静态敏感数据(如数据库文件、配置文件)使用LUKS(Linux Unified Key Setup)或dm-crypt工具进行加密,确保数据泄露时无法被轻易读取。

6. 日志监控与安全审计

  • 启用审计服务:使用yum install audit安装auditd(Linux审计守护进程),启动服务(systemctl start auditd)并设置开机自启(systemctl enable auditd),记录系统活动(如用户登录、文件访问、命令执行等)。
  • 配置日志轮转:编辑/etc/logrotate.conf文件,设置日志文件的最大大小(如maxsize 100M)、保留天数(如rotate 7),避免日志文件过大占用磁盘空间或被篡改。
  • 定期分析日志:使用rsyslogELK Stack(Elasticsearch+Logstash+Kibana)集中收集和分析日志,及时发现异常行为(如频繁的登录失败、未授权的文件访问)。

7. 其他补充安全措施

  • 安装安全工具:安装ClamAVyum install clamav clamav-update)进行病毒扫描(freshclam更新病毒库,clamscan -r /扫描整个系统),安装Fail2Banyum install fail2ban)防止暴力破解攻击(针对SSH、FTP等服务)。
  • 禁用高危命令:通过sudoers文件(visudo编辑)限制普通用户使用高危命令(如rm -rfshutdown),例如添加username ALL=(ALL) !/bin/rm -rf /, !/sbin/shutdown,防止误操作或恶意删除系统文件。
  • 备份关键数据:使用rsyncrsync -avz /path/to/source /path/to/destination)或tar命令定期备份重要数据(如网站文件、数据库),并将备份存储在异地(如云存储),防止数据丢失。

0