账户与权限管理
/etc/passwd文件检测并锁定不必要的超级账户(如未使用的管理员账户);删除adm、lp、sync等默认账户,减少系统受攻击的风险。/etc/login.defs文件强制执行口令复杂度要求,启用口令有效期(如每90天更换一次)。root用户登录;通过visudo编辑/etc/sudoers文件,设置sudo超时(如15分钟),限制sudo权限的使用范围。系统与软件更新
sudo yum update -y命令定期更新操作系统内核、Apache、MySQL、PHP等软件包,修复已知安全漏洞(如Apache的HTTP请求走私漏洞、MySQL的SQL注入漏洞)。yum-cron工具配置自动下载并安装安全更新,确保系统及时修补高危漏洞(如CentOS官方发布的安全公告)。防火墙与端口管理
firewalld(推荐)或iptables限制对服务器的访问,仅开放必要端口(如HTTP 80、HTTPS 443、SSH 22);通过firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="攻击IP" drop'命令屏蔽恶意IP地址。systemctl disable命令停止未使用的服务(如FTP、Telnet、Samba),减少攻击面(如Telnet的明文传输漏洞)。SSH安全加固
/etc/ssh/sshd_config文件,将PermitRootLogin设置为no,禁止root用户通过SSH直接登录,降低暴力破解风险。ssh-keygen -t rsa -b 4096),将公钥复制到服务器(ssh-copy-id username@server_ip),禁用密码登录(PasswordAuthentication no),防止密码泄露导致的账户沦陷。/etc/ssh/sshd_config文件设置MaxAuthTries 3(最多尝试3次)和LoginGraceTime 2m(登录时间为2分钟),防止暴力破解。Apache Web服务器安全配置
/etc/httpd/conf/httpd.conf文件,注释掉不需要的模块(如mod_imap、mod_ldap),减少潜在的安全风险(如模块漏洞导致的远程代码执行)。/var/www/html)的所有者设为普通用户(如apache:apache),权限设为750(所有者可读写执行,组用户可读执行,其他用户无权限),防止未授权访问。MaxClients参数限制并发连接数(如150),通过MaxRequestsPerChild参数限制每个子进程处理的请求数(如1000),防止资源耗尽攻击(如DDoS)。Options -Indexes,禁止目录自动列出,避免敏感文件(如配置文件、备份文件)被直接查看。MySQL/MariaDB数据库安全配置
mysql_secure_installation脚本,为root用户设置强密码(包含大小写字母、数字和特殊字符);定期更换密码(如每3个月一次)。mysql_secure_installation脚本删除匿名用户(DELETE FROM mysql.user WHERE User='';),禁止root用户从远程主机登录(REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%';),仅允许本地登录(GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';)。mysqldump命令定期备份数据库(如mysqldump -u root -p dbname > dbname_backup.sql),并将备份文件存储在安全位置(如异地服务器、云存储),防止数据丢失或被篡改。PHP配置安全
yum remove命令移除不需要的PHP模块(如php-xmlrpc、php-gmp),减少攻击面(如XML-RPC漏洞导致的远程代码执行)。php.ini文件,禁用eval()、exec()、system()等危险函数(disable_functions = eval,exec,system,passthru,shell_exec),防止恶意代码执行。display_errors设置为Off(display_errors = Off),避免在错误页面泄露敏感信息(如数据库用户名、密码、路径);将错误日志记录到指定文件(error_log = /var/log/php_errors.log),便于后续审计。upload_max_filesize(如2M)和post_max_size(如8M)参数限制上传文件的大小,防止上传恶意脚本(如PHP木马)。SELinux与文件系统安全
/etc/selinux/config文件,将SELINUX设置为enforcing(SELINUX=enforcing),启用强制访问控制(MAC),限制进程的权限(如Apache只能访问/var/www/html目录)。semanage命令调整SELinux策略(如允许Apache访问自定义目录:semanage fcontext -a -t httpd_sys_content_t "/data/web(/.*)?";重新标记文件:restorecon -Rv /data/web)。yum groupinstall "Minimal Install"),避免安装不必要的组件(如图形界面、游戏),减少系统暴露的漏洞。日志监控与应急响应
rsyslog或systemd-journald收集系统日志(/var/log/messages)、Apache访问日志(/var/log/httpd/access_log)、错误日志(/var/log/httpd/error_log)、MySQL日志(/var/log/mariadb/mariadb.log),定期检查日志中的异常活动(如大量404错误、暴力破解尝试)。last命令查看系统登录日志(last -f /var/log/wtmp),使用lastb命令查看失败登录日志(lastb -f /var/log/btmp),识别可疑IP地址(如短时间内多次登录失败的IP)并及时封禁。ps aux查看异常进程、find / -mtime -1查找最近修改的文件),修复漏洞(如更新软件包、修改密码),恢复系统运行(如重启服务、恢复备份)。