Serwer Open VPN i klient na Androidzie

0

Witam,

Chciałbym zrobić coś takiego. Wystawić swój własny serwer VPN na Linuksie (na moim serwerze z Linuksem). Klientów mieć na Linuksie, Windowsach i na Androidzie.

Mam w związku z tym kilka pytań, bo nie wiem dokładnie jak to działa. W mojej Xperii jest wbudowana obsługa VPN w firmware, więc teoretycznie nie potrzebuję żadnego klienta instalować na telefonie. Nie wiem jednak, czy da sie to zgrać z OpenVPN? Gdy wchodzę w ustawienia VPN w telefonie, nie mam zbyt wiele opcji, w zasadzie tylko adres serwera i typ, a dostępne typy to:
PPTP,L2TP/IPSecPSK,L2TP/IPSecRSA,IPSec XauthPSK, IPSec Xauth RSA, IPSecHybridRSa, dodatkowo opcja włączenia MPPE i opcjonalne podanie serwerów DNS i domen wyszukiwania DNS.

Zakładam, że z klientami na PC nie powinno być problemu i będą się widzieć między sobą. Ale czy da się tak skonfiguorować OpenVPN żeby mój telefon potrafił się z nim łączyć i żeby telefon był widoczny w sieci? Poza tym, na telefonie nie widzę nigdzie żadnej możliwości autoryzacji - więc co, mój serwer vpn ma być wystawiony publicznie, bez konieczności podania użytkownika i hasła? To po co taki vpn?

Nigdy nie konfigurowałem OpenVPN, podpowiecie mi coś? A może widzieliście jakiś w miarę dobry opis jak to się robi? Dotychczas korzystałem z hamachi, czy da się tak skonfigurować OpenVPN, żeby działał podobnie jak hamahi? (tyle że bym miał własny serwer, a klient hamachi łączy się z serwerami hamachi).

Dotychczasz korzystałem z Hamachi, ale wkurzają mnie jego ograniczenia wprowadzone ostatnio w wersji darmowej (np po wyjściu ze zdalnego pulpitu wywala z vpn-a)

0

W mojej Xperii jest wbudowana obsługa VPN w firmware, więc teoretycznie nie potrzebuję żadnego klienta instalować na telefonie.

Potrzebujesz.

dostępne typy to: PPTP,L2TP/IPSecPSK,L2TP/IPSecRSA,IPSec XauthPSK, IPSec Xauth RSA, IPSecHybridRSa

Ja tam OpenVPN nie widzę, a ty :)?

Zakładam, że z klientami na PC nie powinno być problemu i będą się widzieć między sobą.

O ile zainstalujesz na nich klienta OpenVPN i skonfigurujesz serwer OpenVPN w taki sposób, by klienci mogli się ze sobą widzieć to tak.

Ale czy da się tak skonfiguorować OpenVPN żeby mój telefon potrafił się z nim łączyć i żeby telefon był widoczny w sieci?

https://play.google.com/store/apps/details?id=net.openvpn.openvpn&feature=also_installed
https://play.google.com/store/apps/details?id=de.blinkt.openvpn&hl=en

W konfiguracji serwera polecam ustawić topology subnet. W takim ustawieniu każdy klient dostanie pojedynczy adres, a nie podsieć /30. Domyślnie klienci będą "widzieć" się nawzajem, gdy włączysz dyrektywę client-to-client.

0

Aha, no widzę że druga apka wymaga roota, póki co roota nie mam. No nic pokombinuję. A może masz jakiś dobry opis konfiguracji OpenVPN od zera? Albo może jest jakiś serwer (na Linuksa), darmowy który by obsługiwał to co mam w telefonie?

0

Albo może jest jakiś serwer (na Linuksa), darmowy który by obsługiwał to co mam w telefonie?

PPTP, L2TP, IPSec. Każde z tych rozwiązań ma linuksową implementację serwera. Jednak mimo wszystko polecam OpenVPN. Mimo tego, że prawie żadne urządzenie klienckie nie wspiera go OOTB to po stronie serwera jest najprostszy do konfiguracji. Dostajemy bezpieczne i proste rozwiązanie w pakiecie i kilkoma liniami konfiguracji. Możesz spróbować tej pierwszej trójki, daj znać później :).

0

No jeśli apka działa bez roota na androidzie, a OpenVPN najłatwiej skonfigurować to nie wiem czy warto upierać się na inne rozwiązania. Oczywiście, mam nadzieję że w telefonie będę mógł łączyć się z innymi klientami nie tylko z poziomu tej aplikacji, ale z poziomu każdej innej aplikacji na androidzie (np klienta rdp albo przeglądarki internetowej).

[edit]
Chociaż, to: http://www.howtogeek.com/51237/setting-up-a-vpn-pptp-server-on-debian/ nie wygląda przesadnie skomplikowanie :> Chyba potestuję ciekwe co z tego wyjdzie

0

No cóż, konfiguracja PPTP niby dziecinnie prosta, ale... cos mi się zdaje że nic z tego. Niby to działa, ale tylko wewnątrz mojej sieci lokalnej. Gdy próbuję łączyć się z zewnątrz, dostaję coś takiego (w logach na serwerze):

Feb 14 18:40:32 SERWER pptpd[6494]: CTRL: Client 91.145.139.141 control connection started
Feb 14 18:40:33 SERWER pptpd[6494]: CTRL: Starting call (launching pppd, opening GRE)
Feb 14 18:40:33 SERWER pppd[6495]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
Feb 14 18:40:33 SERWER pppd[6495]: pppd 2.4.5 started by root, uid 0
Feb 14 18:40:33 SERWER pppd[6495]: Using interface ppp0
Feb 14 18:40:33 SERWER pppd[6495]: Connect: ppp0 <--> /dev/pts/1
Feb 14 18:40:33 SERWER pptpd[6494]: GRE: Bad checksum from pppd.
Feb 14 18:40:33 SERWER pptpd[6494]: GRE: read(fd=7,buffer=8057680,len=8260) from network failed: status = -1 error = Protocol not available
Feb 14 18:40:33 SERWER pptpd[6494]: CTRL: GRE read or PTY write failed (gre,pty)=(7,6)
Feb 14 18:40:33 SERWER pptpd[6494]: CTRL: Reaping child PPP[6495]
Feb 14 18:40:33 SERWER pppd[6495]: Hangup (SIGHUP)
Feb 14 18:40:33 SERWER pppd[6495]: Modem hangup
Feb 14 18:40:33 SERWER pppd[6495]: Connection terminated.
Feb 14 18:40:33 SERWER pppd[6495]: Exit.
Feb 14 18:40:33 SERWER pptpd[6494]: CTRL: Client 91.145.139.141 control connection finished

Na routerze przekierowałem GRE. Czyżby mój ISP blokował to u siebie? Taki sam efekt mam gdy łączę się nawet z mojej sieci LAN, ale podając zewnętrzne IP. Hmm...

0

PPTP używa specjalnego protokołu IP z numerem 47. Trzeba go w routerze / na firewallu odblokować. Często jest to nawet jedna opcja "PPTP passthrough".

0

No właśnie o tym mówię. Jest to protokół "GRE" (Generic Routing Encapsulation), który ma właśnie numer 47. Na routerze to odblokowałem (mam Netiaspota). Albo router obsługuje to źle, albo to ISP zablokował u siebie.

Więc dałem sobie jednak spokój z PPTP i skonfigurowałem OpenVPN - działa bez zarzutu, bo wystarczy mu UDP. Czas przetestować apkę na Androida :>

1 użytkowników online, w tym zalogowanych: 0, gości: 1