Хорошо, таким образом, у меня есть несколько сайтов на vps с сертификатами SSL. У меня есть ультрасовременная установка защиты, а также растяжка. Мой вопрос затем касается phpmyadmin безопасности. Если мой IP 123.123.123.123, я могу получить доступ к phpmyadmin, использующему 123.123.123.123/mypmyadmin-IHaveChangedThisURL.
И даже при том, что я изменил phpmyadmin URL, phpmyadmin все еще доступен, если можно найти URL.
Я добавил пустой файл HTML к корневому каталогу и таким образом, никакой индекс каталога не дан с помощью vps имени хоста или vps IP.
Есть ли что-либо еще, что я могу сделать для защиты использования IP и пытаюсь добраться до phpmyadmin и т.д.?
Любое руководство ценится.Спасибо.
Могли быть сделаны несколько вещей. Я объясню свои идеи и путь, как они могли быть реализованы в Apache2.
Сначала включите модуль SSL, если он не включен: sudo a2enmod ssl
.
Порт Оpen 443 (HTTPS) в брандмауэр. Необходимо использовать пользовательский порт здесь.
Следуйте этому руководству и включите бесплатный сертификат от, Давайте Зашифруем.
Проверьте этот ответ и отключите Слабые Шифры.
Затем можно вынудить всех пользователей использовать HTTPS.
Для изменения URI, в рамках конфигурации по умолчанию, необходимо отредактировать /etc/phpmyadmin/apache.conf
и измените первую часть (/phpmyadmin
) из этой директивы:
Alias /phpmyadmin /usr/share/phpmyadmin
Apache перезапуска и Вы сможете получить доступ к PhpMyAdmin через новый URI.
Вот пошаговое руководство: Как выполнить PhpMyAdmin на другом порте. Не забывайте открывать этот порт в Брандмауэр.
Выполните PhpMyAdmin на другом порте. Давайте предположим, что это - порт 99
. Закройте этот порт в Брандмауэр. Затем установите соединение SSH командой, подобной как:
ssh -fTN -R 99:localhost:99 <user>@<domain>or<ip>
-R
порт 99
передается локальному порту 99
на localhost
(127.0.0.1
).-fTN
продвинет соединение в к фону.Затем PhpMyAdmin должен быть доступным через веб-браузер Вашей локальной машины на URL http://localhost:99/
. Больше идей могло быть находкой здесь:
Больше деталей могло быть найдено в руководстве этого Apache: Аутентификация и авторизация. Пакет apache2-utils
должен быть установлен. Короче говоря шаги:
Создайте папку за пределами /var/www
, где файл паролей будет сохранен. Затем генерируйте файл паролей. Давайте возьмем имя этой новой папки, /var/www-auth
:
$ sudo mkdir /var/www-auth
$ cd /var/www-auth
$ sudo htpasswd -c .htpasswd.phpmyadmin <user>
New Password: *********
Re-Type New Password: *********
Adding Password For User <user>
.htpasswd.phpmyadmin
название файла, в котором будет сохранен пароль.user
имя для входа в систему, которое будет использоваться. *********
пароль :)-c
средства создают новый файл. Если эта опция опущена htpasswd
команда попытается добавить новое login name
к существующему .htpasswd.file
.Измените тип аутентификации PhpMyAdmin посредством редактирования /etc/phpmyadmin/apache.conf
таким образом (или создают .htaccess
файл):
<Directory /usr/share/phpmyadmin>
.....
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "The name of the authentication form - type some user and password hints"
AuthUserFile /var/www-auth/.htpasswd.phpmyadmin
</IfModule>
Require valid-user
</IfModule>
.....
</Directory>
Включите модули и перезапустите Apache2 для применения новой конфигурации:
sudo a2enmod authz_core authz_user authn_file
sudo systemctl restart apache2.service
Теперь для доступа к URI PhpMyAdmin необходимо обеспечить имя для входа в систему user
и password
.
Следуйте за шагами 1 и 3 от этого руководства для генерации .google_authenticator
файл, расположенный в Вашем $HOME
каталог. На шаге 4 описан, как генерировать коды аутентификации.
Создайте новый каталог под /var/www-auth
. Давайте возьмем имя этой новой папки, google_authenticator
:
sudo mkdir -p /var/www-auth/google_authenticator
Скопируйте файл $HOME/.google_authenticator
в тот каталог и изменение его полномочия (это должно быть читаемо для www-data
):
sudo cp $HOME/.google_authenticator /var/www-auth/google_authenticator/user
sudo chown www-data:www-data /var/www-auth/google_authenticator/user
Обратите внимание на то, что имя файла определяет имя для входа в систему! Имя файла будет использоваться в качестве имени пользователя при входе безопасного веб-сайта.
Измените новый файл путем добавления директивы " PASSWORD=qwerty
, где qwerty
новый пароль входа в систему.
E3CY3TNSNBXXXXXX " RESETTING_TIME_SKEW ... " RATE_LIMIT 3 30 ... " WINDOW_SIZE 17 " DISALLOW_REUSE 48885555 ... " TOTP_AUTH " PASSWORD=qwerty 4567...
Установка mod_authn_google
для Apache2. К сожалению, я, этот модуль недоступен в репозитории Ubuntu, но мы можем получить его из этого репозитория. Шаги: (1) переходят к Вашему Downloads
, (2) загружают пакет dba-apa24-mod_authn_google-r22... .rpm
, (3) извлечение mod_authn_google.so
, (4) помещают файл в /usr/lib/apache2/modules/
, (5) дайте соответствующие разрешения, (6) Создайте файл загрузки модуля:
cd $HOME/Downloads
wget http://download.opensuse.org/repositories/home:/csbuild:/DBA/RedHat_RHEL-7/x86_64/dba-apa24-mod_authn_google-r22-1.1.x86_64.rpm
rpm2cpio dba-apa24-mod_authn_google-r22-1.1.x86_64.rpm | cpio -iv --to-stdout ./DBA/apache24/WWW/2.4.x/modules/mod_authn_google-r22.so > mod_authn_google.so
sudo mv mod_authn_google.so /usr/lib/apache2/modules/
sudo chown root:root /usr/lib/apache2/modules/mod_authn_google.so
sudo chmod g-w /usr/lib/apache2/modules/mod_authn_google.so
echo "LoadModule authn_google_module /usr/lib/apache2/modules/mod_authn_google.so" | sudo tee /etc/apache2/mods-available/authn_google.load
sudo a2enmod authn_google
Измените тип аутентификации PhpMyAdmin посредством редактирования /etc/phpmyadmin/apache.conf
таким образом (или создают .htaccess
файл):
<Directory /usr/share/phpmyadmin>
.....
<IfModule mod_authz_core.c>
<IfModule mod_authn_google.c>
AuthType Basic
AuthName "The name of the authentication form - type some user and password hints"
AuthBasicProvider "google_authenticator"
GoogleAuthUserPath /var/www-auth/google_authenticator
GoogleAuthCookieLife 3600
GoogleAuthEntryWindow 2
</IfModule>
Require valid-user
</IfModule>
.....
</Directory>
Включите модули и перезапустите Apache2 для применения новой конфигурации:
sudo a2enmod authz_core authz_user authn_google
sudo systemctl restart apache2.service
Теперь для доступа к URI PhpMyAdmin необходимо обеспечить имя для входа в систему user
, password
и 6 цифр token code
:
С ModSecurity можно добавить более гибкие ограничения на URI PhpMyAdmin. В этом ответе, под разделом "ModSecurity Rules> SAS> Iptables", я описал короче говоря, как мы можем создать пользовательские правила для ModSecurity.