Мне даўно хацелася "пакратаць рукамі" інтэрнэт-сэрвісы, настроіўшы вэб-сервер з нуля і выпусціўшы яго ў Інтэрнэт. У гэтым артыкуле жадаю падзяліцца атрыманым досведам ператварэння хатняга роўтара з вузкафункцыянальнай прылады ў практычна паўнавартасны сервер.
Пачалося ўсё з таго, што які служыў верай і праўдай роўтар TP-Link TL-WR1043ND перастаў задавальняць запатрабаванні хатняй сеткі, захацелася 5Ггц дыяпазону і хуткага доступу да файлаў на назапашвальніку, падлучаным да роўтара. Прагледзеўшы профільныя форумы (4pda, ixbt), сайты з водгукамі і паглядзеўшы на асартымент мясцовых крам - вырашыў набыць Keenetic Ultra.
На карысць менавіта гэтай прылады спрацавалі добрыя водгукі ўладальнікаў:
адсутнасць праблем з перагрэвам (тут прыйшлося адмовіцца ад прадукцыі Asus);
надзейнасць у працы (тут выкрасліў TP-Link);
прастата ў наладзе (пабаяўся не справіцца і выкрасліў Microtik).
Прыйшлося прымірыцца з мінусамі:
няма WiFi6, хацелася ўзяць абсталяванне з запасам на будучыню;
4 LAN порта, хацелася больш, але гэта ўжо не хатняя катэгорыя.
У выніку атрымалася вось такая "серверная":
злева аптычны тэрмінал Растэлекама;
справа наш паддоследны роўтэр;
провадам да роўтара падлучаны заваляўшыся m.2 SSD на 128 ГБ, змешчаны ў скрынку USB3 з аліэкспрэса, цяпер ён акуратна замацаваны на сценцы;
на пярэднім плане падаўжальнік з незалежным адключэннем разетак, провад ад яго ідзе да недарагога UPS;
на заднім плане пучок вітай пары - на этапе рамонту кватэры адразу запланаваў RJ45 разеткі ў месцах меркаванага размяшчэння тэхнікі, каб не залежаць ад засмечанасці WiFi.
Такім чынам, у нас ёсць абсталяванне, неабходна яго наладзіць:
першасная налада роўтара займае каля 2 хвілін, паказваем параметры падлучэння да правайдэра (у мяне аптычны тэрмінал пераключаны ў рэжым брыджа, PPPoE злучэнне паднімае роўтар), назоў WiFi сеткі і пароль — у прынцыпе ўсё, роўтар запускаецца і працуе.
Ставім пераадрасаванне знешніх партоў на парты самага роўтара ў раздзеле "Сеткавыя правілы - Пераадрасацыя":
Цяпер можна перайсці да «прасунутай» часткі, чаго я хацеў ад роўтара:
функцыянал невялікага NAS для хатняй сеткі;
выкананне функцый вэб-сервера для некалькіх прыватных старонак;
функцыянал персанальнага аблокі для доступу да асабістых дадзеных з любой кропкі свету.
Першае рэалізуецца ўбудаванымі сродкамі, не патрабуючы асаблівых намаганняў:
бярэм прызначаны для гэтай ролі назапашвальнік (флэшку, карту памяці ў картрыдары, цвёрдая кружэлка або SSD у вонкавым боксе і фарматуем у Ext4 з дапамогай Бясплатнае выданне MiniTool Partition Wizard (у мяне няма кампутара з linux пад рукой, тамака можна ўбудаванымі сродкамі). Як я разумею, пры працы сістэма піша на флешку толькі логі, таму, калі іх абмежаваць пасля налады сістэмы - можна выкарыстоўваць і карты памяці, калі плануеце шмат і часта пісаць на назапашвальнік - лепш SSD або HDD.
Пасля гэтага падлучальны назапашвальнік да роўтара і назіраем яго на экране сістэмнага манітора
Пераходзім пстрычкай па «USB-дыскі і друкаркі» у раздзел «Дадаткі» і наладжваем агульны рэсурс у раздзеле «Сетка Windows»:
І ў нас ёсць сеткавы рэсурс, які можна выкарыстоўваць з кампутараў пад Windows, падлучыўшы пры неабходнасці як дыск: net use y: \192.168.1.1SSD /persistent:yes
Хуткасць такога імправізаванага NAS суцэль дастатковая для хатняга ўжывання, па провадзе ён выкарыстоўвае ўвесь гігабіт, па WiFi хуткасць складае каля 400-500 мегабіт.
Налада сховішча - адзін з неабходных крокаў для налады сервера, далей нам трэба:
- набыць дамен і статычны IP адрас (можна абыйсціся і без гэтага, выкарыстаючы Dynamic DNS, але статычны IP у мяне ўжо быў, таму прасцей аказалася скарыстацца бясплатнымі сэрвісамі Яндэкса - дэлегаваўшы туды дамен, мы атрымліваем DNS-хостынг і пошту на сваім дамене);
Уступленне ў сілу налад дэлегавання дамена і DNS займае некалькі гадзін, таму раўналежна займаемся наладай роўтара.
Для пачатку неабходна ўсталяваць рэпазітар Entware, з якога мы зможам ставіць на роўтар неабходныя пакеты. Я скарыстаўся гэтай інструкцыяй, толькі не заліваў усталявальны пакет па FTP, а стварыў тэчку прама на падлучанай раней сеткавай кружэлцы і скапіяваў туды файл звычайным спосабам.
Атрымаўшы доступ па SSH, мяняем пароль камандай passwd і ставім камандай opkg install [імёны пакетаў] усе патрэбныя пакеты:
У ходзе налады на роўтары аказаліся ўсталяваныя наступныя пакеты (вынік вываду каманды opkg list-installed):
Магчыма, тут нешта лішняе зачасалася, але месца на назапашвальніку шмат, таму разбірацца не стаў.
Пасля ўсталёўкі пакетаў наладжваем nginx, я спрабаваў з двума даменамі - на другім наладжаны https, і пакуль вісіць заглушка. 81 і 433 унутраныя парты замест 80 і 443 выкарыстоўваюцца, паколькі на нармальных партах вісяць адмінкі роўтара.
Для таго, каб сайт працаваў па https, скарыстаўся вядомым скрыптам dehydrated, усталяваўшы яго па гэтай інструкцыі. Цяжкасцяў гэты працэс не выклікаў, запнуўся толькі на тым, што ў тэксце скрыпту для працы на маім роўтары трэба закаментаваць радок у файле /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=engines
І адзначу, што генерацыя dhparams.pem камандай "openssl dhparam -out dhparams.pem 2048" на маім роўтары займае больш за 2 гадзіны, калі б не індыкатар прагрэсу - страціў бы цярпенне і перазагрузіў.
Пасля атрымання сертыфікатаў перазапускаем nginx камандай "/opt/etc/init.d/S80nginx restart". У прынцыпе на гэтым налада скончана, але сайта яшчэ няма - калі пакладзем у каталог /share/nginx/html файл index.html, убачым заглушку.
Каб размясціць інфармацыю прыгожа, непрафесіяналу тыпу мяне прасцей скарыстацца гатовымі шаблонамі, пасля доўгага перабору розных каталогаў знайшоў templatemo.com - там нядрэнны выбар бясплатных шаблонаў, якія не патрабуюць абавязковага ўказання аўтарства (што рэдкасць у інтэрнэце, большая частка шаблонаў у ліцэнзіі патрабуюць захаваць спасылку на рэсурс, адкуль яны атрыманы).
Выбіраемы падыходны шаблон - там ёсць на самыя розныя выпадкі, запампоўваем архіў, і распакоўваем яго ў каталог /share/nginx/html, рабіць гэта можна ўжо са свайго кампутара, затым рэдагуем шаблон (тут запатрабуюцца мінімальныя веды HTML, каб не парушыць структуру) і заменны графіку, як паказана на малюнку ніжэй.
Рэзюмэ: роўтэр цалкам прыдатны для размяшчэння на ім лёгкага сайта, у прынцыпе - калі не мяркуецца вялікай нагрузкі, можна паставіць і php, і эксперыментаваць з больш складанымі праектамі (гляджу на nextcloud/owncloud, накшталт ёсць паспяховыя ўстаноўкі на такое жалеза). Магчымасць усталёўкі пакетаў паднімае яго карыснасць – напрыклад, калі трэба было абараніць RDP порт ПК у лакальнай сетцы, паставіў knockd на роўтар – і пракід порта да ПК адкрываўся толькі пасля port knocking.
Чаму менавіта роўтар, а не звычайны PC? Роўтар - адна з нямногіх кампутарных жалязяк, якія кругласутачна працуюць у многіх кватэрах, хатні роўтэр звычайна абсалютна бясшумны і лёгкі сайт з лікам наведванняў у суткі менш за сотню яго зусім не напружыць.