插件窝 干货文章 linux搭建lamp安全设置

linux搭建lamp安全设置

sudo 安全 bash 设置 178    来源:    2025-05-15

Linux LAMP环境安全设置指南

搭建LAMP(Linux+Apache+MySQL+PHP)环境后,必须进行适当的安全配置以保护服务器免受攻击。以下是全面的安全设置建议:

1. 系统级安全设置

1.1 系统更新与补丁

# 更新系统软件包
sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
sudo yum update -y                     # CentOS/RHEL

# 设置自动安全更新
sudo apt install unattended-upgrades   # Debian/Ubuntu
sudo dpkg-reconfigure unattended-upgrades

1.2 防火墙配置

# 使用UFW(简单防火墙)
sudo apt install ufw
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp   # HTTP
sudo ufw allow 443/tcp  # HTTPS
sudo ufw status verbose

1.3 SSH安全

# 修改SSH默认端口
sudo nano /etc/ssh/sshd_config
# 修改: Port 2222 (或其他非标准端口)

# 禁用root登录
# 修改: PermitRootLogin no

# 使用密钥认证
# 修改: PasswordAuthentication no

# 限制用户登录
# 修改: AllowUsers yourusername

sudo systemctl restart sshd

2. Apache安全配置

2.1 基本安全设置

sudo nano /etc/apache2/conf-available/security.conf

修改以下参数:

ServerTokens Prod
ServerSignature Off
TraceEnable Off
FileETag None

2.2 禁用不需要的模块

sudo a2dismod autoindex status cgi cgid
sudo systemctl restart apache2

2.3 目录权限限制

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

3. MySQL/MariaDB安全设置

3.1 运行安全脚本

sudo mysql_secure_installation

3.2 创建专用数据库用户

CREATE DATABASE dbname;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

3.3 配置文件安全

sudo nano /etc/mysql/my.cnf

添加:

[mysqld]
skip-networking
local-infile=0
symbolic-links=0

4. PHP安全配置

4.1 php.ini安全设置

sudo nano /etc/php/7.x/apache2/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
upload_max_filesize = 2M
post_max_size = 8M

5. 文件和目录安全

5.1 设置正确的权限

sudo chown -R root:root /var/www/html
sudo chown -R www-data:www-data /var/www/html/uploads

5.2 防止敏感文件泄露

sudo nano /var/www/html/.htaccess

添加:

<FilesMatch "\.(env|log|htaccess|htpasswd|ini|phps|fla|psd|log|sh|sql)$">
    Order allow,deny
    Deny from all
</FilesMatch>

6. 定期维护

6.1 日志监控

# 安装日志分析工具
sudo apt install logwatch

# 设置日志轮转
sudo nano /etc/logrotate.d/apache2

6.2 定期备份

# 创建备份脚本
sudo nano /usr/local/bin/backup.sh

添加内容:

#!/bin/bash
mysqldump -u username -p'password' dbname > /backups/dbname_$(date +%Y%m%d).sql
tar -czf /backups/html_$(date +%Y%m%d).tar.gz /var/www/html
find /backups -type f -mtime +30 -delete

6.3 安装安全工具

# 安装fail2ban防止暴力破解
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# 安装rootkit检查工具
sudo apt install rkhunter chkrootkit
sudo rkhunter --update
sudo rkhunter --check

7. Web应用安全

7.1 使用HTTPS

# 使用Let's Encrypt免费证书
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d yourdomain.com

7.2 安装Web应用防火墙

# 安装ModSecurity
sudo apt install libapache2-mod-security2
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo nano /etc/modsecurity/modsecurity.conf

修改:

SecRuleEngine On
SecRequestBodyLimit 536870912

通过以上设置,您的LAMP环境将具备较高的安全性。请记住,安全是一个持续的过程,需要定期更新和检查。