Vietnes mitināŔana mājas marÅ”rutētājā

Es jau sen vēlējos ā€œpieskarties savām rokāmā€ interneta pakalpojumiem, izveidojot tÄ«mekļa serveri no nulles un izlaižot to internetā. Å ajā rakstā es vēlos dalÄ«ties savā pieredzē, kā mājas marÅ”rutētāju pārveidot no ļoti funkcionālas ierÄ«ces par gandrÄ«z pilnvērtÄ«gu serveri.

Viss sākās ar to, ka TP-Link TL-WR1043ND marÅ”rutētājs, kas bija uzticÄ«gi kalpojis, vairs neatbilda mājas tÄ«kla vajadzÄ«bām; es gribēju 5 GHz joslu un ātru piekļuvi failiem glabāŔanas ierÄ«cē, kas savienota ar marÅ”rutētāju. . IzpētÄ«jis specializētos forumus (4pda, ixbt), vietnes ar atsauksmēm un apskatÄ«jis vietējo veikalu sortimentu, es nolēmu iegādāties Keenetic Ultra.

Labas atsauksmes no Ä«paÅ”niekiem darbojās par labu Å”ai konkrētajai ierÄ«cei:

  • nav problēmu ar pārkarÅ”anu (Å”eit mums bija jāatsakās no Asus produktiem);
  • darbÄ«bas uzticamÄ«ba (Å”eit es izsvÄ«troju TP-Link);
  • viegli uzstādÄ«t (es baidÄ«jos, ka netikÅ”u galā, un izsvÄ«troju Microtik).

Man bija jāsamierinās ar trūkumiem:

  • nav WiFi6, gribēju paņemt tehniku ā€‹ā€‹ar rezervi nākotnei;
  • 4 LAN porti, gribējās vairāk, bet Ŕī vairs nav mājas kategorija.

Rezultātā mēs saņēmām Å”o ā€œserveriā€:

Vietnes mitināŔana mājas marÅ”rutētājā

  • kreisajā pusē ir Rostelecom optiskais terminālis;
  • labajā pusē ir mÅ«su eksperimentālais marÅ”rutētājs;
  • guļoÅ”s 2 GB m.128 SSD, kas ielikts USB3 kastē no Aliexpress, ar vadu savienots ar rÅ«teri, tagad glÄ«ti piestiprināts pie sienas;
  • priekÅ”plānā ir pagarinātājs ar neatkarÄ«gi atvienotām rozetēm, vads no tā iet uz lētu UPS;
  • fonā vÄ«tā pāra kabeļu kÅ«lis - dzÄ«vokļa remonta stadijā uzreiz ieplānoju RJ45 ligzdas tajās vietās, kur bija jāatrodas tehnikai, lai nebÅ«tu atkarÄ«gs no WiFi piegružoÅ”anas.

Tātad, mums ir aprīkojums, mums tas jākonfigurē:

Vietnes mitināŔana mājas marÅ”rutētājā

  • MarÅ”rutētāja sākotnējā iestatÄ«Å”ana aizņem apmēram 2 minÅ«tes, sniedzam norādām savienojuma parametrus (mans optiskais terminālis ir pārslēgts tilta režīmā, PPPoE savienojums paceļ marÅ”rutētāju), WiFi tÄ«kla nosaukums un parole - bÅ«tÄ«bā tas arÄ« viss , marÅ”rutētājs tiek palaists un darbojas.

Vietnes mitināŔana mājas marÅ”rutētājā

Sadaļā ā€œTÄ«kla noteikumi ā€” pārsÅ«tÄ«Å”anaā€ mēs iestatÄ«jām ārējo portu pārsÅ«tÄ«Å”anu uz paÅ”a marÅ”rutētāja portiem:

Vietnes mitināŔana mājas marÅ”rutētājā

Vietnes mitināŔana mājas marÅ”rutētājā

Tagad mēs varam pāriet uz ā€œuzlabotoā€ daļu, ko es gribēju no marÅ”rutētāja:

  1. neliela NAS funkcionalitāte mājas tīklam;
  2. tīmekļa servera funkciju veikŔana vairākām privātām lapām;
  3. personīgā mākoņa funkcionalitāte, lai piekļūtu personas datiem no jebkuras vietas pasaulē.

Pirmais tiek īstenots, izmantojot iebūvētos rīkus, neprasot daudz pūļu:

  • Mēs paņemam Å”ai lomai paredzētu disku (zibatmiņas disku, atmiņas karti karÅ”u lasÄ«tājā, cieto disku vai SSD ārējā kastē un formatējam to uz Ext4, izmantojot MiniTool SadalÄ«Å”anās vedņa bezmaksas izdevums (Man nav pie rokas datora ar Linux, tas ir iespējams ar iebÅ«vētiem rÄ«kiem). Cik noprotu, tad darbÄ«bas laikā sistēma zibatmiņā ieraksta tikai žurnālus, tāpēc, ja tos ierobežo pēc sistēmas iestatÄ«Å”anas, var izmantot arÄ« atmiņas kartes, ja plānojat daudz un bieži rakstÄ«t diskā - SSD vai HDD ir labāks.

Vietnes mitināŔana mājas marÅ”rutētājā

Pēc tam mēs savienojam disku ar marÅ”rutētāju un novērojam to sistēmas monitora ekrānā

Vietnes mitināŔana mājas marÅ”rutētājā

NoklikŔķiniet uz "USB diskdziņi un printeri" sadaļā "Lietojumprogrammas" un konfigurējiet kopÄ«goÅ”anu sadaļā "Windows tÄ«kls":

Vietnes mitināŔana mājas marÅ”rutētājā

Un mums ir tÄ«kla resurss, ko var izmantot no Windows datoriem, nepiecieÅ”amÄ«bas gadÄ«jumā pieslēdzoties kā diskam: net use y: \192.168.1.1SSD /persistent:yes

Šāda improvizēta NAS ātrums ir diezgan pietiekams lietoÅ”anai mājās, pa vadu tas izmanto visu gigabitu, pa WiFi ātrums ir aptuveni 400-500 megabiti.

Vietnes mitināŔana mājas marÅ”rutētājā

Krātuves iestatÄ«Å”ana ir viena no nepiecieÅ”amajām darbÄ«bām, lai konfigurētu serveri, tad mums ir nepiecieÅ”ams:
Sākot no iegādāties domēnu un statisku IP adresi (var iztikt bez tā, izmantojot dinamisko DNS, bet man jau bija statisks IP, tāpēc izrādÄ«jās vieglāk izmantot bezmaksas Yandex pakalpojumi Sākot no deleģējot domēnu tur, mēs saņemam DNS mitināŔanu un pastu savā domēnā);

Vietnes mitināŔana mājas marÅ”rutētājā

Sākot no konfigurēt DNS serverus un pievienojiet A ierakstus, kas norāda uz jūsu IP:

Vietnes mitināŔana mājas marÅ”rutētājā

Paiet vairākas stundas, lÄ«dz domēna un DNS deleģēŔanas iestatÄ«jumi stājas spēkā, tāpēc mēs vienlaikus veicam marÅ”rutētāja iestatÄ«Å”anu.

Pirmkārt, mums ir jāinstalē Entware repozitorijs, no kura mēs varam instalēt nepiecieÅ”amās pakotnes marÅ”rutētājā. Es izmantoju priekÅ”rocÄ«bas ar Å”o instrukciju, vienkārÅ”i neaugÅ”upielādēja instalācijas pakotni, izmantojot FTP, bet izveidoja mapi tieÅ”i iepriekÅ” pievienotajā tÄ«kla diskdzinÄ« un nokopēja failu tur parastajā veidā.

Kad esat ieguvis piekļuvi, izmantojot SSH, nomainiet paroli ar komandu passwd un instalējiet visas nepiecieÅ”amās pakotnes ar komandu opkg install [package names]:

Vietnes mitināŔana mājas marÅ”rutētājā

IestatÄ«Å”anas laikā marÅ”rutētājā tika instalētas Ŕādas pakotnes (opkg list-installed komandas izvade):

PakeŔu saraksts
bash - 5.0-3
aizņemts ā€” 1.31.1-1
ca-bundle - 20190110-2
ca-sertifikāti - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
krons - 4.1-3
čokuroŔanās - 7.69.0-1
difutils - 3.7-2
lācis - 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
liblkid - 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
bezmaksas līnija - 8.0-1a
librts - 2.27-9
libslang2 - 2.3.2-4
libssh2 ā€” 1.9.0-2
libssp - 8.3.0-9
libstdcpp ā€” 8.3.0-9
libīds - 2.35.1-1
libxml2 ā€” 2.9.10-1
lokalizācijas - 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
nabaga kaste - 1.31.1-2
terminfo - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia ā€” 2019c-1
zoneinfo-europe ā€” 2019c-1

VarbÅ«t Å”eit bija kaut kas lieks, bet diskā bija daudz vietas, tāpēc es neuztraucos to izpētÄ«t.

Pēc pakotņu instalÄ“Å”anas konfigurējam nginx, izmēģināju ar diviem domēniem - otrais ir konfigurēts ar https, un pagaidām ir stubs. IekŔējie porti 81 un 433 tiek izmantoti 80 un 443 vietā, jo marÅ”rutētāja administratora panelis karājas pie parastajiem portiem.

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;

Lai vietne darbotos, izmantojot https, es izmantoju labi zināmo dehidrēto skriptu, instalējot to, izmantojot Å”o instrukciju. Å is process nesagādāja nekādas grÅ«tÄ«bas, es tikai paklupu uz to, ka skripta tekstā darbam ar manu marÅ”rutētāju jums ir jākomentē faila rindiņa /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Un es atzÄ«mēju, ka dhparams.pem Ä£enerÄ“Å”ana ar komandu ā€œopenssl dhparam -out dhparams.pem 2048ā€ manā marÅ”rutētājā aizņem vairāk nekā 2 stundas, ja ne progresa indikators, es bÅ«tu zaudējis pacietÄ«bu un pārstartētu.

Pēc sertifikātu saņemÅ”anas restartējiet nginx ar komandu ā€œ/opt/etc/init.d/S80nginx restartā€. Principā iestatÄ«Å”ana ir pabeigta, bet vēl nav mājas lapas - ja mēs ievietosim index.html failu /share/nginx/html direktorijā, mēs redzēsim stub.

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>

Lai skaisti izvietotu informāciju, tādam neprofesionālam kā man ir vieglāk izmantot gatavas veidnes; pēc ilgas meklÄ“Å”anas dažādos katalogos atradu templatemo.com - ir laba bezmaksas veidņu izvēle, kurām nav nepiecieÅ”ams attiecinājums (kas internetā ir reti sastopams; lielākajai daļai licences veidņu ir jāsaglabā saite uz resursu, no kura tās iegÅ«tas).

Mēs izvēlamies piemērotu veidni - tās ir dažādiem gadÄ«jumiem, lejupielādējiet arhÄ«vu un izpakojiet to /share/nginx/html direktorijā, to varat izdarÄ«t no sava datora, pēc tam rediģējiet veidni (Å”eit jums bÅ«s nepiecieÅ”amas minimālas zināŔanas HTML, lai nesabojātu struktÅ«ru) un nomainiet grafiku, kā parādÄ«ts attēlā zemāk.

Vietnes mitināŔana mājas marÅ”rutētājā

Kopsavilkums: marÅ”rutētājs ir diezgan piemērots, lai tajā mitinātu vieglu vietni, principā - ja jÅ«s negaidāt lielu slodzi, varat instalēt un php, un eksperimentējiet ar sarežģītākiem projektiem (skatos nextcloud/owncloud, Ŕķiet, ka ir veiksmÄ«gas instalācijas uz Ŕādu aparatÅ«ru). Iespēja instalēt pakotnes palielina tā lietderÄ«bu - piemēram, kad bija nepiecieÅ”ams aizsargāt datora RDP portu lokālajā tÄ«klā, es instalēju knockd marÅ”rutētājā - un portu pārsÅ«tÄ«Å”ana uz datoru tika atvērta tikai pēc porta klauvÄ“Å”anas.

Kāpēc marÅ”rutētājs, nevis parasts dators? MarÅ”rutētājs ir viena no retajām datora aparatÅ«ras daļām, kas daudzos dzÄ«vokļos darbojas visu diennakti; mājas marÅ”rutētājs parasti ir absolÅ«ti kluss un viegla vietne ar mazāk nekā simts apmeklējumiem dienā tam netraucēs.

Avots: www.habr.com

Pievieno komentāru