📜  Lando 暴露数据库端口 - CSS (1)

📅  最后修改于: 2023-12-03 15:17:11.569000             🧑  作者: Mango

Lando 暴露数据库端口 - CSS

介绍

"lando"是一个基于Docker的本地开发环境管理器。但是,如果您不小心将其配置正确,则可能会意外地暴露数据库端口,使其公开可用。

在本文中,我们将探讨在Lando上如何避免意外暴露数据库端口,以及在发现端口暴露后可能会发生什么。

如何避免暴露数据库端口
  1. 注意端口映射 - 在lando.yml文件中指定端口映射时,请确保将端口yoursite_app:3306映射到“localhost”而不是“0.0.0.0”。这将确保只有您的本地机器才能访问这些端口。
services:
  appserver:
    type: php:7.4
    via: nginx
    portforward: true
    conf:
      nginx.conf: .lando/nginx.conf
    ssl: true
  database:
    type: mariadb:10.4
    portforward: true
    creds:
      database: yoursite
      username: yoursite
      password: yoursite
  1. 使用数据库隧道 - 如果您的应用需要从公共网络中访问数据库,可以使用SSH隧道。这是一种加密通讯方式,可以安全地将数据库请求转发到您的Lando环境,从而防止黑客攻击。

  2. 应用程序级别的身份验证 - 使用应用程序级别的身份验证来增强数据库安全性,比如基于角色的访问控制、密码保护等。

确认端口是否暴露

如果您不确定您的数据库端口是否暴露,请在终端中运行以下命令:

lando ssh -c "nmap -p 3306 localhost | grep '3306/tcp' | awk '{print $2}'"

此命令将告诉您端口是否为“open”状态。如果是,您需要尽快修改您的lando.yml文件,将端口映射到“localhost”而不是“0.0.0.0”。

什么会发生

如果您的数据库端口意外暴露,则面临着以下风险和安全问题之一:

  1. 数据库求助噪音和卡顿 - 受到大量随机请求的数据库会遇到噪音和卡顿,这会干扰应用程序的正常运行。

  2. 安全漏洞攻击 - 暴露的端口是黑客大量利用漏洞的一个起点,从而通过攻击您的数据库服务器访问您的应用程序和数据。

因此,在第一步中,我们建议您仔细检查配置选项并设置正确的端口映射。如果您已经意外暴露了端口,则需要尽快采取行动,例如使用SSH隧道或应用程序级别的身份验证来保护安全。