Saugus namų serverio pasiekiamumas: „Cloudflare Tunnel“ diegimo gidas (Terminalo kelias)
Pamirškite nesaugius portų atidarymus maršrutizatoriuje. Šiame gide parodysiu, kaip sukonfigūruoti „Cloudflare Tunnel“ ne per naršyklės „click-fest“, o taip, kaip tai daro sistemų administratoriai – per terminalą, su pilna kontrole ir „Infrastructure as Code“ požiūriu.
1 žingsnis: Autentifikacija ir tunelio inicijavimas
Pirmiausia, patikriname savo „cloudflared“ versiją ir susiejame serverį su „Cloudflare“ debesimi:
Bash
cloudflared tunnel login
Gavę leidimą, sukuriame tunelį. Pavadinome jį namu-serveris – tai unikalus identifikatorius, kuris vėliau susiejamas su tavo „Cloudflare“ paskyra:
Bash
cloudflared tunnel create namu-serveris
Svarbu: Pasitikriname tunelio sukūrimo sėkmę su cloudflared tunnel list ir pasižymime UUID.
2 žingsnis: Konfigūracija su „Pro“ požiūriu
Kad sistema būtų stabili, nekuriame jokių „nustatymų debesyje“ – visą logiką laikome serveryje, config.yml faile. Tai leidžia mums bet kada peržiūrėti, kokie srautai kur nukreipiami.
Bash
nano ~/.cloudflared/config.yml
Štai konfigūracija, kurią naudojame mes (įskaitant „Samba“ ar „Proxmox“ paslaugas, jei reikia):
YAML
tunnel: <TUNNEL_ID>
credentials-file: /root/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: blog.andriejus.work
service: http://localhost:2368
- hostname: kameros.andriejus.work
service: http://localhost:8080
# Klaidų valdymas: jei užklausa neatitinka host'o – grąžiname 404
- service: http_status:404
3 žingsnis: Tinklo maršrutizavimas ir DNS „magija“
Kad tavo domenai veiktų be papildomų „Cloudflare“ skydelio nustatymų, DNS įrašus sukonfigūruojame komandine eilute. Tai užtikrina, kad DNS įrašai būtų tiesiogiai susieti su mūsų sukurtu tuneliu:
Bash
cloudflared tunnel route dns namu-serveris blog.andriejus.work
cloudflared tunnel route dns namu-serveris kameros.andriejus.work
4 žingsnis: Serviso integravimas ir „Auto-start“
Kad viskas veiktų kaip tikras serveris, mes ne tiesiog „paleidžiame“ programą, o integruojame ją į „systemd“. Tai reiškia, kad jei serveris persikrauna (po „Fujitsu“ atnaujinimų ar elektros dingimo), tunelis pakyla automatiškai:
Bash
cloudflared service install
systemctl enable cloudflared
systemctl start cloudflared
Kodėl šis būdas „pro“?
- Pilna kontrolė: Viskas aprašyta kode (
config.yml). Jei serveris sugenda, visą infrastruktūrą atstatome per 5 minutes. - Jokių atvirų portų: Nėra jokio rizikos faktoriaus maršrutizatoriuje. Tavo „Fujitsu“ serveris yra tarsi „nematomas“ iš išorės, kol neatidaromas saugus „tunelis“.
- Logų valdymas: Kadangi mes tunelį paleidžiame kaip serviso dalį, visus įvykius stebime per
journalctl -u cloudflared, todėl bet kokią problemą matome iškart.
Dabar tavo paslaugos yra saugiai pasiekiamos iš bet kurio pasaulio taško. Tai ne tik patogu, tai – tvarkinga, saugu ir skirta tiems, kurie vertina švarią serverio architektūrą.