在CentOS系统上配置PHP以提高安全性,可以遵循以下步骤:
升级系统和软件包:
sudo yum update
配置防火墙:
Firewalld
限制对服务器的访问,仅允许必要的端口(如HTTP的80端口和HTTPS的443端口)。sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
配置PHP安全设置:
php.ini
文件,关闭错误显示,启用open_basedir
,设置合理的文件上传大小限制。sudo vi /etc/php.ini
# 设置 display_errors 为 Off
# 设置 open_basedir 为限制访问的目录,如 /var/www/html
# 设置 upload_max_filesize 和 post_max_size 的合理值
安装PHP安全扩展:
php-mcrypt
、php-gd
、php-mbstring
、php-bcmath
等,以增加额外的安全保护。sudo yum install php-mcrypt php-gd php-mbstring php-bcmath
使用HTTPS:
sudo yum install mod_ssl
sudo systemctl restart httpd
# 将SSL证书文件拷贝到 /etc/httpd/conf.d/ssl.conf 文件中
强化用户和账户管理:
userdel adm userdel lp userdel sync userdel shutdown userdel halt userdel news userdel uucp userdel operator userdel games userdel gopher userdel ftp
sudo passwd -dl user1 user2 ...
sudo sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config
定期备份数据:
mkdir /backup
rsync -avz --delete /var/www/html/ ./website_backup/
mysqldump -u[数据库用户名] -p[数据库密码][数据库名] > website_backup.sql
gzip website_backup.sql
使用安全模式和禁用不必要函数:
php.ini
中启用安全模式,禁用不安全的PHP函数。safe_mode = On
disable_functions = passthru,exec,shell_exec,system,set_time_limit,ini_alter,dl,pfsockopen,openlog,syslog,readlink,symlink,link,leak,fsockopen,popen,escapeshellcmd,error_log
启用SELinux(可选):
sudo yum install policycoreutils-python-utils
sudo setenforce 1
通过这些步骤,可以显著提高CentOS系统上PHP配置的安全性,减少潜在的安全风险。