Panel informacyjno-kontrolny #2: Zdalny dostęp

Spotkałem się z opiniami, że udostępnienie lokalnego serwera nie dość, że jest trudne to jeszcze niebezpieczne. Jednak z pomocą ogólnodostępnych narzędzi zdementuję te plotki. Zaprezentuję jak w kilku krokach zapewnić zdalny dostęp i podstawowe bezpieczeństwo serwerowi nawet pomimo zmiennego IP.

Flask Python

Panel informacyjno-kontrolny (#2) - zdalny dostęp


Spotkałem się z opiniami, że udostępnienie w internecie lokalnego serwera nie dość, że jest trudne to jeszcze niebezpieczne. Jednak z pomocą ogólnodostępnych narzędzi zdementuję te plotki. Zaprezentuję jak w kilku krokach zapewnić zdalny dostęp i podstawowe bezpieczeństwo serwerowi nawet pomimo zmiennego IP dostarczanego przez provider’a.

DDNS

Zdecydowanie najprostszym sposobem na okiełznanie zmiennego IP i jednocześnie podpięcie do niego domeny jest zastosowanie Dynamic Domain Name Server (DDNS). W dużym uproszczeniu nasz router lub komputer co jakiś czas wysyła informację do serwera DNS o naszym IP i w ten sposób mówi mu, do jakiego IP powinien podpiąć domenę. Można to rozwiązać na przykład przy pomocy serwisu NO-IP:

Gdy już stworzysz konto na podanej powyżej stronie, używając przycisku Sign-up (nie da się nie zauważyć), zalogują się i w menu znajdującym się po lewej stronie wybierz Dynamic DNS. Następnie wybierz przycisk Create Hostname:

Jedyne co w tym momencie należy wypełnić to Hostname i Doamin, które wspólnie dadzą nowy adres naszemu serwerowi. Zatwierdzamy całość przyciskając Create Hostname. Tak naprawdę od strony serwera DDNS to już wszystko. Teraz czas skonfigurować router.

Konfiguracja routera

Większość współczesnych router’ów obsługuje DDNS i serwis No-IP.  Osobiście nie spotkałem jeszcze routera bez obsługi Dynamic DNS. Przedstawię jak przeprowadzić konfigurację na przykładzie TP-Link Archer C2300. Po zalogowaniu się do router’a, przejdź do zakładki Advanced. Następnie w menu po lewej stronie wybierz Network i gdy menu się rozwinie wybierz z niego Dynamic DNS. Gdy ukaże się okno konfiguracji DDNS w Service Provider wybierz opcję No-IP i wypełnij kolejno dane z konta które przed chwilą utworzyłeś w serwisie No-IP. Całość zatwierdź, przyciskając Login and Save:

Przekierowanie portów

Aby pod nową domeną zobaczyć naszą stronę z napisem Hello World (utworzoną w poprzedniej części tej serii) lub połączyć się zdalnie za pomocą SSH, musisz teraz przekierować porty wewnątrz router’a na twoje Raspberry Pi (gdzie znajduje się twój serwer www). Przejdź do zakładki Advanced i w menu znajdującym się lewej stronie wybierz NAT Forwarding i kolejno Virtual Servers. Następnie dodaj dwa przekierowania używając przycisku Add, znajdującego się po prawej stronie. W pierwszym przypadku dodamy przekierowanie do serwisu web. Wypełnij kolejno pola:

Service Type: HTTP
External Port: 80
Internal IP: {tu_wpisz_IP_raspberry_pi}
Internal Port: 5000

Następnie wybierz przycisk Save. W Internal Port, wartość 5000 pochodzi z przykładu użytego w poprzedniej części tej serii. Jeżeli użyłeś innego portu, wpisz w to pole inny przez siebie wybrany port użyty we Flask’u. Aby mieć dostęp do serwera za pomocą SSH, dodaj przekierowanie do tego serwisu:

Service Type: SSH
External Port: 22
Internal IP: {tu_wpisz_IP_raspberry_pi}
Internal Port: 22

Następnie przyciśnij Save.

Po wpisaniu i zatwierdzeniu wszystkich przekierowań wpisz w przeglądarce adres swojej świeżo utworzonej domeny. Na ekranie powinien pojawić się napis Hello World. Możesz również połączyć się z Rasberry za pomocą programu Putty, używając nazwy domeny i portu 22.

Zabezpieczenie

Jako że wypuściłeś właśnie swój serwer w dziki świat internetu bez żadnych zabezpieczeń, może on być celem ataków hacker’skich. Najprostszym aczkolwiek całkiem skutecznym sposobem zabezpieczenia Rasberry Pi przed podstawowymi włamaniami jest zainstalowanie programu Fail2Ban:

sudo apt-get install fail2ban

Banuje on użytkowników, którzy starają się przełamać podstawowe zabezpieczenia bombardując serwery w różnoraki sposób np. starając się połączyć przez SSH wpisując tysiące kombinacji loginów i haseł. Fail2Ban po prostu w takim przypadku po 5 nieudanych próbach logowania, blokuje IP atakującego na 15 minut, skutecznie go tym zniechęcając. Więcej na temat konfiguracji tego narzędzia znajdziecie na stronie:

Jak widać, nie taki diabeł straszny jakim go malują. Zdalny dostęp do serwera a zarazem panelu można skonfigurować w zaledwie kilkanaście minut, wraz z jego zabezpieczeniem.

close

Newsletter