📅  最后修改于: 2023-12-03 15:17:11.569000             🧑  作者: Mango
"lando"是一个基于Docker的本地开发环境管理器。但是,如果您不小心将其配置正确,则可能会意外地暴露数据库端口,使其公开可用。
在本文中,我们将探讨在Lando上如何避免意外暴露数据库端口,以及在发现端口暴露后可能会发生什么。
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
使用数据库隧道 - 如果您的应用需要从公共网络中访问数据库,可以使用SSH隧道。这是一种加密通讯方式,可以安全地将数据库请求转发到您的Lando环境,从而防止黑客攻击。
应用程序级别的身份验证 - 使用应用程序级别的身份验证来增强数据库安全性,比如基于角色的访问控制、密码保护等。
如果您不确定您的数据库端口是否暴露,请在终端中运行以下命令:
lando ssh -c "nmap -p 3306 localhost | grep '3306/tcp' | awk '{print $2}'"
此命令将告诉您端口是否为“open”状态。如果是,您需要尽快修改您的lando.yml文件,将端口映射到“localhost”而不是“0.0.0.0”。
如果您的数据库端口意外暴露,则面临着以下风险和安全问题之一:
数据库求助噪音和卡顿 - 受到大量随机请求的数据库会遇到噪音和卡顿,这会干扰应用程序的正常运行。
安全漏洞攻击 - 暴露的端口是黑客大量利用漏洞的一个起点,从而通过攻击您的数据库服务器访问您的应用程序和数据。
因此,在第一步中,我们建议您仔细检查配置选项并设置正确的端口映射。如果您已经意外暴露了端口,则需要尽快采取行动,例如使用SSH隧道或应用程序级别的身份验证来保护安全。