Przejdź do głównej treści

Zabezpieczenie routera z OpenWrt

Zawartość

A więc zdecydowałeś się zmienić oprogramowanie na twoim routerze z tego, dostarczonego przez twojego producenta sprzętu, na bardziej otwarte i bezpieczniejsze oprogramowanie OpenWrt. Gratulacje!

Jednakże samo to, że zdecydowałeś się podnieść bezpieczeństwo twojego urządzenia, nie znaczy, że możesz spocząć na laurach. Jak każde oprogramowanie, w tym OpenWrt co jakiś czas też jest aktualizowane, głównie w przypadku wykrycia luk w bezpieczeństwie oraz problemów, które mogą powodować niestabilne działanie naszego urządzenia.

Jak każde urządzenie sieciowe, wymaga one nieco zabiegów na początku konfiguracji, aby podnieść jego bezpieczeństwo.

Zoptymalizowane dla OpenWrt 25.12 przy użyciu apk zamiast opkg

Hasło użytkownika root

Nasz router domyślnie używa konta z najwyższymi uprawnieniami w systemie — root. Jego zabezpieczenie powinno być dla nas priorytetem. Przy pierwszym logowaniu na nowo zainstalowane oprogramowanie OpenWrt zostaniemy poproszeni o jego zmianę, jeżeli jednak to zignorowaliśmy lub ustawiliśmy hasło typu admin, jak najszybciej zmieńmy je na unikalne, znane tylko nam samym. Haker, który będzie miał okazję włamać się do waszej sieci, w pierwszej kolejności sprawdzi najbardziej popularne oraz domyślne hasła stosowane na routerach.

Aby zmienić hasło użytkownika, przechodzimy do System > Administration, gdzie, w pierwszej zakładce Router Password możemy ustawić bezpieczne hasło.

Zmiany hasła możemy też dokonać, łącząc się z naszym routerem przez SSH i wykonując komendę:

passwd

OpenWrt System Administration router password


SSH

Będąc w System > Administration warto również zajrzeć do zakładki SSH Access.

Domyślnie nasz router nasłuchuje na porcie 22 oraz wszystkich dostępnych interfejsach — w tym, który służy do dostępu do internetu. Nie muszę mówić, że posiadanie otworzonego portu 22 dostępnego z internetu to nie jest rozsądne rozwiązanie. Mimo że domyślne reguły Firewall zabezpieczą nas przed możliwością połączenia do SSH naszego routera z internetu, warto jednak domyślne ustawienia pozmieniać.

I tak:
Interface zmieniamy na LAN (czyli naszą sieć lokalną)

Oraz:
Port (na którym router będzie nasłuchiwać) zmieniamy na np. 9922 lub dowolnie wybrany przez nas.

openwrt system administration ssh access

Zapisujemy i zastosowujemy zmiany (Save & Apply).


Panel administracyjny (https)

Dostęp do ustawień naszego routera odbywa się w przyjaznym dla użytkownika graficznym interfejsie z poziomu przeglądarki internetowej. Wystarczy przejść na stronę — adres naszego routera (np. 192.168.1.1) i zalogować się na nasze konto root.

Wszystko jest ładne i piękne, pod warunkiem, że nikt w sieci nie nasłuchuje, na to, co wprowadzamy w przeglądarce, szczególnie, że gdy odwiedzamy nasz panel administracyjny routera, połączenie odbywa się poprzez nieszyfrowany HTTP, przez co nasze hasło, które wprowadzamy, wysyłane jest również w postaci nieszyfrowanej. Wystarczy WireShark i można w łatwy sposób poznać, co wprowadzamy.

W związku z tym warto wprowadzić połączenie z naszym routerem poprzez połączenie szyfrowane HTTPS.

Przechodzimy do System > Administration, gdzie, w zakładce HTTP(S) Access zaznaczmy Redirect to HTTPS.

OpenWrt System Administration HTTP(S) Access

Jeżeli twój router nie posiada tej zakładki, należy zainstalować stosowny pakiet.

W tym celu, w System > Software musimy zainstalować aplikację luci-ssl (o ile nie mamy jej już w systemie), lub z poziomu terminala:

apk update
apk add luci-ssl

Jeżeli wykonujemy naszą instalację z terminala, warto po instalacji uruchomić ponownie nasz dostęp przez przeglądarkę internetową, który odbywa się z wykorzystaniem pakietu uhttpd.

/etc/init.d/uhttpd restart

Przy pierwszym ponownym uruchomieniu, wygenerowany zostanie bezpieczny certyfikat dostępu przez HTTPS.

Oczywiście, certyfikat, który zostanie wygenerowany, nie jest wystawiony przez żadną zaufaną instytucję, tylko podpisany przez nasz router. Do celów lokalnych, nie stanowi to najmniejszego problemu, jednakże przy połączeniu z naszym routerem przez HTTPS trzymamy ostrzeżenie o niezaufanym certyfikacie.

W przypadku Safari możemy kliknąć Show Details i kliknąć odnośnik visit this website.

Safari this connection is not private

Z Edge (Chromium) oraz Chrome nie jest już tak łatwo, gdyż te przeglądarki nie pozwolą nam dalej przejść, nawet jeżeli wejdziemy w opcje zaawansowane (Advanced), pod którymi powinniśmy zobaczyć odnośnik, pozwalający mimo tego przejść na stronę.

Edge Chromium your connection isn’t private

Edge Chromium Your connection isn’t private advances

Aby tego dokonać, możemy użyć nietypowej metody. Po przejściu na stronę, która zwraca problem z certyfikatem, możemy napisać (nie będziemy widzieć, co wprowadzamy), w oknie przeglądarki słowo thisisunsafe. Po chwili zobaczymy, że nasza strona się odświeży i będziemy mogli dalej przejść do naszego panelu.

W przypadku Firefox wystarczy kliknąć przycisk zaawansowane (Advanced) i na dole strony wybrać przycisk stwierdzający, że akceptujemy ryzyko (Accept the Risk and Continue).

Firefox warning potential security risk ahead

Firefox warning potential security risk ahead advanced

Mała niedogodność, jednakże i to podnosi bezpieczeństwo w momencie wprowadzania hasła do naszego routera.


Panel administracyjny (port)

Oprócz wprowadzenia szyfrowanego połączenia https do naszego panelu administracyjnego przez przeglądarkę internetową (co nie jest zbyt wygodne w związku z problemem z certyfikatami) możemy również zmienić port, na którym nasz panel nasłuchuje.

Domyślnie jest to port 80 dla nieszyfrowanych połączeń HTTP lub 443 dla szyfrowanych HTTPS.

Aby zmienić te porty, możemy doinstalować pakiet luci-app-uhttpd

apk update
apk add luci-app-uhttpd

Dzięki czemu, w opcjach Usługi (Services) otrzymamy dodatkowe menu do zarządzania usługą uHTTPd służącą do wyświetlania m.in. naszego panelu.

OpenWrt Services uHTTPd

OpenWrt Services uHTTPd general settings

W HTTP listeners (i analogicznie dla HTTPS) należy dodać nowy port, na przez który będziemy łączyli się z naszym panelem administracyjnym. Dla przykładu, dla HTTPS, jeżeli chcemy zmienić port z 443 na 8443, dodajemy (i usuwamy pozostałe) następujące linijki:

0.0.0.0:8443
[::]:8443

Całość zatwierdzamy przyciskiem Zapisz i Zastosuj (Save & Apply).

Jeżeli wszystko wykonaliśmy poprawnie, przechodzimy do naszego panelu, korzystając z nowego adresu:

http://192.168.1.1:8443


Oprogramowanie (pakiety)

Oficjalne stanowisko twórców OpenWrt brzmi: „Nie używaj opcji apk upgrade do bezmyślnej, masowej aktualizacji pakietów! Robienie tego prędzej czy później zepsuje Twoje urządzenie”. Osobiście się z tym nie zgadzam. Robię to z powodzeniem od lat i nie mam żadnych problemów; nie oznacza to jednak, że Ty ich nie napotkasz. Decyzja należy do Ciebie.

Oprócz tego, że zmieniliśmy oprogramowanie producenta na naszym routerze na bardziej bezpiecznie, nie znaczy, że wszystko ma być nieruszone przez wieki. Musimy zadbać, aby stale aktualizować oprogramowanie OpenWrt oraz pakiety, które mamy na routerze zainstalowane.

O ile samo oprogramowanie główne OpenWrt nie jest wypuszczane zbyt często, to w przypadku innego oprogramowania (pakiety oprogramowania) używanego w obrębie naszego routera, aktualizacje wypuszczane są kilka razy w tygodniu.

W związku z tym warto zadbać, aby je aktualizować regularnie. W tym celu należy przejść do System > Software, odświeżyć listę przyciskim Update list, a następnie w zakładce Updates poklikać na każde oprogramowanie w celu jego aktualizacji.

OpenWrt System software

Powyższa metoda jest nieco czasochłonna. Możemy dokonać tego również z poziomu terminala SSH, z wykorzystaniem pojedynczej komendy. Z jej wykorzystaniem, router pobierze informację o aktualnych wersjach oprogramowania i bazując na tym, co jest na naszym routerze “przestarzałe”, dokona automatycznej aktualizacji:

apk update; apk upgrade

I to by było na tyle.

Pozdrawiam.

Udostępnij na Threads
Udostępnij na Bluesky
Udostępnij na Linkedin
Udostępnij przez WhatsApp
Udostępnij przez Email

Komentarze i Reakcje

Kategorie