ProHoster > Uwierzytelnianie dwuskładnikowe w OpenVPN z botem Telegram
Uwierzytelnianie dwuskładnikowe w OpenVPN z botem Telegram
W artykule opisano konfigurację serwera OpenVPN w celu umożliwienia uwierzytelniania dwuskładnikowego za pomocą bota Telegramu, który wyśle prośbę o potwierdzenie podczas połączenia.
OpenVPN to dobrze znany, bezpłatny serwer VPN typu open source, który jest szeroko stosowany do organizowania bezpiecznego dostępu pracowników do wewnętrznych zasobów organizacji.
Do uwierzytelnienia połączenia z serwerem VPN zwykle używana jest kombinacja klucza i loginu/hasła użytkownika. Jednocześnie hasło przechowywane na kliencie zamienia cały zestaw w jeden czynnik, który nie zapewnia odpowiedniego poziomu bezpieczeństwa. Osoba atakująca uzyskawszy dostęp do komputera klienckiego, uzyskuje także dostęp do serwera VPN. Dotyczy to szczególnie połączeń z komputerów z systemem Windows.
Zastosowanie drugiego współczynnika zmniejsza ryzyko nieuprawnionego dostępu o 99% i wcale nie komplikuje użytkownikom procesu łączenia.
Pozwól, że dokonam rezerwacji od razu: w celu wdrożenia będziesz musiał podłączyć serwer uwierzytelniający innej firmy multifactor.ru, w którym możesz skorzystać z bezpłatnej taryfy dla swoich potrzeb.
Zasada działania
OpenVPN używa wtyczki openvpn-plugin-auth-pam do uwierzytelniania
Wtyczka sprawdza hasło użytkownika na serwerze i żąda drugiego czynnika poprzez protokół RADIUS w usłudze Multifactor
Multifactor wysyła do użytkownika wiadomość za pośrednictwem bota Telegramu potwierdzającą dostęp
Użytkownik potwierdza żądanie dostępu na czacie Telegramu i łączy się z VPN
Instalacja serwera OpenVPN
W Internecie można znaleźć wiele artykułów opisujących proces instalacji i konfiguracji OpenVPN, dlatego nie będziemy ich powielać. Jeśli potrzebujesz pomocy, na końcu artykułu znajduje się kilka linków do samouczków.
Konfigurowanie wieloczynnikowego
Idź do Wieloczynnikowy system sterowania, przejdź do sekcji „Zasoby” i utwórz nową sieć VPN.
Po utworzeniu będziesz mieć do dyspozycji dwie opcje: Identyfikator NAS и Wspólny sekret, będą one wymagane do późniejszej konfiguracji.
W sekcji „Grupy” przejdź do ustawień grupy „Wszyscy użytkownicy” i usuń flagę „Wszystkie zasoby”, aby z serwerem VPN mogli łączyć się tylko użytkownicy określonej grupy.
Utwórz nową grupę „Użytkownicy VPN”, wyłącz wszystkie metody uwierzytelniania z wyjątkiem Telegramu i wskaż, że użytkownicy mają dostęp do utworzonego zasobu VPN.
W sekcji „Użytkownicy” utwórz użytkowników, którzy będą mieli dostęp do VPN, dodaj ich do grupy „Użytkownicy VPN” i wyślij im link umożliwiający skonfigurowanie drugiego stopnia uwierzytelnienia. Login użytkownika musi być zgodny z loginem na serwerze VPN.
Konfigurowanie serwera OpenVPN
Otwórz plik /etc/openvpn/server.conf i dodaj wtyczkę do uwierzytelniania za pomocą modułu PAM
Pierwsza linia łączy moduł PAM pam_radius_auth z parametrami:
skip_passwd - wyłącza transmisję hasła użytkownika do serwera RADIUS Multifactor (nie musi on go znać).
client_id — zamień [NAS-Identifier] na odpowiedni parametr z ustawień zasobów VPN.
Wszystkie możliwe parametry opisano w dokumentacja modułu.
Druga i trzecia linia obejmuje systemową weryfikację loginu, hasła i uprawnień użytkownika na Twoim serwerze wraz z drugim czynnikiem uwierzytelniającym.
Uruchom ponownie OpenVPN
$ sudo systemctl restart openvpn@server
Konfiguracja klienta
Dołącz żądanie podania loginu i hasła użytkownika do pliku konfiguracyjnego klienta
auth-user-pass
Проверка
Uruchom klienta OpenVPN, połącz się z serwerem, wprowadź swoją nazwę użytkownika i hasło. Bot Telegramu wyśle prośbę o dostęp za pomocą dwóch przycisków
Jeden przycisk umożliwia dostęp, drugi go blokuje.
Teraz możesz bezpiecznie zapisać swoje hasło na kliencie, a drugi czynnik niezawodnie ochroni Twój serwer OpenVPN przed nieautoryzowanym dostępem.
Jeśli coś nie działa
Sprawdź po kolei, czy niczego nie przeoczyłeś:
Na serwerze znajduje się użytkownik z OpenVPN z ustawionym hasłem
Serwer ma dostęp poprzez port UDP 1812 do adresu Radia.multifactor.ru
Parametry NAS-Identifier i Shared Secret są określone poprawnie
W systemie Multifactor został utworzony użytkownik o tym samym loginie i uzyskał dostęp do grupy użytkowników VPN
Użytkownik skonfigurował metodę uwierzytelniania za pośrednictwem Telegramu