前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 16.04上安装和保护phpMyAdmin

如何在Ubuntu 16.04上安装和保护phpMyAdmin

原创
作者头像
尘埃
修改2018-09-30 10:39:40
1.5K0
修改2018-09-30 10:39:40
举报

介绍

虽然许多用户需要像MySQL这样的数据库管理系统的功能,但他们可能不会仅仅通过MySQL提示与系统进行交互。

创建了phpMyAdmin,以便用户可以通过Web界面与MySQL进行交互。在本指南中,我们将讨论如何安装和保护phpMyAdmin,以便您可以安全地使用它来管理来自Ubuntu 16.04系统的数据库。

准备

在开始使用本指南之前,您需要完成一些基本步骤。

一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

我们还假设您已经在Ubuntu 16.04服务器上完成了LAMP(Linux,Apache,MySQL和PHP)安装。

最后,使用像phpMyAdmin这样的软件时有一些重要的安全注意事项,因为它:

  • 直接与MySQL安装通信
  • 使用MySQL凭据处理身份验证
  • 执行并返回任意SQL查询的结果

由于这些原因,并且因为它是一个广泛部署的PHP应用程序,经常以攻击为目标,所以不应该通过普通的HTTP连接在远程系统上运行phpMyAdmin。如果你有域名,保护你网站的最简单方法是使用腾讯云SSL证书服务,它提供免费的可信证书。腾讯云SSL证书安装操作指南进行设置。如果你没有域名,建议您先去这里注册一个域名,如果你只是使用此配置进行测试或个人使用,则可以使用自签名证书,不需要购买域名。自签名证书提供了相同类型的加密,但没有域名验证公告。关于自签名证书,你可以参考为Apache创建自签名SSL证书如何为Nginx创建自签名SSL证书这两篇文章。

完成这些步骤后,您就可以开始使用本指南了。

第一步 - 安装phpMyAdmin

首先,我们将从默认的Ubuntu存储库安装phpMyAdmin。

我们可以通过更新本地软件包索引然后使用apt打包系统下拉文件并将其安装在我们的系统上来实现:

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install phpmyadmin php-mbstring php-gettext

这将询问您一些问题,以便正确配置您的安装。

警告:出现第一个提示时,apache2会突出显示,但不会被选中。如果没有按空格键来选择Apache,安装程序将不会在安装期间移动必要的文件。打空间选项卡,然后回车,选择Apache的。

  • 对于服务器选择,请选择apache2
  • 当询问是否用于设置数据库时,请选择“ 是”dbconfig-common
  • 系统将提示您输入数据库管理员的密码
  • 然后,系统会要求您选择并确认phpMyAdmin应用程序本身的密码

安装过程实际上将phpMyAdmin Apache配置文件添加到/etc/apache2/conf-enabled/目录中,并自动读取该目录。

我们唯一需要做的是显式启用PHP mcryptmbstring扩展,我们可以通过输入以下命令来执行:

代码语言:javascript
复制
sudo phpenmod mcrypt
sudo phpenmod mbstring

之后,您需要重新启动Apache才能识别您的更改:

代码语言:javascript
复制
sudo systemctl restart apache2

您现在可以通过访问服务器的域名或/phpmyadmin结尾的公共IP地址来访问Web界面,然后执行以下操作:

代码语言:javascript
复制
https://domain_name_or_IP/phpmyadmin

您现在可以使用在MySQL安装期间设置的root用户名和管理密码登录界面。

登录时,您将看到用户界面,如下所示:

第二步 - 保护您的phpMyAdmin实例

我们能够轻松地启动和运行phpMyAdmin界面。但是,我们还没有完成。由于它无处不在,phpMyAdmin是攻击者的热门目标。我们应采取额外措施来防止未经授权的访问。

最简单的方法之一是将网关放在整个应用程序的前面。我们可以使用Apache的内置.htaccess身份验证和授权功能来实现这一点。

配置Apache以允许.htaccess覆盖

首先,我们需要通过编辑Apache配置文件来启用.htaccess文件覆盖。

我们将编辑已放置在Apache配置目录中的链接文件:

代码语言:javascript
复制
sudo nano /etc/apache2/conf-available/phpmyadmin.conf

我们需要在配置文件的<Directory /usr/share/phpmyadmin>部分中添加一个AllowOverride All指令,如下所示:

代码语言:javascript
复制
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

添加此行后,保存并关闭该文件。

要实现您所做的更改,请重新启动Apache:

代码语言:javascript
复制
sudo systemctl restart apache2

创建.htaccess文件

现在我们我们的应用程序已经启用.htaccess,我们需要创建一个实际实现一些安全性。

为了使其成功,必须在应用程序目录中创建该文件。我们可以创建必要的文件,并使用root权限在我们的文本编辑器中打开它,方法是输入:

代码语言:javascript
复制
sudo nano /usr/share/phpmyadmin/.htaccess

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

代码语言:javascript
复制
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

让我们回顾一下这些行的含义:

  • AuthType Basic:此行指定我们正在实现的身份验证类型。此类型将使用密码文件实现密码身份验证。
  • AuthName:这将设置身份验证对话框的消息。您应该保持这种通用性,以便未经授权的用户不会获得有关受保护内容的任何信息。
  • AuthUserFile:这将设置将用于身份验证的密码文件的位置。这应该在正在提供的目录之外。我们很快就会创建这个文件。
  • Require valid-user:这指定只应为经过身份验证的用户授予对此资源的访问权限。这实际上阻止了未经授权的用户进入。

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

为身份验证创建.htpasswd文件

我们为密码文件选择的位置是“ /etc/phpmyadmin/.htpasswd”。我们现在可以创建此文件并使用该htpasswd实用程序将初始用户传递给它:

代码语言:javascript
复制
sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

系统将提示您为正在创建的用户选择并确认密码。然后,使用您输入的散列密码创建文件。

如果要输入其他用户,则需要在没有-c标志的情况下执行此操作,如下所示:

代码语言:javascript
复制
sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

现在,当您访问phpMyAdmin子目录时,系统将提示您输入刚刚配置的其他帐户名和密码:

代码语言:javascript
复制
https://domain_name_or_IP/phpmyadmin

输入Apache身份验证后,您将进入常规phpMyAdmin身份验证页面以输入其他凭据。这将增加额外的安全层,因为phpMyAdmin过去曾遭受过漏洞攻击。

结论

您现在应该已经配置了phpMyAdmin并准备好在您的Ubuntu 16.04服务器上使用。使用此界面,您可以轻松创建数据库,用户,表等,并执行常规操作,如删除和修改结构和数据。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。

参考文献:《How To Install and Secure phpMyAdmin on Ubuntu 16.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 准备
      • 第一步 - 安装phpMyAdmin
        • 第二步 - 保护您的phpMyAdmin实例
          • 配置Apache以允许.htaccess覆盖
          • 创建.htaccess文件
          • 为身份验证创建.htpasswd文件
        • 结论
        相关产品与服务
        云服务器
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档