首页主机资讯Ubuntu LAMP如何进行安全防护

Ubuntu LAMP如何进行安全防护

时间2025-12-16 09:27:03发布访客分类主机资讯浏览1355
导读:Ubuntu LAMP 安全防护实操清单 一 系统与基础防护 保持系统与软件为最新,启用自动安全更新,减少已知漏洞暴露窗口: 执行:sudo apt update && sudo apt upgrade -y 配置自动安...

Ubuntu LAMP 安全防护实操清单

一 系统与基础防护

  • 保持系统与软件为最新,启用自动安全更新,减少已知漏洞暴露窗口:
    • 执行:sudo apt update & & sudo apt upgrade -y
    • 配置自动安全更新:sudo apt install unattended-upgrades & & sudo dpkg-reconfigure -plow unattended-upgrades
  • 最小化攻击面:卸载无用软件包、关闭未使用服务(如 rsh/telnet/ftp 等),仅保留必要服务。
  • 强化 SSH 访问:禁用 root 登录与口令登录,仅使用密钥认证,并限制可登录用户:
    • 配置 /etc/ssh/sshd_configPermitRootLogin noPasswordAuthentication noAllowUsers your_username
    • 重启 SSH:sudo systemctl restart ssh
  • 配置防火墙 UFW,仅放行必要流量(HTTP/HTTPS/SSH):
    • 执行:sudo ufw allow 'Apache Full'(或分别放行 80/tcp443/tcp)、sudo ufw enable
  • 部署入侵防护:启用 Fail2Ban 监控暴力破解(如 SSH),缩短被爆破窗口。

二 Apache 安全加固

  • 隐藏版本与标识,降低信息泄露面:
    • /etc/apache2/conf-available/security.conf 中设置:ServerTokens ProdServerSignature OffTraceEnable Off
  • 禁用目录列表,防止未索引目录暴露文件清单:
    • 在虚拟主机或目录配置中加入:Options -Indexes
  • 限制请求方法,仅允许业务所需方法(如 GET/POST),在需要的虚拟主机中:
    • 示例:< LimitExcept GET POST> Deny from all < /LimitExcept>
  • 关闭或限制 .ht* 文件解析,避免被利用上传 .htaccess 提权:
    • 在相应目录:AllowOverride None
  • 启用 WAF:部署 ModSecurity(Apache 模块),加载核心规则集,拦截常见 Web 攻击:
    • 执行:sudo apt install libapache2-mod-security2 & & sudo a2enmod security2
  • 可选性能与安全优化:启用压缩与缓存、清理无用响应头(如 X-Powered-By)。

三 MySQL MariaDB 安全加固

  • 运行安全初始化向导,设置 root 强密码、移除匿名账户、禁止远程 root 登录、删除测试库:
    • 执行:sudo mysql_secure_installation
  • 绑定仅本地监听,避免数据库直接暴露公网(如无远程 DB 需求):
    • /etc/mysql/mysql.conf.d/mysqld.cnf 中设置:bind-address = 127.0.0.1
  • 禁用危险功能:关闭本地文件导入(防止读取系统敏感文件):
    • [mysqld] 中加入:local-infile=0
  • 最小权限原则:为应用创建专用数据库与账户,仅授予必要权限:
    • 示例:CREATE USER 'webapp'@'localhost' IDENTIFIED BY 'StrongPassword!'; GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'webapp'@'localhost'; FLUSH PRIVILEGES;
  • 开启错误日志与慢查询日志,便于审计与性能优化:
    • [mysqld] 中:log_error = /var/log/mysql/error.logslow_query_log = 1long_query_time = 2

四 PHP 安全配置

  • 关闭错误回显,开启错误日志,避免敏感信息输出到前端:
    • /etc/php/*/apache2/php.inidisplay_errors = Offlog_errors = Onerror_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
  • 隐藏 PHP 版本信息,减少针对性攻击:
    • 设置:expose_php = Off
  • 限制远程文件包含与执行,降低远程代码执行风险:
    • 设置:allow_url_fopen = Offallow_url_include = Off
  • 禁用危险函数(依据业务取舍):
    • 设置:disable_functions = exec,shell_exec,passthru,system,popen,proc_open,pcntl_exec,show_source
  • 文件系统访问限制(按站点目录隔离):
    • 设置:open_basedir = /var/www/your_app:/tmp
  • 精简未使用模块,减少攻击面与资源占用。

五 传输加密与备份监控

  • 部署 HTTPS/TLS:启用 Apache SSL 模块,配置站点证书与链文件,强制 HTTP 跳转 HTTPS
    • 启用模块:sudo a2enmod sslsudo a2enmod rewrite
    • 在站点配置中设置:SSLEngine onSSLCertificateFile /path/cert.crtSSLCertificateKeyFile /path/key.keySSLCertificateChainFile /path/chain.crt
    • HTTP→HTTPS 跳转(在端口 80 的 VirtualHost 中):
      • RewriteEngine OnRewriteCond %{ HTTPS} !=onRewriteRule ^(.*)$ https://%{ HTTP_HOST} $1 [L,R=301]
  • 证书与链路:将证书文件(公钥、私钥、链)妥善存放(如 /etc/ssl/),权限最小化,定期轮换
  • 备份与恢复:定期备份网站文件与数据库(如 mysqldumprsync/tar),保留离线/异地副本,定期演练恢复流程
  • 日志与监控:集中收集与审计 Web/DB 日志,结合 Fail2Ban、监控告警与基线巡检,形成闭环处置流程
  • 安全提示:任何变更先在测试环境验证,变更窗口内保留回滚方案,生产环境优先使用自动化与最小化权限策略

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


若转载请注明出处: Ubuntu LAMP如何进行安全防护
本文地址: https://pptw.com/jishu/772512.html
Ubuntu LAMP中如何更新软件 securecrt如何用于ubuntu系统的监控

游客 回复需填写必要信息