如何设置HTTPS(SSL证书)安全PhpMyAdmin登录

为了介绍这个技巧,让我们嗅出客户机和我们取得无辜的错误使用数据库root用户的在我们的上一篇文章凭据在登录Debian8服务器之间的HTTP流量: 变化与安全的默认phpMyAdmin的登录URL

正如我们在上一个提示中提到的,如果您不想公开您的凭据,请不要试图这样做。 要开始嗅探流量,我们键入以下命令并按Enter键:

# tcpdump port http -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --line-buffered -B20

它不会多久我们认识到, 用户名密码以纯文本格式发送过线,你可以在截断输出看到的tcpdump下面的图像中。

请注意,我们有root密码用蓝色标记了它的隐蔽部分:

嗅探HTTP流量

为了避免这种情况,让我们使用证书保护登录页面。 要做到这一点,在基于CentOS的发行版安装了mod_ssl包。

# yum install mod_ssl

虽然我们将使用Debian / Ubuntu的路径和名称,如果更换下面CentOS的等价的命令和路径相同的程序是有效的为CentOSRHEL。

创建一个目录来存储密钥和证书:

# mkdir /etc/apache2/ssl    [On Debian/Ubuntu based systems]
# mkdir /etc/httpd/ssl      [On CentOS based systems]

创建密钥和证书:

----------- On Debian/Ubuntu based systems ----------- 
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
----------- On CentOS based systems ----------- 
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
示例输出
........................+++
.....................................................+++
writing new private key to '/etc/httpd/ssl/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Maharashtra
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:youcl
Organizational Unit Name (eg, section) []:youcl
Common Name (eg, your name or your server's hostname) []:youcl
Email Address []:admin@youcl.com

接下来,验证密钥和证书。

# cd /etc/apache2/ssl/   [On Debian/Ubuntu based systems]
# cd /etc/httpd/ssl/     [On CentOS based systems]
# ls -l
total 8
-rw-r--r--. 1 root root 1424 Sep  7 15:19 apache.crt
-rw-r--r--. 1 root root 1704 Sep  7 15:19 apache.key

于Debian / Ubuntu,确保Apache是在默认网站(/etc/apache2/sites-available/000-default.conf)监听端口443,并添加虚拟主机声明中的3 SSL相关的线路:

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

在虚拟主机上启用SSL

在基于CentOS的发行,告诉Apache监听端口443,并期待在/etc/httpd/conf/httpd.conf中的Listen指令,并在其下面添加上述行。

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

保存更改,上加载的Debian / Ubuntu的发行版的SSL Apache模块(CentOS中,当你之前安装了mod_ssl这是自动加载):

# a2enmod ssl

phpMyAdmin来使用SSL,确保下面一行出现在/etc/phpmyadmin/config.inc.php/etc/phpMyAdmin/config.inc.php文件:

$cfg['ForceSSL'] = true;

并重新启动Web服务器:

# systemctl restart apache2   [On Debian/Ubuntu based systems]
# systemctl restart httpd     [On Debian/Ubuntu based systems]

接下来,打开浏览器并输入https://<ip address>/my (了解如何更改phpMyAdmin的登录URL ),如下图所示。

重要提示 :请注意,它只是说,因为我们使用的是自签名证书的连接是不安全的。 点击高级 ,确认安全例外:

启用PhpMyAdmin HTTPS

确认安全异常后,并在登录之前,让我们开始嗅探HTTPHTTPS流量:

# tcpdump port http or port https -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --line-buffered -B20

然后使用与之前相同的凭据登录。 交通嗅探器只会最多捕获乱码:

嗅探HTTP和HTTPS流量

这就是它现在,在明年文章中,我们将分享你限制使用用户名/密码访问的phpMyAdmin ,直到然后敬请关注youcl。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏