Hostowanie strony internetowej na routerze domowym
Od dawna chciałem „dotknąć rąk” usług internetowych, konfigurując od podstaw serwer WWW i udostępniając go w Internecie. W tym artykule chcę podzielić się swoim doświadczeniem w przekształceniu domowego routera z wysoce funkcjonalnego urządzenia w niemal pełnoprawny serwer.
Wszystko zaczęło się od tego, że router TP-Link TL-WR1043ND, który służył wiernie, przestał spełniać potrzeby sieci domowej, zależało mi na paśmie 5 GHz i szybkim dostępie do plików na urządzeniu magazynującym podłączonym do routera . Po przejrzeniu specjalistycznych forów (4pda, ixbt), stron z recenzjami i zapoznaniu się z asortymentem lokalnych sklepów, zdecydowałem się na zakup Keenetic Ultra.
Dobre recenzje właścicieli zadziałały na korzyść tego konkretnego urządzenia:
brak problemów z przegrzaniem (tutaj musieliśmy zrezygnować z produktów Asusa);
niezawodność działania (tutaj przekreśliłem TP-Link);
łatwy w konfiguracji (bałem się, że sobie nie poradzę i przekreśliłem Microtik).
Musiałem pogodzić się z wadami:
brak WiFi6, chciałem sprzęt zabrać z rezerwą na przyszłość;
4 porty LAN, chciałem więcej, ale to już nie jest kategoria domowa.
W rezultacie otrzymaliśmy ten „serwer”:
po lewej stronie terminal optyczny Rostelecom;
po prawej stronie nasz eksperymentalny router;
leżący w pobliżu dysk SSD m.2 128 GB, umieszczony w pudełku USB3 z Aliexpress, jest podłączony przewodem do routera, teraz jest starannie zamontowany na ścianie;
na pierwszym planie przedłużacz z niezależnie odłączonymi gniazdami, przewód z niego idzie do niedrogiego UPS;
w tle wiązka skrętek - już na etapie remontu mieszkania od razu zaplanowałem gniazda RJ45 w miejscach, w których miał stanąć sprzęt, aby nie być uzależnionym od zaśmiecania WiFi.
Mamy więc sprzęt, pozostaje go skonfigurować:
Wstępna konfiguracja routera trwa około 2 minut, podajemy dostawcy parametry połączenia (mój terminal optyczny przełącza się w tryb mostkowy, połączenie PPPoE podnosi router), nazwę sieci WiFi i hasło – w zasadzie to wszystko , router uruchamia się i działa.
Przekierowanie portów zewnętrznych na porty samego routera ustawiamy w sekcji „Reguły sieciowe - Przekazywanie”:
Teraz możemy przejść do części „zaawansowanej”, czyli tego, czego oczekiwałem od routera:
funkcjonalność małego NAS-a dla sieci domowej;
wykonywanie funkcji serwera WWW dla kilku stron prywatnych;
funkcjonalność chmury osobistej umożliwiająca dostęp do danych osobowych z dowolnego miejsca na świecie.
Pierwszy realizowany jest za pomocą wbudowanych narzędzi, nie wymagając dużego wysiłku:
Bierzemy dysk przeznaczony do tej roli (pendrive, karta pamięci w czytniku kart, dysk twardy lub dysk SSD w pudełku zewnętrznym i formatujemy go do Ext4 za pomocą Kreator partycji MiniTool w wersji bezpłatnej (Nie mam pod ręką komputera z Linuksem, da się to dzięki wbudowanym narzędziom). Jak rozumiem, podczas pracy system zapisuje tylko logi na pendrive, więc jeśli ograniczysz je po skonfigurowaniu systemu, możesz też skorzystać z kart pamięci, jeśli planujesz dużo i często zapisywać na dysk - SSD lub HDD jest lepszy.
Następnie podłączamy dysk do routera i obserwujemy go na ekranie monitora systemu
Kliknij „Napędy i drukarki USB” w sekcji „Aplikacje” i skonfiguruj udział w sekcji „Sieć Windows”:
I mamy zasób sieciowy, z którego można korzystać z komputerów z systemem Windows, łącząc się w razie potrzeby jako dysk: użycie sieci y: \192.168.1.1SSD /persistent:yes
Szybkość takiego improwizowanego NAS jest wystarczająca do użytku domowego, po kablu wykorzystuje cały gigabit, przez Wi-Fi prędkość wynosi około 400-500 megabitów.
Konfiguracja pamięci masowej jest jednym z niezbędnych kroków do skonfigurowania serwera, następnie potrzebujemy:
- kup domenę i statyczny adres IP (można się bez tego obejść stosując Dynamiczny DNS, ale ja miałem już statyczny adres IP, więc okazało się, że jest łatwiejszy w użyciu bezpłatne usługi Yandex - delegując tam domenę, otrzymujemy hosting DNS i pocztę w naszej domenie);
Zanim ustawienia domeny i delegowania DNS zaczną obowiązywać, może minąć kilka godzin, dlatego jednocześnie konfigurujemy router.
Na początek musimy zainstalować repozytorium Entware, z którego będziemy mogli zainstalować niezbędne pakiety na routerze. Skorzystałem ta instrukcja, po prostu nie przesyłałem pakietu instalacyjnego przez FTP, ale utworzyłem folder bezpośrednio na wcześniej podłączonym dysku sieciowym i skopiowałem tam plik w zwykły sposób.
Po uzyskaniu dostępu przez SSH zmień hasło za pomocą polecenia passwd i zainstaluj wszystkie niezbędne pakiety za pomocą polecenia opkg install [nazwy pakietów]:
Podczas instalacji na routerze zostały zainstalowane następujące pakiety (wynik polecenia opkg list-installed):
Być może było tu coś zbędnego, ale miejsca na dysku było sporo, więc nie zawracałem sobie głowy zaglądaniem w to.
Po zainstalowaniu pakietów konfigurujemy nginx, próbowałem z dwiema domenami - druga jest skonfigurowana z https i na razie jest en. Porty wewnętrzne 81 i 433 są używane zamiast 80 i 443, ponieważ panel administracyjny routera zawiesza się na normalnych portach.
Aby strona działała poprzez https użyłem dobrze znanego skryptu odwodnionego, instalując go za pomocą ten podręcznik. Proces ten nie sprawił żadnych trudności, natknąłem się jedynie na fakt, że w tekście skryptu do pracy na moim routerze musisz skomentować linię w pliku /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=engines
I zauważam, że wygenerowanie pliku dhparams.pem za pomocą polecenia „openssl dhparam -out dhparams.pem 2048” na moim routerze zajmuje ponad 2 godziny, gdyby nie wskaźnik postępu, straciłbym cierpliwość i uruchomiłbym się ponownie.
Po otrzymaniu certyfikatów zrestartuj Nginx za pomocą polecenia „/opt/etc/init.d/S80nginx restart”. W zasadzie instalacja jest zakończona, ale nie ma jeszcze strony internetowej - jeśli umieścimy plik indeks.html w katalogu /share/nginx/html, zobaczymy skrót.
Aby pięknie umieścić informacje, takiemu laikowi jak ja łatwiej jest skorzystać z gotowych szablonów; po długich poszukiwaniach w różnych katalogach znalazłem szablonmo.com - istnieje duży wybór bezpłatnych szablonów, które nie wymagają podania autorstwa (co jest rzadkością w Internecie; większość szablonów w licencji wymaga zapisania linku do zasobu, z którego zostały pobrane).
Wybieramy odpowiedni szablon - są dla różnych przypadków, pobieramy archiwum i rozpakowujemy do katalogu /share/nginx/html, można to zrobić ze swojego komputera, następnie edytujemy szablon (tutaj będziesz potrzebować minimalnej wiedzy HTML, aby nie zepsuć struktury) i zastąpić grafikę tak, jak pokazano na poniższym rysunku.
Podsumowanie: router w zasadzie całkiem nadaje się do hostowania na nim lekkiej strony internetowej - jeśli nie spodziewasz się dużego obciążenia, możesz zainstaluj i phpi eksperymentuj z bardziej złożonymi projektami (patrzę na nextcloud/owncloud, wydaje się, że instalacje na takim sprzęcie są udane). Możliwość instalacji pakietów zwiększa jego użyteczność - np. gdy trzeba było chronić port RDP komputera w sieci lokalnej, zainstalowałem pukanie na routerze - a przekierowanie portów do komputera otwierało się dopiero po pukaniu portów.
Dlaczego router, a nie zwykły komputer? Router to jeden z nielicznych elementów sprzętu komputerowego, który w wielu mieszkaniach pracuje całą dobę, router domowy jest zazwyczaj absolutnie cichy, a lekka witryna z mniej niż setką odwiedzin dziennie w ogóle mu nie przeszkadza.