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:

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

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

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


NĂŒĂŒd saab liikuda "tĂ€iustatud" osa juurde, mida ma ruuterilt tahtsin:
- vÀikese NASi funktsionaalsus koduvÔrgus;
- veebiserveri funktsioonide tÀitmine mitme isikliku lehe jaoks;
- 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 (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.

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

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

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.

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

â ja lisama A-kirjed, mis viitavad teie IP-le:

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 , 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:

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 . Selle protsessiga ei olnud keerukusi, takerdusin vaid sellele, et skripti tekstis, et see töötaks minu ruuteril, /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=enginesJa 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 â 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.

KokkuvĂ”te: ruuter on tĂ€iesti sobiv kergete veebisaitide majutamiseks, pĂ”himĂ”tteliselt â kui ei ole plaanis suurt koormust, vĂ”ib , 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
