如何在Debian7上安装和保护phpMyAdmin
phpMyAdmin
phpMyAdmin 是一个免费的网络软件,可以在网络上与 MySQL 一起工作。 它为 MySQL 功能提供了一个方便的可视化前端。
设置
在使用 phpMyAdmin 之前,您需要在服务器上安装 LAMP。 如果您的服务器上 ' 没有 Linux、Apache、MySQL、PHP 堆栈,您可以在 此处 找到设置教程。
一旦你有了用户和所需的软件,你就可以开始在你的 VPS 上安装 phpMyAdmin!
安装 phpMyAdmin
安装 phpmyadmin 最简单的方法是通过 apt-get:
sudo apt-get install phpmyadmin
在安装过程中,phpMyAdmin 将引导您完成基本配置。 该过程启动后,请执行以下步骤:
- 选择 Apache2 作为服务器
- 当询问是否使用 dbconfig-common 为 phpmyadmin 配置数据库时选择 YES
- 出现提示时输入您的 MySQL 密码
- 输入您要用于登录 phpmyadmin 的密码
安装完成后,将 phpmyadmin 添加到 apache 配置中。
sudo nano /etc/apache2/apache2.conf
将 phpmyadmin 配置添加到文件中。
Include /etc/phpmyadmin/apache.conf
重启阿帕奇:
sudo service apache2 restart
然后,您可以通过转到 youripaddress/phpmyadmin 来访问 phpmyadmin。 屏幕应该看起来像 this。
安全
不幸的是,旧版本的 phpMyAdmin 存在严重的安全漏洞,包括允许远程用户最终利用底层虚拟专用服务器上的 root。 可以通过一个简单的过程来阻止大多数此类攻击:使用 Apache 的本地用户/密码限制锁定整个目录,这将阻止这些远程用户甚至尝试利用旧版本的 phpMyAdmin。
设置 .htaccess 文件
要设置它,首先允许 .htaccess 文件在 phpmyadmin 目录中工作。 您可以在 phpmyadmin 配置文件中完成此操作:
sudo nano /etc/phpmyadmin/apache.conf
在目录部分下,在“目录索引”下添加“AllowOverride All”行,使该部分如下所示:
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All [...]
配置 .htaccess 文件
在允许 .htaccess 文件的情况下,我们可以继续设置一个本地用户,该用户甚至需要登录才能访问 phpmyadmin 登录页面。
首先在 phpmyadmin 目录中创建 .htaccess 页面:
sudo nano /usr/share/phpmyadmin/.htaccess
通过在 .htaccess 文件中设置用户授权来跟进。 复制并粘贴以下文本:
AuthType Basic AuthName "Restricted Files" AuthUserFile /path/to/passwords/.htpasswd Require valid-user
下面你会看到每一行的快速解释:
- AuthType: 这是指将用于检查密码的身份验证类型。 密码通过 HTTP 进行检查,并且不应更改关键字 Basic。
- AuthName: 这是将在密码提示中显示的文本。 你可以在这里放任何东西。
- AuthUserFile: 此行指定密码文件的服务器路径(我们将在下一步中创建。)
- Require valid-user: 这一行告诉 .htaccess 文件,只有密码文件中定义的用户才能访问 phpMyAdmin 登录屏幕。
创建 htpasswd 文件
现在我们将继续创建有效的用户信息。
首先创建一个 htpasswd 文件。 使用 htpasswd 命令,并将文件放在您选择的目录中,只要它不能从浏览器访问。 尽管您可以随意命名密码文件,但惯例是将其命名为 .htpasswd。
sudo htpasswd -c /path/to/passwords/.htpasswd username
提示将要求您提供并确认您的密码。
保存用户名和密码对后,您可以看到文件中的密码已加密。
通过重新启动 apache 完成:
sudo service apache2 restart
访问 phpMyAdmin
phpMyAdmin 现在将更加安全,因为只有授权用户才能访问登录页面。 访问 youripaddress/phpmyadmin 应该会显示类似 this 的屏幕。
填写您生成的用户名和密码。 登录后,您可以使用 MySQL 用户名和密码访问 phpmyadmin。