在 Ubuntu 20.04 LTS 上使用 LEMP 堆栈安装 phpMyAdmin

[ad_1]

我们已经知道如何 在 Ubuntu 20.04 上使用 LAMP 堆栈安装 phpMyAdmin. 今天,让我们看看如何在 Ubuntu 20.04 LTS 版本上安装带有 LEMP 堆栈的 phpMyAdmin。 然后我们还将讨论一些有助于保护 phpmyadmin 免受常见威胁的安全实践。 首先,确保按照以下链接中的说明在 Ubuntu 20.04 上设置了 LEMP 堆栈。

  • 在 Ubuntu 20.04 LTS 上安装 Nginx、MySQL、PHP(LEMP 堆栈)

安装 LEMP 堆栈后,按照以下部分所述安装和保护 phpMyAdmin。

内容

  1. 在 Ubuntu 20.04 LTS 上使用 LEMP 堆栈安装 phpMyAdmin
    1. 访问 phpMyAdmin 仪表板
    2. 创建专用用户以访问 phpMyAdmin 仪表板
    3. 保护 phpMyAdmin
      1. 禁用 MySQL root 登录到 phpmyadmin 仪表板
      2. 更改 phpmyadmin 网页界面 URL
      3. 密码保护 phpMyAdmin 登录页面
      4. 帮助我们帮助您:

在 Ubuntu 20.04 LTS 上使用 LEMP 堆栈安装 phpMyAdmin

运行以下命令从终端安装 phpMyAdmin:

$ sudo apt install phpmyadmin

在下一个窗口中,系统将提示您选择应自动配置为运行 phpMyAdmin 的 Web 服务器。 正如您在下面的屏幕截图中看到的,Nginx 在 Web 服务器列表中不可用。 这 Apache 和 lighthttpd 仅在此处列出。 所以 不要选择 任何网络服务器,只需将其留空。 选择 OK 并按 ENTER 继续:

PhpMyAdmin 需要安装和配置数据库才能使用。 您可以使用 dbconfig-command 来完成。

选择 是的 使用 dbconfig-common 为 phpmyadmin 配置数据库:

需要提供phpmyadmin密码才能注册MySQL数据库服务器。 如果未提供密码,将生成一个随机密码。

Enter 一个强密码,然后按 ENTER 继续:

Enter  phpmyadmin 的 MySQL 应用密码

重新输入密码:

为phpmyadmin重新输入MySQL应用密码

在编写本指南时,当我尝试为 phpmyadmin 设置密码时,它会引发以下错误:

 An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
 the current policy requirements . Your options are:                                  
* abort - Causes the operation to fail; you will need to downgrade,             
reinstall, reconfigure this package, or otherwise manually intervene          
to continue using it. This will usually also impact your ability to           
install other packages until the installation failure is resolved.            
* retry - Prompts once more with all the configuration questions                
(including ones you may have missed due to the debconf priority               
setting) and makes another attempt at performing the operation.               
* retry (skip questions) - Immediately attempts the operation again,            
skipping all questions. This is normally useful only if you have 
solved the underlying problem since the time the error occurred.              
* ignore - Continues the operation ignoring dbconfig-common errors.             
This will usually leave this package without a functional database.

mysql 说:ERROR 1819 (HY000) at line 1: Your password does not meet the current policy requirements

发生此错误是因为我们启用了 验证密码 组件,如标题部分所述 《2.2 更改 MySQL root 用户的认证方式》 在上面附带的 LEMP 堆栈安装指南中。

要解决此问题,您需要暂时禁用验证密码组件,并在为 phymyadmin 设置密码后重新启用它。 单击确定 close 上面的错误信息并选择 “中止” 取消 phpmyadmin 安装。

取消 phpmyadmin 安装

现在通过运行以下命令登录到 Mysql 提示符:

$ mysql -u root -p

在 mysql 提示符下,调整以下命令以禁用验证密码插件:

mysql> UNINSTALL COMPONENT "file://component_validate_password";

请注意,上述命令只会禁用插件,但不会删除它。 您可以稍后启用它。 然后输入“exit”退出Mysql提示。

mysql> exit

在 MySQL 中禁用验证密码插件

现在尝试使用命令再次安装 phpmyadmin:

$ sudo apt install phpmyadmin

选择“是”并按回车键使用 dbconfig-common 为 phpmyadmin 配置数据库。 这次 phpmyadmin 安装将正常工作。

安装 phpmyadmin 后,重新启用验证密码插件。 为此,请登录到您的 Mysql 提示符:

$ mysql -u root -p

在 mysql 提示符下,调整以下命令以禁用验证密码插件:

mysql> INSTALL COMPONENT "file://component_validate_password";

键入 exit 从 mysql 提示符退出。

mysql> exit

在 MySQL 中启用验证密码插件

现在创建一个符号链接来配置 Nginx Web 服务器以使用命令运行 phpmyadmin:

$ sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

此命令将在 Nginx 根目录下创建一个名为“phpmyadmin”的符号链接。 这个符号链接实际上指向存储实际文件的 /usr/share/phpmyadmin 目录。

完毕! 我们已经成功安装了带有 LEMP 堆栈的 PhpMyAdmin。

访问 phpMyAdmin 仪表板

打开您的网络浏览器并导航到 “https://IP-Address/phpmyadmin” 从地址栏。

您应该会看到 phpmyadmin 登录页面。 Enter 数据库用户及其密码:

phpmyadmin 登录页面

您会对 phpMyAdmin 仪表板感到满意。

phpMyAdmin 仪表板

从这里,您可以创建、删除和管理数据库。

创建专用用户以访问 phpMyAdmin 仪表板

安装 phpMyAdmin 后,一个名为的数据库用户 ‘phpmyadmin’ 将使用您在安装期间设置的管理密码自动创建。 您可以使用“phpmyadmin”用户或 mysql 登录到 phpmyAdmin 仪表板 用户如上图。 但是,建议创建一个专门的用户来通过 phpMyAdmin Web 界面管理数据库。

为此,请使用以下命令登录到 mysql shell:

$ mysql -u root -p

Enter 您的 mysql 根密码。 您现在将在 mysql shell 中。

Enter 以下命令为 phpmyadmin 创建一个新的专用用户:

mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';

这里, phpmyadmin 是访问 phpmyadmin 仪表板的新用户。 phpmyadminuser 的密码是 密码123#@!. 用您自己的值替换这些值。

接下来使用以下命令为“phpmyadminuser”授予适当的权限:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

最后退出mysql shell:

mysql> exit

为 phpmyadmin 创建新用户

我们现在已经创建了一个专用用户,用于通过 phpmyadmin Web 界面管理数据库。 让我们继续访问 phpmyadmin 仪表板。

打开 Web 浏览器并导航到“https://IP-Address/phpayadmin。 Enter 新创建的数据库用户及其密码。 恭喜! 您已使用专用用户登录到 phpMyAdmin 网络仪表板。

访问 phpMyAdmin 仪表板的专用用户

保护 phpMyAdmin

本节提供了一些确保 PhpMyAdmin 安装安全的提示。 请注意,仅靠以下步骤无法保护 phpMyAdmin 100% 安全。 但是,它们至少会减慢犯罪者闯入您的 phpmyadmin 仪表板的任何尝试。

禁用 MySQL root 登录到 phpmyadmin 仪表板

允许 mysql root 用户访问 phpMyAdmin 仪表板是不安全的,尤其是在通过网络管理数据库时。 这就是我们在上一节中创建专用用户的原因。 由于我们已经有一个专用用户,我们可以安全地禁用 mysql root 登录来访问 phpmyadmin 仪表板,以最大程度地减少攻击。

一般phpmyadmin安装在 /usr/share/phpmyadmin/ 目录及其配置文件存储在 /etc/phpmyadmin 目录。

编辑 phpmyadmin 配置文件:

$ sudo nano /etc/phpmyadmin/config.inc.php

添加/修改以下参数:

[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]

编辑 phpmyadmin 配置文件

Save 和 close 文件。

使用命令重新启动 Nginx Web 服务器:

$ sudo systemctl restart nginx

现在尝试以 root 用户身份登录 phpmyadmin。 你会得到 拒绝访问 错误信息:

禁用 MySQL root 登录到 phpmyadmin 仪表板

更改 phpmyadmin 网页界面 URL

这是最常见的策略,其次是机器人访问 phpmyadmin。 您可以通过将 URL 更改为难以猜测的内容来防止这种情况发生。 更改 phpmyadmin URL 将避免机器人或自动脚本执行 URL 扫描和暴力攻击。

还记得我们在 Nginx 根目录下创建了一个名为“phpmyadmin”的符号链接吗?

$ ls -l /var/www/html/
total 8
-rw-r--r-- 1 root root 612 Jun  2 07:15 index.nginx-debian.html
-rw-r--r-- 1 root root  20 Jun  2 07:35 info.php
lrwxrwxrwx 1 root root  22 Jun  2 08:14 phpmyadmin -> /usr/share/phpmyadmin/

在这里,phpmyadmin 是指向 /usr/share/phpmyadmin 目录的符号链接。

我们将使用命令更改符号链接名称:

$ sudo mv /var/www/html/phpmyadmin /var/www/html/ostechnix

确保名称包含随机字符并且很难猜到。

从现在开始,每当有人尝试通过导航到 https://IP-Address/phpmyadmin URL 来访问 phpmyadmin 页面时,他/他都会收到以下错误消息:

更改 phpmyadmin 网页界面 URL

因为我们改变了网址。 phpmyadmin 的新 URL 是 https://IP-Address/ostechnix。

通过更改默认的 phpmyadmin Web 界面 URL 来保护 phpmyadmin

密码保护 phpMyAdmin 登录页面

我们可以通过使用基本的 HTTP 身份验证方法限制对 phpmyadmin 登录页面的访问来添加额外的安全层。 含义 – 我们为 phpmyadmin 登录页面启用密码保护,因此用户在访问实际的 phpMyAdmin 登录页面之前必须输入额外的用户名/密码。

首先,我们需要使用生成一个密码文件 密码 公用事业。 htpasswd 实用程序是 apache2-utils 包裹。 所以让我们使用命令安装它:

$ sudo apt install apache2-utils

现在,使用命令创建一个加密的密码文件:

$ sudo htpasswd -c /etc/nginx/.htpasswd ostechnix

用您选择的用户名替换“ostechnix”。 Enter 强密码两次以生成密码文件。

要查看新生成的文件的内容,请使用如下所示的“cat”命令:

$ cat /etc/nginx/.htpasswd

您将看到如下输出:

ostechnix:$apr1$Us9YABHL$CMPDIuHaOB2lK/DVIzA2C/

接下来需要在我们的Nginx默认配置文件中提及上述密码文件的路径。 如果您按照上面附带的我们的 LEMP 安装教程进行操作,则默认的 Nginx 配置应该是 /etc/nginx/sites-available/default.

编辑默认的 Nginx 配置文件:

$ sudo nano /etc/nginx/sites-available/default

添加以下几行,在 “地点” 堵塞:

[...]
location /ostechnix {
                auth_basic "Restricted Zone";
                auth_basic_user_file /etc/nginx/.htpasswd;
        }
[...]

为 HTTP 基本身份验证配置 Nginx

还记得我们在上一步中更改了 phpMyAdmin URL (https://IP-Address/ostechnix) 吗? 这就是为什么我在上面的块中将块名称称为“ostechnix”。 换成你自己的。 Save 和 close 文件。

使用以下命令检查 Nginx 配置文件是否有任何语法错误:

$ sudo nginx -t

示例输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果您没有看到任何错误,请重新启动 nginx 服务以使更改生效。

$ sudo systemctl restart nginx

现在尝试从您的浏览器访问您的 phpMyAdmin URL。 系统将提示您输入用户名和密码:

密码保护 phpMyAdmin 登录页面

Enter 将使用“htpasword”实用程序先前创建的正确用户名和密码。 现在您将被重定向到实际的 phpMyAdmin 登录页面,您可以在其中输入数据库用户及其密码以登录到 phpMyAdmin Web 仪表板。

感谢您的光临!

帮助我们帮助您:

  • 订阅我们的电子邮件通讯: 立即注册
  • 支持 OSTechNix : 通过贝宝捐赠
  • 下载免费电子书和视频: TradePub 上的 OSTechNix
  • 联系我们: 红迪网 | Facebook | 推特 | 领英 | RSS订阅

祝你有美好的一天!!

数据库管理工具Focal FossaLEMP StackLinuxMySQLnginxPHPphpMyAdminUbuntuUbuntu 20.04

[ad_2]

Related Posts