插件窝 干货文章 LAMP服务器安全设置指南

LAMP服务器安全设置指南

sudo 安全 bash 配置 896    来源:    2025-05-08

LAMP服务器安全设置指南

1. 系统层面安全设置

1.1 操作系统安全

  • 更新系统:定期运行 sudo apt update && sudo apt upgrade (Ubuntu/Debian) 或 sudo yum update (CentOS/RHEL)
  • 最小化安装:只安装必要的软件包
  • 禁用root远程登录bash sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sudo systemctl restart sshd
  • 配置防火墙bash sudo ufw enable sudo ufw allow 22/tcp # SSH sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS

1.2 用户和权限管理

  • 创建专用用户运行服务: bash sudo adduser webadmin sudo usermod -aG sudo webadmin
  • 设置严格的文件权限: bash sudo chown -R webadmin:www-data /var/www sudo chmod -R 750 /var/www sudo find /var/www -type d -exec chmod 755 {} \; sudo find /var/www -type f -exec chmod 644 {} \;

2. Apache安全配置

2.1 基本安全设置

  • 禁用目录浏览: apache Options -Indexes
  • 隐藏Apache版本信息: apache ServerTokens Prod ServerSignature Off
  • 限制HTTP方法: apache <LimitExcept GET POST HEAD> Deny from all </LimitExcept>

2.2 模块管理

禁用不必要的模块:

sudo a2dismod autoindex cgi status
sudo systemctl restart apache2

3. MySQL/MariaDB安全配置

3.1 基本安全设置

运行安全安装脚本:

sudo mysql_secure_installation

3.2 用户权限管理

  • 为每个应用创建独立数据库用户: sql CREATE DATABASE appdb; CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost'; FLUSH PRIVILEGES;
  • 禁用远程root访问: sql DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); FLUSH PRIVILEGES;

4. PHP安全配置

4.1 php.ini安全设置

expose_php = Off
display_errors = Off
log_errors = On
allow_url_fopen = Off
allow_url_include = Off
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

4.2 PHP版本管理

  • 使用最新稳定版本
  • 移除旧版PHP: bash sudo apt purge php5.* # 移除PHP5

5. 应用层面安全

5.1 Web应用安全

  • 定期更新CMS/框架
  • 使用参数化查询防止SQL注入
  • 实施CSRF保护
  • 设置安全的文件上传策略
  • 配置内容安全策略(CSP)头

5.2 文件权限

sudo chown -R webadmin:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 750 {} \;
sudo find /var/www/html -type f -exec chmod 640 {} \;

6. 监控与日志

6.1 日志配置

  • 配置集中日志收集
  • 定期审查日志: bash sudo tail -f /var/log/apache2/error.log sudo tail -f /var/log/mysql/error.log

6.2 入侵检测

安装和配置fail2ban:

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

7. 备份策略

  • 定期备份数据库: bash mysqldump -u root -p --all-databases > all-databases-backup.sql
  • 备份网站文件和配置: bash tar -czvf /backup/website-$(date +%Y%m%d).tar.gz /var/www/html /etc/apache2 /etc/mysql
  • 实施3-2-1备份策略(3份备份,2种介质,1份异地)

8. 定期维护

  • 设置自动安全更新: bash sudo apt install unattended-upgrades sudo dpkg-reconfigure unattended-upgrades
  • 定期检查安全公告
  • 进行渗透测试和漏洞扫描

通过实施以上安全措施,可以显著提高LAMP服务器的安全性,减少被攻击的风险。