AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 445294
Accepted
elect
elect
Asked: 2012-11-05 06:19:32 +0800 CST2012-11-05 06:19:32 +0800 CST 2012-11-05 06:19:32 +0800 CST

保护 phpmyadmin:非标准端口 + https

  • 772

为了保护 phpmyadmin,我们已经做了以下工作:

  • Cookie 授权登录

  • 防火墙关闭 tcp 端口 3306。

  • 在非标准端口上运行

现在我们想实现 https... 但它如何与已经在非标准端口上运行的 phpmyadmin 一起工作?

这是阿帕奇配置:

# PHP MY ADMIN
<VirtualHost *:$CUSTOMPORT>
    Alias /phpmyadmin /usr/share/phpmyadmin

    <Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php

        <IfModule mod_php5.c>
            AddType application/x-httpd-php .php

            php_flag magic_quotes_gpc Off
            php_flag track_vars On
            php_flag register_globals Off
            php_value include_path .
        </IfModule>

    </Directory>

    # Disallow web access to directories that don't need it
    <Directory /usr/share/phpmyadmin/libraries>
        Order Deny,Allow
        Deny from All
    </Directory>

    <Directory /usr/share/phpmyadmin/setup/lib>
        Order Deny,Allow
        Deny from All
    </Directory>

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/phpmyadmin.log combined
</VirtualHost>

编辑:

我基于此链接使用 apache 本身创建了一个自定义 SSL 证书,然后按照 James 给出的提示进行操作,我得到了这个:

[Sun Nov 04 16:02:38 2012] [info] Init: Seeding PRNG with 656 bytes of entropy
[Sun Nov 04 16:02:38 2012] [error] Init: Unable to read server certificate from file /etc/apache2/ssl/pma.crt
[Sun Nov 04 16:02:38 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Nov 04 16:02:38 2012] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Mon Nov 05 18:22:54 2012] [info] Init: Seeding PRNG with 656 bytes of entropy
[Mon Nov 05 18:22:54 2012] [error] Init: Unable to read server certificate from file /etc/apache2/ssl/pma.crt
[Mon Nov 05 18:22:54 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Mon Nov 05 18:22:54 2012] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error

编辑:

文件存在,密钥在那里,以“-”结尾这些是特权:

drwxr-xr-x 2 root root 4096  4. Nov 14:45 .
drwxr-xr-x 8 root root 4096  4. Nov 14:30 ..
-rw-r--r-- 1 root root 1041  4. Nov 14:45 pma.crt
-rw-r--r-- 1 root root 1679  4. Nov 14:45 pma.key
apache-2.2
  • 3 3 个回答
  • 1685 Views

3 个回答

  • Voted
  1. Best Answer
    Scott Pack
    2012-11-05T11:56:49+08:002012-11-05T11:56:49+08:00

    phpMyAdmin 是让我作为事件/取证检查员继续开展业务的软件包之一。它有任意代码执行和身份验证绕过的可怕历史。我的一般安全建议是卸载它并使用类似 Workbench 的东西或学习如何直接管理 mysqld。

    如果您确实使用它,那么您采取的步骤就是好的。您肯定只需要通过 SSL 呈现它,这将在底层网络服务器上配置。您还需要限制访问。使用 Apache httpd,这将通过 htaccess 完成。尽可能紧密地关闭它。你的努力将得到回报。

    • 4
  2. James Park-Watt
    2012-11-05T06:33:00+08:002012-11-05T06:33:00+08:00

    简而言之,您需要做的就是以正常方式为 SSL 配置虚拟主机。

    SSLEngine on
    SSLCertificateFile /path/to/crt
    SSLCertificateKeyFile /parh/to/cry/key
    

    因为虚拟主机配置为侦听不同的端口不会影响 SSL 的工作方式,但您需要告诉您的浏览器它正在不同的端口上运行。例如:

    https://www.example.com:3130/phpmyadmin
    

    更新:修正错别字。

    • 3
  3. MDMarra
    2012-11-06T09:33:28+08:002012-11-06T09:33:28+08:00

    如果您必须使用 phpMyAdmin(如果您真的关心安全性则不应该使用它,如 @ScottPack 所述),您应该考虑限制对私有子网的访问并使用 VPN 隧道进行连接以访问它。如果被迫,我绝不会在公共互联网上部署 phpMyAdmin。

    • 2

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve