温馨提示×

ubuntu lamp安全设置怎么做

小樊
48
2025-06-27 05:59:21
栏目: 智能运维

在Ubuntu上设置LAMP(Linux, Apache, MySQL, PHP)环境时,确保系统的安全性至关重要。以下是一个详细的安全设置指南,帮助你加固LAMP环境。

1. 更新系统和软件包

首先,确保你的系统和所有软件包都是最新的。使用以下命令更新系统:

sudo apt update && sudo apt upgrade -y

2. 安装和配置Apache

  • 安装Apache
sudo apt install apache2
  • 启用必要的模块
sudo a2enmod rewrite
sudo a2enmod headers
sudo systemctl restart apache2

3. 安装和配置MySQL

  • 安装MySQL
sudo apt install mysql-server
  • 安全配置MySQL

    • 运行安全脚本来设置MySQL的root密码和其他安全选项:

      sudo mysql_secure_installation
      
    • 允许远程访问(可选):

      • 编辑MySQL的配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf

        sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
        

        找到 bind-address 配置项,将其从 127.0.0.1 更改为 0.0.0.0,然后保存文件并退出。

        重启MySQL服务以使更改生效:

        sudo systemctl restart mysql
        
    • 创建远程用户(可选):

      • 登录MySQL并创建一个允许远程访问的用户:

        sudo mysql -u root -p
        CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
        GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
        FLUSH PRIVILEGES;
        exit;
        

4. 安装和配置PHP

  • 安装PHP和PHP模块
sudo apt install php libapache2-mod-php php-mysql
  • 配置PHP

    • 编辑PHP的配置文件 /etc/php/7.x/apache2/php.ini(具体版本号请根据实际情况替换),进行以下配置:

      • 禁用危险函数:

        disable_functions = eval, exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source
        
      • 限制文件上传:

        upload_max_filesize = 2M
        post_max_size = 8M
        
      • 启用安全模式(虽然自PHP 5.3起已移除,但可以作为参考):

        safe_mode = On
        
      • 记录错误信息:

        display_errors = Off
        log_errors = On
        error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_WARNING
        error_log = /var/log/php_errors.log
        
    • 配置Apache以使用 php.ini 文件:

      确保Apache使用你编辑的 php.ini 文件。这通常在Apache的配置文件中已经默认设置,但你可以通过以下命令确认:

      apache2ctl -M | grep php7_module
      

5. 配置防火墙

使用UFW(Uncomplicated Firewall)来限制对系统的访问:

sudo apt install ufw
sudo ufw allow 'Apache Full'
sudo ufw enable

6. 禁用root登录

修改SSH配置文件以禁用root登录,只允许密钥认证:

sudo nano /etc/ssh/sshd_config

添加或修改以下行:

PermitRootLogin no
PasswordAuthentication no

重启SSH服务:

sudo systemctl restart sshd

7. 设置强密码策略

通过修改 /etc/login.defs/etc/pam.d/system-auth 文件,设置密码的最小使用天数、复杂度要求等:

password required pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=10

8. 禁用不必要的端口和服务

在防火墙中禁用不必要的端口和服务,减少潜在的攻击面。

9. 定期备份数据

使用工具如 rsyncduplicity 定期备份重要数据。

10. 监控系统日志

使用工具如 logwatchfail2ban 监控系统日志,及时发现异常行为。

11. 使用SELinux或AppArmor

如果需要更高级别的安全加固,可以启用SELinux或AppArmor来限制应用程序的权限。

sudo apt install apparmor apparmor-utils
sudo aa-enforce /etc/apparmor.d/usr.sbin.apache2

通过上述步骤,你可以显著提高Ubuntu LAMP环境的安全性。请记住,安全性是一个持续的过程,需要不断地监控和更新。

0