Jak skonfigurować OpenVPN na CyanogenMod 7?

18

Chcę przekierować cały mój ruch sieciowy przez połączenie ISP mojego domu, kiedy jestem w kafejkach internetowych, aby nie można było mnie podsłuchiwać / strzelać .

Mam HTC G2 z CyanogenMod 7 , który ma wbudowaną obsługę klienta OpenVPN :

wprowadź opis zdjęcia tutaj

W domu mam router z TomatoVPN , który zawiera serwer OpenVPN:

wprowadź opis zdjęcia tutaj

W jaki sposób mogę zmusić klienta telefonu do połączenia się z serwerem routera? Mogę znaleźć Google i znaleźć zestaw pozornie odpowiednich instrukcji , ale nie są one bardzo pomocne:

Musisz spakować swój certyfikat i klucze i umieścić go na karcie SD

Skąd to biorę?

Skopiuj client.p12 do katalogu głównego sdcard

Skąd to mam?

dodaj swoje certyfikaty i odpowiednio ustaw typ interfejsu i protokół.

Jak konkretnie? Które ustawienia powinny być czym? Korzystanie z ustawień, które mnie nie chronią, jest gorsze niż brak ochrony ze względu na fałszywe poczucie bezpieczeństwa.

Szukam instrukcji krok po kroku dla konfiguracji „wojownika drogi”, która kieruje cały ruch przez VPN.

Gdzie dostanę klucze? Czy muszę używać dodatkowego uwierzytelniania nazwy użytkownika / hasła? Jakie domeny wyszukiwania DNS? Jakie ustawienia powinienem zastosować w menu Advanced OpenVPN CM7? Na przykład „Brama przekierowująca” musi być ustawiona tak, aby kierowała cały ruch, prawda? Jakie ustawienia dla Basic i Advanced w TomatoVPN? „Kierować klientów do przekierowywania ruchu internetowego”? „Odpowiadać na DNS”?

Aktualizacja:

Jeszcze raz spróbowałem sam i znów mi się nie udało. Nie sądzę, że istnieje sposób na wygenerowanie kluczy na routerze lub telefonie, więc próbowałem wygenerować je w Ubuntu. Próbowałem postępować zgodnie z tymi instrukcjami, aby wygenerować klucze, ale nie są one prawidłowe. (Folder jest na przykład /usr/share/doc/openvpn/examples/easy-rsa/2.0zamiast /usr/share/doc/openvpn-2.0/easy-rsai jest tam skrypt vars, ale nie ma go init-config.) Znalazłem te wskazówki , które są bardziej pomocne, i wygenerowałem wiele plików:

  • 01.pem
  • 02.pem
  • ca.crt
  • ca.key
  • dh1024.pem
  • htc_g2.crt
  • htc_g2.csr
  • htc_g2.key
  • server.crt
  • server.csr
  • server.key
  • ta.key

Pliki skopiowane do routera to

  • ca.crt
  • server.crt
  • server.key
  • dh1024.pem

Najpierw zdejmij wszystko wcześniej -----BEGIN, zgodnie z tymi instrukcjami . Serwer routera uruchamia się teraz i mówi

Nazwa Wartość Maksymalna długość kolejki emisji / emisji 0

w sekcji Status. Więc chyba serwer działa?

Następnie skopiowałem te pliki na telefon:

  • ca.crt
  • htc_g2.crt
  • htc_g2.key
  • server.crt
  • ta.key

Różne kierunki nie zgadzają się na temat plików do skopiowania. Następnie poszedłem do Ustawienia → Lokalizacja i bezpieczeństwo → Instaluj z karty SD i byłem w stanie zainstalować certyfikat CA, dodałem hasło itp. Próba dodania htc_g2 lub certyfikatów serwera nie działała, mówiąc „brak certyfikatu do zainstalowania”. Edytowałem pliki i usunąłem wszystko wcześniej -----BEGIN, a następnie zostały zainstalowane. W „Dodaj OpenVPN VPN” wybrałem certyfikat „ca” dla „Ustaw certyfikat CA” i certyfikat htc_g2 dla „Ustaw certyfikat użytkownika”. Kiedy próbuję się połączyć, pojawia się komunikat „Nie można połączyć się z siecią”. To samo, jeśli spróbuję certyfikat serwera dla certyfikatu użytkownika.

endolit
źródło
Jakie systemy operacyjne są uruchomione na komputerze domowym?
newuser
@JonnyP: Domowym komputerem jest Ubuntu, ale wolałbym używać routera niż komputera.
endolith,
1
Na tym etapie zalecam, aby najpierw spróbować skonfigurować OpenVPN ze zwykłym klientem stacjonarnym OpenVPN, a następnie skopiować tę samą konfigurację do telefonu.
onik 24.10.11
Nie mogę uwierzyć, że nikt nie wie, jak to zrobić. Dlaczego istnieje taka opcja, skoro nikt jej nigdy nie używał?
endolith,
Mam przyjaciela, który to skonfigurował ... na CM 6 . Musiał ponownie wystawić wszystkie certyfikaty VPN po tym, jak stwierdził, że klient CM wymaga ustawienia pewnych pól. Zobaczę, czy mogę uzyskać od niego więcej informacji.
Broam

Odpowiedzi:

1

Przede wszystkim sprawdź Keyszakładkę w TomatoVPN, aby sprawdzić, czy masz już zdefiniowane jakieś domyślne klucze. Jeśli nie, sprawdź OpenVPN HOWTO, aby uzyskać informacje na temat generowania kluczy. Następnie skopiuj pierwsze dwa klucze (certyfikat CA i certyfikat serwera) z obszarów tekstowych do edytora tekstowego i zapisz je z .cersufiksem i przenieś je do telefonu. CM7 powinien mieć możliwość .cerbezpośredniego importowania certyfikatów, ale starsze wersje mogą wymagać użycia plików .p12 (zobacz ten link, aby uzyskać informacje na temat konwersji .crt -> .pem ->.p12). Następnie przejdź do, Settings -> Security -> Install from SD Cardaby załadować certyfikaty do telefonu.

onik
źródło
Ten link ma 14 000 słów. Czy możesz wskazać mi bezpośrednio odpowiednie części? Czy generowanie kluczy jest inne, jeśli chcę podłączyć inne komputery do routera oprócz telefonu? Dodałem więcej szczegółów do pytania.
endolith,
1
Te same klucze są również używane na normalnych klientach. Nie mam doświadczenia z TomatoVPN, ale powinieneś być w stanie ustawić co najmniej kilka różnych kluczy klienta. Możliwe jest także jednoczesne używanie tych samych kluczy na różnych urządzeniach, ale zależy to od konfiguracji OpenVPN. Tworzenie klucza opisano w tytule „Konfigurowanie własnego urzędu certyfikacji (CA) oraz generowanie certyfikatów i kluczy dla serwera OpenVPN i wielu klientów”. Jeśli użyjesz kluczy i zapewnisz im bezpieczeństwo, w zwykłych okolicznościach nie jest konieczne uwierzytelnianie użytkownika / hasła. Brama przekierowująca powinna być jedyną ...
onik 10.1011
... trzeba zmienić w ustawieniach CM7.
onik 10.10.11
Powód odmowy głosowania?
onik
1

OK, więc wyjaśnijmy problem.

Czy możesz wyjaśnić, dla którego pliku jest przeznaczony? Na przykład, po co jest „ta.key”?

Zwykle lista plików znajduje się po stronie serwera:

  1. server.conf (konfiguracja serwera, chyba nie masz tego pliku?)
  2. ca.crt
  3. ca.key
  4. dh1024.pem

a serwer powinien również zawierać zestaw kluczy klienta.

Po stronie klienta powinien mieć:

  1. client.crt
  2. client.key
  3. ca.crt
  4. client.ovpn (lub client.conf)

Nie rozumiem, dlaczego masz ta.key?

jak utworzyć pliki p12, oto instrukcja:

Otwórz terminal Linux (UWAGA: powinieneś mieć preinstalowany OpenSSL), wprowadź

openssl pkcs12 -export -in [PathToClientCert] -inkey [PathToClientKey] -certfile [PathToCACert] -nazwa [FriendlyName] -out certs.p12

(powinieneś zamienić zawartość nawiasów kwadratowych na własne i nie musisz zachowywać nawiasów kwadratowych).

następnie zostanie wygenerowany plik p12 o nazwie certs.p12.

Mam nadzieję, że to pomoże.

dumbfingers
źródło
Nie wiem co to jest ta.key. Serwer wydaje się działać poprawnie. Po prostu nie wiem, jak się z tym połączyć. /tmp/etc/openvpn/server1ma te pliki w nim: ca.crt config.ovpn dh.pem server.crt server.key status. Może config.ovpnto to samo co server.conf?
endolith,
@endolith tak, config.ovpn jest taki sam jak sever.conf. Przed uruchomieniem OpenVPN może być konieczna edycja config.ovpn.
dumbfingers
@endolith czy chcesz połączyć się z OpenVPN z telefonu z systemem Android CM7, czy gdzie indziej?
dumbfingers,
Router działa na serwerze OpenVPN i chcę się z nim połączyć za pomocą telefonu CM7, tak.
endolith,
@endolith Najpierw użyj podanego polecenia, aby wygenerować plik p12, skopiuj go na kartę SD telefonu. Postępuj zgodnie z tym w menu telefonu: Ustawienia-Bezprzewodowe i Sieci-Ustawienia VPN-Dodaj VPN, a następnie wybierz OpenVPNDodaj VPN i wypełnij opcje: [Nazwa VPN] dowolne [Ustaw serwer VPN] wypełnij adres IP, tak samo jak „zdalny” w kliencie.ovpn [Uwierzytelnianie użytkownika], jeśli używasz użytkownika / hasła, wypełnij je. [Ustaw certyfikat CA] dotknij i zaimportuj certyfikat ca [Ustaw certyfikat użytkownika] dotknij i zaimportuj certyfikat użytkownika (client.crt) Może być konieczne sprawdzenie opcji zaawansowanych. To wszystko.
dumbfingers