ProHoster > Двуфакторно удостоверяване в OpenVPN с Telegram бот
Двуфакторно удостоверяване в OpenVPN с Telegram бот
Статията описва как да конфигурирате OpenVPN сървъра, за да активирате двуфакторно удостоверяване с бот на Telegram, който ще изпрати заявка за потвърждение при свързване.
OpenVPN е добре познат, безплатен VPN сървър с отворен код, който се използва широко за осигуряване на сигурен достъп на служителите до вътрешните ресурси на организацията.
Като правило комбинация от ключ и потребителско име / парола се използва като удостоверяване за свързване към VPN сървър. В същото време паролата, записана на клиента, превръща целия набор в един фактор, който не осигурява необходимото ниво на сигурност. Нападателят, след като получи достъп до клиентски компютър, получава достъп и до VPN сървъра. Това важи особено за свързване от машини, работещи под Windows.
Използването на втория фактор намалява риска от неоторизиран достъп с 99% и изобщо не усложнява процеса на свързване за потребителите.
Веднага ще направя резервация, че за изпълнение ще трябва да свържете сървър за удостоверяване на трета страна multifactor.ru, в който можете да използвате безплатна тарифа за вашите нужди.
Принцип на действие
OpenVPN използва приставката openvpn-plugin-auth-pam за удостоверяване
Плъгинът проверява паролата на потребителя на сървъра и изисква втория фактор чрез RADIUS протокола в услугата Multifactor
Мултифакторът изпраща съобщение до потребителя чрез Telegram бот с потвърждение за достъп
Потребителят потвърждава заявката за достъп в чата на Telegram и се свързва с VPN
Инсталиране на OpenVPN сървър
В интернет има много статии, описващи процеса на инсталиране и конфигуриране на OpenVPN, така че няма да ги дублираме. Ако имате нужда от помощ, в края на статията има няколко връзки към уроци.
Многофакторна настройка
Отидете на Многофакторна система за управление, отидете на Ресурси и създайте нов VPN.
След създаването ще имате две опции: NAS ID и Споделена тайна, те ще са необходими за последваща конфигурация.
В секцията „Групи“ отидете на настройките на групата „Всички потребители“ и премахнете отметката от флага „Всички ресурси“, така че само потребителите от определена група да могат да се свързват към VPN сървъра.
Създайте нова група „VPN потребители“, деактивирайте всички методи за удостоверяване с изключение на Telegram и посочете, че потребителите имат достъп до създадения VPN ресурс.
В секцията „Потребители“ създайте потребители, които ще имат достъп до VPN, добавете „VPN потребители“ към групата и им изпратете връзка за настройка на втория фактор за удостоверяване. Потребителското име трябва да съвпада с това на VPN сървъра.
Настройване на OpenVPN сървър
Отворете файла /etc/openvpn/server.conf и добавете плъгин за удостоверяване с помощта на PAM модула
първият ред свързва модула pam_radius_auth PAM с параметри:
skip_passwd - деактивира предаването на паролата на потребителя към Multifactor RADIUS сървъра (той не трябва да знае).
client_id - замества [NAS-Identifier] със съответния параметър от настройките на VPN ресурса.
Всички възможни варианти са описани в документация за модула.
Вторият и третият ред включват системна проверка на данните за влизане, паролата и потребителските права на вашия сървър заедно с втория фактор за удостоверяване.
Рестартирайте OpenVPN
$ sudo systemctl restart openvpn@server
Настройка на клиента
Включете искане за потребителско име и парола в конфигурационния файл на клиента
auth-user-pass
Проверка
Стартирайте клиента за OpenVPN, свържете се със сървъра, въведете вашето потребителско име и парола. Ботът на Telegram ще получи заявка за достъп с два бутона
Единият бутон позволява достъп, вторият блокира.
Сега можете безопасно да запазите паролата на клиента, вторият фактор ще защити надеждно вашия OpenVPN сървър от неоторизиран достъп.
Ако нещо не работи
Постоянно проверявайте дали не сте пропуснали нещо:
Има потребител със зададена парола на сървъра с OpenVPN
Достъп от сървъра през UDP порт 1812 до адрес radius.multifactor.ru
Параметрите NAS-Identifier и Shared Secret са правилни
Потребител със същото име за вход е създаден в системата Multifactor и му е предоставен достъп до VPN потребителската група
Потребителят е конфигурирал метода за удостоверяване чрез Telegram
Ако не сте настройвали OpenVPN преди, прочетете разширена статия.