Instalare AdGuard Home DNS Proxy in Proxmox

AdGuard Home DNS Proxy este un server DNS local care funcționează ca un intermediar între dispozitivele tale și serverele DNS upstream (cum ar fi Cloudflare, Google DNS, etc.).

Ce face DNS Proxy-ul:

Funcția principală:

  • Primește cererile DNS de la dispozitivele din rețeaua ta
  • Le redirecționează către serverele DNS upstream configurate
  • Returnează răspunsurile înapoi către dispozitive

Avantajele folosirii unui DNS Proxy local:

Filtrare și securitate:

  • Blochează reclame, trackere și domenii malware
  • Aplică liste de filtrare personalizate
  • Protecție împotriva phishing-ului

Control și monitorizare:

  • Vezi toate cererile DNS din rețea
  • Statistici detaliate despre traficul DNS
  • Posibilitatea de a permite/bloca domenii specifice

Performance:

  • Cache DNS local (răspunsuri mai rapide pentru domenii accesate frecvent)
  • Reduce latența comparativ cu serverele DNS remote
  • Load balancing între multiple servere upstream

Configurare flexibilă:

  • Poți folosi DNS-over-HTTPS, DNS-over-TLS pentru securitate
  • Setări diferite pentru dispozitive diferite
  • Reguli personalizate de rewrite DNS

În esență, AdGuard Home DNS Proxy transformă rețeaua ta într-un mediu mai sigur și mai rapid prin filtrarea traficului DNS direct la nivelul rețelei, înainte ca cererile să ajungă la serverele DNS publice.

Acum ca stim ce este si cum ne-ar imbunatati securitatea retelei de acasa sa trecem la implementare.

Voi aborda cea mai simpla metoda, printr-un helper script care practic face totul de unul singur. Tot ce ramane de facut e configurarea de dupa.

Vei avea nevoie: de un hipervizor tip 1 online (proxmox, vmware esxi etc.) care sa fie online 24/7. Un mini-PC SH de cateva sute de lei ar trebui sa tina acest LXC (container) fara probleme. Pe langa asta, poti adauga mai multe servicii lightweight sa iti extinzi laboratorul.

Cerinte hardware:

  • 512 MB RAM sunt mai mult decat suficient pentru reteaua ta de acasa.
  • 1 CPU-core.
  • 2 GB Storage.

Link-ul oficial GitHub de unde vom copia script-ul: https://community-scripts.github.io/ProxmoxVE/scripts?id=adguard

Nu rulati script-uri de pe surse neconfirmate si fara un research in prealabil!

Vom lua ca exemplu un nod Proxmox, Debian (setup-ul meu actual). Script-ul din link-ul de mai sus este strict pentru Proxmox Virtual Environment, dar daca folositi altceva sunt alternative de script-uri (Windows, Vmware etc.):

  1. Logati-va prin SSH pe nodul pe care vreti sa instalati/gazduiti containerul AdGuard.
  2. Ca o buna practica rulati comanda:

    sudo apt update && sudo apt upgrade -y 

  3. Rulati script-ul de pe GitHub:

    bash -c “$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/adguard.sh)”

  4. Locatia config-ului (in caz de vreti sa configurati din CLI si nu din dashboard-ul AdGuard):                                         /opt/AdGuardHome/AdGuardHome.yaml
  5. Acest script iti efectiv iti va instala automat containerul, cu configuratia basic.
  6. Dupa ce a terminat, ai 2 optiuni: Default settings, configurarea initiala este automatizata; Advanced Settings (pe care o recomand) unde ai posibilitatea de a-i pune IP-ul fix pe care il doresti, numele si alte configuratii de inceput.
  7. La final vei primi un link care va arata asa: http://YOUR-IP:3000.
  8. In browser-ul tau te vei conecta pe acel link si de acolo poti incepe sa configurezi blocklist-urile, Upstream DNS Servers (recomand cloudflare si Google cu DNSSEC activat pentru rapiditate si securitate).
  9. Ca totul sa functioneze va trebui sa te conectezi pe routerul tau si sa ii schimb serverele de DNS. Primary server va fi IP-ul setat de tine pentru containerul AdGuard, secondary server 1.1.1.1 (Cloudflare)/8.8.8.8 (Google) – in caz de se intampla ceva cu nodul/containerul tau sa ai in continuare acces la internet.
  10. Pentru configurarea initiala (DNS Settings), recomand fie sa urmaresti un tutorial step by step, fie sa iei fiecare sectiune in parte si sa o cauti pe internet ca sa configurezi dupa preferintele si nevoile tale si sa intelegi principiile din spate.

Dupa ce ai configurat totul ar trebui sa incep sa vezi in Dashboard query-ul DNS generate in reteaua ta.

La sectiunea “Filters” vei avea by default lista AdGuard care blocheaza reclamele, analizele de date Google/Netflix s.a.m.d. Recomand sa o lasi bifata. Pe langa acea lista poti adauga tu ceea ce vrei sa blochezi in reteaua ta la “Custom filtering rules”.

[mai mult...]

Cum rezolvi eroarea “Too many open files” in Linux

Eroarea “Too many open files” în Linux apare atunci când un proces depășește limita maximă a numărului de fișiere deschise în același timp, așa cum este definită de sistem. Aceasta este o problemă comună în aplicațiile care manipulează un număr mare de fișiere simultan, cum ar fi serverele web, bazele de date sau alte aplicații intensive în I/O.
Iată câțiva pași pentru a rezolva această problemă:

1. Verificarea limitei curente a fișierelor deschise

Pentru a verifica limita curentă a fișierelor deschise pentru utilizatorul curent, poți folosi comanda:

ulimit -n

Această comandă va returna numărul maxim de fișiere pe care utilizatorul le poate deschide simultan.

2. Creșterea limitei pentru utilizatorul curent

Dacă dorești să crești limita pentru ședința curentă, poți utiliza:

ulimit -n [noua_limită]

De exemplu, pentru a crește limita la 4096 fișiere:

ulimit -n 4096

3. Modificarea configurației pentru limite persistente

Dacă dorești ca modificările să fie persistente și să se aplice la fiecare sesiune de utilizator, trebuie să modifici fișierele de configurare:

a. Editarea fișierului /etc/security/limits.conf

Adaugă următoarele linii în fișierul `/etc/security/limits.conf`:

*               soft    nofile          4096
*               hard    nofile          4096

Aceste linii vor aplica limitele pentru toți utilizatorii (`*`). Poți specifica un utilizator anume în loc de `*`.

b. Editarea fișierului /etc/pam.d/common-session (Ubuntu/Debian)

Adaugă următoarea linie:

session required pam_limits.so

Aceasta asigură că limitele din `limits.conf` sunt aplicate în timpul sesiunii utilizatorului.

4. Modificarea fișierului /etc/sysctl.conf

Pentru a modifica limita la nivel de sistem, deschide fișierul `/etc/sysctl.conf` și adaugă sau modifică următoarea linie:

fs.file-max = 100000

Aceasta setează numărul maxim total de fișiere pe care kernelul le poate gestiona. După modificare, aplică setările cu:

sudo sysctl -p

5. Verificarea aplicației

Asigură-te că aplicația ta sau scriptul pe care îl folosești nu deschide fișiere fără a le închide corespunzător. Verifică și optimizează codul pentru a te asigura că resursele sunt gestionate eficient.

6. Verificarea deschiderii fișierelor

Pentru a verifica ce fișiere sunt deschise de un proces specific sau de sistem, folosește comanda:

lsof | wc -l

Aceasta va returna numărul total de fișiere deschise, iar pentru un anumit proces poți folosi:

lsof -p [PID]

7. Monitorizarea constantă

Utilizează instrumente precum `htop`, `glances` sau altele pentru a monitoriza utilizarea fișierelor deschise și a resurselor sistemului în timp real.

[mai mult...]

Eroarea „driverul Microsoft ODBC 17 pentru SQL Server: furnizor TCP: cod de eroare 0x2746”

Eroarea „driverul Microsoft ODBC 17 pentru SQL Server: furnizor TCP: cod de eroare 0x2746” apare de obicei când există probleme de conectivitate între clientul SQL Server și serverul SQL. Acest cod de eroare specific sugerează în general că există o problemă cu conexiunea de rețea sau o configurare greșită a serverului SQL.
Iată câțiva pași detaliați pentru a rezolva această problemă:

1. Verifică detaliile de conectare

  • Serverul SQL: Asigură-te că adresa serverului pe care încerci să te conectezi este corectă                                  (ex. localhost, 192.168.1.100, sau numele_serverului).
  • Portul: Verifică dacă serverul SQL folosește portul implicit 1433. Dacă ai configurat un alt port, asigură-te că îl specifici în conexiune (ex. 192.168.1.100,port)
  • Autentificare: Asigură-te că tipul de autentificare (Windows Authentication sau SQL Server Authentication) este corect configurat și că folosești credențiale valide.

2. Verifică setările de rețea

  • Ping: Fă un ping către server pentru a verifica dacă acesta este accesibil. Deschide linia de comandă și folosește comanda ping [adresa_serverului].
  • Verifică firewall-ul: Asigură-te că firewall-ul de pe serverul SQL sau de pe client nu blochează portul 1433 sau alt port utilizat de SQL Server. Poți temporar dezactiva firewall-ul pentru a verifica dacă acesta este cauza problemei (asigură-te că reiei configurațiile de securitate ulterior).
  • DNS: Verifică dacă există probleme cu rezolvarea DNS, mai ales dacă folosești un nume de gazdă. Încearcă să utilizezi adresa IP direct.

3. Verifică configurația SQL Server

  • Serviciul SQL Server: Asigură-te că serviciul SQL Server este pornit. Poți verifica acest lucru în SQL Server Configuration Manager.
  • Protocolele de rețea: Accesează SQL Server Configuration Manager, navighează la SQL Server Network Configuration, și asigură-te că TCP/IP este activat. Dacă face modificări, este necesar să repornești serviciul SQL Server.
  • Setările TCP/IP: Verifică dacă TCP/IP este configurat corect, inclusiv porturile și adresele IP.

4. Verifică driverul ODBC

  • Actualizare: Asigură-te că ai instalată cea mai recentă versiune a driverului Microsoft ODBC pentru SQL Server. Poți descărca driverul de la Microsoft Download Center.
  • Configurare ODBC: Poți utiliza instrumentul ODBC Data Source Administrator (se găsește în Panoul de Control) pentru a verifica dacă sursele de date ODBC sunt configurate corect.

5. Alte aspecte

  • Configurarea serverului din cloud: Dacă serverul SQL este în cloud (ex. Azure), verifică setările de firewall și asigură-te că IP-ul clientului este permis.
  • Erori suplimentare: Verifică jurnalele de eroare ale SQL Server pentru a obține mai multe informații despre ce ar putea cauza problema.

Exemplu de conexiune cu sqlcmd

Dacă totul este configurat corect, ar trebui să te poți conecta folosind comanda:

sqlcmd -S [numele_serverului sau IP] -U [username] -P [password]

Dacă problema persistă, detaliile suplimentare din jurnalele de eroare ale SQL Server sau din mesajele de eroare pot oferi indicii mai clare despre natura problemei.

[mai mult...]

Secure your Homelab without Port Forwarding

If you’ve ever tried to access your homelab, NAS, or Proxmox server remotely, you’ve probably gone down the classic road: open a port on your router, pray to the NAT gods, and hope your ISP hasn’t slapped a CG-NAT on you.

Then there’s the security headache: exposed ports = exposed services = exposed vulnerabilities. And don’t get me started on managing dynamic IPs, firewalls, and all that jazz. But what if you could securely access your stuff from anywhere — no port forwarding, no VPN setup, no headaches?

[mai mult...]

Intrerupere playback fisiere cu Repeat All pe Android TV media player – mediu de stocare extern

Daca se doreste redarea in regim de loop infinit a unor fisiere media (audio/video) arbitrare de pe un mediu de stocare extern pe un monitor/TV conectat la un device cu sistemul de operare Android TV, cel mai probabil se va observa ca aceasta facilitate functioneaza doar temporar (de ordinul orelor). Pentru perioade indelungate sunt necesare cateva setari specifice sau utilizarea unor aplicatii terte.

[mai mult...]