Cel: Chcę mieć możliwość bezpiecznego korzystania z Internetu za pośrednictwem domowego komputera, gdy mój notebook jest podłączony do otwartego punktu dostępu / punktu dostępu.
I nie wiem, że mogę korzystać z tunelu SSH / SOCKS proxy, ale nie chcą bawić się wokół z aplikacjami (co czyni je używać, jeśli w ogóle możliwe). Chyba potrzebuję konfiguracji OpenVPN, więc szukam szczegółowego przewodnika, jak:
- Zainstaluj i skonfiguruj serwer OpenVPN
- Skonfiguruj klienta OpenVPN (NetworkManager)
Wersje Ubuntu, na których powinno działać, to 10.10 i 11.04.
networking
security
network-manager
vpn
openvpn
htorque
źródło
źródło
Odpowiedzi:
Dokładne pytanie mam kilka miesięcy temu, ale dodatkowo chciałem mieć połączenie IPv6, jeśli to możliwe. Być może zainteresują Cię moje pytania dotyczące Serverfault:
Miałem tylko jedną kartę sieciową („interfejs sieciowy”) na moim serwerze do użytku. W mojej konfiguracji NetworkManager nie był wystarczający, ponieważ muszę uruchomić niestandardowy skrypt do obsługi IPv6. Dla uproszczenia użyję tutaj NetworkManagera i pomijam obsługę IPv6.
Najpierw podejmij decyzję o metodzie uwierzytelnienia. Będę używał bezpieczniejszej metody certyfikatu, która działa jak SSL: podczas uzgadniania wybierany jest wspólny sekret, który będzie używany podczas sesji. Inne metody są kluczem wspólnym; nazwa użytkownika i hasło.
serwer
1. Przygotuj się
Najpierw zainstaluj serwer openvpn. To takie proste
sudo apt-get install openvpn
. Trudną częścią jest jego konfiguracja. Konfiguracja jest obecna w/etc/openvpn
.2. Skonfiguruj uwierzytelnianie
Serwer potrzebuje certyfikatów do identyfikacji siebie i swoich klientów. Te certyfikaty są pobierane z urzędu certyfikacji (Common Authority). Utworzenia certyfikatów i powiązanych kluczy prywatnych można dokonać na dowolnym komputerze, nie trzeba tego robić na serwerze. Jeśli jesteś naprawdę paranoikiem, powinieneś to zrobić na maszynie, która nie jest podłączona do sieci i użyć karty pamięci do przesyłania certyfikatów.
Utwórz urząd certyfikacji i certyfikaty dla serwera
Ten krok należy wykonać raz, chyba że klucz prywatny Twojego urzędu certyfikacji zostanie naruszony. W takim przypadku można utworzyć ważne certyfikaty, które zostaną zaakceptowane przez serwer, co spowoduje naruszenie bezpieczeństwa.
Oficjalna dokumentacja sugeruje zrobić administrację
/etc/openvpn
. Nie jestem wielkim fanem uruchamiania wszystkiego jako root, więc umieszczę to w innym katalogu.Utwórz katalog administracyjny i skopiuj do niego pliki, uruchamiając:
vars
razie potrzeby, na przykład ustawienie,KEY_SIZE=2048
ponieważ jesteś paranoikiem.Załaduj zmienne i utwórz katalog kluczy, uruchamiając:
Jeśli pojawi się błąd
No ... openssl.cnf file could be found Further invocations will fail
, uruchomln -s openssl-1.0.0.cnf openssl.cnf
, a następnie. vars
ponownie.Jeśli używasz tego urzędu certyfikacji po raz pierwszy, przygotuj środowisko kluczy. Czy nie uruchomić to polecenie, jeśli chcesz zachować uprzednio utworzoną CA. W takim przypadku konieczne będzie wdrożenie nowego
ca.crt
../build-ca
. Możesz podać dowolne dane, ale pamiętaj, że informacje te będą widoczne w plikach dziennika, gdy klienci połączą się z serwerem. Spowoduje to utworzenie plikówca.key
ica.crt
podfolderukeys
. Zachowajca.key
plik w tajemnicy we wszystkich okolicznościach . Niezastosowanie się do tego pozwoli każdemu z kluczem połączyć się z serwerem../revoke-full server
. W przeciwnym razie pojawi się błąd bazy danych.Utwórz certyfikat dla serwera, uruchamiając:
Gdy zostaniesz poproszony o hasło, pozostaw je puste, chyba że chcesz wprowadzić hasło przy każdym uruchomieniu serwera (niezalecane). Potwierdź podpisując certyfikat i zatwierdzając go. W katalogu pojawią się dwa nowe pliki
keys
:server.key
iserver.crt
.DH i użyj przygotowania do tls-auth
Wygeneruj parametry Diffie-Hellman przy użyciu:
Za utwardzania wskazówki , stosowania
tls-auth
. W tym celu wygeneruj klucz współdzielony za pomocą:Plik wynikowy (
ta.key
) musi być również rozpowszechniany wśród klientów, ale nie należy go umieszczać publicznie.Utwórz certyfikaty dla klientów
W przypadku każdego klienta należy powtórzyć następujące kroki:
Wprowadź katalog, w którym utworzono certyfikat urzędu certyfikacji i serwera:
Jeśli pominąłeś krok tworzenia urzędu certyfikacji, ponieważ już go masz, musisz najpierw załadować zmienne:
./revoke-full you
. W przeciwnym razie pojawi się błąd bazy danych.Utwórz certyfikat klienta
you.key
i odpowiadający mu certyfikatyou.crt
:CommonName
Powinien być unikalny. Pozostaw hasło puste, jeśli używasz KDE, ponieważ nie jest ono jeszcze obsługiwane od 10.10. Podobnie jak w przypadku generowania certyfikatu serwera, potwierdź podpisanie certyfikatu i zatwierdzenie zmian.3. Skonfiguruj usługę OpenVPN
Domyślnie OpenVPN działa jako root podczas akceptowania połączeń. Nie jest to dobry pomysł, jeśli usługa jest dostępna ze złego Internetu.
Utwórz dedykowanego użytkownika dla OpenVPN, powiedz
openvpn
:Kopiowanie plików
server.key
,server.crt
,ca.crt
idh1024.pem
(lubdh2048.pem
jeśli zmieniłeś rozmiar klucza) z katalogu do kluczy/etc/openvpn
. Zgoda 400 (tylko do odczytu dla właściciela) jest w porządku.Skopiuj również plik
ta.key
:Utwórz plik
/etc/openvpn/server.conf
i umieść w nim kolejne wiersze:Ustaw odpowiednie uprawnienia, nie musi to być tajemnica, ale wolę nie przeciekać szczegółów konfiguracji, więc:
4. Kończenie serwera
Jeśli masz utworzone certyfikaty na serwerze, dobrze jest je zaszyfrować lub przenieść z serwera. W każdym razie nie trać
ca.key
iserver.key
. W pierwszym przypadku inni będą mogli połączyć się z twoim serwerem. W tym ostatnim możliwy jest MITM .Klient
Oprócz adresu IP serwera administrator serwera powinien przekazać następujące pliki:
ca.crt
: do weryfikacji certyfikatówserver.crt
: do weryfikacji serwera i komunikacji z nimta.key
: dla wzmocnienia bezpieczeństwayou.crt
: do identyfikacji z serweremyou.key
: to jak twoje hasło, uprawnienia do plików powinny wynosić 400 (tylko do odczytu dla właściciela)1. Instalacja
Zainstaluj OpenVPN i wtyczkę NetworkManager (odpowiednie dla KDE i Gnome):
network-manager-openvpn
jest w repozytorium wszechświata.2. Konfiguracja
W panelu sterowania użyj następujących informacji:
ca.crt
you.crt
you.key
W zaawansowanym :
Określ ścieżkę do pliku kluczy
ta.key
i ustaw „Kierunek klucza” na1
.Jeśli nie możesz uruchomić programu NetworkManager lub nie chcesz go używać, włóż pliki (
ca.crt
, ...)/etc/openvpn
i utwórz/etc/openvpn/client.conf
plik:Jeśli nie chcesz włączać tej sieci VPN podczas uruchamiania, edytuj
/etc/default/openvpn
i odkomentuj następny wiersz, usuwając#
:Aby rozpocząć to połączenie, uruchom:
client
należy zmienić nazwę, jeśli plik konfiguracyjny nie ma nazwyclient.conf
. Przykład: jeśli nazwałeś swój plik konfiguracyjnysafe.conf
, musisz uruchomićsudo /etc/init.d/openvpn start safe
.Aby zatrzymać OpenVPN, musisz uruchomić:
źródło
man openvpn
). Najnowsze wersje openvpn mają możliwość osadzania certyfikatów i plików kluczy, więc być może jeszcze łatwiej jest dostarczyć ten pojedynczy plik konfiguracyjny z instrukcjami dla użytkownika.. vars
powyższej komendy może wygenerować błąd, że „można znaleźć plik openssl.cnf. Dalsze wywołania zakończą się niepowodzeniem”. Musiszsudo -s; cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/; ln -s openssl-1.0.0.cnf openssl.cnf
, a następnie uruchomić. vars
i inne polecenia.whichopenssl
lokalizujeopenssl-1.0.0.cnf
plik dla mnie (easy-rsa 2.3.2, OpenSSL 1.0.1e)W rzeczywistości nie musisz majstrować przy żadnych aplikacjach. Działa to „podobnie jak VPN”.
Najpierw zainstaluj
tsocks
pakiet (skarpety tymczasowe):Następnie edytuj
/etc/tsocks.conf
i wprowadźTeraz otwórz terminal i wpisz (to Cię łączy):
Uruchom (przez inny terminal lub ALT-F2):
Teraz Firefox przesyła całą komunikację do serwera SOCKS na komputerze utworzonym przez SSH. To dalej tuneluje się do twojej domowej maszyny, gdzie trafia do sieci. Wszystko, czego potrzebujesz na swoim komputerze domowym, to serwer SSH. Po raz pierwszy powtórz kroki 3 i 4.
To działa jak urok! Niestety, chrom nie lubi skarpet, ale hej, Firefox działa.
źródło
Rozwiązanie tunelowe SSH jest łatwiejsze niż myślisz. Program taki jak gSTM uruchomi / zatrzyma tunele za pomocą GUI. Następnie wystarczy otworzyć Network Proxy i zmienić go z bezpośredniego połączenia internetowego na ręczną konfigurację proxy, nacisnąć „Zastosuj w całym systemie”, a wszystkie aplikacje powinny wysyłać swoje dane tunelem - nie trzeba się nimi bawić.
źródło