NFsec Logo

Raspberry PI – dostęp do skrzynki za mechanizmem NAT lub firewall

04/04/2016 w Administracja Brak komentarzy.  (artykuł nr 513, ilość słów: 376)

A

ktualnie ceny mikrokomputerów pozwalają na masowe ich podłączanie do sieci domowych. Często pełnią rolę multimedialnych stacji lub serwerów o konkretnym zastosowaniu znajdując się za mechanizmami NAT lub ścian ogniowych lokalnych routerów. W jaki sposób możemy dostać się zdalnie do takiego urządzenia bez robienia dziur w swoich sieciowych zabezpieczeniach? Rozwiązaniem jest użycie odwrotnego tunelu SSH.

Koncepcja odwróconego tunelowania SSH jest prosta – wymaga jedynie innego serwera SSH, który pełni rolę tzw. przekaźnika umieszczonego poza naszą, restrykcyjną siecią, z którym możemy połączyć się z poziomu domowego serwera. Może to być dowolny serwer VPS/Cloud z publicznym adresem IP. Z domowego serwera budujemy tunel SSH do naszego przekaźnika. Następnie z poziomu przekaźnika jesteśmy w stanie łączyć się z powrotem do naszego serwera domowego (dlatego nazwa “odwrócony” tunel):

|-Raspberry PI-| ---- |-Firewall-| ---- |-Serwer VPS-| <-- | Klient z Internetu |
|--------------| <--> |-TunelSSH-| <--> |------------|

Spójrzmy, jak możemy stworzyć tunel. Na początku z poziomu Raspberry PI łączymy się do Sewera VPS:

pi@raspberrypi ~ $ ssh -fN -R 10666:localhost:22 agresor@serwervps.pl

Port 10666 musi być wolnym (żadna aplikacja na nim nie nasłuchuje) na Serwerze VPS. Fraza “-R 10666:localhost:22” głównie definiuje odwrócony tunel. W ten sposób port 10666 na Serwerze VPS przekazuje ruch do portu 22 serwera Raspberry PI. Opcje “-fN” mówią SSH, aby proces przeszedł w tło, jak tylko poprawnie uwierzytelnimy się na Serwerze VPS. Zalogujmy się teraz na Serwer VPS z dowolnego Klienta w Internecie i sprawdźmy, czy na porcie 10666 coś nasłuchuje:

agresor@serwervps:~$ sudo netstat -tapn |grep 10666
[sudo] password for agresor:
tcp   0   0   127.0.0.1:10666   0.0.0.0:*   LISTEN   25553/sshd: agresor

i czy możemy zalogować się na serwer Raspberry PI:

agresor@serwervps:~$ ssh -p 10666 pi@localhost

Należy pamiętać, że login i hasło wpisujemy dla serwera Raspberry PI, a nie Serwera VPS. Po pomyślnym zalogowaniu, będziemy na serwerze w naszej domowej sieci. Możemy również skorzystać z opcji GatewayPorts (/etc/ssh/sshd_conf), aby wystawić port 10666 na interfejsie publicznym Serwerza VPS, co nie będzie nas zmuszać do logowania się do serwera przekazującego tylko wykorzystanie jego zewnętrznego portu do bezpośredniego zalogowania się do serwera domowego (ssh pi@serwervps.pl -p 10666). Do automatycznego monitoringu oraz wznawiania tunelu możemy użyć autossh.

Więcej informacji: TCP port forwarding, SSH Tunnelling for fun and profit

Kategorie K a t e g o r i e : Administracja

Tagi T a g i : , , , , , ,

Komentowanie tego wpisu jest zablokowane.