Linux下PHP+Apache的26个必知的安全设置

  • Post category:Linux

以下是“Linux下PHP+Apache的26个必知的安全设置”的完整使用攻略,包含两个示例说明。

步骤

  1. 更新系统软件包。在终端中输入以下命令:

bash
sudo apt-get update

  1. 安装防火墙。在终端中输入以下命令:

bash
sudo apt-get install ufw

  1. 启用防火墙。在终端中输入以下命令:

bash
sudo ufw enable

  1. 允许SSH连接。在终端中输入以下命令:

bash
sudo ufw allow ssh

  1. 允许连接。在终端中输入以下命令:

bash
sudo ufw allow http

  1. 允许HTTPS连接。在终端中输入以下命令:

bash
sudo ufw allow https

  1. 禁用root用户登录。在终端输入以下命令:

bash
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

  1. 限制SSH登录尝试次数。在终端中输入以下命令:

bash
sudo -i 's/#MaxAuthTries 6/MaxAuthTries 3/g' /etc/ssh/sshd_config

  1. 禁用密码登录。在终端中输入以下命令:

bash
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config

  1. 重启SSH服务。在终端中输入以下命令:

    bash
    sudo systemctl restart sshd

  2. 安装fail2ban。在终端中输入以下命令:

    bash
    sudo apt-get install fail2ban

  3. 配置fail2ban。在终端中输入以下命令:

    bash
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

  4. 重启fail2ban服务。在终端中输入以下命令:

    bash
    sudo systemctl restart fail2ban

  5. 安装Apache优化工具。在终端中输入以下命令:

    bash
    sudo apt-get install apache2-utils

  6. 配置Apache。在终端中输入以下命令:

    bash
    sudo nano /etc/apache2/apache2.conf

    在文件末尾添加以下内容:

    “`

    Optimize Apache


    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    MaxRequestWorkers 150
    MaxConnectionsPerChild 0

    “`

  7. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart apache2

  8. 安装PHP。在终端中输入以下命令:

    bash
    sudo apt-get install php libapache2-mod-php

  9. 禁用PHP错误报告。在终端中输入以下命令:

    bash
    sudo sed -i 's/display_errors = On/display_errors = Off/g' /etc/php/7.2/apache2/php.ini

  10. 禁用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

  11. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart apache2

  12. 安装mod_security。在终端中输入以下命令:

    bash
    sudo apt-get install libapache2-mod-security2

  13. 启用mod_security。在终端中输入以下命令:

    bash
    sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

  14. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart apache2

  15. 安装PHP安全检查工具。在终端中输入以下命令:

    bash
    sudo apt-get install php-pear
    sudo pear install PHP_CodeSniffer

  16. 安装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

  17. 运行PHP安全检查。在终端中输入以下命令:

    bash
    sudo phpcs --standard=/usr/share/php/PHP/CodeSniffer/Standards/Security/ /var/www/html/

示例1:在Ubuntu上设置PHP+Apache服务器安全

  1. 在终端中输入以下命令以更新软件包列表:

bash
sudo apt-get update

  1. 安装防火墙。在终端中输入以下命令:

bash
sudo apt-get install ufw

  1. 启用防火墙。在终端中输入以下命令:

bash
sudo ufw enable

  1. 允许SSH连接。在终端中输入以下命令:

bash
sudo ufw allow ssh

  1. 允许HTTP连接。在终端中输入以下命令:

bash
sudo ufw allow http

  1. 允许HTTPS连接。在终端中输入以下命令:

bash
sudo ufw allow https

  1. 禁用root用户登录。在终端中输入以下命令:

bash
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

  1. 限制SSH登录尝试次数。在终端中输入以下命令:

bash
sudo -i 's/#MaxAuthTries 6/MaxAuthTries 3/g' /etc/ssh/sshd_config

  1. 禁用密码登录。在终端中输入以下命令:

bash
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config

  1. 重启SSH服务。在终端中输入以下命令:

    bash
    sudo systemctl restart sshd

  2. 安装fail2ban。在终端中输入以下命令:

    bash
    sudo apt-get install fail2ban

  3. 配置fail2ban。在终端中输入以下命令:

    bash
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

  4. 重启fail2ban服务。在终端中输入以下命令:

    bash
    sudo systemctl restart fail2ban

  5. 安装Apache优化工具。在终端中输入以下命令:

    bash
    sudo apt-get install apache2-utils

  6. 配置Apache。在终端中输入以下命令:

    bash
    sudo nano /etc/apache2/apache2.conf

    在文件末尾添加以下内容:

    “`

    Optimize Apache


    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    MaxRequestWorkers 150
    MaxConnectionsPerChild 0

    “`

  7. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart apache2

  8. 安装PHP。在终端中输入以下命令:

    bash
    sudo apt-get install php libapache2-mod-php

  9. 禁用PHP错误报告。在终端中输入以下命令:

    bash
    sudo sed -i 's/display_errors = On/display_errors = Off/g' /etc/php/7.2/apache2/php.ini

  10. 禁用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

  11. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart apache2

  12. 安装mod_security。在终端中输入以下命令:

    bash
    sudo apt-get install libapache2-mod-security2

  13. 启用mod_security。在终端中输入以下命令:

    bash
    sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

  14. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart apache2

  15. 安装PHP安全检查工具。在终端中输入以下命令:

    bash
    sudo apt-get install php-pear
    sudo pear install PHP_CodeSniffer

  16. 安装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

  17. 运行PHP安全检查。在终端中输入以下命令:

    bash
    sudo phpcs --standard=/usr/share/php/PHP/CodeSniffer/Standards/Security/ /var/www/html/

示例2:在CentOS上设置PHP+Apache服务器安全

  1. 在终端中输入以下命令以更新软件包列表:

bash
sudo yum update

  1. 安装防火墙。在终端中输入以下命令:

bash
sudo yum install firewalld

  1. 启用防火墙。在终端中输入以下命令:

bash
sudo systemctl enable firewalld
sudo systemctl start firewalld

  1. 允许SSH连接。在终端中输入以下命令:

bash
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

  1. 允许HTTP连接。在终端中输入以下命令:

bash
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

  1. 允许HTTPS连接。在终端中输入以下命令:

bash
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

  1. 禁用root用户登录。在终端中输入以下命令:

bash
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

  1. 限制SSH登录尝试次数。在终端中输入以下命令:

bash
sudo sed -i 's/#MaxAuthTries 6/MaxAuthTries 3/g' /etc/ssh/sshd_config

  1. 禁用密码登录。在终端中输入以下命令:

bash
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config

  1. 重启SSH服务。在终端中输入以下命令:

    bash
    sudo systemctl restart sshd

  2. 安装fail2ban。在终端中输入以下命令:

    bash
    sudo yum install epel-release
    sudo yum install fail2ban

  3. 配置fail2ban。在终端中输入以下命令:

    bash
    cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

  4. 启动fail2ban服务。在终端中输入以下命令:

    bash
    sudo systemctl restart fail2ban

  5. 安装Apache优化工具。在终端中输入以下命令:

    bash
    sudo yum install httpd-tools

  6. 配置Apache。在终端中输入以下命令:

    bash
    sudo nano /etc/httpd/conf/httpd.conf

    在文件末尾添加以下内容:

    “`

    Optimize Apache


    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    MaxRequestWorkers 150
    MaxConnectionsPerChild 0

    “`

  7. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart httpd

  8. 安装PHP。在终端中输入以下命令:

    bash
    sudo yum install php php-mysql php-gd php-pear

  9. 禁用PHP错误报告。在终端中输入以下命令:

    bash
    sudo sed -i 's/display_errors = On/display_errors = Off/g' /etc/php.ini

  10. 禁用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

  11. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart httpd

  12. 安装mod_security。在终端中输入以下命令:

    bash
    sudo yum install mod_security

  13. 启用mod_security。在终端中输入以下命令:

    bash
    sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

  14. 重启Apache服务。在终端中输入以下命令:

    bash
    sudo systemctl restart httpd

  15. 安装PHP安全检查工具。在终端中输入以下命令:

    bash
    sudo yum install php-pear
    sudo pear install PHP_CodeSniffer

  16. 安装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

  17. 运行PHP安全检查。在终端中输入以下命令:

    bash
    sudo phpcs --standard=/usr/share/php/PHP/CodeSniffer/Standards/Security/ /var/www/html/

希望这些步骤和示例能帮助您在Linux系统上设置PHP+Apache服务器的安全性。