Двофакторна автентикација во OpenVPN со бот на Telegram

Написот опишува поставување на сервер OpenVPN за да овозможи двофакторна автентикација со бот на Telegram што ќе испрати барање за потврда при поврзување.

OpenVPN е добро познат, бесплатен VPN сервер со отворен код, кој нашироко се користи за организирање безбеден пристап на вработените до внатрешните организациски ресурси.

Како автентикација за поврзување со VPN сервер, обично се користи комбинација од клуч и кориснички најава/лозинка. Во исто време, лозинката зачувана на клиентот го претвора целиот сет во единствен фактор кој не обезбедува соодветно ниво на безбедност. Напаѓачот, откако доби пристап до клиентскиот компјутер, добива и пристап до серверот VPN. Ова е особено точно за врски од машини кои работат со Windows.

Користењето на вториот фактор го намалува ризикот од неовластен пристап за 99% и воопшто не го комплицира процесот на поврзување за корисниците.

Дозволете ми да направам резервација веднаш: за имплементација ќе треба да поврзете сервер за автентикација од трета страна multifactor.ru, во кој можете да користите бесплатна тарифа за вашите потреби.

Принцип на работа

  1. OpenVPN го користи приклучокот openvpn-plugin-auth-pam за автентикација
  2. Приклучокот ја проверува лозинката на корисникот на серверот и го бара вториот фактор преку протоколот RADIUS во услугата Multifactor
  3. Мултифактор испраќа порака до корисникот преку бот на Telegram со што го потврдува пристапот
  4. Корисникот го потврдува барањето за пристап во разговорот на Telegram и се поврзува со VPN

Инсталирање на OpenVPN сервер

Има многу статии на Интернет кои го опишуваат процесот на инсталирање и конфигурирање на OpenVPN, така што нема да ги дуплираме. Ако ви треба помош, на крајот од статијата има неколку линкови до упатства.

Поставување на Multifactor

Оди до Мултифакторски систем за контрола, одете во делот „Ресурси“ и креирајте нова VPN.
Откако ќе се создаде, ќе имате две опции на располагање: NAS-идентификатор и Споделена тајна, тие ќе бидат потребни за последователна конфигурација.

Двофакторна автентикација во OpenVPN со бот на Telegram

Во делот „Групи“, одете во поставките на групата „Сите корисници“ и отстранете го знамето „Сите ресурси“, така што само корисниците на одредена група можат да се поврзат со серверот VPN.

Направете нова група „Корисници на VPN“, оневозможете ги сите методи за автентикација освен Телеграма и означете дека корисниците имаат пристап до креираниот ресурс на VPN.

Двофакторна автентикација во OpenVPN со бот на Telegram

Во делот „Корисници“, креирајте корисници кои ќе имаат пристап до VPN, додајте ги во групата „Корисници на VPN“ и испратете им врска за конфигурирање на вториот фактор за автентикација. Корисничкото најавување мора да одговара на најавувањето на серверот VPN.

Двофакторна автентикација во OpenVPN со бот на Telegram

Поставување на OpenVPN сервер

Отворете ја датотеката /etc/openvpn/server.conf и додадете додаток за автентикација со помош на PAM-модулот

plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

Приклучокот може да се наоѓа во директориумот /usr/lib/openvpn/plugins/ или /usr/lib64/openvpn/plugins/ во зависност од вашиот систем.

Следно, треба да го инсталирате модулот pam_radius_auth

$ sudo yum install pam_radius

Отворете ја датотеката за уредување /etc/pam_radius.conf и наведете ја адресата на серверот RADIUS на Multifactor

radius.multifactor.ru   shared_secret   40

каде што:

  • radius.multifactor.ru — адреса на серверот
  • shared_secret - копирајте од соодветниот параметар за поставки за VPN
  • 40 секунди - тајмаут за чекање барање со голема маржа

Останатите сервери мора да се избришат или да се коментираат (ставете точка-запирка на почетокот)

Следно, креирајте датотека за openvpn од типот на услуга

$ sudo vi /etc/pam.d/openvpn

и напишете го во

auth    required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth    substack     password-auth
account substack     password-auth

Првата линија го поврзува PAM модулот pam_radius_auth со параметрите:

  • skip_passwd - го оневозможува преносот на лозинката на корисникот до серверот RADIUS Multifactor (тој не треба да го знае).
  • client_id — заменете го [NAS-Identifier] со соодветниот параметар од поставките за ресурси на VPN.
    Сите можни параметри се опишани во документација за модулот.

Втората и третата линија вклучуваат системска верификација на најавувањето, лозинката и корисничките права на вашиот сервер заедно со вториот фактор за автентикација.

Рестартирајте го OpenVPN

$ sudo systemctl restart openvpn@server

Поставување на клиентот

Вклучете барање за корисничко најавување и лозинка во конфигурациската датотека на клиентот

auth-user-pass

Проверка

Стартувајте го клиентот OpenVPN, поврзете се на серверот, внесете го вашето корисничко име и лозинка. Телеграм ботот ќе испрати барање за пристап со две копчиња

Двофакторна автентикација во OpenVPN со бот на Telegram

Едно копче дозволува пристап, второто го блокира.

Сега можете безбедно да ја зачувате вашата лозинка на клиентот; вториот фактор сигурно ќе го заштити вашиот OpenVPN сервер од неовластен пристап.

Ако нешто не функционира

Секвенцијално проверете дали ништо не сте пропуштиле:

  • Има корисник на серверот со OpenVPN со поставена лозинка
  • Серверот има пристап преку UDP порта 1812 до адресата radius.multifactor.ru
  • Параметрите NAS-Identifier и Shared Secret се правилно наведени
  • Создаден е корисник со исто најавување во системот Multifactor и добил пристап до корисничката група VPN
  • Корисникот го конфигурирал методот за автентикација преку Telegram

Ако претходно не сте поставиле OpenVPN, прочитајте детална статија.

Инструкциите се направени со примери на CentOS 7.

Извор: www.habr.com

Додадете коментар