Instalacja i konfiguracja serwera OpenVPN oraz konfiguracja klientów w Debian 7
- 2561
- 800
- Juliusz Sienkiewicz
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 DebianCo 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.
- Upewnij się, że ca.crt jest obecny zarówno na kliencie, jak i na serwerze.
- ca.klucz Klucz powinien znajdować się na kliencie.
- Serwer wymaga serwer.crt, DH4096.pem, serwer.klucz I ta.klucz.
- 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
- « Terminal Nautilus Wbudowany terminal dla przeglądarki plików Nautilus w GNOME
- Głębszy w złożoność funkcji z skontaktowaniem skorupy - część VII »