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:

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

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

Seame vĂ€lispordid suunama ruuteri portidesse jaotises "VĂ”rgureeglid â Suunamine":


NĂŒĂŒd saab edasi liikuda âedasiarendatudâ osani, mida ma ruuterilt tahtsin:
- vÀikese NAS-i funktsionaalsus koduvÔrgu jaoks;
- veebiserveri funktsioonide tÀitmine mitme privaatse lehe jaoks;
- 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 (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.

PĂ€rast seda ĂŒhendame salvestusseadme ruuteriga ja vaatame seda sĂŒsteemi monitori ekraanil

KlĂ”psame âUSB-diskid ja printeridâ ja liikume jaotisse âRakendusedâ, et seadistada jagatud ressurssi jaotises âWindowsi vĂ”rkâ:

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.

Salvestuse seadistamine on ĂŒks vajalikest sammudest serveri seadistamisel; jĂ€rgmised toimingud, mida peame tegema:
â ja staatiline IP-aadress (selle vĂ”ib lahendada ka dĂŒnaamilise DNS-iga, kuid mul oli juba staatiline IP olemas, seega oli lihtsam kasutada â , saame domeeni DNS-hostingu ja postkasti);

â ja lisada A-kirjeid, mis viitavad teie IP-le:

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

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 protsessiga ei olnud probleeme, komistasin vaid sellel, et skripti tekstis minu ruuteril töötamiseks /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=enginesJa 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 â 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.

KokkuvĂ”te: ruuter sobib hĂ€sti kerge saidi majutamiseks, pĂ”himĂ”tteliselt â kui ei planeerita suurt koormust, on vĂ”imalik. , 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
