Paigalda oma veebisait koduse ruuteri peale

Mulle on juba ammu meeldinud proovida internetiteenuseid, seades veebiserverit nullist ja viies selle Internetti. Selles artiklis tahan jagada saadud kogemust koduse ruuteri muutmisest praktiliselt täisväärtuslikuks serveriks.

Kõik sai alguse sellest, et truud TP-Link TL-WR1043ND ruuter ei rahuldanud enam koduvõrgu vajadusi, tekkinud oli soov 5 GHz sagedusala ja kiire juurdepääs failidele, mis on ruuterile ühendatud salvestusseadmest. Uurisin spetsialiseeritud foorumeid (4pda, ixbt), arvustuste saite ja vaatasin kohalikke kauplusi — otsustasin osta Keenetic Ultra.

Selle seadme kasuks rääkisid head omanike hinnangud:

  • ülevaatusprobleemide puudumine (siin tuli loobuda Asus toodetest);
  • töös usaldusväärsus (siin välistas TP-Link);
  • lihtsus seadistamisel (kartsin, et ei saa hakkama, ja välistas Microtiki).

Pidin leppima miinustega:

  • pole WiFi6, tahtsin seadme, mis oleks tulevikuks varuks;
  • 4 LAN porti, tahtsin rohkem, aga see pole enam kodukaubandus.

Lõpuks sai selline "serveri" käitamine:

Paigalda oma veebisait koduse ruuteri peale

  • vasakul on Rostelecomi optiline terminal;
  • paremal on meie katsealana kasutatav ruuter;
  • ruuteriga on ühendatud ühel küljel alustatud m.2 SSD, mille ma ostsin AliExpressist, see on praegu korralikult seinale kinnitatud;
  • esiplaanil on pikendusjuhe, millel on sõltumatu pistikute väljalülitamine, juhe sellelt läheb odavale UPS-ile;
  • taustal on paarike keermejuhtmeid — korteri renoveerimise etapis planeerisin kohe RJ45 pistikud seadmete kavandatud asukoha juures, et vältida WiFi räpasust.

Nii et meil on olemas varustus, tuleb see seadistada:

Paigalda oma veebisait koduse ruuteri peale

  • ruuteri esialgne seadistamine kestab umbes 2 minutit, määrame teenusepakkujaga ühenduse parameetrid (minu optiline terminal on lülitatud sillarežiimi, PPPoE ühendus tõstatab ruuteri), WiFi võrgu nimi ja parool — põhimõtteliselt on kõik, ruuter käivitub ja töötab.

Paigalda oma veebisait koduse ruuteri peale

Seame välispordid suunama ruuteri portidesse jaotises "Võrgureeglid — Suunamine":

Paigalda oma veebisait koduse ruuteri peale

Paigalda oma veebisait koduse ruuteri peale

Nüüd saab edasi liikuda „edasiarendatud“ osani, mida ma ruuterilt tahtsin:

  1. väikese NAS-i funktsionaalsus koduvõrgu jaoks;
  2. veebiserveri funktsioonide täitmine mitme privaatse lehe jaoks;
  3. isikliku pilve funktsioon, et pääseda isiklikele andmetele igal pool maailmas.

Esimene saavutatakse sisseehitatud vahendite abil, mitte erilisi pingutusi nõudmata:

  • võtame selleks määratud salvestusseadme (fleksi, mälukaardi kaardilugejas, välise kõvaketta või SSD) ja vormindame selle Ext4 formaati MiniTool Partition Wizard Free Edition (mul ei ole käepärast Linuxi arvutit, seal saab kasutada sisseehitatud vahendeid). Kuidas ma aru saan, kirjutab süsteem failidele ainult logisid, seega, kui piirata neid pärast süsteemi seadistamist — võivad mälukaardid olla ka kasutamiseks, kuid kui plaanite sageli salvestada — siis eelistage SSD või HDD.

Paigalda oma veebisait koduse ruuteri peale

Pärast seda ühendame salvestusseadme ruuteriga ja vaatame seda süsteemi monitori ekraanil

Paigalda oma veebisait koduse ruuteri peale

Klõpsame „USB-diskid ja printerid“ ja liikume jaotisse „Rakendused“, et seadistada jagatud ressurssi jaotises „Windowsi võrk“:

Paigalda oma veebisait koduse ruuteri peale

Ja meil on võrguressurss, mida saab kasutada Windowsi arvutitest, vajadusel ühendades selle kettana: net use y: \\192.168.1.1SSD \/persistent:yes

Sellise improvisatsiooni NAS-i kiirus on täiesti piisav koduseks kasutamiseks; kaabli kaudu kasutab see kogu gigabitti, WiFi kiirus on umbes 400-500 megabitti.

Paigalda oma veebisait koduse ruuteri peale

Salvestuse seadistamine on üks vajalikest sammudest serveri seadistamisel; järgmised toimingud, mida peame tegema:
osta domeen ja staatiline IP-aadress (selle võib lahendada ka dünaamilise DNS-iga, kuid mul oli juba staatiline IP olemas, seega oli lihtsam kasutada Yandexi tasuta teenuseiddomeeni sinna delegeerides, saame domeeni DNS-hostingu ja postkasti);

Paigalda oma veebisait koduse ruuteri peale

seada DNS-serverid ja lisada A-kirjeid, mis viitavad teie IP-le:

Paigalda oma veebisait koduse ruuteri peale

Domeeni delegeerimise ja DNS-i seadete jõustumine võtab paar tundi, seega tegeleme samal ajal ruuteri seadistamisega.

Esiteks on vajalik paigaldada Entware'i repostiit, kust me saame ruuterile vajalikke pakette installida. Kasutasin seda juhendit, ainult et ei laadinud installipaketti FTP kaudu üles, vaid lõin kausta otse varem ühendatud võrgudiskile ja kopeerisin sinna faili tavalisel viisil.

SSH-ühenduse saamisel muudame parooli käsuga passwd ja installime käsuga opkg install [pakettide nimed] kõik vajalikud paketid:

Paigalda oma veebisait koduse ruuteri peale

Seadistamisel avastati ruuteris järgmised paketid (käsu opkg list-installed väljund):

Pakettide nimekiri
bash — 5.0-3
busybox — 1.31.1-1
ca-bundle — 20190110-2
ca-certificates — 20190110-2
coreutils — 8.31-1
coreutils-mktemp — 8.31-1
cron — 4.1-3
curl — 7.69.0-1
diffutils — 3.7-2
dropbear — 2019.78-3
entware-release — 1.0-2
findutils — 4.7.0-1
glib2 — 2.58.3-5
grep — 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-full — 1.11.1-4
libintl-full — 0.19.8.1-2
liblua — 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
libuuid — 2.35.1-1
libxml2 — 2.9.10-1
locales — 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
poorbox — 1.31.1-2
terminfo — 6.2-1
zlib — 1.2.11-3
zoneinfo-asia — 2019c-1
zoneinfo-europe — 2019c-1

Võimalik, et siin on midagi üleliigset, aga mäluruumi on palju, seega ei hakanud süvenema.

Paketite paigaldamise järel seadistame nginx'i. Proovisin kahte domeeni — teisel on seadistatud https ja seal ripub hetkel vaikimisi leht. 81 ja 433 on sisemised pordid, mida kasutatakse 80 ja 443 asemel, kuna tavapärastes portides on suunatud ruuteri admin paneelid.

etc/nginx/nginx.conf

kasutaja 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 toetus
        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;
            }
        }
}
\n\nssl_certificate /opt/etc/nginx/certs/milkov.su/fullchain.pem;\nssl_certificate_key /opt/etc/nginx/certs/milkov.su/privkey.pem;\nssl_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';\nssl_prefer_server_ciphers on;\nssl_dhparam /opt/etc/nginx/dhparams.pem;\nssl_session_cache shared:SSL:10m;\nssl_session_timeout 5m;\nssl_stapling on;

Selleks, et veebisait töötaks https-i kaudu, kasutasin tuntud skripti dehydrated, installides selle selle juhendi järgi. Selle protsessiga ei olnud probleeme, komistasin vaid sellel, et skripti tekstis minu ruuteril töötamiseks tuleb kommentaarida rida faili /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Ja märgin, et dhparams.pem genereerimine käsuga „openssl dhparam -out dhparams.pem 2048” minu ruuteril võtab rohkem kui 2 tundi; kui mitte progressi indikaatori eest — oleksin kaotanud kannatlikkuse ja taaskäivitanud.

Pärast sertifikaatide saamist taaskäivitame nginx-i käsuga "/opt/etc/init.d/S80nginx restart". Praktiliselt on seade lõpetatud, kuid veebisaiti veel ei ole — kui paneme katalooge /share/nginx/html faili index.html, näeme peatumispunkti.

index.html

<!DOCTYPE html>
<html>
<head>
<title>Testleht!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Testleht!</h1>
<p>See on lihtne staatiline testleht, täiesti mitte midagi huvitavat.</p>
</body>
</html>

Et esitada teavet kaunilt, on algajale nagu mina lihtsam kasutada valmis malle, pärast pikka erinevate kataloogide sirvimist leidsin templatemo.com — seal on hea valik tasuta malle, mis ei nõua autorikrediidi säilitamist (see on internetis haruldus, enamik malle litsentsides nõuavad lingi säilitamist allika juurde, kust need on saadud).

Valime sobiva šablooni — seal on erinevatele juhtumitele, laadime arhiivi alla ja puhastame selle katalooge /share/nginx/html, seda saab teha juba oma arvutist, seejärel redigeerime šablooni (siin on vajalikud minimaalset HTML-oskused, et mitte rikkuda struktuuri) ja asendame graafika, nagu on näidatud alloleval joonisel.

Paigalda oma veebisait koduse ruuteri peale

Kokkuvõte: ruuter sobib hästi kerge saidi majutamiseks, põhimõtteliselt — kui ei planeerita suurt koormust, on võimalik. paigaldada ka php, ja katsetada keerukamate projektidega (olen jälginud nextcloud/owncloud, tundub, et sellisel riistvaral on edukaid paigaldusi). Pakettide installimise võimalus suurendab selle kasulikkust — näiteks, kui oli vaja kaitsta RDP-porti PC-s kohalikus võrgus, paigaldasin knockd ruuterisse — ja porti ülekandmine PC-le avaneb ainult pärast port knockingut.

Miks just ruuter, mitte tavaline PC? Ruuter on üks väheseid arvuti komponente, mis töötab ööpäevaringselt paljudes korterites, kodune ruuter on tavaliselt täiesti müravaba ja kerge sait, millel on päevas vähem kui sada külastust, ei koorma seda absoluutselt.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster