如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin

简介

像 MySQL 和 MariaDB 这样的关系型数据库管理系统是许多网站和应用程序所必需的。然而,并非所有用户都习惯于通过命令行来管理他们的数据。

为了解决这个问题,创建了一个名为 phpMyAdmin 的项目,以提供基于 web 的管理界面作为替代方案。在本指南中,我们将演示如何在 CentOS 7 服务器上安装和保护 phpMyAdmin 配置。我们将在全球最流行的 Apache web 服务器上构建此设置。

先决条件

在开始之前,有一些要求需要解决。

为了确保您有一个坚实的基础来构建这个系统,您应该先完成我们的 CentOS 7 初始服务器设置指南。其中,这将指导您设置一个具有 sudo 访问权限的非 root 用户以执行管理命令。

在开始本指南之前,必须满足的第二个先决条件是在您的 CentOS 7 服务器上安装 LAMP(Linux、Apache、MariaDB 和 PHP)堆栈。这是我们将用来提供 phpMyAdmin 界面的平台(MariaDB 也是我们希望管理的数据库管理软件)。如果您的服务器上还没有 LAMP 安装,请按照我们的在 CentOS 7 上安装 LAMP 的教程进行操作。

当您按照这些指南使服务器处于正常运行状态后,您可以继续进行本页的其余部分。

步骤一 — 安装 phpMyAdmin

在我们的 LAMP 平台已经就绪的情况下,我们可以立即开始安装 phpMyAdmin 软件。不幸的是,phpMyAdmin 在 CentOS 7 的默认仓库中不可用。

为了获取我们需要的软件包,我们需要向系统添加一个额外的仓库。EPEL 仓库(Extra Packages for Enterprise Linux)包含许多额外的软件包,包括我们正在寻找的 phpMyAdmin 软件包。

通过安装一个名为 epel-release 的特殊软件包,可以使 EPEL 仓库对您的服务器可用。这将重新配置您的仓库列表,并为您提供对 EPEL 软件包的访问权限。

要安装,请输入:

sudo yum install epel-release

现在 EPEL 仓库已配置好,您可以使用 yum 包管理系统安装 phpMyAdmin 软件包,输入以下命令:

sudo yum install phpmyadmin

安装将立即完成。安装包含一个已经放置好的 Apache 配置文件。我们需要对此进行一些修改,以使其正确地为我们的安装工作。

现在打开文件编辑器,以便我们可以进行一些更改:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

在文件中,我们看到一些目录块,其中包含一些条件逻辑来解释我们目录的访问策略。定义了两个不同的目录,并在这些目录中配置了对 Apache 2.2 和 Apache 2.4(我们正在运行的版本)都有效的配置。

目前,此设置被配置为拒绝除了从服务器本身发出的连接之外的任何连接。由于我们是远程在服务器上工作,我们需要修改一些行来指定您 家庭 连接的 IP 地址。

更改任何读取 Require ip 127.0.0.1Allow from 127.0.0.1 的行,以引用您家庭连接的 IP 地址。如果您需要帮助找到您家庭连接的 IP 地址,请查看下一节。文件中必须更改四个位置:

. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .

完成后,通过输入以下命令重新启动 Apache web 服务器以实施您的修改:

sudo systemctl restart httpd.service

至此,我们的 phpMyAdmin 安装现在已经可用。要访问界面,请在您的 web 浏览器中输入服务器的域名或公共 IP 地址,后面加上 /phpMyAdmin

http://server_domain_or_IP/phpMyAdmin

!phpMyAdmin 登录界面

要登录,请使用有效的 MariaDB 用户的用户名/密码对。root 用户和 MariaDB 管理密码是一个不错的选择以开始。然后,您将能够访问管理界面:

!phpMyAdmin 管理界面

查找您的 IP 地址

为了完成上面的步骤,您需要知道您用于访问数据库的计算机的 IP 地址。这是一项安全预防措施,以防止未经授权的人连接到您的服务器。

注意:这不是您 VPS 的 IP 地址,而是您家庭或工作计算机的 IP 地址。

您可以通过访问以下网站之一来了解外部网络如何看到您的 IP 地址:

  • What’s My IP Address?
  • What’s My IP?
  • My IP Address

比较几个不同的网站,并确保它们都给出相同的值。在上面的配置文件中使用此值。

第二步 — 安全设置你的 phpMyAdmin 实例

在我们的服务器上安装的 phpMyAdmin 实例应该在这一步骤中完全可用。然而,通过安装一个 Web 界面,我们已经将我们的 MySQL 系统暴露给了外部世界。

即使包含了身份验证屏幕,这仍然是一个大问题。由于 phpMyAdmin 的流行程度以及它提供访问的大量数据,这些安装通常是攻击者的目标。

我们将实施两种简单的策略来减少我们的安装被攻击和 compromise 的机会。我们将把接口的位置从 /phpMyAdmin 更改为其他位置,以规避一些自动化的恶意尝试。我们还将创建一个额外的、基于 Web 服务器级别的身份验证网关,必须在进入 phpMyAdmin 登录界面之前通过。

更改应用程序的访问位置

为了使我们的 Apache Web 服务器与 phpMyAdmin 协同工作,我们的 phpMyAdmin Apache 配置文件使用别名来指向文件的目录位置。

要更改我们的 phpMyAdmin 接口可以访问的 URL,我们只需要重命名别名。现在打开 phpMyAdmin Apache 配置文件:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

在文件的顶部,你会看到两行像这样的内容:

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

这两行是我们的别名,这意味着如果我们访问我们站点的域名或 IP 地址,后面跟着 /phpMyAdmin/phpmyadmin,我们将会得到 /usr/share/phpMyAdmin 的内容。

我们想要禁用这些特定的别名,因为它们经常成为恶意用户和机器人攻击的目标。相反,我们应该决定我们自己的别名。它应该易于记忆,但不易猜测。它不应该指示 URL 位置的目的。在我们的情况下,我们将使用 /nothingtosee

要应用我们的修改,我们应该删除或注释掉现有的行并添加我们自己的行:

# Alias /phpMyAdmin /usr/share/phpMyAdmin
# Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /nothingtosee /usr/share/phpMyAdmin

完成后,保存并关闭文件。

要实施更改,重新启动 Web 服务:

sudo systemctl restart httpd.service

现在,如果你去到你的 phpMyAdmin 安装的先前位置,你会得到一个 404 错误:

http://server_domain_or_IP/phpMyAdmin

!phpMyAdmin 404 错误

然而,你的 phpMyAdmin 接口将会在我们选择的新位置可用:

http://server_domain_or_IP/nothingtosee

!phpMyAdmin 登录界面

设置 Web 服务器身份验证网关

我们想要为我们的安装添加的下一个功能是,用户在看到 phpMyAdmin 登录界面之前需要通过的身份验证提示。

幸运的是,大多数 Web 服务器,包括 Apache,都可以原生地提供这种功能。我们只需要修改我们的 Apache 配置文件来使用授权文件。

再次在你的文本编辑器中打开 phpMyAdmin Apache 配置文件:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

/usr/share/phpMyAdmin 目录块内,但不在任何内部块内,我们需要添加一个覆盖指令。它看起来像这样:

. . .
<Directory /usr/share/phpMyAdmin/>
   AllowOverride All
   <IfModule mod_authz_core.c>
   . . .
</Directory>
. . .

这将允许我们在 phpMyAdmin 目录本身内部设置一个名为 .htaccess 的文件中指定额外的配置细节。我们将使用这个文件来设置我们的密码身份验证。

完成后保存并关闭文件。

重新启动 Web 服务以实施此更改:

sudo systemctl restart httpd.service

创建一个 .htaccess 文件

现在我们在配置中有了覆盖指令,Apache 将在 /usr/share/phpMyAdmin 目录中寻找一个名为 .htaccess 的文件。如果找到,它将使用其中包含的指令来补充其先前的配置数据。

我们的下一步是在该目录中创建 .htaccess 文件。现在使用你的文本编辑器来执行:

sudo nano /usr/share/phpMyAdmin/.htaccess

在这个文件中,我们需要输入以下信息:

AuthType Basic
AuthName "Admin Login"
AuthUserFile /etc/httpd/pma_pass
Require valid-user

让我们来看看每一行的含义:

  • AuthType Basic:这一行指定我们正在实施的身份验证类型。这种类型将使用密码文件实现密码身份验证。
  • AuthName:这设置了身份验证对话框的消息。你应该保持这个通用,这样未经授权的用户就不会获得关于被保护内容的知识。
  • AuthUserFile:这设置了实际用于身份验证的密码文件的位置。这应该在正在提供服务的目录之外。我们将在一会儿创建这个文件。
  • Require valid-user:这指定只有经过身份验证的用户才能访问这个资源。这实际上阻止了未经授权的用户进入。

完成输入这些信息后,保存并关闭文件。

创建用于身份验证的密码文件

现在我们已经通过在.htaccess文件中使用AuthUserFile指令指定了密码文件的位置,我们需要创建并填充密码文件。

这可以通过使用一个名为htpasswd的Apache实用工具来实现。我们通过向其传递我们想要创建文件的位置和要输入身份验证详细信息的用户名来调用该命令:

sudo htpasswd -c /etc/httpd/pma_pass username

-c标志表示这将创建一个初始文件。目录位置是文件的路径和文件名。用户名是我们想要添加的第一个用户。您将被提示输入并确认用户的密码。

如果您想要添加其他用户进行身份验证,您可以再次调用相同的命令 不带 -c标志,并使用新的用户名:

sudo htpasswd /etc/httpd/pma_pass seconduser

有了我们创建的密码文件,身份验证网关已经实施,下次访问我们的站点时,我们应该会看到一个密码提示:

http://server_domain_or_IP/nothingtosee

一旦输入您的凭据,您将被带到正常的phpMyAdmin登录页面。这一额外的保护层将有助于保持您的MySQL日志清除身份验证尝试,同时还带来了额外的安全益处。

结论

您现在可以从一个相当安全的Web界面管理您的MySQL数据库。这个用户界面暴露了大部分可以从MySQL命令提示符中使用的功能。您可以查看数据库和模式,执行查询,并创建新的数据集和结构。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
40
分享
相关文章
本地服务器 Odoo 安装指南,并实现公网访问
本指南详细介绍基于 Odoo 的企业应用部署流程。首先通过 VMware 安装虚拟机并配置 Ubuntu 系统,为运行环境打下基础;接着利用 Websoft9 平台简化中间件与 Odoo 服务的安装,实现快速部署与版本管理;然后借助 cpolar 实现内网穿透并完成域名解析,确保公网访问畅通;最后进行功能测试与性能优化,提供运维建议以保障系统稳定性和安全性。适合初学者及中小型企业参考实施。
44 4
在Ubuntu 22.04上配置和安装MySQL
以上就是在Ubuntu 22.04上配置和安装MySQL的步骤。这个过程可能看起来有点复杂,但只要按照步骤一步步来,你会发现其实并不难。记住,任何时候都不要急于求成,耐心是解决问题的关键。
54 30
阿里云服务器安装宝塔面板、安装网站(新手图文教程)
本文详细介绍了从注册阿里云账号到使用宝塔面板安装网站的完整流程,包括阿里云账号的企业认证、服务器购买与安全规则配置、宝塔面板的安装及网站部署等步骤。通过图文并茂的方式,帮助用户轻松完成阿里云服务器的搭建和管理。适合新手快速上手,实现网站从零到有的全过程。如果觉得有用,别忘了点赞收藏!
101 1
阿里云服务器安装宝塔面板、安装网站(新手图文教程)
在Ubuntu Linux系统下如何搭建并安装EDK2
以上就是在Ubuntu Linux系统下搭建并安装EDK2的过程。这个过程可能会有些复杂,但只要按照步骤一步步来,应该不会有太大问题。如果在过程中遇到任何问题,都可以在网上找到相应的解决方案。希望这个指南能对你有所帮助!
73 17
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
64 13
Websoft9 服务器面板中 Odoo 安装与群晖 NAS 的对比
传统部署Odoo面临基础设施搭建、镜像供应链、复杂配置及运维监控四大难题,而群晖NAS方案存在Docker依赖、插件更新滞后和配置自由度低的局限。Websoft9提供开箱即用的解决方案:无需预装Docker,三键式安装支持全版本Odoo;具备企业级扩展功能如负载均衡与集群部署;兼容混合云架构,支持公有云、私有云及边缘设备管理;同时确保合规性,自动扫描漏洞并生成修复报告,大幅提升部署效率与系统安全性。
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
99 12
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
57 11
|
26天前
|
Ubuntu中dpkg和apt命令:debian包安装详解
希望这让你对于Ubuntu中的dpkg和apt命令有了更为清晰的理解。下次你面对软件包安装的问题,就可以轻松应对,优雅地在你的Linux系统中游刃有余了。
170 10
YashanDB安装前服务器准备
本文档源自YashanDB官网,详细介绍了YashanDB的安装前准备与部署配置要求。内容涵盖服务器配置(操作系统、CPU、内存、硬盘等推荐及最低标准)、共享存储配置、部署规模(单机主备、分布式、共享集群等场景)以及各类部署示例的服务器列表。特别提示,在虚拟机环境中需将硬盘设置为独立-永久模式以避免数据损坏。此文档为用户根据实际需求选择合适的部署方案提供了全面指导。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等