以下是“Linux下PHP+Apache的26个必知的安全设置”的完整使用攻略,包含两个示例说明。
步骤
- 更新系统软件包。在终端中输入以下命令:
bash
sudo apt-get update
- 安装防火墙。在终端中输入以下命令:
bash
sudo apt-get install ufw
- 启用防火墙。在终端中输入以下命令:
bash
sudo ufw enable
- 允许SSH连接。在终端中输入以下命令:
bash
sudo ufw allow ssh
- 允许连接。在终端中输入以下命令:
bash
sudo ufw allow http
- 允许HTTPS连接。在终端中输入以下命令:
bash
sudo ufw allow https
- 禁用root用户登录。在终端输入以下命令:
bash
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
- 限制SSH登录尝试次数。在终端中输入以下命令:
bash
sudo -i 's/#MaxAuthTries 6/MaxAuthTries 3/g' /etc/ssh/sshd_config
- 禁用密码登录。在终端中输入以下命令:
bash
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
-
重启SSH服务。在终端中输入以下命令:
bash
sudo systemctl restart sshd -
安装fail2ban。在终端中输入以下命令:
bash
sudo apt-get install fail2ban -
配置fail2ban。在终端中输入以下命令:
bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local -
重启fail2ban服务。在终端中输入以下命令:
bash
sudo systemctl restart fail2ban -
安装Apache优化工具。在终端中输入以下命令:
bash
sudo apt-get install apache2-utils -
配置Apache。在终端中输入以下命令:
bash
sudo nano /etc/apache2/apache2.conf在文件末尾添加以下内容:
“`
Optimize Apache
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
“` -
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart apache2 -
安装PHP。在终端中输入以下命令:
bash
sudo apt-get install php libapache2-mod-php -
禁用PHP错误报告。在终端中输入以下命令:
bash
sudo sed -i 's/display_errors = On/display_errors = Off/g' /etc/php/7.2/apache2/php.ini -
禁用PHP函数。在终端中输入以下命令:
bash
sudo nano /etc/php/7.2/apache2/php.ini在文件末尾添加以下内容:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
-
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart apache2 -
安装mod_security。在终端中输入以下命令:
bash
sudo apt-get install libapache2-mod-security2 -
启用mod_security。在终端中输入以下命令:
bash
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf -
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart apache2 -
安装PHP安全检查工具。在终端中输入以下命令:
bash
sudo apt-get install php-pear
sudo pear install PHP_CodeSniffer -
安装PHP安全检查规则。在终端中输入以下命令:
bash
sudo wget https://github.com/squizlabs/PHP_CodeSniffer/raw/master/CodeSniffer/Standards/Security/ruleset.xml -O /usr/share/php/PHP/CodeSniffer/Standards/Security/ruleset.xml -
运行PHP安全检查。在终端中输入以下命令:
bash
sudo phpcs --standard=/usr/share/php/PHP/CodeSniffer/Standards/Security/ /var/www/html/
示例1:在Ubuntu上设置PHP+Apache服务器安全
- 在终端中输入以下命令以更新软件包列表:
bash
sudo apt-get update
- 安装防火墙。在终端中输入以下命令:
bash
sudo apt-get install ufw
- 启用防火墙。在终端中输入以下命令:
bash
sudo ufw enable
- 允许SSH连接。在终端中输入以下命令:
bash
sudo ufw allow ssh
- 允许HTTP连接。在终端中输入以下命令:
bash
sudo ufw allow http
- 允许HTTPS连接。在终端中输入以下命令:
bash
sudo ufw allow https
- 禁用root用户登录。在终端中输入以下命令:
bash
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
- 限制SSH登录尝试次数。在终端中输入以下命令:
bash
sudo -i 's/#MaxAuthTries 6/MaxAuthTries 3/g' /etc/ssh/sshd_config
- 禁用密码登录。在终端中输入以下命令:
bash
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
-
重启SSH服务。在终端中输入以下命令:
bash
sudo systemctl restart sshd -
安装fail2ban。在终端中输入以下命令:
bash
sudo apt-get install fail2ban -
配置fail2ban。在终端中输入以下命令:
bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local -
重启fail2ban服务。在终端中输入以下命令:
bash
sudo systemctl restart fail2ban -
安装Apache优化工具。在终端中输入以下命令:
bash
sudo apt-get install apache2-utils -
配置Apache。在终端中输入以下命令:
bash
sudo nano /etc/apache2/apache2.conf在文件末尾添加以下内容:
“`
Optimize Apache
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
“` -
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart apache2 -
安装PHP。在终端中输入以下命令:
bash
sudo apt-get install php libapache2-mod-php -
禁用PHP错误报告。在终端中输入以下命令:
bash
sudo sed -i 's/display_errors = On/display_errors = Off/g' /etc/php/7.2/apache2/php.ini -
禁用PHP函数。在终端中输入以下命令:
bash
sudo nano /etc/php/7.2/apache2/php.ini在文件末尾添加以下内容:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
-
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart apache2 -
安装mod_security。在终端中输入以下命令:
bash
sudo apt-get install libapache2-mod-security2 -
启用mod_security。在终端中输入以下命令:
bash
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf -
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart apache2 -
安装PHP安全检查工具。在终端中输入以下命令:
bash
sudo apt-get install php-pear
sudo pear install PHP_CodeSniffer -
安装PHP安全检查规则。在终端中输入以下命令:
bash
sudo wget https://github.com/squizlabs/PHP_CodeSniffer/raw/master/CodeSniffer/Standards/Security/ruleset.xml -O /usr/share/php/PHP/CodeSniffer/Standards/Security/ruleset.xml -
运行PHP安全检查。在终端中输入以下命令:
bash
sudo phpcs --standard=/usr/share/php/PHP/CodeSniffer/Standards/Security/ /var/www/html/
示例2:在CentOS上设置PHP+Apache服务器安全
- 在终端中输入以下命令以更新软件包列表:
bash
sudo yum update
- 安装防火墙。在终端中输入以下命令:
bash
sudo yum install firewalld
- 启用防火墙。在终端中输入以下命令:
bash
sudo systemctl enable firewalld
sudo systemctl start firewalld
- 允许SSH连接。在终端中输入以下命令:
bash
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
- 允许HTTP连接。在终端中输入以下命令:
bash
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
- 允许HTTPS连接。在终端中输入以下命令:
bash
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
- 禁用root用户登录。在终端中输入以下命令:
bash
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
- 限制SSH登录尝试次数。在终端中输入以下命令:
bash
sudo sed -i 's/#MaxAuthTries 6/MaxAuthTries 3/g' /etc/ssh/sshd_config
- 禁用密码登录。在终端中输入以下命令:
bash
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
-
重启SSH服务。在终端中输入以下命令:
bash
sudo systemctl restart sshd -
安装fail2ban。在终端中输入以下命令:
bash
sudo yum install epel-release
sudo yum install fail2ban -
配置fail2ban。在终端中输入以下命令:
bash
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local -
启动fail2ban服务。在终端中输入以下命令:
bash
sudo systemctl restart fail2ban -
安装Apache优化工具。在终端中输入以下命令:
bash
sudo yum install httpd-tools -
配置Apache。在终端中输入以下命令:
bash
sudo nano /etc/httpd/conf/httpd.conf在文件末尾添加以下内容:
“`
Optimize Apache
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
“` -
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart httpd -
安装PHP。在终端中输入以下命令:
bash
sudo yum install php php-mysql php-gd php-pear -
禁用PHP错误报告。在终端中输入以下命令:
bash
sudo sed -i 's/display_errors = On/display_errors = Off/g' /etc/php.ini -
禁用PHP函数。在终端中输入以下命令:
bash
sudo nano /etc/php.ini在文件末尾添加以下内容:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
-
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart httpd -
安装mod_security。在终端中输入以下命令:
bash
sudo yum install mod_security -
启用mod_security。在终端中输入以下命令:
bash
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf -
重启Apache服务。在终端中输入以下命令:
bash
sudo systemctl restart httpd -
安装PHP安全检查工具。在终端中输入以下命令:
bash
sudo yum install php-pear
sudo pear install PHP_CodeSniffer -
安装PHP安全检查规则。在终端中输入以下命令:
bash
sudo wget https://github.com/squizlabs/PHP_CodeSniffer/raw/master/CodeSniffer/Standards/Security/ruleset.xml -O /usr/share/php/PHP/CodeSniffer/Standards/Security/ruleset.xml -
运行PHP安全检查。在终端中输入以下命令:
bash
sudo phpcs --standard=/usr/share/php/PHP/CodeSniffer/Standards/Security/ /var/www/html/
希望这些步骤和示例能帮助您在Linux系统上设置PHP+Apache服务器的安全性。