Instalacja i konfiguracja serwera OpenVPN oraz konfiguracja klientów w Debian 7

Instalacja i konfiguracja serwera OpenVPN oraz konfiguracja klientów w Debian 7

W tym artykule opisano, jak uzyskać IPv6 łączność na OpenVpn za pomocą Debian Linux. Proces został przetestowany Debian 7 na KVM VPS z IPv6 łączność jako serwer i komputer debian 7. Polecenia mają być uruchamiane jako root.

Zainstaluj OpenVPN w Debian

Co to jest OpenVpn?

OpenVpn to program VPN, który wykorzystuje SSL/TLS do tworzenia bezpiecznych, zaszyfrowanych połączeń VPN, do kierowania ruchu internetowego, w ten sposób zapobiegając szpiegowaniu. Otwarte VPN jest wysoce zdolne do przejrzystych przemierzających przez zapory ogniowe. W rzeczywistości, jeśli sytuacja tego wymaga, możesz uruchomić ją na tym samym porcie TCP co HTTPS (443), dzięki czemu ruch jest nierozróżnialny, a zatem praktycznie niemożliwy do zablokowania.

OpenVpn może użyć różnych metod, takich jak przedsekwowane tajne klawisze, certyfikaty lub nazwy użytkowników/hasła, aby pozwolić klientom uwierzytelnić się na serwer. OpenVPN korzysta z protokołu OpenSSL i implementuje wiele funkcji bezpieczeństwa i kontroli, takich jak uwierzytelnianie reakcji wyzwania, funkcje pojedynczego podpisania, równoważenie obciążenia i funkcje przełączania awaryjnego oraz obsługa wielu demonów.

Dlaczego warto korzystać z OpenVPN?

Pomyśl o bezpiecznej komunikacji - pomyśl OpenVpn. Jeśli nie chcesz, aby ktokolwiek szpiegował w ruchu internetowym, użyj OpenVPN, aby poprowadzić cały ruch za pomocą wysoce zaszyfrowanego, bezpiecznego tunelu.

Jest to szczególnie ważne przy łączeniu się z publicznymi sieciami Wi -Fi na lotniskach i innych miejscach. Nigdy nie możesz być pewien, kto szuka ruch. Możesz kierować ruch za pośrednictwem własnego serwera OpenVPN, aby zapobiec szpiegowaniu.

Jeśli jesteś w którymkolwiek z krajów, które rutynowo monitorują wszystkie witryny ruchu i blokowania w woli, możesz użyć OpenVPN przez port TCP 443, Aby było nie do odróżnienia od ruchu HTTPS. Możesz nawet połączyć OpenVPN z innymi strategiami bezpieczeństwa, takimi jak tunelowanie ruchu OpenVPN przez tunel SSL, aby pokonać techniki kontroli głębokich pakietów, które mogą być w stanie zidentyfikować podpisy OpenVPN.

wymagania systemowe

OpenVPN wymaga bardzo minimalnych wymagań do uruchomienia. System z 64 MB RAM I 1 GB HDD Przestrzeń wystarczy, aby uruchomić OpenVPN. OpenVPN działa na prawie wszystkich głównych systemach operacyjnych.

Instalacja i konfiguracja OpenVPN na Debian 7

Zainstaluj OpenVPN na serwerze głównym

Uruchom następujące polecenie, aby zainstalować OpenVPN.

# apt-get install OpenVpn

Domyślnie skrypty Easy-RSA są instalowane pod '/usr/share/easy-rsa/„Directory. Musimy więc skopiować te skrypty do pożądanej lokalizacji I.mi. /root/easy-rsa.

# mkdir/root/easy-rsa cp -prv/usr/share/doc/openvpn/przykłady/easy-rsa/2.0 /root /easy-rsa

Wygeneruj certyfikat CA i klucz CA

Otwórz plik 'vars„I dokonaj następujących zmian, ale przed wprowadzeniem zmian sugeruję, abyś wykonał kopię zapasową oryginalnego pliku.

# cp vars ,.orig

Korzystając z edytora tekstu, skonfiguruj wartości domyślne dla Easy-RSA. Na przykład.

Key_size = 4096 key_country = "w" key_province = "up" key_city = "noida" key_org = "home" key_email = "[e -mail chroniony]"

Tutaj używam 4096 Klucz bit. Możesz użyć 1024, 2048, 4096 Lub 8192 Bit Klucz zgodnie z żądaniem.

Wyeksportuj wartości domyślne, uruchamiając polecenie.

# źródło ./vars

Oczyść wszelkie certyfikaty, które zostały wcześniej wygenerowane.

./Wyczyść wszystko

Następnie uruchom następujące polecenie, aby wygenerować Ca certyfikat i Ca klucz.

# ./Build-CA

Wygeneruj certyfikat serwera, uruchamiając polecenie. Zastąp „nazwę serwera” swoją nazwą serwera.

# ./Build-Key-Server Server-Nazwa

Wygenerować Diffie Hellman Pem certyfikat.

# ./Build-Dh

Wygeneruj certyfikat klienta. Zastąpić „nazwę klienta” swoją nazwą klienta.

# ./Key-Key-Key-Nazwa

Wygeneruj kod HMAC.

# OpenVpn--genkey--secret/root/easy-rsa/klawisze/ta.klucz

Skopiuj certyfikaty do maszyn klienta i serwerów w następujący sposób.

  1. Upewnij się, że ca.crt jest obecny zarówno na kliencie, jak i na serwerze.
  2. ca.klucz Klucz powinien znajdować się na kliencie.
  3. Serwer wymaga serwer.crt, DH4096.pem, serwer.klucz I ta.klucz.
  4. klient.crt, klient.klucz I ta.klucz powinien być na kliencie.

Aby skonfigurować klucze i certyfikaty na serwerze, uruchom polecenia.

# mkdir -p/etc/openvpn/certs # cp -pv/root/easy -rsa/keys/ca.CRT, klucz, nazwa serwera.crt, klucz, ta.Klucz, DH4096.PEM/etc/openvpn/certs/

Konfigurowanie serwera OpenVPN

Teraz musisz skonfigurować serwer OpenVPN. Otwórz plik '/etc/openvpn/serwer.conf'. Dokonaj zmian zgodnie z opisem poniżej.

Script Security 3 Port systemowy 1194 Proto UDP Dev Tap Ca/etc/OpenVpn/certs/ca.CRT cert/etc/openvpn/certs/serwer-name.Klucz CRT/etc/openvpn/certs/serwer-name.Klucz DH/ETC/OpenVPN/Certs/DH4096.PEM TLS-Auth/etc/openvpn/certs/ta.Klucz 0 serwer 192.168.88.0 255.255.255.0 ifconfig-pool-persist ipp.TXT PUSH „REDIRECT-GATEWAY DEF1 Bypass-DHCP„ Push ”DHCP-Option DNS 8.8.8.8 „Push” DHCP-Option DNS 8.8.4.4 "KeepAlive 1800 4000 Cipher Des -ede3-CBC # Triple-Des Comp-Lzo Max-Clients 10 Użytkownik Nikt grupy Nogroup Trwałe klawisz #Log OpenVpn.log #status OpenVpn-Status.czasownik dziennika 5 Mute 20

Włącz przekazywanie IP na serwerze.

# echo 1>/proc/sys/net/ipv4/ip_forward

Uruchom następujące polecenie, aby skonfigurować OpenVPN, aby rozpocząć od rozruchu.

# aktualizacja-rc.D -f OpenVpn domyślnie

Rozpocznij usługę OpenVPN.

# Service OpenVpn restart

Zainstaluj OpenVPN na kliencie

Uruchom następujące polecenie, aby zainstalować OpenVPN na komputerze klienckim.

# apt-get install OpenVpn

Za pomocą edytora tekstu skonfiguruj konfigurację klienta OpenVPN w '/etc/openvpn/klient.conf', na kliencie. Przykładowa konfiguracja jest następująca:

Skrypt bezpieczeństwa 3 Klient systemowy zdalny VPN_SERVER_IP CA/etc/openvpn/certs/ca.CRT cert/etc/openvpn/certs/klient.Klucz CRT/etc/openvpn/certs/klient.Key Cipher Des -e3-CBC Comp-LZO TAK TAP Proto UDP TLS-Auth/Etc/OpenVpn/certs/TA.Klucz 1 Nobind Auth-Nocache Utrzymaj się Użytkownik Użytkownik Nikt Group Nogroup

Uruchom następujące polecenie, aby skonfigurować OpenVPN, aby rozpocząć od rozruchu.

# aktualizacja-rc.D -f OpenVpn domyślnie

Rozpocznij usługę OpenVPN na kliencie.

# Service OpenVpn restart

Gdy będziesz zadowolony, OpenVPN działa dobrze IPv4, Oto jak zdobyć IPv6 Praca nad OpenVPN.

Otrzymanie IPv6 praca z OpenVPN na serwerze

Dodaj następujące wiersze do końca konfiguracji serwera '/etc/openvpn/serwer.conf' plik.

Client-Connect/Etc/OpenVpn/Client-Connect.SH Client-Disconnect/Etc/OpenVpn/Client-Disconnect.cii

Te dwa skrypty budują/niszczą IPv6 tunel za każdym razem, gdy klient łączy/odłącza.

Oto treść Client-Connect.cii.

#!/bin/bash baserange = "2A00: DD80: 003d: 000c" ifconfig $ dev up IfConfig $ dev Dodaj $ baserange: 1001 :: 1/64 IP -6 sąsiad Proxy 2A00: DD80: 003D: 003D: 001: 1001: : 2 dev eth0 exit 0

Mój gospodarz mi przypisuje IPv6 adresy z 2A00: DD80: 003d: 000c ::/64 blok. Stąd używam
2A00: DD80: 003d: 000c Jak bazowa. Zmodyfikuj tę wartość zgodnie z tym, co przypisał Twój host.

Za każdym razem, gdy klient łączy się z OpenVPN, ten skrypt przypisuje adres 2A00: DD80: 003d: 000c: 1001 :: 1 jak IPv6 adres Tap0 interfejs serwera.

Ostatnia linia ustawia odkrycie sąsiada dla naszego tunelu. Dodałem IPv6 Adres strony klienta Tap0 Połączenie jako adres proxy.

Oto treść klient-disconnect.cii.

#!/bin/bash baserange = "2A00: dd80: 003d: 000c"/sbin/ip -6 addr del $ baserange :: 1/64 dev $ dev exit 0

To po prostu usuwa IPv6 Adres tunelu serwera, gdy klient się rozłącza. Zmodyfikuj odpowiednią wartość Baserange.

Spraw, aby skrypty były wykonywalne.

# chmod 700/etc/openvpn/client-connect.SH # CHMOD 700/etc/OpenVpn/Client-Disconnect.cii

Dodaj następujące wpisy do '/etc/rc.lokalne ”(możesz również zmodyfikować odpowiednie sysctls w /etc/sysctl.conf).

echo 1>/proc/sys/net/ipv6/conf/all/proxy_ndp echo 1>/proc/sys/net/ipv4/ip_forward echo 1>/proc/net/ipv6/conf/all/przekazywanie/etc/etc/ w tym.D/Firewall Stop &&/etc/init.D/Firewall Start

Te wpisy aktywują odkrywanie i przekazanie sąsiadów. Dodałem też zaporę ogniową.

Tworzyć '/etc/init.D/Firewall'i umieść następującą treść.

#!/bin/sh # Opis: Firewall ipt =/sbin/iptables ipt6 =/sbin/ip6Tables Case „1 $” na start) $ ipt -f wejście $ ipt -a eth0 -m Stan --state ustalone, powiązane -powiązane -powiązane -powiązane -powiązane -powiązane -powiązane -powiązane -powiązane - J Akceptuj $ ipt -a wejście -i eth0 -p tcp -dport 22 -J Zaakceptuj $ ipt -a wejście -i eth0 -p icmp -j akceptuj $ ipt -a input -i eth0 -p Udp - -dport 1194 - j Zaakceptuj $ ipt -a input -i tap+ -j akceptuj $ ipt -a do przodu -i tap+ -j akceptuj $ ipt -a do przodu --state ustanowione, powiązane -J akceptuj $ ipt -t -f posttrouting $ Ipt -t nat -a posttrouting -s 10.8.0.0/24 -O ETH0 -J maskaradę $ ipt -a wejście -i ETH0 -J Drop $ ipt6 -f wejście $ ipt6 -a -eth0 -m stan ustanowiony, powiązane -j akceptuj $ ipt6 -A Wejście -i ETH0 -p TCP -DPORT 22 -J Akceptuj $ ipt6 -a wejście -i ETH0 -p ICMPV6 -j Zaakceptuj $ ipt6 -a do przodu -s 2a00: DD80: 003D: 000c ::/64 -i Tap0 -O ETH0 -J Zaakceptuj $ ipt6 -A wejście -i eth0 -j upuść exit 0 ;; stop) $ ipt -f $ ipt6 -f exit 0 ;; *) Echo „Zastosowanie: /etc /init.d/Firewall start | stop "exit 1 ;; esac

Uruchomić '/etc/rc.lokalny- I rozpocznij zaporę ogniową.

# sh /etc /rc.lokalny

To uzupełnia modyfikacje po stronie serwera.

Otrzymanie IPv6 współpraca z OpenVPN na kliencie

Dodaj następujące jako ostatnie wiersze pliku konfiguracyjnego klienta ”/etc/openvpn/klient.conf'.

# Utwórz tunel IPv6 w górę/etc/openvpn/up.sh down/etc/openvpn/w dół.sh # potrzebuję tego, więc gdy klient się odłączy, mówi serwerowi jawne-exit-notify

Skrypty w górę iw dół budują/niszczą punkty końcowe klienta IPv6 połączenia Klient Tap0 za każdym razem, gdy klient łączy/odłącza się z serwerem OpenVPN lub z serwera OpenVPN.

Oto treść UP.cii.

#!/bin/bash ipv6base = "2a00: dd80: 3d: c" ifconfig $ dev up ifconfig $ dev add $ ipv6base: 1001 :: 2/64 ip -6 Dodaj domyślnie przez $ IPv6Base: 1001 :: 1 Wyjście 0

Skrypt przypisuje adres IPv6 2A00: DD80: 3D: C: 1001 :: 2 jako adres klienta IPv6 i ustawia domyślną trasę IPv6 przez serwer.

Zmodyfikuj IPv6Base, aby był taki sam jak Baserange w konfiguracji serwera.

Oto treść Down.cii.

#!/bin/bash ipv6base = "2a00: dd80: 3d: c"/sbin/ip -6 addr del $ ipv6base :: 2/64 dev $ dev/sbin/ip Set dev $ dev down/sbin/ip trasy del ::/0 przez $ ipv6base :: 1 exit 0

To po prostu usuwa adres klienta IPv6 i rozrywa trasę IPv6, gdy klient odłącza się od serwera.

Zmodyfikuj IPv6Base, aby być tym samym jak Baserange w konfiguracji serwera i spraw, aby skrypt wykonywał.

# chmod 700/etc/openvpn/up.SH # CHMOD 700/etc/OpenVpn/Down.cii

Opcjonalnie zmodyfikuj '/etc/resolv.Conf 'i dodaj serwery nazw IPv6 Google dla rozdzielczości DNS.

Nazwarz 2001: 4860: 4860 :: 8888 Nazwarz 2001: 4860: 4860 :: 8844

Uruchom ponownie OpenVPN na serwerze, a następnie połącz się z nim od klienta. Powinieneś być połączony. Odwiedź test-IPV6.com, aby zobaczyć, że Twoja łączność IPv6 nad OpenVPN działa.

Linki referencyjne

Strona główna OpenVPN

Źródło: Stavrowski