首页主机资讯Ubuntu LNMP如何进行安全加固

Ubuntu LNMP如何进行安全加固

时间2025-12-22 11:54:04发布访客分类主机资讯浏览1473
导读:Ubuntu LNMP 安全加固实操清单 一 系统与账户安全 保持系统与应用为最新:执行apt update && apt full-upgrade -y && apt autoremove -y,并启用无...

Ubuntu LNMP 安全加固实操清单

一 系统与账户安全

  • 保持系统与应用为最新:执行apt update & & apt full-upgrade -y & & apt autoremove -y,并启用无人值守安全更新(如 unattended-upgrades)以持续获取补丁。
  • 最小权限账户与 sudo:创建非 root运维账户,按需授予sudo;禁止 root 远程登录。
  • SSH 加固:编辑**/etc/ssh/sshd_config**,设置PermitRootLogin noPasswordAuthentication noPubkeyAuthentication yes;如更改 SSH 端口,先放行新端口再变更,避免被锁。
  • 防火墙基线:使用 UFW 默认拒绝入站、放行出站,仅开放22/80/443(或自定义 SSH 端口)与业务必需端口;必要时对 SSH 限制来源 IP。
  • 暴力破解防护:安装并启用 Fail2Ban,为 SSHNginx 配置拦截策略。

二 网络与防火墙规则

  • UFW 快速基线:
    • ufw default deny incoming
    • ufw default allow outgoing
    • ufw allow OpenSSH(或自定义 SSH 端口)
    • ufw allow 80/tcp, 443/tcp
    • ufw enable
  • 精细化访问控制:对管理端口(如 22)建议仅允许可信网段或固定 IP:ufw allow from YOUR_IP to any port 22;变更 SSH 端口后,务必先添加新规则再修改 sshd_config。
  • 数据库访问控制:数据库默认端口 3306 仅在需要时对外开放,生产环境优先通过本地套接字内网访问,并在云安全组层面做白名单。
  • 变更验证:每次规则调整后执行ufw status verbose核对,确保业务与运维通道不被阻断。

三 Nginx 安全配置

  • 隐藏版本与信息泄露:在 http/server 块设置server_tokens off;
  • 全站 HTTPS 与强化参数:使用 Certbot 获取并自动配置证书,建议启用重定向 80→443HSTSOCSP Stapling,示例:certbot --nginx --redirect --hsts --staple-ocsp --email your@email.com --agree-tos。
  • 安全响应头:统一添加
    • X-Frame-Options SAMEORIGIN
    • X-Content-Type-Options nosniff
    • Referrer-Policy strict-origin-when-cross-origin
    • Permissions-Policy accelerometer=(), camera=(), microphone=()
    • Content-Security-Policy default-src ‘self’; script-src ‘self’; object-src ‘none’;
    • Strict-Transport-Security max-age=63072000; includeSubDomains; preload
  • 抗 DoS 与资源限制:
    • client_max_body_size 2M; client_body_timeout 10s; keepalive_timeout 15;
    • 连接与请求限速:limit_conn_zone、limit_req_zone 与 limit_conn/limit_req 控制每 IP 并发与速率(如 10 并发、5 r/s 桶速、突发 5)。
  • 访问控制:对管理后台、备份目录等路径设置鉴权或 IP 白名单

四 MySQL MariaDB 安全

  • 安全初始化:执行mysql_secure_installation,完成强 root 密码删除匿名用户禁止 root 远程登录移除 test 库等步骤。
  • 绑定与解析:在 /etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf 设置bind-address = 127.0.0.1skip-name-resolve,减少暴露面与解析延迟。
  • 权限最小化:为应用创建专用账户并授予最小权限,例如:
    • CREATE USER ‘appuser’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
    • GRANT SELECT, INSERT, UPDATE, DELETE ON yourdb.* TO ‘appuser’@‘localhost’;
    • FLUSH PRIVILEGES;
  • 加密与审计:启用TLS 连接(如需要远程管理数据库)、开启错误日志与安全审计,定期审查异常登录与慢查询。

五 PHP 与文件权限

  • php.ini 关键项:
    • expose_php Off;display_errors Off;log_errors On;error_log /var/log/php_errors.log
    • memory_limit 128M;max_execution_time 30;max_input_time 60
    • file_uploads On;upload_max_filesize 2M;post_max_size 8M
    • session.cookie_httponly 1;session.cookie_secure 1;session.use_strict_mode 1
    • disable_functions exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
  • 路径与函数限制:在 Nginx FastCGI 段为站点设置open_basedir(如 fastcgi_param PHP_ADMIN_VALUE “open_basedir=/var/www/html:/tmp/”),限制 PHP 读写范围。
  • 目录权限与属主:网站根目录建议 chown -R www-data:www-data /var/www/htmlchmod -R 755 /var/www/html,文件 644,避免 777
  • 运行与扩展:仅启用必需 PHP 扩展,移除调试/开发组件;定期审计 PHP-FPM 进程与日志。

六 运维监控与备份

  • 日志与监控:集中收集并定期审计 Nginx 访问/错误日志PHP-FPM 日志MySQL 错误日志;部署监控告警(如 Netdata/Prometheus+Grafana),关注异常流量、5xx 激增、暴力登录与慢查询。
  • 备份与恢复:制定定期备份(全量+增量)与离线/异地存储策略,定期恢复演练验证可用性;关键配置与证书单独备份并版本化管理。
  • 纵深防护:在边界或云侧启用 WAF(如 Cloudflare),必要时部署 IDS/IPS(如 Snort/Suricata);对管理口与敏感接口实施多因素认证源 IP 白名单

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu LNMP如何进行安全加固
本文地址: https://pptw.com/jishu/777221.html
php-fpm进程管理在Linux中如何实现 Linux服务器PHP如何防止DDoS攻击

游客 回复需填写必要信息