Skip to content

25 Январь 2012

5

Ubuntu Linux mysql + phpmyadmin + SSL + Настройка

Phpmyadmin

Стандартные компоненты, установленные повсеместно. Однако многие совершают на этом этапе ошибки, приводящие в последствии к таким катастрофам как несанкционированный доступ к базе данных…  (666)

:?: В системе уже должны быть установлены и настроены apache и PHP. Ubuntu Linux Apache + PHP + Настройка

:!:  Установка:

  1. apt-get install php5-mysql mysql-server phpmyadmin
  2. mysql спросит пароль рута — вводим
  3. phpmyadmin попросит указать веб-сервер — указываем apache2
  4. phpmyadmin спросит нужно ли настраивать сейчас — отвечаем нет

:!:  Настройка phpmyadmin + SSL

Вообще говоря phpmyadmin и так уже работает по умолчанию в site.ru/phpmyadmin (проверяем), причем на любом домене и даже IP. Таким образом он ничем не защищен, найти его легче легкого, никакого шифрования при входе конечно нет. Все эти ужасные вещи нужно срочно исправлять.

  1. Сначала нужно изменить привилегии файлам phpmyadmin, которые находятся в /usr/share/phpmyadmin. Поставить правильный chown и chmod. [КАК ЭТО СДЕЛАТЬ]
  2. Создадим папку для сертификатов, например /etc/apache2/ssl
  3. Создадим самоподписанный сертификат
    make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/site.ru.crt
    Внутри созданного сертификата находятся оба ключа, и публичный и приватный.
  4. Редактируем /etc/apache2/ports.conf
    Вместо

    <IfModule mod_ssl.c>
        # If you add NameVirtualHost *:443 here, you will also have to change
        # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
        # to <VirtualHost *:443>
        # Server Name Indication for SSL named virtual hosts is currently not
        # supported by MSIE on Windows XP.
        Listen 443
    </IfModule>

    Вствляем

    <IfModule mod_ssl.c>
        # If you add NameVirtualHost *:443 here, you will also have to change
        # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
        # to <VirtualHost *:443>
        # Server Name Indication for SSL named virtual hosts is currently not
        # supported by MSIE on Windows XP.
    
        NameVirtualHost *:443
        Listen 443
    </IfModule>
  5. Находим конфиг phpmyadmin в /etc/apache2/conf.d/phpmyadmin.conf и редактируем
    1. Стираем строчку
      Alias /phpmyadmin /usr/share/phpmyadmin
    2. Создадим хост для phpmyadmin. В начало добавляем
      <VirtualHost *:443>
          ServerName phpma.site.ru
          DocumentRoot /usr/share/phpmyadmin
          SSLEngine on
          SSLCertificateFile    /etc/apache2/ssl/site.ru.crt
          <Location />
              AuthType Basic
              AuthName "phpMyAdmin"
              AuthUserFile /etc/phpmyadmin/htpasswd.setup
              Require valid-user
          </Location>
    3. Не забываем добавить A запись на поддомен phpma.site.ru в DNS сервер
    4. В самый конец файла добавляем
      </VirtualHost>
  6. Создаем пароли для доступа в корень сайта:
    htpasswd -D /etc/phpmyadmin/htpasswd.setup admin
    htpasswd -b /etc/phpmyadmin/htpasswd.setup user1 password1
    htpasswd -b /etc/phpmyadmin/htpasswd.setup user2 password2
    ...
  7. a2enmod ssl
    /etc/init.d/apache2 restart
  8. Проверяем работу по адресу https://phpma.site.ru
  9. Теперь можно задать расширенные настройки phpmyadmin через https://phpma.site.ru/setup. Если вы планируете давать доступ к phpmyadmin кому-то кроме себя, то для безопасности папку /usr/share/phpmyadmin/setup лучше удалить после настройки.  :?: Перед настройкой необходимо вручную создать папку /usr/share/phpmyadmin/config (не забывайте про права)
  10. Можно настроить автоматический редирект с http://phpma.site.ru на https://phpma.site.ru, как это сделать будет описано в следующей статье.
5 коммент.
  1. parampampam
    8 Май 2013

    п. 5 — Находим конфиг phpmyadmin в /etc/apache2/conf.d/phpmyadmin.conf

    Нет такого файла… и ни одного упоминания этого файла в интернете нет. Зачем..?

    • Sharm
      10 Май 2013

      Если у Вас Ubuntu и если делали через apt-get install, то должен был появиться. В нем устанавливается алиас /phpmyadmin на все сайты в системе. То есть каждый сайт, каждая страница на Вашем apache будет перенаправлять на phpmyadmin, если дописать ей /phpmyadmin в браузере. А такое поведение категорически нам не нужно.

  2. Александр
    4 Ноя 2014

    «Можно настроить автоматический редирект с http://phpma.site.ru на https://phpma.site.ru, как это сделать будет описано в следующей статье.»

    Где статья ?

    За эту спасибо !

Обсуждение закрыто.