Включить капчу ALTCHA для входа в личный кабинет

Чтобы защитить пароли ваших абонентов от подбора, подключите ALTCHA. Чтобы войти в личный кабинет, абоненту нужно будет пройти капчу. Также абоненту нужно будет пройти её при восстановлении пароля.

Чтобы включить ALTCHA в личном кабинете, выполните следующие шаги.

Настроить apache для https

  1. Выпустите сертификат. Это можно сделать двумя способами: создать самоподписанный сертификат или использовать 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
      
      
      
  2. Если создали самоподписанный сертификат, измените конфигурацию 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>
    

    ``

Настроить ALTCHA

  1. Откройте конфигурационный файл:

    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'
    

    ``

  2. Сериализуйте изменения.

    /usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
    

    ``

ALTCHA включена и будет отображаться при входе в личный кабинет и при восстановлении пароля.