Назад | Перейти на главную страницу

Защита phpmyadmin: нестандартный порт + https

Пытаясь защитить phpmyadmin, мы уже сделали следующее:

Теперь мы хотели бы реализовать https ... но как это могло работать с phpmyadmin, уже запущенным на нестандартном порту?

Это конфигурация apache:

# 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>

Редактировать:

Я создал собственный сертификат SSL с самим apache, на основе этого ссылка на сайт а затем последовал советам, данным Джеймсом, и я получил следующее:

[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

phpMyAdmin - один из тех пакетов, которые помогли мне работать в качестве судебно-медицинского эксперта. У него ужасная история выполнения произвольного кода и обхода аутентификации. Моя общая рекомендация по безопасности - удалить его и использовать что-то вроде Workbench или узнать, как напрямую управлять mysqld.

если ты делать используйте его, тогда ваши шаги будут хорошими. Вам определенно нужно представить его только через SSL, который будет настроен на базовом веб-сервере. Также нужно ограничить доступ. С Apache httpd это будет сделано через htaccess. Закройте его как можно плотнее. Ваши старания будут вознаграждены.

Проще говоря, все, что вам нужно сделать, это настроить виртуальный хост для SSL обычным способом.

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

Поскольку виртуальный хост настроен для прослушивания на другом порту, это не влияет на работу SSL, но вам нужно сообщить своему браузеру, что он работает на другом порту. Например:

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

Обновление: исправлены опечатки.

если ты должен используйте phpMyAdmin (чего не стоит, если вы действительно позаботьтесь о безопасности, как это предусмотрено @ScottPack), вам следует подумать об ограничении доступа к частной подсети и подключиться с помощью туннеля VPN для доступа к ней. я буду никогда развернуть phpMyAdmin в общедоступном Интернете, если меня заставят.