# Cloudflared + Proxmox.. cea mai bună soluție

- Link: https://catalin.ro/cloudflared-proxmox-cea-mai-buna-solutie/
- Published: 2023-01-19T08:47:02+02:00
- Author: Cătălin

În 2023 sunt foarte preocupat de optimizare, per ansamblu, de orice tip.. că este
vorba de costuri, că este vorba de platforme, de folosirea unor domenii sau știu
eu orice altceva atât din lumea virtuală cât și din cea reală, cuvântul de ordine
este „Optimizare”. Așadar subiectul acestui articol.. Cloudflared + Promox.

**Cloudflared**

Cloudflared este vechiul Argo Tunnel de la Cloudflare, care acum s-a transformat
în Cloudflared. Per ansamblu este un serviciu disponibil in suita Zero Trust a celor
de la Cloudflare, suită care are și o variantă gratuită cu anumite limitări evident.
Acest serviciu crează un tunel între infrastructura Cloudflare Zero Trust și infrastrutura
ta, fie că este un server local, fie că este un server dedicat, se crează un tunel.
Dacă doriți și voi să faceți un setup de acest gen, aveți mai multe detalii pe link-
ul oficial [aici](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/remote/#set-up-a-tunnel-remotely-dashboard-setup).

**Proxmox VE**

Cunoscătorii știu că Proxmox VE este una dintre cele mai folosite softuri de virtualizare
din lume, și gratuită. Mai sunt softuri plătite, precum VMWare, Virtualizor, SolusVM
și altele.. dar dintre cele gratuite, părerea mea, e că, Proxmox VE și eventual 
OpenStack sunt cele mai ok tehnic vorbind. Iarăși, daca doriți să-l instalați, puteți
vedea [aici](https://www.proxmox.com/en/proxmox-ve/get-started) documentația oficială.
Acest articol nu este menit să fie un fel de tutorial, cu toate că, poate la un 
moment voi face și tutoriale, dar nu este cazul acum.

**Setupul meu..**

Detalii MiniPC:

 * HP ProDesk 400 G6 Desktop
 * Procesor Intel i5-10500T gen 10
 * 16 GB RAM DDR4
 * 1 TB NVME m.2 storage

Bun, având acel mini PC, am instalat prima dată Proxmox VE, dupa cum v-am spus, 
am urmat pașii oficiali din acel tutorial, adică am creat un USB bootabil cu imaginea
de Proxmox, apoi am procedat la instalare. Aceasta se face foarte simplu, vreo 3-
4 pași de setat chestii și cam aia e.

După care am intrat din laptop pe acest mini server (https://adresa-ta-de-IP:8006)
unde veți vedea interfața grafica a Proxmox, și clar, unde veți petrece foarte mult
timp cu mașinile voastre virtuale.

În cazul acestui setup, se pare că având NVME direct în placa de bază sistemul de
operare din spatele Proxmox, și anume Debian 11 „bullseye”, făcea mai multe request-
uri către acel NVME, atât de multe încât să zicem îi dădea un fel de „atac DDoS”
pe disk. 🙂

Astfel încât am fost nevoit să aplic un workaround..

 * nano /etc/default/grub
 * adăugat/editat linia GRUB_CMDLINE_LINUX_DEFAULT astfel încât să arate așa: GRUB_CMDLINE_LINUX_DEFAULT
   =”quiet nvme_core.default_ps_max_latency_us=0 pcie_aspm=off”
 * salvat
 * update-grub
 * reboot server

După acest workaround, care din cele testate, este ok pentru orice versiune de Ubuntu/
Debian ce are NVME-uri în placa de bază, cel puțin pentru Kingston/Samsung este 
ok acest workaround.

După instalarea Proxmox și aplicarea acestui workaround legat de NVME, am început
instalarea tunelului Cloudflared. Prima fază, am accesat Package Managerul celor
de la Cloudflare [aici](https://pkg.cloudflare.com/index.html) și am urmat pașii
de instalare a pachetelor ce țin de Cloudflare, evident pentru Debian 11.

 * apt install cloudflared -y

Abia apoi am umat pașii de instalare din tutorialul lor oficial, având deja instalat
serviciul cloudflared.

După instalarea Cloudflared și conectarea lui cu Zero Trust, evident, am început
să creez „Public Hostnames”, evident am avut deja un domeniu adăugat în Cloudflare
DNS, astfel încât Zero Trust să poata creea automat acel DNS Zone.

În cazul meu, pe serverul de Proxmox am doar adrese de IP private (NAT), 192.168.
x.x, fapt pentru care Cloudflared este cel mai ideal dacă ai IP dinamic, și n-ai
posibilitatea de a avea IP static de la furnizorul de internet. La fiecare schimbare
de IP pe care o am de la RDS, Cloudflared știe de infrastructura Zero Trust, și 
face tunelul astfel încât să nu fie probleme, iar blogul meu și site-urile mele 
găzduite pe acest server sunt funcționale fără nici cea mai mică problemă, și să
nu mai zic despre faptul că beneficiez de protecție DDoS gratuită, Zero Trust oferă
și o posibilitate de „Application Protection”, și anume cei care știu platforme 
precum Ghost au calea standard de autentificare pe domeniu.ro/ghost, nu prea se 
poate modifica această cale din varii  motive, nu prea ai cum să ai atac asupra 
acestei căi deoarece Zero Trust Application Protection este în față, și să zicem,
mie îmi trimite un cod pe email, pentru a putea accesa cel path, dacă nu am codul,
nu pot accesa path-ul.

Per ansamblu.. Cloudflared + Proxmox FTW ! 😀
