好的,所以我在一个带有 ssl 证书的 vps 上有几个站点。我有 mod 安全设置以及tripwire。然后我的问题与 phpmyadmin 安全性有关。如果我的 IP 是 123.123.123.123,我可以使用 123.123.123.123/mypmyadmin-IHaveChangedThisURL 访问 phpmyadmin。
即使我更改了 phpmyadmin url,如果你能找到 url,phpmyadmin 仍然可以访问。
我在根目录中添加了一个空白的 html 文件,因此没有使用 vps 主机名或 vps IP 给出目录索引。
我还能做些什么来保护 IP 使用并尝试访问 phpmyadmin 等?
任何指导表示赞赏。谢谢。
可以做几件事。我将解释我的想法以及如何在 Apache2 中实现它们。
1. 使用 HTTPS 连接保护您的数据不被嗅探
如果未启用 SSL 模块,请先启用它:
sudo a2enmod ssl
.О将端口 443 (HTTPS) 插入防火墙。您应该在此处使用您的自定义端口。
遵循本手册并启用 Let's Encrypt 的免费证书。
检查此答案并禁用弱密码。
然后您可以强制所有用户使用 HTTPS。
2.更改PhpMyAdmin的URI
要更改 URI,在默认配置中,您应该编辑和更改此指令
/etc/phpmyadmin/apache.conf
的第一部分 ( ):/phpmyadmin
重新启动 Apache,您将能够通过新的 URI 访问 PhpMyAdmin。
3. 在不同的端口上运行 PhpMyAdmin
这是一个分步手册:如何在不同的端口上运行 PhpMyAdmin。不要忘记将此端口打开到防火墙中。
4.通过SSH隧道仅在本地访问PhpMyAdmin
在不同的端口上运行 PhpMyAdmin。假设它是 port
99
。关闭此端口进入防火墙。然后通过类似如下的命令建立 SSH 连接:-R
端口99
被转发到( )99
上的本地端口。localhost
127.0.0.1
-fTN
会将连接推送到后台。然后 PhpMyAdmin 应该可以通过 URL 上的本地计算机的 Web 浏览器访问
http://localhost:99/
。更多想法可以在这里找到:5. 通过密码验证保护 PhpMyAdmin URI 路径
更多细节可以在这个 Apache 的手册中找到:身份验证和授权。
apache2-utils
必须安装该软件包。简而言之,步骤是:在 之外创建文件夹
/var/www
,其中将保存密码文件。然后生成密码文件。假设这个新文件夹的名称是/var/www-auth
:.htpasswd.phpmyadmin
是将存储密码的文件的名称。user
是将使用的登录名。*********
是密码:)-c
表示创建新文件。如果省略此选项,htpasswd
命令将尝试将新的添加login name
到现有的.htpasswd.file
.修改 PhpMyAdmin 认证类型,通过
/etc/phpmyadmin/apache.conf
这种方式编辑(或创建.htaccess
文件):启用模块并重新启动 Apache2 以应用新配置:
现在要访问 PhpMyAdmin 的 URI,您必须提供登录名
user
及其password
.6. 通过两因素身份验证 (2FA) 保护 PhpMyAdmin URI 路径:
按照本手册中的步骤1和3生成文件,该文件位于您的目录中。在步骤4中描述了如何生成验证码。
.google_authenticator
$HOME
在
/var/www-auth
. 假设这个新文件夹的名称是google_authenticator
:将文件复制
$HOME/.google_authenticator
到该目录并更改其权限(它必须是可读的www-data
):请注意,文件名决定登录名!登录到您的安全网站时,文件名将用作用户名。
通过添加指令来修改新文件
" PASSWORD=qwerty
,其中qwerty
是新的登录密码。为 Apache2安装
mod_authn_google
。不幸的是,我这个模块在 Ubuntu 的存储库中不可用,但我们可以从这个存储库中获取它。步骤是:(1)转到您的Downloads
,(2)下载包dba-apa24-mod_authn_google-r22... .rpm
,(3)提取mod_authn_google.so
,(4)将文件放入/usr/lib/apache2/modules/
,(5)授予适当的权限,(6)创建模块加载文件:修改 PhpMyAdmin 认证类型,通过
/etc/phpmyadmin/apache.conf
这种方式编辑(或创建.htaccess
文件):启用模块并重新启动 Apache2 以应用新配置:
现在要访问 PhpMyAdmin 的 URI,您必须提供登录名
user
、其password
和 6 位数字token code
:7. 为 Apache 使用 ModSecurity
使用 ModSecurity,您可以向 PhpMyAdmin 的 URI 添加更灵活的限制。在这个答案中,在“ModSecurity Rules > SAS > Iptables”部分下,我简要描述了我们如何为 ModSecurity 创建自定义规则。