Raspberry Pi

De asemenea, soluția este simplă. Renunțat la majoritatea internetului pentru că o să ajungă exact precum TVul cu tone de reclame insuportabile. Asta este.


 
Ne-am găsit să ne agităm cu pi-hole fix acuma când Firefox bagă DoH cu CloudFlare, Chrome testează DoH cu serverele proprii, tot mai multe firmware-uri fac hardcoding la IP-uri de servere DNS (gen ultimul update de roku tv de aseară)...
La Firefox, dacă nu vrei să dezactivezi din setări, o poți face din pi-hole configurând un canary domain.
 
  • Like
Reactions: Neo
Cică o s-o rezolve direct developerii pi-hole fără a trebui umblat la setările Firefox, da' soluțiae o mizerie. Iar pentru echipamente hardcoded cu servere DNS, doar din router poți pune regulă: traficul spre 8.8.8.8 să fie redirecționat spre pi-hole, doar traficul de la pi-hole spre 8.8.8.8 să fie permis (dacă vrei tu neapărat).
 
Dar ce avem noi aici. Hardware watchdog pentru RPi. Dacă nu primește semnal de reset la mai puțin de 2 minute, taie alimentarea la RPi.


[later edit] Dar de ce să iei un HAT pentru asta, când RPi (3+ cel puțin) are hardware watchdog încorporat, trebuie doar să-l activezi.

 
Last edited:
Ok deci proiectul cu docker pe raspi progresează, deocamdată am luat-o de la început doar de două ori :biggrin:

Am ajuns la concluzia că am totuși o limită pentru câți parametri tolerez la o linie de comandă, iar docker vrea mai mulți, deci fuck it, primul lucru după ultima instalare mi-am pus GUI :biggrin: portainer îi zice.

Acuma am tras imaginile la pihole/pihole:latest (292MB), linuxserver/unifi-controller:latest (541MB) și openhab/openhab:latest (769MB) și urmează să fac containerele.

Între timp am actualizat pihole-ul de „producție”, are versiune mai nouă pentru core/UI, iar cele 43 de liste au în total 717k domenii blocate. Cu ocazia asta am descoperit că cel mai activ client din rețea este momentan... kindle touch-ul meu. De când i-am reîncărcat bateria și l-am lăsat în stand-by, doar azi a avut 2200 interogări DNS, toate permise, spre diverse domenii de-ale Amazonului. Ce spanac face atâta activitate, n-am idee, da' de-acum clar îi tai wifi-ul când nu-mi trebuie.
 
La mine Bitdefender și Malwarebytes sunt cele mai guralive, nu pricep de ce, dar mno.
 
De-a dreptul bătător la ochi chiar, ți-ai luat net ca să nu-l folosești :biggrin:

Portainer este magnific, face toată administrarea dockerului mult mai tolerabilă. :love:

Pi-hole rulează mirific în containerul oficial, are chiar și heartbeat inclus ca să anunțe dockerul că e totul în regulă și funcționează normal.

De controllerul unifi am tras ceva, am reușit să-l fac să pornească, da' când i-am dat să importe configurația din controllerul existent s-a mucificat. Cred că-i șterg fișierele din folderul persistent și apoi îl pornesc „pe curat”, trec prin wizard-ul de configurare inițială, și abia APOI import configurația. Și doar configurația, fără statisticile ultimilor luni.

Cu OpenHAB mai stau un pic până să-l folosesc. Adică da, o să-i configurez containerul și o să schimb un pic porturile folosite ca să nu intre în conflict cu celelalte două containere, da' pentru utilizare efectivă aștept să fie lansată versiunea 2.5 care ar trebui să aducă niște îmbunătățiri semnificative față de 2.4-ul curent. N-au prea gândit bine unele chestii de la început, așa că la fiecare actualizare se mai bușește ceva din configurația anterioară, fiindcă au trebuit să modifice ceva problemă negândită din trecut pentru ca să meargă bine cu vreo funcție nouă și mult așteptată. Pățășt.

Docker ăsta deschide multe posibilități. De exemplu ar fi interesant un container pentru syslog separat, în care alte echipamente să-și verse jurnalizarea. De exemplu, un router ceva mai inteligent. Dacă routerul e compromis sau trebuie restartat și n-are stocare persistentă (orice jurnal e păstrat doar în memorie), jurnalul evenimentelor nu dispare. Sau un container pentru un serviciu de bază de date (mySQL sau MariaDB sau ceva) pe un stick USB sau hard disc extern, care să fie disponibil tot timpul pentru mai multe aplicații din rețea care ar putea folosi o bază de date - de exemplu, Kodi pentru toată colecția de muzică și filme păstrată persistent, chiar dacă Kodi în sine e reinstalat sau se bușește cardul sau de fapt ai mai multe media playere cu Kodi care folosesc în comun aceeași bază de date. Bine, n-o să meargă fantastic de repede, da' nici nevoile unui media library nu-s foarte pretențioase.

Vreau să încerc și acel watchdog încorporat, să văd cum funcționează.

Și după toate astea, practic din 2 Raspi-uri voi ajunge la unul singur și un mod mai simplu de monitorizat și administrat. :smile:
 
Singura chestie cu docker e să ai grijă ce imagini folosești și ce au în interior. Docker hub-ul e plin de tâmpenii făcute pe genunchi, unele oficiale dar prost făcute/documentate. De ex. imaginea oficială de postres îți dă o bază de date complet deschisă (oricine de oriunde se poate conecta ca superuser fără parolă, dacă ai expus portul posgres). Iar re-împachetarea imaginilor face ca uneori să nu-ți dai seama ce setări sunt de fapt făcute pe-acolo prin interior.
 
RPi 3B+. Pi-hole e undeva pe la 80MB. Unifi-ul are setat implicit Java 8 să rezerve 1GB de memorie da' asta fiindcă e Java hrăpăreț, nu fiindcă îi trebuie chiar atât. OpenHAB încă n-am încercat. Da' asta e și ideea unui docker pe RPi, că nu faci mașini virtuale în care fiecare OS virtual să rezerve x GB de memorie pe care RPi nu-i are.

miahi foarte corect, dar n-aș folosi postgresql drept exemplu relevant, ăla oricum e pentru masochiști care-și merită surpriza :tongue: :biggrin:
 
Dacă vrei să eviți să schimbi porturi, poți pune o imagine de docker de nginx în fața celorlalte pe post de reverse proxy, iar celelalte containere nu mai trebuie să-și expună porturile direct către host. E umpic mai mult de lucru, dar dup-aia ai mai multă flexibilitate și îi mai bagi și un certificat dacă vrei TLS. Eu am momentan doar un container în spate și nu am săpat prea mult, deci nu știu toate detaliile, dar docker-compose.yml arată ceva de genul (ignoră partea cu volumele, cred că e ceva fucked up pe acolo :smile: ):
YAML:
version: '3'

services:
  nginx:
    image: nginx:latest
    container_name: production_nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./error.log:/etc/nginx/error.log
      - ./.htpasswd:/usr/local/etc/owntracks.htpasswd
    ports:
      - 8083:8083

  otrecorder:
    image: owntracks/recorder
    container_name: otrecorder
    expose:
      - 8083
    volumes:
      - config:/config
      - store:/store
    restart: unless-stopped
    environment:
      - OTR_PORT=0
volumes:
  store:
  config:
 
Dup-aia, din configul de nginx, trimiți traficul unde vrei. În cazul meu, ce vine pe http://fqdn:8083/owntracks/pub , e trimis către http://otcontainer:8083/pub , unde otcontainer e container-ul care are portul 8083 expus doar pe rețeaua internă a docker-ului.

NGINX:
events {

}

http {
    error_log /etc/nginx/error.log warn;

server {
    listen       8083;
    server_name  0.0.0.0;

    location / {
        root   html;
        index  index.html index.htm;
    }

    # Proxy and upgrade WebSocket connection
    location /owntracks/ws {
        rewrite ^/owntracks/(.*)    /$1 break;
        proxy_pass      http://otrecorder:8083;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade $http_upgrade;
        proxy_set_header    Connection "upgrade";
        proxy_set_header    Host $host;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /owntracks/ {
        proxy_pass      http://otrecorder:8083/;
        proxy_http_version  1.1;
        proxy_set_header    Host $host;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Real-IP $remote_addr;
    }

    # OwnTracks Recorder Views
    location /owntracks/view/ {
         proxy_buffering         off;            # Chrome
         proxy_pass              http://otrecorder:8083/view/;
         proxy_http_version      1.1;
         proxy_set_header        Host $host;
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header        X-Real-IP $remote_addr;
    }
    location /owntracks/static/ {
         proxy_pass              http://otrecorder:8083/static/;
         proxy_http_version      1.1;
         proxy_set_header        Host $host;
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header        X-Real-IP $remote_addr;
    }
   # HTTP Mode
    location /owntracks/pub {
        auth_basic              "OwnTracks pub";
        auth_basic_user_file    /usr/local/etc/owntracks.htpasswd;
        proxy_pass              http://otrecorder:8083/pub;
        proxy_http_version      1.1;
        proxy_set_header        Host $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Real-IP $remote_addr;

        # Optionally force Recorder to use username from Basic
        # authentication user. Whether or not client sets
        # X-Limit-U and/or uses ?u= parameter, the user will
        # be set to $remote_user.
    # commented by me
        #### proxy_set_header        X-Limit-U $remote_user;
    }
}
}
 
Da, o să fac asta pentru a lucra ușor cu interfețele de administrare, care merg pe 80/443/8080/8443, dar nu mă ajută pentru alt fel de trafic decât HTTP(S). Deci dacă mă trezesc că Ubiquiti Unifi Controller are hardcoded niște porturi de device discovery și numa' alea le caută echipamentele, da' de fapt cumva și nuș' ce modul de comunicație dintre OpenHAB și vreun home automation hub folosește tot unul din aceleași porturi, trebuie să gândesc creativ pentru evitarea conflictului. Poate cu IP overloading pe interfața de rețea, sau interfețe de rețea virtuale.
 
Mna, toate bune și frumoase, am făcut unifi-ul să meargă (habar n-am cum, da' merge) și ocupă vreo 300MB de memorie cu cache cu tot. Pi-hole consumă doar 60MB.

Treaba cea mai faină e că e ATÂT de simplu să fac version control acum. Nu merge o imagine nouă? Nici o problemă, în câteva click-uri și minute merge aia veche, și fără măcar să editez vreun fișier de configurare sau să mă lupt prin linia de comandă.

Like a boss. :biggrin:
 
Din păcate nu pot face același lucru pe rPi mk1.

Poți face un tutorial că pentru mine așa și să-l postezi pe aici? Cred că am şi un 3B pe undeva. Danke schön ^^


 
Back
Top