Verkkosivuston isännöinti kotireitittimellä

Olen pitkään halunnut "koskea käsiäni" Internet-palveluihin perustamalla web-palvelimen tyhjästä ja julkaisemalla sen Internetiin. Tässä artikkelissa haluan jakaa kokemukseni kotireitittimen muuttamisesta erittäin toimivasta laitteesta lähes täysimittaiseksi palvelimeksi.

Kaikki alkoi siitä, että uskollisesti palvellut TP-Link TL-WR1043ND -reititin ei enää vastannut kotiverkon tarpeita, halusin 5 GHz:n taajuuden ja nopean pääsyn reitittimeen liitetyn tallennuslaitteen tiedostoihin. . Tutkittuani erikoisfoorumeita (4pda, ixbt), arvosteluja sisältäviä sivustoja ja paikallisten myymälöiden valikoimaa, päätin ostaa Keenetic Ultran.

Omistajilta saadut hyvät arvostelut suosivat tätä laitetta:

  • ei ongelmia ylikuumenemisen kanssa (tässä jouduimme luopumaan Asus-tuotteista);
  • toimintavarmuus (tässä ylitin TP-Linkin);
  • helppo asentaa (pelkäsin, etten pysty käsittelemään sitä ja ylitin Microtikin).

Minun piti hyväksyä haittoja:

  • ei WiFi6, halusin ottaa laitteita varauksella tulevaisuutta varten;
  • 4 LAN-porttia, halusin enemmän, mutta tämä ei ole enää kotiluokka.

Tuloksena saimme tämän "palvelimen":

Verkkosivuston isännöinti kotireitittimellä

  • vasemmalla on Rostelecomin optinen pääte;
  • oikealla on kokeellinen reitittimemme;
  • 2 Gt:n m.128 SSD, joka on sijoitettu Aliexpressin USB3-laatikkoon, on kytketty reitittimeen johdolla, nyt se on asennettu siististi seinälle;
  • etualalla on jatkojohto itsenäisesti irrotetuilla pistorasioilla, johto siitä menee edulliseen UPS:ään;
  • taustalla on nippu kierrettyjä parikaapeleita - asunnon remontin vaiheessa suunnittelin heti RJ45-pistorasiat paikkoihin, joissa laitteiden oli tarkoitus sijaita, jotta ei riippuisi WiFin roskaamisesta.

Joten meillä on laitteet, meidän on määritettävä se:

Verkkosivuston isännöinti kotireitittimellä

  • Reitittimen alkuasennus kestää noin 2 minuuttia, ilmoitamme yhteysparametrit palveluntarjoajalle (optinen päätelaitteeni on kytketty siltatilaan, PPPoE-yhteys nostaa reitittimen), WiFi-verkon nimi ja salasana - periaatteessa se , reititin käynnistyy ja toimii.

Verkkosivuston isännöinti kotireitittimellä

Asetamme ulkoisten porttien edelleenlähetyksen itse reitittimen portteihin "Verkkosäännöt - edelleenlähetys" -osiossa:

Verkkosivuston isännöinti kotireitittimellä

Verkkosivuston isännöinti kotireitittimellä

Nyt voimme siirtyä "edistyneeseen" osaan, mitä halusin reitittimeltä:

  1. pienen NAS:n toimivuus kotiverkkoon;
  2. web-palvelintoimintojen suorittaminen useille yksityisille sivuille;
  3. henkilökohtainen pilvitoiminto, jolla pääset käsiksi henkilökohtaisiin tietoihin mistä päin maailmaa tahansa.

Ensimmäinen toteutetaan sisäänrakennetuilla työkaluilla ilman paljon vaivaa:

  • Otamme tähän rooliin tarkoitetun aseman (flash-asema, muistikortti kortinlukijassa, kovalevy tai SSD ulkoiseen laatikkoon ja alustamme sen Ext4:ksi Ohjattu MiniTool-osioinnin ilmainen versio (Minulla ei ole Linux-tietokonetta käsillä, se on mahdollista sisäänrakennetuilla työkaluilla). Ymmärtääkseni järjestelmä kirjoittaa käytön aikana vain lokeja muistitikulle, joten jos rajoitat niitä järjestelmän asennuksen jälkeen, voit käyttää myös muistikortteja, jos aiot kirjoittaa paljon ja usein asemaan - SSD-levylle tai HDD on parempi.

Verkkosivuston isännöinti kotireitittimellä

Tämän jälkeen yhdistämme aseman reitittimeen ja tarkkailemme sitä järjestelmän näytön näytöllä

Verkkosivuston isännöinti kotireitittimellä

Napsauta "Sovellukset"-osiossa "USB-asemat ja tulostimet" ja määritä jako "Windows Network" -osiossa:

Verkkosivuston isännöinti kotireitittimellä

Ja meillä on verkkoresurssi, jota voidaan käyttää Windows-tietokoneista, kytkemällä tarvittaessa levynä: ​​net use y: \192.168.1.1SSD /pysyvä: kyllä

Tällaisen improvisoidun NAS:n nopeus on varsin riittävä kotikäyttöön, langalla se käyttää koko gigabitin, WiFin yli nopeus on noin 400-500 megabittiä.

Verkkosivuston isännöinti kotireitittimellä

Tallennustilan määrittäminen on yksi palvelimen määrittämiseen tarvittavista vaiheista, jolloin tarvitsemme:
- osta verkkotunnus ja staattinen IP-osoite (voit tehdä ilman tätä käyttämällä dynaamista DNS-osoitetta, mutta minulla oli jo staattinen IP, joten se osoittautui helpommaksi käyttää ilmaiset Yandex-palvelut - delegoimalla verkkotunnuksen sinne, vastaanotamme DNS-isännöinnin ja postia verkkotunnuksessamme);

Verkkosivuston isännöinti kotireitittimellä

- määritä DNS-palvelimet ja lisää IP-osoitteeseesi osoittavat A-tietueet:

Verkkosivuston isännöinti kotireitittimellä

Kestää useita tunteja, ennen kuin verkkotunnuksen ja DNS:n delegointiasetukset tulevat voimaan, joten määritämme reitittimen samanaikaisesti.

Ensin meidän on asennettava Entware-arkisto, josta voimme asentaa tarvittavat paketit reitittimeen. käytin hyväkseni tällä ohjeella, ei vain ladannut asennuspakettia FTP:n kautta, vaan loi kansion suoraan aiemmin yhdistetylle verkkoasemalle ja kopioi tiedoston sinne tavalliseen tapaan.

Kun olet saanut pääsyn SSH:n kautta, vaihda salasana passwd-komennolla ja asenna kaikki tarvittavat paketit opkg install [pakettien nimet] -komennolla:

Verkkosivuston isännöinti kotireitittimellä

Asennuksen aikana reitittimeen asennettiin seuraavat paketit (opkg list-installed -komennon tulos):

Lista paketeista
bash - 5.0-3
varattu - 1.31.1-1
ca-paketti - 20190110-2
ca-todistukset - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
cron - 4.1-3
kihara - 7.69.0-1
diffutils - 3.7-2
dropbear - 2019.78-3
entware-julkaisu - 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
ilmainen rivi - 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
libuid - 2.35.1-1
libxml2 - 2.9.10-1
alueet - 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
huonolaatikko - 1.31.1-2
terminfo - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia - 2019c-1
zoneinfo-europe - 2019c-1

Ehkä tässä oli jotain tarpeetonta, mutta asemalla oli paljon tilaa, joten en vaivautunut tutkimaan sitä.

Pakettien asennuksen jälkeen määritämme nginxin, kokeilin sitä kahdella verkkotunnuksella - toinen on määritetty https:llä, ja toistaiseksi siellä on tynkä. Sisäisiä portteja 81 ja 433 käytetään 80 ja 443 sijasta, koska reitittimen hallintapaneeli roikkuu normaaleissa porteissa.

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 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;

Jotta sivusto toimisi https:n kautta, käytin hyvin tunnettua dehydratoitua komentosarjaa ja asensin sen käyttämällä tämä ohje. Tämä prosessi ei aiheuttanut vaikeuksia, törmäsin vain siihen tosiasiaan, että reitittimeni työskentelyn käsikirjoituksen tekstissä sinun on kommentoitava tiedoston rivi /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Ja huomautan, että dhparams.pem-tiedoston luominen komennolla "openssl dhparam -out dhparams.pem 2048" reitittimessäni kestää yli 2 tuntia, ellei edistymisen ilmaisin olisi ollut, olisin menettänyt kärsivällisyytensä ja käynnistänyt uudelleen.

Kun olet saanut varmenteet, käynnistä nginx uudelleen komennolla “/opt/etc/init.d/S80nginx restart”. Periaatteessa asennus on valmis, mutta verkkosivustoa ei vielä ole - jos laitamme index.html-tiedoston hakemistoon /share/nginx/html, näemme tynkän.

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>

Sijoittaakseen tiedot kauniisti, minun kaltaiseni ei-ammattilaisen on helpompi käyttää valmiita malleja; pitkän eri luetteloiden etsimisen jälkeen löysin templatemo.com - olemassa on hyvä valikoima ilmaisia ​​malleja, jotka eivät vaadi nimeämistä (mikä on harvinaista Internetissä; useimmat lisenssin mallit edellyttävät, että tallennat linkin resurssiin, josta ne on hankittu).

Valitsemme sopivan mallin - niitä on monenlaisiin tapauksiin, lataa arkisto ja pura se /share/nginx/html-hakemistoon, voit tehdä tämän tietokoneeltasi ja muokata mallia (tässä tarvitset vain vähän tietoa HTML:stä, jotta rakenne ei riko) ja vaihda grafiikka alla olevan kuvan mukaisesti.

Verkkosivuston isännöinti kotireitittimellä

Yhteenveto: reititin sopii periaatteessa varsin kevyen verkkosivuston isännöimiseen - jos et odota suurta kuormaa, voit asennus ja phpja kokeile monimutkaisempia projekteja (katsoin nextcloud/owncloudia, näyttää siltä, ​​että sellaisille laitteille on tehty onnistuneita asennuksia). Mahdollisuus asentaa paketteja lisää sen hyödyllisyyttä - esimerkiksi kun oli tarpeen suojata PC:n RDP-portti paikallisessa verkossa, asensin knockd:n reitittimeen - ja portin edelleenlähetys PC:lle avattiin vasta portin koputuksen jälkeen.

Miksi reititin eikä tavallinen tietokone? Reititin on yksi harvoista ympäri vuorokauden toimivista tietokonelaitteistoista monissa asunnoissa, kodin reititin on yleensä täysin äänetön ja kevyt sivusto, jossa on alle sata käyntiä päivässä, ei häiritse sitä ollenkaan.

Lähde: will.com

Lisää kommentti