Jak utworzyć połączenie VPN przy użyciu samego terminala (SSH)?

13

Próbuję utworzyć połączenie VPN dla mojego komputera z Ubuntu Server. Mam dostęp tylko przez sesję terminala ssh.

Widziałem wiele artykułów opisujących, jak połączyć się z istniejącym połączeniem, ale żaden nie dotyczy tworzenia nowego połączenia.

Używam Ubuntu Server 12.x

Dve
źródło
Więc myślę, że chcesz zainstalować serwer VPN na swoim komputerze, prawda?
laurent
Nie sądzę (chyba że się mylę). Chcę, aby mój serwer łączył się z VPN, a nie z serwerem VPN
Dve,
ssh jest naprawdę potężny. Możesz połączyć się za pomocą $ ssh -X <host> -u <użytkownik>. W ten sposób uzyskasz połączenie z przekazywaniem X, dzięki czemu będziesz mógł korzystać z aplikacji X ze swojego zdalnego komputera. Może to być przydatne, jeśli uważasz, że używanie X jest wygodniejsze niż zwykła konsola.
jap1968,
inną opcją jest użycie shadowsocks + proxy zamiast łańcucha VPN
elprup

Odpowiedzi:

7

Ponieważ nie rozumiem, co dokładnie musisz zrobić, pozwól mi wyjaśnić, jak działa VPN:

Aby mieć VPN, potrzebujesz serwera VPN (do którego się łączysz) i klienta VPN (komputer, którego używasz do łączenia się z serwerem). Nie można utworzyć połączenia bez serwera VPN. Mamy tutaj 3 możliwości:

  • Chcesz, aby Twój serwer łączył się z innym (serwerem VPN). W takim przypadku potrzebujesz klienta, a ponieważ istnieją różne typy VPN, musisz postępować zgodnie z instrukcjami od administratora serwera VPN.

  • Chcesz połączyć się z serwerem z innego komputera (prawdopodobnie z komputera lokalnego) iw tym przypadku musisz zainstalować serwer VPN na swoim serwerze i klienta na swoim komputerze. Do tego używam OpenVPN od wielu lat i działa bardzo dobrze z klientami Windows i Ubuntu

  • Chcesz połączyć oba komputery z hostowanym serwerem VPN od strony trzeciej, w tym przypadku, ponieważ istnieje wiele różnych typów VPN, musisz postępować zgodnie z instrukcjami administratora strony trzeciej.

Jeśli chcesz mieć tylko „prywatne / szyfrowane” połączenie z serwerem, masz już SSH i nie będziesz mieć więcej z VPN. VPN jest przydatny do łączenia się z siecią tak, jakbyś był maszyną lokalną w sieci i nie jest tak przydatny do łączenia się z pojedynczą maszyną, na której możesz używać połączeń SSH dla terminali (i przekierowywać wyjście grafiki na ekran, jeśli serwer ma grafikę komputer stacjonarny) i tunele SSH, aby uzyskać dostęp do innych portów. Na przykład tunelowanie za pomocą SSH lokalnego portu na komputerze do portu 3306 na zdalnym serwerze w celu administrowania MySQL za pomocą 100% szyfrowanego połączenia zamiast korzystania z phpmyadmin wysyłającego hasło roota DB przez http.

Aktualizacja PPTP:

W przypadku klienta PPTP za pomocą wiersza poleceń można użyć klienta pptp-linux:

sudo apt-get install pptp-linux

Istnieje wiele samouczków, jak to skonfigurować:

Edytowane po komentarzach OP: Witryna pomocy społeczności Ubuntu działała.

Inne są dostępne, jak klient PPTP Linux . Samouczek jest przeznaczony dla klienta wiersza polecenia lub klienta GUI, więc instaluj tylko pptp-linuxi nienetwork-manager-pptp

Instrukcje strony pptp-linux dla Debiana są również szczegółowe dla wiersza poleceń i powinny działać bez problemu na Ubuntu.

Laurent
źródło
1
Tak rozumiem to. Próbuję zrobić to, co wymieniłeś w pierwszym punkcie - połącz się z innym serwerem VPN z mojego serwera. Znam wszystkie szczegóły połączenia, jestem podłączony do terminala mojego serwera (przez ssh). Próbuję dowiedzieć się, jak skonfigurować połączenie VPN za pośrednictwem tej sesji terminala.
Dve,
Jakie są więc szczegóły połączenia? (typ VPN serwera i wymagane parametry, jeśli takie istnieją - nie wymaga hasła lub rzeczywistego adresu IP, jeśli istnieje). Nie masz instrukcji, jak skonfigurować klienta od administratora serwera VPN?
laurent
1
Pytam o rodzaj VPN, ponieważ każdy protokół VPN potrzebuje innego klienta. Instrukcje dotyczące niektórych z nich można znaleźć w help.ubuntu.com/community/VPNClient
laurent,
Wydaje się, że jest to połączenie PPTP, ale link, który opublikowałeś, nie opisuje szczegółowo kroków tworzenia nowego połączenia PPTP (o ile widzę). Byłoby wspaniale, gdybym mógł uruchomić menedżera sieci przez przekazywanie ssh X11 - ale nie chcę instalować gdm, aby to zrobić
Dve
zaktualizowana odpowiedź na PPTP
laurent
0

użyj „pppd”, aby to zrobić:

sudo pppd nodetach defaultroute replacedefaultroute persist password mypassword file myvpn

zamień „mojehasło” na hasło do konta pptp. „myvpn” to plik konfiguracyjny w formacie:

linkname myvpn 
ipparam myvpn 
pty "pptp server_address --nolaunchpppd " 
name myaccount 
usepeerdns 
require-mppe 
refuse-eap noauth

# adopt defaults from the pptp-linux package 
file /etc/ppp/options.pptp

ten format pliku konfiguracyjnego jest wymieniony tutaj: https://help.ubuntu.com/community/VPNClient

A „nodetach” lub „defaultroute” to opcje dla pppd, opisane tutaj: http://manpages.ubuntu.com/manpages/hardy/man8/pppd.8.html

Korzystam z tej metody w Javie, aby skonfigurować połączenie VPN klienta pptp, tak, działa.

Plik pid znajduje się w pliku /var/run/ppp-xxx.pid, a „xxx” to nazwa linku podana w pliku konfiguracyjnym. Możesz odczytać pid pppd z tego pliku pid, wysłać sygnał do pppd, np. „Sudo kill -s SIGTERM pid_of_pppd”, aby zamknąć pppd.

Guohua Lin
źródło