Haw*_*007 5 server security apache2 phpmyadmin 16.04
好的,所以我在带有 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 中实现它们的方式。
如果未启用,请先启用 SSL 模块:sudo a2enmod ssl.
?pen 端口 443 (HTTPS) 进入防火墙。您应该在此处使用您的自定义端口。
按照本手册启用 Let's Encrypt 的免费证书。
检查此答案并禁用弱密码。
然后您可以强制所有用户使用 HTTPS。
要更改 URI,在默认配置中,您应该编辑/etc/phpmyadmin/apache.conf和更改/phpmyadmin此指令的第一部分 ( ):
Alias /phpmyadmin /usr/share/phpmyadmin
Run Code Online (Sandbox Code Playgroud)
重新启动 Apache,您将能够通过新的 URI 访问 PhpMyAdmin。
这是一个分步手册:How to run PhpMyAdmin on different port。不要忘记在防火墙中打开这个端口。
在不同的端口上运行 PhpMyAdmin。我们假设它是 port 99。关闭此端口进入防火墙。然后通过类似如下的命令建立 SSH 连接:
Alias /phpmyadmin /usr/share/phpmyadmin
Run Code Online (Sandbox Code Playgroud)
-R端口99被转发到( )99上的本地端口。localhost127.0.0.1-fTN会将连接推送到后台。然后应该可以通过 URL 上本地计算机的 Web 浏览器访问 PhpMyAdmin http://localhost:99/。更多想法可以在这里找到:
更多细节可以在这个 Apache 的手册中找到:Authentication and Authorization。apache2-utils必须安装该软件包。简而言之,步骤是:
在 之外创建文件夹/var/www,密码文件将保存在该文件夹中。然后生成密码文件。让我们假设这个新文件夹的名称是/var/www-auth:
ssh -fTN -R 99:localhost:99 <user>@<domain>or<ip>
Run Code Online (Sandbox Code Playgroud)
.htpasswd.phpmyadmin 是将存储密码的文件的名称。user 是将使用的登录名。 ********* 是密码:)-c表示创建新文件。如果省略此选项,htpasswd命令将尝试将新添加login name到现有.htpasswd.file.修改 PhpMyAdmin 认证类型,通过/etc/phpmyadmin/apache.conf这种方式编辑(或创建.htaccess文件):
$ sudo mkdir /var/www-auth
$ cd /var/www-auth
$ sudo htpasswd -c .htpasswd.phpmyadmin <user>
New Password: *********
Re-Type New Password: *********
Adding Password For User <user>
Run Code Online (Sandbox Code Playgroud)启用模块并重新启动 Apache2 以应用新配置:
<Directory /usr/share/phpmyadmin>
.....
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "The name of the authentication form - type some user and password hints"
AuthUserFile /var/www-auth/.htpasswd.phpmyadmin
</IfModule>
Require valid-user
</IfModule>
.....
</Directory>
Run Code Online (Sandbox Code Playgroud)现在要访问 PhpMyAdmin 的 URI,您必须提供登录名user及其password.
按照步骤1和3,从本手册中生成.google_authenticator文件,位于您的$HOME目录。步骤4描述了如何生成验证码。
下新建一个目录/var/www-auth。让我们假设这个新文件夹的名称是google_authenticator:
sudo a2enmod authz_core authz_user authn_file
sudo systemctl restart apache2.service
Run Code Online (Sandbox Code Playgroud)将文件复制$HOME/.google_authenticator到该目录并更改其权限(对于 必须是可读的www-data):
sudo mkdir -p /var/www-auth/google_authenticator
Run Code Online (Sandbox Code Playgroud)
请注意文件名决定登录名!在登录到您的安全网站时,文件名将用作用户名。
通过添加指令修改新文件" PASSWORD=qwerty,其中qwerty是新的登录密码。
E3CY3TNSNBXXXXXX " RESETTING_TIME_SKEW ... " RATE_LIMIT 3 30 ... " WINDOW_SIZE 17 " DISALLOW_REUSE 48885555 ... " TOTP_AUTH " 密码=qwerty 4567...
安装mod_authn_googleApache2。不幸的是,这个模块在 Ubuntu 的存储库中不可用,但我们可以从这个存储库中获取它。步骤是:(1)转到您的Downloads,(2)下载包dba-apa24-mod_authn_google-r22... .rpm,(3)提取mod_authn_google.so,(4)将文件放入/usr/lib/apache2/modules/,(5)授予适当的权限,(6)创建模块加载文件:
sudo cp $HOME/.google_authenticator /var/www-auth/google_authenticator/user
sudo chown www-data:www-data /var/www-auth/google_authenticator/user
Run Code Online (Sandbox Code Playgroud)修改 PhpMyAdmin 认证类型,通过/etc/phpmyadmin/apache.conf这种方式编辑(或创建.htaccess文件):
E3CY3TNSNBXXXXXX " RESETTING_TIME_SKEW ... " RATE_LIMIT 3 30 ... " WINDOW_SIZE 17 " DISALLOW_REUSE 48885555 ... " TOTP_AUTH " PASSWORD=qwerty 4567...
启用模块并重新启动 Apache2 以应用新配置:
cd $HOME/Downloads
wget http://download.opensuse.org/repositories/home:/csbuild:/DBA/RedHat_RHEL-7/x86_64/dba-apa24-mod_authn_google-r22-1.1.x86_64.rpm
rpm2cpio dba-apa24-mod_authn_google-r22-1.1.x86_64.rpm | cpio -iv --to-stdout ./DBA/apache24/WWW/2.4.x/modules/mod_authn_google-r22.so > mod_authn_google.so
sudo mv mod_authn_google.so /usr/lib/apache2/modules/
sudo chown root:root /usr/lib/apache2/modules/mod_authn_google.so
sudo chmod g-w /usr/lib/apache2/modules/mod_authn_google.so
echo "LoadModule authn_google_module /usr/lib/apache2/modules/mod_authn_google.so" | sudo tee /etc/apache2/mods-available/authn_google.load
sudo a2enmod authn_google
Run Code Online (Sandbox Code Playgroud)现在要访问 PhpMyAdmin 的 URI,您必须提供登录名user、登录名password和 6 位数字token code:
使用 ModSecurity,您可以向 PhpMyAdmin 的 URI 添加更灵活的限制。在这个答案中,在“ModSecurity Rules > SAS > Iptables”部分下,我简短地描述了我们如何为 ModSecurity 创建自定义规则。
| 归档时间: |
|
| 查看次数: |
4840 次 |
| 最近记录: |