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

Доступ к phpmyadmin (который находится на нестандартном порту) из моей офисной сети

На своем веб-сервере я настроил phpmyadmin для работы через порт 8084 из соображений безопасности. Чтобы получить к нему доступ, я обычно посещаю http://mywebsite.com:8084

В моем офисе кажется, что этот порт заблокирован для исходящих подключений. Когда я пытаюсь получить доступ к phpmyadmin, страница просто зависает, и я получаю ERR_CONNECTION_TIMED_OUT. Я могу получить доступ к phpmyadmin на своем мобильном телефоне через сотовый сигнал.

Есть ли способ получить доступ к моему phpmyadmin на моем офисном компьютере, учитывая, что этот порт кажется заблокированным?

Не думайте, что вы в большей безопасности, если не используете стандартный порт для HTTP.

Есть больше шансов, что стандартные порты для HTTP и HTTPS будут открыты для исходящих подключений в вашем офисе, так что ваш самый безопасный выбор для обеспечения безопасности phpmyadmin установка заключается в запуске защищенного веб-сервера и использовании взаимная SSL-аутентификация:

Listen                   443 https
<VirtualHost 1.2.3.4:443>
  DocumentRoot           "/srv/www/html"
  ServerAdmin            admin@company.com
  SSLCACertificateFile   /etc/pki/CA/cacert.pem
  SSLCertificateFile     /etc/pki/tls/private/phpmyadmin.domain.com/cert.pem
  SSLCertificateKeyFile  /etc/pki/tls/private/phpmyadmin.domain.com/key.pem
  SSLCARevocationCheck   chain
  SSLCARevocationFile    /etc/pki/CA/crl/crl.pem
  SSLEngine              on
  SSLStrictSNIVHostCheck on
  SSLVerifyClient        require
  SSLVerifyDepth         5
  ServerName             phpmyadmin.domain.com
  RewriteEngine          on
  RewriteCond            %{REMOTE_ADDR} !^127\.0\.0\.1$
  RewriteCond            %{HTTPS} !=on
  RewriteRule            . - [F]
  Alias                  /console /usr/share/phpMyAdmin
  ErrorLog               "|/usr/sbin/rotatelogs -L /var/log/httpd/phpmyadmin/error.log -f /var/log/httpd/phpmyadmin/error.log.%Y%m%d 86400"
  CustomLog              "|/usr/sbin/rotatelogs -L /var/log/httpd/phpmyadmin/access.log -f /var/log/httpd/phpmyadmin/access.log.%Y%m%d 86400" combinedio

  <Directory /usr/share/phpMyAdmin/>
    Require              ssl
    Require              ssl-verify-client
    SSLRequireSSL
    SSLOptions           +FakeBasicAuth +StrictRequire
    SSLRequire           %{SSL_CIPHER_USEKEYSIZE} >= 256
    SSLRequire           %{SSL_CLIENT_S_DN_O} eq "Company" \
                     and %{SSL_CLIENT_S_DN_OU} eq "Development" \
                     and %{SSL_CLIENT_S_DN_CN} in {"John Doe", "Jane Doe"}
    SSLRenegBufferSize   131072
  </Directory>

  <Directory /usr/share/phpMyAdmin/setup/>
    Require              ssl
    Require              ssl-verify-client
    SSLRequireSSL
    SSLOptions           +FakeBasicAuth +StrictRequire
    SSLRequire           %{SSL_CIPHER_USEKEYSIZE} >= 128
    SSLRequire           %{SSL_CLIENT_S_DN_O}  eq "Comapny" \
                     and %{SSL_CLIENT_S_DN_OU} eq "Development" \
                     and %{SSL_CLIENT_S_DN_CN} in {"John Doe", "Jane Doe"}
    SSLRenegBufferSize   131072
  </Directory>

  <Directory /usr/share/phpMyAdmin/libraries/>
      Order Deny,Allow
      Deny from All
      Allow from None
  </Directory>

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

  <Directory /usr/share/phpMyAdmin/setup/frames/>
      Order Deny,Allow
      Deny from All
      Allow from None
  </Directory>

  # This configuration prevents mod_security at phpMyAdmin directories from
  # filtering SQL etc.  This may break your mod_security implementation.
  #
  #<IfModule mod_security.c>
  #    <Directory /usr/share/phpMyAdmin/>
  #        SecRuleInheritance Off
  #    </Directory>
  #</IfModule>

</VirtualHost>

Вы можете дополнительно защитить такой сервер, используя ограниченный список разрешенных IP-адресов (Deny и Allow директивы) и настройка mod_security, mod_evasive и fail2ban, например.