Чтобы защитить пароли ваших абонентов от подбора, подключите ALTCHA. Чтобы войти в личный кабинет, абоненту нужно будет пройти капчу. Также абоненту нужно будет пройти её при восстановлении пароля.
Чтобы включить ALTCHA в личном кабинете, выполните следующие шаги.
Выпустите сертификат. Это можно сделать двумя способами: создать самоподписанный сертификат или использовать Certbot.
Создать самоподписанный сертификат.
sudo mkdir -p /etc/ssl/lbweb-client
cd /etc/ssl/lbweb-client
# Сгенерируйте приватный ключ
sudo openssl genrsa -out lbweb-client.key 2048
# Создайте самоподписанный сертификат на 1 год
sudo openssl req -new -x509 -key lbweb-client.key -out lbweb-client.crt -days 365 \
-subj "/C=RU/ST=SomeState/L=SomeCity/O=LocalDev/CN=lbweb-client.local"
sudo a2enmod ssl
sudo a2ensite lbweb-client-ssl
sudo systemctl restart apache2
sudo nano /etc/hosts
127.0.0.1 lbweb-client.local
Использовать Certbot. Certbot сам создаст ключи и сертификаты, пропишет их в конфигурацию Apache и добавит автообновление каждые 90 дней.
# Установите Certbot и плагина для Apache
sudo apt update
sudo apt install certbot python3-certbot-apache
# Выпустите сертификата для домена (укажите свой адрес)
sudo certbot --apache -d example.com -d www.example.com
Если создали самоподписанный сертификат, измените конфигурацию Apache /etc/apache2/sites-available/lbweb-client.local.conf.
# HTTPS (порт 443)
<VirtualHost *:443>
ServerName lbweb-client.local
DocumentRoot /home/user/workspace/lbweb-common/lbweb-client/public
SSLEngine on
SSLCertificateFile /etc/ssl/lbweb-client.local/lbweb-client.local.crt
SSLCertificateKeyFile /etc/ssl/lbweb-client.local/lbweb-client.local.key
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . api.php
</IfModule>
</Directory>
Alias /assets/ /home/user/workspace/lbweb-common/lbweb-client/public/assets/
<Directory /home/user/workspace/lbweb-common/lbweb-client/public/assets/>
Options None
AllowOverride None
<IfModule !mod_authz_core.c>
Order allow,deny
allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/lbweb-client-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/lbweb-client-ssl-access.log combined
</VirtualHost>
``
Откройте конфигурационный файл:
nano /etc/lanbilling/phpclient/client/appearance.ini
``
В секции [captcha] включите капчу и укажите:
hmacKey — это должна быть строка произвольной длины. ALTCHA использует hmacKey как секрет для HMAC-подписей.nonce_ttl — параметр, который определяет время жизни (Time To Live) одноразового пароля, используемого для аутентификации.Пример:
[captcha]
enabled = true
hmacKey = '00000000-ffff-ffff-ffff-000000000000'
nonce_ttl = '300'
``
Сериализуйте изменения.
/usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
``
ALTCHA включена и будет отображаться при входе в личный кабинет и при восстановлении пароля.
Есть вопросы по документации? Пожалуйста, напишите их