Przejdź do głównej zawartości

Zainstaluj i skonfiguruj OpenVPN na Debianie 8



051f9950
OpenVPN to pakiet oprogramowania, który pozwala chronić ruch użytkownika przed "przechwyceniem", zapewniając szyfrowaną transmisję danych z urządzenia klienta do serwera z zainstalowanym OpenVPN. Doskonały do ​​korzystania z publicznych punktów dostępu do Wi-Fi, w których informacje mogą być przechwytywane przez strony trzecie. Lub w przypadku, gdy twoje IP jest zablokowane w pewnej witrynie i musisz bezpiecznie ominąć to ograniczenie.



Oprócz instalowania i konfigurowania OpenVPN na serwerze, musisz mieć możliwość skonfigurowania klienta pod kątem dostępu z komputera, na którym system Windows będzie używany jako system operacyjny.

Używając standardowego menedżera pakietów, zainstaluj openvpn.

  # aptitude install openvpn 

Treść artykułu:

Tworzenie certyfikatów

OpenVPN koniecznie wymaga generowania certyfikatów dla serwera i klientów. Jest to logiczne, ponieważ połączenie klienta z serwerem musi być szyfrowane.



Przejdź do folderu openvpn:

  # cd / etc / openvpn 

Będziemy generować klucze za pomocą easy-rsa.

Utwórz folder z plikami konfiguracyjnymi i linkami do skryptów generujących certyfikaty:


  # make-cadir rsa
 # cd rsa 

Otwórz plik konfiguracyjny vars i zmień parametry:

  eksport KEY_COUNTRY = "US"
 eksport KEY_PROVINCE = "CA"
 eksport KEY_CITY = "SanFrancisco"
 eksport KEY_ORG = "Fort-Funston"
 export KEY_EMAIL = "me@myhost.mydomain"

KEY_COUNTRY - wprowadź kod kraju (RU, UA itp.);
KEY_PROVINCE - ten przedmiot nie jest istotny, jeśli nie mieszkasz w Stanach Zjednoczonych. :) Możesz zastąpić XX;
KEY_CITY - Twoje miasto, w którym mieszkasz;
KEY_EMAIL - Twój adres e-mail.

Odkomentuj także eksportowaną linię KEY_CN, dla której wartości należy podać nazwę serwera:

  export KEY_CN = "example.com" 

Wszystkie zmienne są wypełnione łacińskim.

Zapisz plik i uruchom go:

  #  vars 

Następnie rozpocznij usuwanie starych certyfikatów:

  # ./clean-all 

Utwórz certyfikat główny:

  # ./build-ca 

Jeśli podczas generowania certyfikatu głównego wystąpi błąd error:0E065068:configuration file routines:STR_COPY:variable has no value:conf_def.c:618:line 198 , dodaj wiersz do pliku vars :

  export KEY_ALTNAMES = "coś" 

A następnie ponownie uruchom poprzednie polecenia :. vars, ./clean-all, ./build-ca.

Następnym krokiem jest utworzenie klucza i certyfikatu serwera.

  Serwer # ./build-key-server 

Następnie utwórz certyfikat i klucz dla klienta:

  Klient. ./build-key 

Uwaga: dla każdego klienta należy wygenerować własny certyfikat i klucz. Wystarczy podać różne nazwy (zamiast klienta) i zmienić ścieżki do nich w plikach konfiguracyjnych. Jednocześnie można zabezpieczyć klucze klientów hasłem, w tym celu użyj polecenia build-key-pass zamiast klucza kompilacji.

Następnie musisz utworzyć klucz Diffiego-Hellmana, aby móc korzystać z Forward Secrecy:

  # ./build-dh 

I klucz do uwierzytelnienia tls:

  # openvpn --genkey --secret /etc/openvpn/ta.key 

Teraz musisz skopiować certyfikaty i klucze serwera do folderu ustawień OpenVPN:

  # klucze cp / klucze ca.crt / klucze serwera.crt / klucze serwera.key / dh2048.pem / etc / openvpn / 

A także nałożyć na nich prawa, które pozwalają na czytanie i zmianę tylko dla ich właściciela.

  # chmod 0600 /etc/openvpn/ca.crt /etc/openvpn/server.crt /etc/openvpn/server.key /etc/openvpn/dh2048.pem /etc/openvpn/ta.key 

Pamiętaj, aby skopiować do komputera, na przykład na pulpit, z folderu kluczy , kluczy niezbędnych do połączenia klienta: client.crt , client.key , ca.crt , ta.key .

To kończy proces przygotowania certyfikatu.

Konfiguracja serwera

W katalogu / usr / share / doc / openvpn / znajduje się przykładowy plik do konfiguracji serwera Openvpn. Skopiuj go do katalogu / etc / openvpn / i rozpakuj:

  cd / etc / openvpn; cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz / etc / openvpn /; gunzip server.conf.gz 

Teraz rozważymy niezbędne parametry do działania openvpn.

Port, na którym Openvpn będzie akceptował połączenia. Domyślnie 1194. Polecam zmienić to, aby to ukryć. Możesz nawet ukryć openvpn pod serwerem WWW, określając port 80.

  port 20100 

Zarejestruj ścieżki do plików certyfikatów i klucza serwera.

  ca ca.crt
 cert server.crt
 klucz server.key 

Ścieżka do klucza Diffie-Hellman.

  dh dh2048.pem 

Można określić obie ścieżki względem katalogu / etc / openvpn (jeśli pliki są w nim umieszczone) i wartości bezwzględnych.

Znajdź i odkomentuj linię:

  push "redirect-gateway def1 bypass-dhcp" 

Potrzebny jest dostęp do Internetu za pośrednictwem serwera OpenVPN. Jeśli nie zostanie odkomentowany, dostępne będą tylko komputery w sieci.

Musisz również określić serwery DNS do łączenia klientów.

  push "dhcp-option DNS 213.183.57.55"
 push "dhcp-option DNS 87.98.175.85" 

W zależności od lokalizacji serwera, możesz pobrać inne serwery dns, na przykład na projekcie OpenNIC .

Następnie znajdź i odkomentuj parametr tls-auth.

  tls-auth ta.key 0 

Uwaga! W ustawieniach klienta ostatnia cyfra tego parametru powinna zostać zastąpiona przez 1 - tls-auth ta.key 1 .

Poniżej w pliku konfiguracyjnym znajduje się lista dostępnych szyfrów. Odkomentuj szyfr AES-128-CBC .

  szyfr AES-128-CBC # AES 

W razie potrzeby można go zastąpić AES-256-CBC . W pliku konfiguracyjnym klienta szyfr musi być identyczny z szyfrem serwera.

Dodaj także parametr auth. Domyślnie 160-bitowe klucze sha1 są używane do uwierzytelniania, ale algorytm sha1 jest rozpoznawany jako podatny na ataki. Podczas określania następującego parametru zostaną użyte klucze SHA512 o długości 512 bitów.

  auth SHA512 

Oprócz parametru tls-version-min, który określa używaną wersję tls. W tym przypadku najnowsza wersja to 1.2. Uwaga! Menedżer sieci nie obsługuje (w czasie pisania) tego parametru. Dlatego jeśli planujesz połączyć się z serwerem VPN za pośrednictwem Menedżera sieci, ten parametr NIE jest określony w ustawieniach serwera.

  tls-version-min 1.2 

OpenVPN nie powinien być uruchamiany jako root. Dlatego odkomentuj linie:

  użytkownik nikt
 grupa nogroup 

Włączenie logów dla OpenVPN nie będzie zbyteczne Szczególnie przy pierwszym użyciu po dostrojeniu w poszukiwaniu błędów itp.

  log /var/log/openvpn.log 

Wszystkie pozostałe parametry pliku konfiguracyjnego /etc/openvpn/server.conf pozostawiają wartości domyślne. To kończy konfigurację serwera OpenVPN.

Aktywuj openvpn za pomocą polecenia:

  # systemctl enable openvpn 

I uruchom ponownie:

  # service openvpn restart 

Przydatne jest również sprawdzenie dziennika pod kątem błędów.

Przekierowuj ruch przez OpenVPN

Aby mieć dostęp do Internetu przez serwer openvpn, musisz coś dla tego zrobić.

1. Skonfiguruj sysctl

W konsoli uruchom polecenie:

  # sysctl net.ipv4.ip_forward 

Jeśli wynik polecenia jest równy net.ipv4.ip_forward = 1 , nie ma potrzeby zmiany czegokolwiek. Jeśli wartość zmiennej wynosi 0, do pliku /etc/sysctl.conf należy dodać następujący wiersz:

  net.ipv4.ip_forward = 1 

I ponownie załaduj reguły za pomocą polecenia:

  # sysctl -p 

2. Skonfiguruj iptables

Alternatywnie uruchom następujące polecenia w konsoli:

  # iptables -A FORWARD -i eth0 -o tun0 -m stan --stan ESTABLISHED, POWIĄZANY -j AKCEPTUJ
 # iptables -A FORWARD -s 10.8.0.0/24 -o eth0 -j AKCEPTUJ
 # iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 

W ten sposób umożliwiamy ruch przez serwer OpenVPN dla podsieci 10.8.0.0 w granicach już ustanowionych połączeń.

Jeśli klient openvpn musi przypisać określony zewnętrzny adres IP serwera, to zamiast ostatniego polecenia z listy poprzednich dla iptables, musisz uruchomić to:

  -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT - do-źródła 127.0.0.1 

Gdzie po parametrze "to -source" powinieneś określić zewnętrzny serwer IP

Klient OpenVPN w systemie Windows

Rozpoczęcie konfigurowania klienta Openvpn w systemie Windows. Tutaj wszystko jest proste: pobierz klienta z oficjalnej strony, zainstaluj, utwórz plik konfiguracyjny i uruchom go.

Należy zauważyć, że konieczne jest uruchomienie openvpn w systemie Windows z prawami administratora, jeśli kontrola kont jest aktywna.

Jeśli nie zmieniłeś ścieżki instalacji, przykłady plików konfiguracyjnych na twoim komputerze znajdują się w katalogu C: \ Program Files \ OpenVPN \ sample-config . Skopiuj plik client.ovpn stąd i umieść go w katalogu C: \ Program Files \ OpenVPN \ config .

Pamiętasz certyfikaty stworzone dla klienta? Powinny być również pobrane z serwera i skopiowane do tego katalogu.

Otwórz plik konfiguracyjny client.ovpn i znajdź zdalny parametr my-server-1 1194 . Zamiast mojego serwera określ adres IP lub nazwę domeny swojego serwera. Następnie port, który zmieniliśmy wcześniej. W rezultacie linia może wyglądać tak:

  zdalny 192.168.0.1 20100 

Następnie należy podać ścieżkę do certyfikatów wygenerowanych na serwerze. Dla każdego klienta tworzony jest klucz o unikalnej nazwie, który powinien być wskazany poniżej, zamiast klienta .

  ca ca.crt
 cert client.crt
 klucz client.key 

Powinieneś także odkomentować parametr, który określa ścieżkę do klucza Tls.

  tls-auth ta.key 1 

Wcześniej było już powiedziane, że ostatnia cyfra na serwerze powinna wynosić 0, na kliencie - 1.

A ostatnie parametry to szyfry zainstalowane na serwerze.

  szyfr AES-128-CBC
 auth SHA512
 tls-version-min 1.2 

To wszystko, co jest wymagane do skonfigurowania klienta. Spróbuj uruchomić klienta OpenVPN i połączyć się z serwerem. Niezbędne informacje o połączeniu będą wyświetlane w oknie GUI openvpn.

OpenVPN z NetworkManager

Zainstaluj interfejs graficzny dla Menedżera sieci.

  # aptitude install network-manager-openvpn-gnome 

I uruchom ponownie.

  # restart restartu menedżera sieci usług 

Kopiujemy certyfikaty wygenerowane dla klienta do dowolnego folderu na komputerze. Na przykład w /home/user/.openvpn/.

Kliknij prawym przyciskiem myszy na ikonę menedżera sieci, wybierz element "zmień połączenia", dodaj nowe połączenie typu "OpenVPN".

добавить новое подключение network manager

Określ:

  • Nazwa połączenia
  • Brama (domena lub serwer IP)
  • Typ: Certyfikaty

Certyfikat użytkownika to certyfikat, który wygenerowaliśmy na początku dla klienta (client.crt).
Certyfikat CA - plik ca.crt.
Klucz prywatny to klucz klienta (client.key).

openvpn новое соединение

Kliknij przycisk "Zaawansowane". W oknie, które zostanie otwarte, w zakładce "Ogólne" będziesz musiał zmienić kilka pozycji.

  • Użyj innego portu bramy (jeśli podczas konfigurowania serwera określono niestandardowy)
  • Użyj kompresji Lzo

Przejdź na kartę "Zabezpieczenia". Wybierz szyfr, jak w ustawieniach serwera. Jako wartość parametru uwierzytelniania hmac należy podać algorytm, tak jak w wartości auth serwera. W artykule wybraliśmy SHA512.

Otwórz kartę Uwierzytelnianie TLS i zaznacz następujące elementy:

  • Zweryfikuj peer ...
  • Użyj dodatkowego uwierzytelnienia TLS

Dla ostatniego parametru określ ścieżkę do pliku ta.key i wybierz 1. jako kierunek klucza z listy rozwijanej, podobnie jak plik konfiguracyjny dla systemu Windows.

Zapisz połączenie i spróbuj się połączyć. :)

Na wszelki wypadek wyglądamy, że NM pisze podczas łączenia się z logiem systemu:

  # tail -f / var / log / syslog 


Jak oceniasz artykuł?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 ( 7 ocen, średnia: 5,00 na 5)
Ładowanie ...

” 14 komentarzy " Instalacja i konfiguracja OpenVPN na Debianie 8 "

  1. Autor taki jak ja nie próbował debugować, aby zrozumieć, dlaczego moi klienci nie mogą się połączyć, openvpn nie tworzy logów! powiedz mi, co robić!

    1. Musisz więc sprawdzić logi klientów. GUI OpenVPN taki log koniecznie prowadzi. Kliknij prawym przyciskiem myszy -> pokaż log.

      Być może brakuje jakiegoś przedmiotu w instrukcjach ...

  2. Dzięki, ale jak się okazało, konieczne było zrobienie tego #openvpn /opt/vp/vp.conf, a aplikacja podpięła plik konfiguracyjny - logi poszły - sprawdziłem wszystko i uczyniłem vpn robotnikiem.

    Świadomy autor podręcznika manualnego pyta cię. Jak zrobić tunel między serwerem w Debianie a Mikrotikom. Połącz ich sieć lokalną. 2 apartamenty.

    1. Na moim smartfonie z Androidem korzystam z oficjalnego klienta od dewelopera Openvpn - "Openvpn connect" https://play.google.com/store/apps/details?id=net.openvpn.openvpn

      Jest dość łatwy do skonfigurowania. Wygenerowane pliki klienta muszą zostać przesłane do dowolnego folderu na dysku flash telefonu. Następnie uruchom Openvpn Connect, wybierz "Importuj" z menu, a następnie "Importuj profil z karty SD". Otworzy się menedżer plików, w którym musisz wybrać plik * .ovpn, kliknij przycisk "Wybierz". Po potwierdzeniu pomyślnego zaimportowania na ekranie pojawi się komunikat "Profil zaimportowany".

      Aby się połączyć, naciśnij przycisk "Połącz". To wszystko. :)

      Nie wiem o innych klientach, ale ten działa świetnie.

      PS Jeśli planujesz połączyć się jednocześnie z komputera i telefonu, to dla tego ostatniego powinieneś wygenerować swój własny klucz i certyfikat.

  3. upd.
    Klauzula 2 postanowiła zainstalować prawa do klucza client.key (najwyraźniej najpierw go przeoczyłem). + konieczne było jawne ustawienie typu połączenia TCP i określenie typu adaptera - TAP / TUN

  4. Wszystko ustawiam zgodnie z instrukcjami, ale jest taki problem:
    Klient łączy się z serwerem, ale nie ma Internetu. Klient wysyła sygnał ping zarówno do serwera VPN 10.8.0.1, jak i do serwera IP dedykowanego. Z samego serwera strony zewnętrzne reagują bez problemów. Okazuje się, że pies jest pochowany gdzieś w IPtables i ip.frwarding. Jakieś myśli? Czy to może szybko poradzić, niż poradzić sobie z tym lasem?

    1. Konieczne jest określenie innych zasad routingu
      iptables -t nat -A POSTROUTING -o venet0 -j SNAT -to IP_ADDRESS_Your_SERVER
      iptables -A FORWARD -i venet0 -o tun0 -m state-state POWIĄZANE, USTAWIONE -j AKCEPTUJĘ
      iptables -A FORWARD -i tun0 -o venet0 -j AKCEPTUJ

Dodaj komentarz

Twój e-mail nie zostanie opublikowany.