温馨提示×

Debian LAMP安全设置技巧

小樊
48
2025-09-19 07:15:40
栏目: 智能运维

1. 系统与软件更新
保持Debian系统及LAMP组件(Apache、MariaDB/MySQL、PHP)为最新版本,及时修补已知安全漏洞。定期运行以下命令更新系统:

sudo apt update && sudo apt upgrade -y

建议启用自动安全更新,安装unattended-upgrades工具:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

2. 用户与权限管理
避免使用root用户进行日常操作,创建普通用户并加入sudo组:

sudo useradd -m myuser && sudo passwd myuser  # 创建用户并设置密码
sudo usermod -aG sudo myuser                 # 加入sudo组

强化密码策略,通过PAM模块设置密码复杂度(如要求大小写字母、数字、特殊字符),编辑/etc/pam.d/common-password文件,修改以下行:

password requisite pam_cracklib.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

3. SSH服务安全配置
禁用root用户远程登录,编辑/etc/ssh/sshd_config文件,设置:

PermitRootLogin no
PermitEmptyPasswords no

启用SSH密钥对认证(替代密码登录),步骤如下:

  • 本地生成密钥对:ssh-keygen -t rsa -b 4096(按提示保存密钥);
  • 将公钥复制到服务器:ssh-copy-id myuser@server_ip
  • 重启SSH服务:sudo systemctl restart sshd
    4. 防火墙配置
    使用ufw(Uncomplicated Firewall)简化防火墙规则,仅允许必要端口(HTTP 80、HTTPS 443、SSH 22):
sudo ufw allow 'Apache Full'  # 允许HTTP/HTTPS
sudo ufw allow ssh            # 允许SSH
sudo ufw enable               # 启用防火墙

若使用iptables,可添加以下规则:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -j DROP  # 拒绝所有其他入站连接

5. Apache Web服务器安全
禁用不必要的Apache模块(如php_cgi),减少攻击面:

sudo a2dismod php7.4-cgi  # 根据PHP版本调整(如php8.1-cgi)
sudo systemctl restart apache2

配置目录权限,禁止目录列表并限制敏感目录访问。编辑/etc/apache2/sites-available/000-default.conf,添加:

<Directory /var/www/html>
    Options -Indexes +FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

6. MariaDB/MySQL数据库安全
运行mysql_secure_installation脚本进行基础安全设置,包括:更改root密码、删除匿名用户、禁止root远程登录、删除测试数据库。
限制数据库访问权限,仅允许特定IP地址访问(如本地或应用服务器IP),编辑/etc/mysql/mariadb.conf.d/50-server.cnf文件,修改bind-address

bind-address = 127.0.0.1  # 仅允许本地访问

7. PHP安全配置
编辑php.ini文件(路径如/etc/php/8.1/apache2/php.ini),禁用危险函数(如execsystemshell_exec),防止命令注入:

disable_functions = exec,system,shell_exec,passthru

调整open_basedir限制PHP脚本访问目录,防止跨目录攻击:

open_basedir = /var/www/html/:/tmp/

8. 定期审计与监控
使用fail2ban工具防止暴力破解攻击(如SSH、Apache登录),安装并配置:

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local  # 备份默认配置
sudo nano /etc/fail2ban/jail.local  # 启用SSH防护(设置enabled = true)
sudo systemctl restart fail2ban

定期检查系统日志(/var/log/syslog/var/log/auth.log)和Web服务器日志(/var/log/apache2/access.logerror.log),及时发现异常活动(如大量失败登录尝试、可疑文件访问)。

0