OpenWrt - N2N
tunel VPN P2POstatnia zmiana: 2013-04-27 18:54
1. Instalacja
2. Konfiguracja
3. Uruchomienie
4. Testy połączenia
5. Zakończenie
Metod tworzenia tuneli jest bardzo dużo, można dzięki nim tworzyć bardzo ciekawe konfigurację - chociaż by można wymienić OpenVPN. Jednym z projektów jest n2n - program pozwalający na stworzenie tuneli VPN wykorzystując metodę Peer-to-Peer. Ciekawą możliwoścą tego programu jest praca całkowicie zza natem, a więc przy komputerach czy routerach ukrytych wewnątrz sieci lub korzystających z połączeń 3G (komórkowych).
Aby uruchomić tunel potrzebujemy dwóch elementów: serwera (zwanego tutaj supernode), z publicznym adresem IP oraz klientów (zwanych tutaj edge) którzy będą się łączyć do supernode. Czym więc to się różni np. od OpenVPN? O ile OpenVPN wymaga naszego serwera, o tyle dla supernode są publicznie dostępne w sieci. Nie wymagają one haseł, działają tylko jako przekaźniki, więc kilka węzłów może komunikować się z ich wykorzystaniem. Zaletą N2N jest więc brak potrzeby posiadania hosta z publicznym adresem IP.
Instalacja
# opkg update
# opkg install n2n
# opkg install n2n-v2
Konfiguracja
Zawarta jest w pliku /etc/config/n2n. Do działania wymagane jest określenie kilku parametrów:- adres IP. Musi być unikalny dla każdego edge. Można także wykorzystać dhcp, ale nie jest to przedmiotem tego opracowania. Domyślna maska - 255.255.255.0:
# uci set n2n.@edge[0].ipaddr=1.2.3.4
- adres IP i port supernode. Można wykorzystać publiczny dostępny w ramach innego projektu:
# uci set n2n.@edge[0].supernode=88.86.108.50
# uci set n2n.@edge[0].port=82
- tzw. community, czyli nazwa naszej sieci VPN. To jeden z elementów oznaczających nasz VPN, musi być taki sam dla wszystkich węzłów.
# uci set n2n.@edge[0].community=nazwa_sieci
# uci set n2n.@edge[0].key=tajne_haslo
# uci set n2n.@edge[0].route=0
# uci commit n2n
Uruchomienie
# /etc/init.d/n2n enable
# /etc/init.d/n2n start
Testy połączenia
Zakładamy że dysponujemy routerem z Gargoyle, z modemem 3G (a więc za natem), na którym zainstalowaliśmy i uruchomiliśmy n2n. Aby dostać się do zasobów Gagroyle wystarczy zainstalować n2n na innym komputerze podając inny adres z tej samej klasy, czyli nadajemy adres np. 1.2.3.5. Aby dostać się do routera wystarczy wydać standardowe polecenie np.
$ ssh root@1.2.3.4
Na komputerze z Linuksem można uruchomić demon poleceniem
# edge -a 1.2.3.5 -c nazwa_sieci -k tajne_haslo -l 88.86.108.50:82
Zakończenie
N2N jest bardzo prostym i skutecznym programem. Nie zajmuje wiele zasobów i pamięci, więc można go powszechnie stosować na routerach.Na ten ciekawy program uwagę zwrócił Tomasz Szelejewski, za co bardzo dziękuję.