温馨提示×

debian lnmp如何防黑客攻击

小樊
47
2026-10-07 17:27:17
栏目: 网络安全

在 Debian + LNMP(Linux + Nginx + MySQL/MariaDB + PHP)环境下,防止黑客攻击需要从系统层、Web 层、数据库层、应用层、运维监控多方面入手。下面给你一套实用、可落地的安全方案。


一、系统层安全(基础)

1. 系统更新

apt update && apt upgrade -y

并开启自动安全更新:

apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades

2. 禁用 root 远程登录

编辑:

nano /etc/ssh/sshd_config

修改:

PermitRootLogin no
PasswordAuthentication no

使用 SSH 密钥登录。

3. 修改 SSH 端口(可选)

Port 22222

然后:

systemctl restart ssh

4. 防火墙(强烈推荐)

使用 ufw:

ufw allow 22222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

二、Nginx 安全加固

1. 隐藏版本信息

server_tokens off;

2. 禁止敏感文件访问

location ~ /\. {
    deny all;
}
location ~* \.(env|sql|bak|conf|log)$ {
    deny all;
}

3. 限制请求方法

if ($request_method !~ ^(GET|POST|HEAD)$ ) {
    return 403;
}

4. 防 CC / 限流

limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

server {
    limit_req zone=one burst=20 nodelay;
}

5. 使用 HTTPS(必做)

  • Let’s Encrypt 免费证书
apt install certbot python3-certbot-nginx
certbot --nginx

三、PHP 安全

1. 关闭危险函数

编辑 php.ini:

disable_functions = exec,passthru,shell_exec,system,proc_open,popen

2. 关闭错误显示

display_errors = Off
log_errors = On

3. 限制 PHP 访问目录

open_basedir = /var/www/html:/tmp

4. 上传安全

  • 限制上传类型
  • 上传目录无执行权限
location /uploads/ {
    location ~ \.php$ {
        deny all;
    }
}

四、MySQL / MariaDB 安全

1. 初始化安全

mysql_secure_installation

2. 禁止远程 root

DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1');

3. 使用独立数据库用户

  • 每个网站一个用户
  • 只给必要权限

4. 修改默认端口(可选)

port = 3307

五、Web 应用安全(最重要)

1. 及时更新程序

  • WordPress / Laravel / ThinkPHP 等
  • 插件和主题也要更新

2. 后台保护

  • 改后台路径
  • 限制 IP 访问
location /admin {
    allow 1.2.3.4;
    deny all;
}

3. WAF(强烈推荐)

  • Nginx + ModSecurity
  • 或云 WAF(Cloudflare)

六、监控与入侵检测

1. 安装 fail2ban

apt install fail2ban

防止 SSH / Nginx 暴力破解

2. 文件监控

apt install aide

3. 日志检查

/var/log/nginx/access.log
/var/log/auth.log

七、备份(最后底线)

rsync /var/www /backup
mysqldump -u root -p --all-databases > db.sql
  • 本地 + 远程
  • 定期 + 自动

总结(核心 10 条)

✅ 不用 root
✅ 只用密钥
✅ 开防火墙
✅ 上 HTTPS
✅ 隐藏版本
✅ 禁危险函数
✅ 分库分用户
✅ 勤更新
✅ 装 fail2ban
✅ 定期备份

如果你愿意,我可以按你的 LNMP 版本(如 Debian 11/12、Nginx 1.x、PHP 8.x)给你一份可直接用的配置文件。

0 踩