На своем веб-сервере я настроил 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
, например.