OpenVPN - tylko uwierzytelnianie hasła

11

Korzystając z klienta OpenVPN dla systemu Windows, mogę zalogować się do serwera OpenVPN przy użyciu tylko nazwy użytkownika i hasła. Nie mogę wymyślić, jak sprawić, by to samo stało się w Ubuntu. Wydaje się, że wymagany jest jakiś certyfikat.

Masz pomysł, jak uwierzytelnić się na serwerze OpenVPN, podając tylko nazwę użytkownika i hasło?

kbuilds
źródło

Odpowiedzi:

5

Możesz uwierzytelnić się przy użyciu nazwy użytkownika / hasła doskonale bez konieczności posiadania certyfikatu serwera / urzędu certyfikacji. Jednak zdecydowanie zalecam skonfigurowanie go w celu weryfikacji go za pomocą certyfikatu CA, aby zapobiec atakom Man-in-the-Middle.

Bez weryfikacji serwera każdy może podszyć się pod Twój serwer OpenVPN i zaakceptować tylko twoją nazwę użytkownika / hasło. Wyniki:

  • Atakujący może przechwycić cały ruch. Ponieważ nie weryfikujesz serwera, z którym się łączysz, każdy może twierdzić, że jest twoim serwerem w sieci publicznej (lub sieci prywatnej kontrolowanej przez atakującego).
  • Atakujący zna Twoją kombinację nazwy użytkownika i hasła. Bardzo, bardzo źle, jeśli użyjesz tego samego hasła również do innych celów.

W Network Managerze działa dobrze bez certyfikatu CA, jak pokazano poniżej, ale nie używaj go w ten sposób! Jeśli nie używasz żadnego certyfikatu serwera / urzędu certyfikacji w systemie Windows, jesteś naprawdę podatny na powyższe ataki.

wprowadź opis zdjęcia tutaj

gertvdijk
źródło
Nie działa na Ubuntu 16.04. Przycisk „Zapisz” jest wyłączony, dopóki nie wybierzesz certyfikatu
Leo
1
@ leo Och, to bardzo dobra wiadomość. Zapobiega to jeszcze jednemu przypadkowi niepewnych konfiguracji! :-)
gertvdijk
3

Znalazłem odpowiedź tutaj: http://openvpn.net/index.php/open-source/documentation/howto.html#auth

Pamiętaj, że nadal musisz mieć certyfikat serwera

Użycie uwierzytelnienia nazwy użytkownika / hasła jako jedynej formy uwierzytelnienia klienta

Domyślnie użycie uwierzytelniania użytkownika-uwierzytelnienia lub wtyczki sprawdzającej nazwę użytkownika / hasło na serwerze umożliwi podwójne uwierzytelnianie, wymagając, aby uwierzytelnienie klienta i certyfikatu klienta oraz nazwy użytkownika / hasła zakończyło się powodzeniem.

Z punktu widzenia bezpieczeństwa jest to odradzane, ale można również wyłączyć korzystanie z certyfikatów klienta i wymusić tylko uwierzytelnianie nazwy użytkownika / hasła. Na serwerze:

klient-certyfikat-niewymagany Takie konfiguracje zwykle powinny również ustawiać:

nazwa-użytkownika-jako-nazwa-pospolita, która powie serwerowi, aby używał nazwy użytkownika do celów indeksowania, ponieważ użyłaby nazwy pospolitej klienta, który uwierzytelniał się za pomocą certyfikatu klienta.

Zauważ, że klient-certyfikat-nie-wymagany nie wyeliminuje potrzeby posiadania certyfikatu serwera, więc klient łączący się z serwerem, który używa klienta-certyfikat-nie-wymagany, może usunąć certyfikat i kluczowe wytyczne z pliku konfiguracji klienta, ale nie dyrektywa ca, ponieważ klient musi zweryfikować certyfikat serwera.

ruX
źródło