Asetame veebisaidi kodu ruuteri peale

Mul on juba ammu olnud soov "kÀtte vÔtta" internetiteenused, seadistades veebiserveri nullist ja viies selle Internetti. Selles artiklis tahan jagada oma saadud kogemusi koduse ruuteri muutmisest kitsalt funktsionaalsest seadmest praktiliselt tÀieÔiguslikuks serveriks.

KĂ”ik sai alguse sellest, et ustav TP-Link TL-WR1043ND ruuter lĂ”petas meie koduvĂ”rgu vajaduste rahuldamise, soovisin 5GHz sagedust ja kiiret juurdepÀÀsu ruuteriga ĂŒhendatud ketastele. Olles vaadanud spetsiaalseid foorumeid (4pda, ixbt), arvustuste saite ja vaadanud kohalike poodide valikut — otsustasin osta Keenetic Ultra.

Selle seadme kasuks rÀÀkisid head omanike arvustused:

  • ĂŒlekuumenemise probleemide puudumine (siin pidin loobuma Asusest);
  • töös usaldusvÀÀrsus (siin jĂ€tsin vĂ€lja TP-Linki);
  • seadistamise lihtsus (kartsin, et ei saa hakkama, ja jĂ€tsin vĂ€lja Microtiki).

Pidin leppima miinustega:

  • ei ole WiFi6, tahtsin tulevikuks varu;
  • 4 LAN-porti, tahtsin rohkem, aga see on juba mitte kodukategooria.

KokkuvÔttes on see selline "serveri" seadistus:

Asetame veebisaidi kodu ruuteri peale

  • vasakul on Rostelecomi optiline terminal;
  • paremal on meie katse seade;
  • ruuteriga on ĂŒhendatud juhuslik m.2 SSD mahutavusega 128 GB, mis on paigutatud USB3 karpi Aliexpressilt ja on nĂŒĂŒd korralikult kinnitatud seinale;
  • ees olevas plaanis on pikendus, millel on iseseisev vĂ€ljalĂŒlitamine, juhtme sealt jookseb odava UPS-ini;
  • tagaplaanil on paar pööratud paari — korteri remondi ajal planeerisin kohe RJ45 pesad seadmete kavandatud paigutuse kohtadesse, et mitte sĂ”ltuda WiFi ĂŒlerahvastatusest.

Nii et meil on seadmed, nĂŒĂŒd on vaja need seadistada:

Asetame veebisaidi kodu ruuteri peale

  • ruuteri esmane seadistamine vĂ”tab umbes 2 minutit, mÀÀrame pakkuja ĂŒhenduse parameetrid (minu optiline terminal on seadistatud sillareĆŸiimi, PPPoE ĂŒhendus tĂ”stab ruuteri), WiFi vĂ”rgu nime ja parooli — pĂ”himĂ”tteliselt on see kĂ”ik, ruuter kĂ€ivitub ja töötab.

Asetame veebisaidi kodu ruuteri peale

Seame ruuteri vĂ€liste portide edastamise oma ruuteri portide suunas jaotises "VĂ”rgureeglid — Edastamine":

Asetame veebisaidi kodu ruuteri peale

Asetame veebisaidi kodu ruuteri peale

NĂŒĂŒd saab liikuda "tĂ€iustatud" osa juurde, mida ma ruuterilt tahtsin:

  1. vÀikese NASi funktsionaalsus koduvÔrgus;
  2. veebiserveri funktsioonide tÀitmine mitme isikliku lehe jaoks;
  3. isikliku pilve funktsionaalsus, et pÀÀseda ligipÀÀsetud andmetele mis tahes punktist maailmas.

Esimene rakendatakse sisseehitatud vahenditega, ilma eriliste pingutusteta:

  • vĂ”tame mÀÀratud seadme (mĂ€lupulk, mĂ€kaart kaardilugejas, vĂ€line kĂ”vaketas vĂ”i SSD) ja vormindame selle Ext4 formaati abil MiniTool Partition Wizard Free Edition (mul ei ole kĂ€epĂ€rast Linuxiga arvutit, seal saab kasutada sisseehitatud vahendeid). Nagu ma aru saan, kirjutab sĂŒsteem töötamise ajal mĂ€lupulgale ainult logisid, seega, kui need pĂ€rast sĂŒsteemi seadistamist piirata — on vĂ”imalik kasutada ka mĂ€ekaarte, kuid kui kavatsete sageli ja palju andmeid kirjutada - on parem kasutada SSD vĂ”i HDD.

Asetame veebisaidi kodu ruuteri peale

PĂ€rast seda ĂŒhendame seadme ruuteriga ja nĂ€eme seda sĂŒsteemi monitori ekraanil

Asetame veebisaidi kodu ruuteri peale

KlĂ”psame "USB-diskid ja printerid" peal, et minna rakenduste sektsiooni ja seadistame ĂŒhise ressursi Windowsi vĂ”rgu jaotises:

Asetame veebisaidi kodu ruuteri peale

Ja meil on vĂ”rguressurss, mida saab Windowsi arvutitest kasutada, kui on vaja ĂŒhendada draivina: net use y: \192.168.1.1SSD /persistent:yes

Sellise improviseritud NAS-i kiirus on tÀiesti piisav koduseks kasutamiseks, lÀbi kaabli kasutab see kogu gigabitti, WiFi kaudu on kiirus umbes 400-500 megabitti.

Asetame veebisaidi kodu ruuteri peale

Salvestusruumi seadistamine on vajalik samm serveri seadistamiseks, edasi peame me:
— ostma domeeni ja staatilise IP-aadresse (saab ka ilma selleta hakkama, kasutades Dynamic DNS-i, kuid mul oli juba staatiline IP, seega oli lihtsam kasutada Yandexi tasuta teenuseid — , delegeerides domeeni sinna, saame DNS-hostingu ja e-posti oma domeenis);

Asetame veebisaidi kodu ruuteri peale

— seadistama DNS-serverid ja lisama A-kirjed, mis viitavad teie IP-le:

Asetame veebisaidi kodu ruuteri peale

Domeeni delegeerimise ja DNS-i seadistuste kehtima hakkamine vÔtab paar tundi, seega tegeleme samal ajal ruuteri seadistamisega.

Esmalt peame installima Entware'i hoidla, kust saame ruuterile vajalikke pakette paigaldada. Kasutasin seda Ă”petust, ainult et ma ei laadinud installipakki FTP kaudu, vaid lĂ”in kausta otse varem ĂŒhendatud vĂ”rgu kettale ja kopeerisin faili tavalise meetodiga.

SSH kaudu juurde pÀÀsedes muutame parooli kÀsuga passwd ja paigaldame kÀsuga opkg install [pakettide nimed] kÔik vajalikud paketid:

Asetame veebisaidi kodu ruuteri peale

Ruuteri seadistamise kÀigus olid paigaldatud jÀrgmised paketid (kÀskluse opkg list-installed vÀljundi tulemus):

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Ă”ib-olla on siin midagi ĂŒleliigset, aga salvestusse on palju ruumi, seega ei hakanud uurima.

PĂ€rast pakettide installimist seadistame nginx'i, proovisin kahel domeenil – teisel on seadistatud https, ja praegu on seal vahepealne leht. 81 ja 433 sisemisi porte kasutatakse 80 ja 443 asemel, kuna administraatori paneelid on normaalsetel portidel.

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


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;

Selleks, et veebisait töötaks https protokolliga, kasutasin tuntud skripti dehydrated, paigaldades selle vastavalt sellele juhendile. Selle protsessiga ei olnud keerukusi, takerdusin vaid sellele, et skripti tekstis, et see töötaks minu ruuteril, tuleb kommenteerida vÀlja rida failis /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Ja mainin, et dhparams.pem genereerimine kĂ€suga "openssl dhparam -out dhparams.pem 2048" minu ruuteril vĂ”tab ĂŒle 2 tunni, kui mitte edenemise indikaator — oleks kaotanud kannatuse ja taaskĂ€ivitanud.

PĂ€rast sertifikaatide saamist taaskĂ€ivitame nginx'i kĂ€suga "/opt/etc/init.d/S80nginx restart". PĂ”himĂ”tteliselt on seaded sellega lĂ”ppenud, kuid veebisaiti veel ei ole — kui paneme katalooge /share/nginx/html faili index.html, nĂ€eme sulgu.

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 ilusti, on mittespetsialistil nagu mina lihtsam kasutada valmis mallide, pĂ€rast pikka erinevate kataloogide sirvimist leidsin templatemo.com — seal on ĂŒsna hea valik tasuta malle, mis ei nĂ”ua autorluse nĂ€itamist (mis on internetis haruldane, enamiku mallide litsentsid nĂ”uavad, et sĂ€ilitatud oleks link allikale, kust need saadud).

Valime sobiva malli — seal on erinevaid vĂ”imalusi, laadime arhiivi alla ja ekstraktime selle katalooge /share/nginx/html, seda saab teha juba oma arvutist, seejĂ€rel redigeerime malli (siin on vajalikud minimaalsed HTML-oskused, et struktuuri mitte rikuda) ja vahetame graafika, nagu on nĂ€idatud alloleval joonisel.

Asetame veebisaidi kodu ruuteri peale

KokkuvĂ”te: ruuter on tĂ€iesti sobiv kergete veebisaitide majutamiseks, pĂ”himĂ”tteliselt — kui ei ole plaanis suurt koormust, vĂ”ib paigaldada ka php, ja katsetada keerukamate projektidega (vaatan nextcloud/owncloud, tundub, et sellisel riistvaral on olnud edukaid paigaldusi). Pakettide paigaldamise vĂ”imalus tĂ”stab selle kasulikkust — nĂ€iteks, kui oli vaja kaitsta RDP pordid kohalikus vĂ”rgus, panin knockd ruuterisse — ja pordi ĂŒmbersuunamine PC-le avanes ainult pĂ€rast port knockingut.

Miks just ruuter, mitte tavaline PC? Ruuter on ĂŒks vĂ€heseid arvutiseadmeid, mis töötab ööpĂ€evaringselt paljudes korterites, kodune ruuter on tavaliselt tĂ€iesti vaikne ja kerge sait, mille kĂŒlastuste arv pĂ€evas on alla saja, ei koorma seda sugugi.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster