Tunel VPN P2P
Ostatnia zmiana: 2019-08-21 18:48
Metod tworzenia tuneli jest bardzo dużo, można dzięki nim tworzyć bardzo ciekawe konfiguracje sieci - można by tu wymienić OpenVPN, WireGuard, tinc czy zwykły ssh. Jednym z projektów jest
n2n - program pozwalający na tworzenie tuneli VPN wykorzystując metodę Peer-to-Peer.
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 serwera z odpowiednią konfiguracją, o tyle
supernode wystarczy uruchomić na adresie publicznie dostępnym w sieci. Supernode nie wymaga konfiguracji czy haseł, działa tylko jako przekaźnik dla połączonych klientów.
Instalacja
Pakiet obecnie dostępny jest tylko w moim
repozytorium:
# opkg update
# opkg install n2n-v2
Jeżeli chcemy także uruchomić supernode:
# opkg install n2n-v2-supernode
Konfiguracja klienta (edge)
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
Pamiętajmy: każdy węzeł powinien mieć unikalny adres.
- adres IP i port
supernode. Należy tu podać adres własnego serwera lub wykorzystać jeden z publicznie dostępnych w internecie:
# uci set n2n.@edge[0].supernode=88.86.108.50
# uci set n2n.@edge[0].port=86
- 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
- hasło, dzięki któremu węzły mogą się ze sobą komunikować
# uci set n2n.@edge[0].key=tajne_haslo
- routing, domyślnie nie zmieniamy tablic routingu
# uci set n2n.@edge[0].route=0
Zapisujmy wszystko
Uruchomienie
# /etc/init.d/n2n enable
# /etc/init.d/n2n start
Powinien pojawić się nowy interfejs o nazwie
edge0 (można to sprawdzić poleceniem
ifconfig), natomiast w logach (
logread) powinna być informacja o nawiązaniu połączenia z
supernode.
Testy połączenia
Zakładamy że dysponujemy routerem z
Gargoyle, z modemem LTE (a więc za natem), na którym zainstalowaliśmy i uruchomiliśmy n2n. Aby dostać się do zasobów Gargoyle wystarczy zainstalować n2n na innym komputerze podając inny adres z tej samej klasy, czyli nadajemy adres np. 1.2.3.5 i wystarczy wydać standardowe polecenie np.
lub w przeglądarce wpisać po prostu http://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:86
Dla klientów Windows można zainstalować odpowiedni program dostępny
pod tym adresem.
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ę.