centos php-fpm安全设置有哪些
导读:CentOS PHP-FPM安全设置指南 1. 更新系统与PHP组件 确保CentOS系统和PHP-FPM及相关组件为最新版本,修复已知安全漏洞: sudo yum update -y sudo yum install epel-relea...
CentOS PHP-FPM安全设置指南
1. 更新系统与PHP组件
确保CentOS系统和PHP-FPM及相关组件为最新版本,修复已知安全漏洞:
sudo yum update -y
sudo yum install epel-release -y
sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-pear php-bcmath -y
2. 配置PHP-FPM以非特权用户运行
修改PHP-FPM进程池配置文件(通常为/etc/php-fpm.d/www.conf),将运行用户/组设置为非root(如nginx或apache),避免权限过高导致的安全风险:
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
3. 限制PHP-FPM进程资源
通过进程管理参数控制并发进程数量,防止资源耗尽攻击:
pm = dynamic
pm.max_children = 50 # 根据服务器内存调整(如4GB内存建议30-50)
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
request_terminate_timeout = 60s # 单个脚本最长执行时间(秒)
4. 禁用危险PHP函数
在/etc/php.ini中禁用可能被滥用的函数(如执行系统命令、文件操作等),防止恶意代码执行:
disable_functions = eval, assert, system, shell_exec, passthru, exec, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source
5. 配置安全错误处理
关闭错误显示(避免敏感信息泄露),开启错误日志记录:
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
6. 加强文件上传安全
限制上传文件的大小和类型,防止恶意文件上传:
file_uploads = On
upload_max_filesize = 10M # 单个文件最大大小
post_max_size = 10M # POST数据最大大小
7. 强化会话安全
通过会话配置防止会话劫持和固定攻击:
session.cookie_httponly = On # 禁止JavaScript访问会话cookie
session.cookie_secure = On # 仅通过HTTPS传输会话cookie(需开启HTTPS)
session.cookie_samesite = Strict # 限制跨站请求携带cookie
session.gc_maxlifetime = 1440 # 会话有效期(分钟)
8. 限制PHP访问目录
通过open_basedir限制PHP脚本可访问的目录范围,防止越权访问:
open_basedir = /var/www/html/:/tmp/ # 仅允许访问网站根目录和临时目录
9. 配置防火墙限制访问
使用firewalld仅允许HTTP(80)和HTTPS(443)流量,禁止不必要的端口访问:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
10. 使用HTTPS加密传输
通过Let’s Encrypt申请免费SSL证书,强制网站使用HTTPS,防止数据在传输过程中被窃取:
sudo yum install -y certbot python3-certbot-nginx # 若使用Nginx
sudo certbot --nginx -d yourdomain.com
sudo systemctl restart nginx
11. 安装Web应用防火墙(WAF)
使用ModSecurity增强PHP应用防护,抵御SQL注入、XSS等常见攻击:
sudo yum install -y mod_security
sudo systemctl enable mod_security
sudo systemctl start mod_security
12. 定期监控与日志审计
定期检查PHP-FPM和Web服务器日志,识别异常行为(如大量错误请求、可疑IP访问):
# 查看PHP-FPM错误日志
tail -f /var/log/php-fpm/error.log
# 查看PHP错误日志
tail -f /var/log/php_errors.log
# 使用fail2ban自动封禁恶意IP
sudo yum install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
13. 配置SELinux(可选但推荐)
确保SELinux处于enforcing模式,限制PHP-FPM的权限:
sudo setenforce 1
sudo vi /etc/selinux/config # 确认SELINUX=enforcing
通过以上设置,可显著提升CentOS环境下PHP-FPM的安全性,降低被攻击的风险。需定期复查配置(如系统更新后),并根据实际业务需求调整参数。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos php-fpm安全设置有哪些
本文地址: https://pptw.com/jishu/746424.html
