Prosty VPN w przestrzeni użytkownika
Napisał: Patryk Krawaczyński
17/06/2011 w Bezpieczeństwo Brak komentarzy. (artykuł nr 318, ilość słów: 397)
W
dobie takich wynalazków jak Firesheep lub innego rodzaju natręctw kradnących nasze cyfrowe tożsamości trzeba być ostrożnym przy łączeniu się z różnymi sieciami – szczególnie Hotspotami. Masowe tworzenie lub łączenie się z sieciami przez rasowe tunele VPN nadal pozostaje komfortem dostępnym nie dla wszystkich. Nie wszystkie serwery linuksowe dające nam dostęp do powłoki oferują tego typu usługi. Na szczęście większość z nich umożliwia nam łączenie się przez SSH. I w tym momencie wkracza sshuttle.
Jest to aplikacja napisana w języku Python, która przy użyciu SSH potrafi w locie stworzyć tunel VPN pomiędzy naszą maszyną z Linuksem, BSD lub MAC OS X, a zdalnym systemem oferującym dostęp przez SSH i obsługę Pythona. Napisana przez Avery Pennarun’a i udostępniona na licencji GPLv2 jest transparentnym serwerem proxy, które umożliwia użytkownikom bardzo łatwe udawanie tuneli VPN. Do wykorzystania jej możliwości potrzebujemy jedynie:
- Klienta wyposażonego np. w system Linux z uprawnieniami administratora
- Dostęp do zdalnej sieci / serwera poprzez SSH
- Dostęp do interpretera Pythona na zdalnej i lokalnej maszynie
W celu instalacji sshuttle należy ściągnąć jego kod z repozytorium github.com (git clone git://github.com/apenwarr/sshuttle
) oraz uruchomić go na naszym kliencie. Przy samym uruchamianiu programu wymagane są uprawnienia administratora dlatego przed tym faktem najlepiej wykorzystać takie programy su
lub sudo
. Samo jego użycie jest bardzo proste:
root@darkstar:~# sshuttle -v -r daemon@stardust.nfsec.org:666 0/0 Starting sshuttle proxy. Listening on ('0.0.0.0', 12300). firewall manager ready. c : connecting to server... The authenticity of host '[nfsec.org]:666 ([1.2.3.4]:666)' can't be established. RSA key fingerprint is b5:17:d2:92:55:7d:22:72:db:9a:2d:ff:72:d7:70:d8. Are you sure you want to continue connecting (yes/no)? yes Permanently added '[nfsec.org]:666,[1.2.3.4]:666' (RSA) to the list of known hosts. agresor@nfsec.org's password: s: available routes: c : connected. firewall manager: starting transproxy. iptables -t nat -N sshuttle-12300 iptables -t nat -F sshuttle-12300 iptables -t nat -I OUTPUT 1 -j sshuttle-12300 iptables -t nat -I PREROUTING 1 -j sshuttle-12300 iptables -t nat -A sshuttle-12300 -j RETURN --dest 127.0.0.0/8 -p tcp (...)
Od tej pory cały ruch (oprócz DNS) z naszego komputera będzie przepuszczany szyfrowanym “tunelem” przez serwer nfsec.org – tyczy się to zarówno odbierania poczty, oglądania stron WWW czy korzystania z innych aplikacji sieciowych. Jeśli chcemy przepuszczać tylko wybraną sieć przez tunel należy zastąpić wpis 0/0 odpowiednią siecią i jej maską w formacie CIDR np. 192.168.1.0/24. Tunelowanie ruchu DNS jest możliwe wraz z użyciem parametru -dns (starsze wersje programu używały flagi -H).
Więcej informacji: shuttle README