Хостирање веб-страница на вашиот домашен рутер

Долго време сакав да ги „допрам рацете“ на услугите на Интернет со поставување на веб-сервер од нула и пуштање на Интернет. Во оваа статија сакам да го споделам моето искуство за трансформирање на домашен рутер од високо функционален уред во речиси полноправен сервер.

Сè започна со фактот дека рутерот TP-Link TL-WR1043ND, кој верно служеше, повеќе не ги задоволуваше потребите на домашната мрежа Сакав опсег од 5 GHz и брз пристап до датотеките на уред за складирање поврзан со рутерот . Откако разгледав специјализирани форуми (4pda, ixbt), страници со прегледи и погледнав во асортиманот на локални продавници, решив да купам Keenetic Ultra.

Добрите критики од сопствениците работеа во корист на овој конкретен уред:

  • нема проблеми со прегревање (тука моравме да ги напуштиме производите на Asus);
  • оперативна сигурност (тука ја прецртав TP-Link);
  • лесно се поставува (се плашев дека не можам да се справам со тоа и го прецртав Microtik).

Морав да се помирам со недостатоците:

  • нема WiFi6, сакав да земам опрема со резерва за иднината;
  • 4 LAN порти, сакав повеќе, но ова веќе не е домашна категорија.

Како резултат, го добивме овој „сервер“:

Хостирање веб-страница на вашиот домашен рутер

  • лево е оптичкиот терминал на Ростелеком;
  • на десната страна е нашиот експериментален рутер;
  • 2 GB m.128 SSD што лежи наоколу, сместен во USB3 кутија од Aliexpress, е поврзан со рутерот со жица, сега е уредно поставен на ѕидот;
  • во преден план е продолжен кабел со независно исклучени приклучоци, жицата од неа оди до ефтин UPS-от;
  • во позадина има куп кабли со извртени парови - во фаза на реновирање на станот, веднаш испланирав RJ45 приклучоци на местата каде што требаше да се наоѓа опремата, за да не зависи од тоа дали WiFi ќе се преполни.

Значи, ја имаме опремата, треба да ја конфигурираме:

Хостирање веб-страница на вашиот домашен рутер

  • Почетното поставување на рутерот трае околу 2 минути, ги означуваме параметрите за поврзување со провајдерот (мојот оптички терминал е префрлен во режим на мост, врската PPPoE го крева рутерот), името на мрежата WiFi и лозинката - во основа тоа е тоа , рутерот се вклучува и работи.

Хостирање веб-страница на вашиот домашен рутер

Поставивме препраќање на надворешни порти до пристаништата на самиот рутер во делот „Мрежни правила - Препраќање“:

Хостирање веб-страница на вашиот домашен рутер

Хостирање веб-страница на вашиот домашен рутер

Сега можеме да преминеме на „напредниот“ дел, што сакав од рутерот:

  1. функционалност на мал NAS за домашна мрежа;
  2. извршување на функции на веб сервер за неколку приватни страници;
  3. функционалност на лична облак за пристап до лични податоци од каде било во светот.

Првиот се спроведува со помош на вградени алатки, без да бара многу напор:

  • Земаме диск наменет за оваа улога (флеш-уред, мемориска картичка во читач на картички, хард диск или SSD во надворешна кутија и го форматираме во Ext4 користејќи Волшебникот за бесплатни волшебници на MiniTool (Немам при рака компјутер со Linux, тоа е можно со вградени алатки). Како што разбрав, за време на работата системот запишува само дневници на флеш-уредот, па ако ги ограничите по поставувањето на системот, можете да користите и мемориски картички ако планирате да пишувате многу и често на уредот - SSD или HDD е подобар.

Хостирање веб-страница на вашиот домашен рутер

По ова, го поврзуваме погонот со рутерот и го набљудуваме на екранот на системскиот монитор

Хостирање веб-страница на вашиот домашен рутер

Кликнете на „USB дискови и печатачи“ за да отидете во делот „Апликации“ и да поставите споделен ресурс во делот „Мрежа“. Windows"

Хостирање веб-страница на вашиот домашен рутер

И имаме мрежен ресурс што може да се користи од компјутери под Windows, поврзувајќи го како диск доколку е потребно: ​​net use y: \192.168.1.1SSD /persistent:yes

Брзината на таков импровизиран NAS е сосема доволна за домашна употреба преку жица што го користи целиот гигабит, преку WiFi брзината е околу 400-500 мегабити.

Хостирање веб-страница на вашиот домашен рутер

Поставувањето складирање е еден од неопходните чекори за конфигурирање на серверот, тогаш ни треба:
- купи домен и статична IP адреса (можете без ова со користење на Dynamic DNS, но јас веќе имав статична IP адреса, па се покажа дека е полесна за користење бесплатни Yandex услуги - со делегирање на доменот таму, добиваме DNS хостинг и пошта на нашиот домен);

Хостирање веб-страница на вашиот домашен рутер

- конфигурирајте DNS сервери и додадете записи А што укажуваат на вашата IP адреса:

Хостирање веб-страница на вашиот домашен рутер

Потребни се неколку часа за да стапат на сила поставките за делегирање на доменот и DNS, така што истовремено го поставуваме рутерот.

Прво, треба да го инсталираме складиштето Entware, од кое можеме да ги инсталираме потребните пакети на рутерот. Ја искористив со оваа инструкција, едноставно не го подигна инсталациониот пакет преку FTP, туку креираше папка директно на претходно поврзаниот мрежен диск и ја копираше датотеката таму на вообичаен начин.

Откако сте добиле пристап преку SSH, сменете ја лозинката со командата passwd и инсталирајте ги сите потребни пакети со командата opkg install [package names]:

Хостирање веб-страница на вашиот домашен рутер

За време на поставувањето, следните пакети беа инсталирани на рутерот (излезот од командата инсталирана од списокот opkg):

Список на пакети
баш - 5.0-3
busybox - 1.31.1-1
ка-пакет - 20190110-2
ка-сертификати - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
крон - 4.1-3
навивам - 7.69.0-1
дифутили - 3.7-2
dropbear - 2019.78-3
entware-release - 1.0-2
откритија - 4.7.0-1
glib2 - 2.58.3-5
греп - 3.4-1
ldconfig - 2.27-9
libattr - 2.4.48-2
libblkid - 2.35.1-1
libc - 2.27-9
libcurl - 7.69.0-1
libffi - 3.2.1-4
libgcc - 8.3.0-9
libiconv-полн - 1.11.1-4
libintl-полн - 0.19.8.1-2
либлуа - 5.1.5-7
libmbedtls - 2.16.5-1
libmount - 2.35.1-1
Libncurses - 6.2-1
libncursesw - 6.2-1
libndm - 1.1.10-1a
libopenssl - 1.1.1d-2
libopenssl-conf - 1.1.1d-2
libpcap - 1.9.1-2
libpcre - 8.43-2
libpcre2 - 10.34-1
libpthread - 2.27-9
libreadline - 8.0-1a
librt - 2.27-9
libslang2 - 2.3.2-4
libssh2 - 1.9.0-2
libssp - 8.3.0-9
libstdcpp - 8.3.0-9
либуид - 2.35.1-1
libxml2 - 2.9.10-1
локалитети - 2.27-9
mc - 4.8.23-2
ndmq - 1.0.2-5a
nginx - 1.17.8-1
openssl-util - 1.1.1d-2
opkg — 2019-06-14-dcbc142e-2
opt-ndmsv2 - 1.0-12
php7 - 7.4.3-1
php7-mod-openssl - 7.4.3-1
сиромашна кутија - 1.31.1-2
термининфо - 6.2-1
злиб - 1.2.11-3
зонаинфо-азија - 2019c-1
zoneinfo-europe - 2019c-1

Можеби имаше нешто излишно овде, но имаше многу простор на погонот, па не се трудев да го разгледам.

По инсталирањето на пакетите конфигурираме nginx, пробав со два домени - вториот е конфигуриран со https, а засега има никулец. Внатрешните порти 81 и 433 се користат наместо 80 и 443, бидејќи административниот панел на рутерот виси на нормални порти.

etc/nginx/nginx.conf

user  nobody;
worker_processes  1;
#error_log  /opt/var/log/nginx/error.log;
#error_log  /opt/var/log/nginx/error.log  notice;
#error_log  /opt/var/log/nginx/error.log  info;
#pid        /opt/var/run/nginx.pid;

events {
    worker_connections  64;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  /opt/var/log/nginx/access.log main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;

server {
    listen 81;
    server_name milkov.su www.milkov.su;
    return 301 https://milkov.su$request_uri;
}

server {
        listen 433 ssl;
        server_name milkov.su;
        #SSL support
        include ssl.conf;
        location / {
            root   /opt/share/nginx/html;
            index  index.html index.htm;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
            }
        }
}
</spoiler>
<spoiler data-gt-translate-attributes='["title"]' title="etc/nginx/ssl.conf">
ssl_certificate /opt/etc/nginx/certs/milkov.su/fullchain.pem;
ssl_certificate_key /opt/etc/nginx/certs/milkov.su/privkey.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /opt/etc/nginx/dhparams.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_stapling on;

За да може страницата да работи преку https, ја користев добро познатата дехидрирана скрипта, инсталирајќи ја користејќи etoy инструкција. Овој процес не предизвика никакви тешкотии, само се сопнав на фактот дека во текстот на сценариото за работа на мојот рутер треба да ја коментирате линијата во датотеката /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

И забележувам дека генерирањето на dhparams.pem со командата „openssl dhparam -out dhparams.pem 2048“ на мојот рутер трае повеќе од 2 часа, ако не беше индикаторот за напредок, ќе го изгубев трпението и ќе се рестартирав.

По добивањето на сертификатите, рестартирајте го nginx со командата „/opt/etc/init.d/S80nginx рестартирајте“. Во принцип, поставувањето е завршено, но сè уште нема веб-локација - ако ја ставиме датотеката index.html во директориумот /share/nginx/html, ќе видиме никулец.

index.html

<!DOCTYPE html>
<html>
<head>
<title>Тестовая страничка!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Тестовая страничка!</h1>
<p>Это простая статическая тестовая страничка, абсолютно ничего интересного.</p>
</body>
</html>

За убаво да ги поставите информациите, на непрофесионалец како мене му е полесно да користи готови шаблони по долго пребарување низ разни каталози templatemo.com - има добар избор на бесплатни шаблони кои не бараат наведување (што е ретко на Интернет; повеќето од шаблоните во лиценцата бараат да зачувате врска до ресурсот од кој се добиени).

Избираме соодветен шаблон - има такви за различни случаи, преземете ја архивата и отпакувајте ја во директориумот /share/nginx/html, можете да го направите тоа од вашиот компјутер, а потоа уредете го шаблонот (тука ќе ви треба минимално знаење на HTML за да не се скрши структурата) и заменете ја графиката како што е прикажано на сликата подолу.

Хостирање веб-страница на вашиот домашен рутер

Резиме: рутерот е сосема погоден за хостирање на лесна веб-страница на него, во принцип - ако не очекувате големо оптоварување, можете инсталирај и php, и експериментирајте со посложени проекти (гледам на nextcloud/owncloud, се чини дека има успешни инсталации на таков хардвер). Способноста за инсталирање пакети ја зголемува нејзината корисност - на пример, кога беше неопходно да се заштити RDP-портата на компјутер на локална мрежа, инсталирав knockd на рутерот - а препраќањето на портата до компјутерот се отвори само по тропањето на портата.

Зошто рутер, а не обичен компјутер? Рутерот е еден од ретките компјутерски парчиња хардвер што работи деноноќно во многу станови, домашниот рутер обично е апсолутно тивок и лесен сајт со помалку од сто посети на ден воопшто нема да му пречи.

Извор: www.habr.com

Купете доверлив хостинг за сајтови со DDoS заштита, VPS VDS сервери 🔥 Купете сигурен веб-хостинг со DDoS заштита, VPS VDS сервери | ProHoster