Docker + WireGuard

Self note: cand instalati wireguard si docker pe acelasi server, wireguard o sa dea cu fail pentru ca docker modifica policy-ul pe tablela de forward din accept in drop.

Solutie:

 

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -P FORWARD ACCEPT; iptables -t nat -A POSTROUTING -s 1.2.3.4/24 -o ens3 -j MASQUERADE;
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -P FORWARD DROP; iptables -t nat -D POSTROUTING -s 1.2.3.4/24 -o ens3 -j MASQUERADE;

in /etc/wireguard/iftunel.conf si

After=docker.service network.target

in /lib/systemd/system/[email protected]

Query-uri DNS ciudate

Am avut de reinstalat doua sisteme in weekend-ul asta, operatiune simpla, un backup+restore pe un laptop si un Windows reset + instalare programe uzuale pe celalalt. Evident, totul a decurs cum trebuie, n-au fost probleme.

Am zis ca daca tot sunt la partea de mentenanta, sa ma ocup si de serverele de pe Microserver. Le-am updatat si pe alea fara probleme, pana cand am observat in interfata web Pi-hole niste query-uri cel putin ciudate, de la laptop-ul la care am facut restore din backup. Am zis ca are ceva carcalac pe el, mai ales ca l-a folosit maica-mea, asa ca m-am hotarat sa pastrez doar fisierele ei si sa fac o instalare pe curat. In timp ce cautam un stick sa ard un ISO cu Windows 10 pe el, tab-ul de la Pi-hole a ramas deschis si cand ma uit mai bine, observ ca de fapt si celalalt laptop proaspat resetat si instalat face aceleasi interogari ciudate. Privind si mai bine, am vazut de fapt ca am o gramada de device-uri (inclusiv telefoane) care fac chestia asta si nu stiu de ce si de la ce.

Era clar ca ceva se întâmplă, si nu stiam ce. Asa ca am luat un alt laptop proaspat instalat (care stiam ca nu are cum sa fie busit) si m-am dat pe net cu el, in speranta ca o sa prind momentul in care se intampla magaria. Evident, request-urile au aparut iar. Am ajuns la concluzia ca se fac query-uri cand deschid Google Chrome (fiind singura aplicatie care e instalata cam pe toate device-urile, inclusiv telefoane mobile). Mi-am dat seama ca nu are cum sa fie Chrome vinovat, ci o extensie, in mod sigur. Problema e ca pe telefoanele mobile, nu exista extensii pentru Chrome, deci iar m-am dus din lac in put. (Am incercat totusi sa dezactivez toate extensiile si sa le activez pe rand, dar degeaba)

Asa ca m-am pus pe cautat pe Google si am dat peste aceeasi problema pe care o am si eu: se pare ca este un feature Google Chrome si nu un malware, conform link-ului.

Ramane de vazut cum puteam sa aflu ce aplicatie face request-ul DNS daca nu aveam noroc cu Chrome si chiar era un malware. Problema e ca tcpdump nu te ajuta aici, ca request-ul stii ca se face, stii de la ce host, dar nu stii aplicatia. Pentru DNS/tcpdump o sa afiseze ca se face un query DNS, ori ca rulez dig, ori ca rulez tcpdump, curl, wget sau orice alt browser. tcpdump nu stie aplicatia care a cerut query-ul. Nu exista un user-agent pentru interogarile DNS.

Dropbox pe non-ext4

Dupa cum bine stiti (sau nu) Dropbox nu mai poate fi folosit pe orice alt sistem de fisiere in afara de ext4, cel putin pe Linux. Au aparut patch-uri pentru a rezolva “problema” dar azi o sa facem o chestie misto si o sa folosim Dropbox fara vreun patch pe ZFS. Sau btrfs. Sau orice sistem de fisiere non-ext4. Cel putin sort-of, pentru ca metoda mea e inspirata din postul asta, dar metoda mea nu implica sa am toate fisierele pe volum, ci doar un symlink.

In principiu am facut cam ce a facut baiatu’ din link-ul de mai sus, doar ca eu nu am vrut sa pun folderul Dropbox pe SSD ci pe HDD-ul deja formatat NTFS. Am crezut ca daca e formatat NTFS o sa mearga, dar nu prea. Vad din patch ca orice ai face, daca Dropbox nu gaseste superblock-ul de ext4, nu o sa functioneze.

Asa ca, inspirat de ce a facut nenea, am zis sa incerc o smecherie:

  1. un zvol mic
  2. zvol formatat in ext4
  3. pus un symlink pe el catre folderul de Dropbox de pe alt FS
  4. ???
  5. profit

Cel mai mic zvol pe care-l pot crea eu, este 128K.

zfs get recordsize

Facem un volum de 128K pe care-l formatam in ext4:

zfs create -V 128K home/dbox
mkfs.ext4 /dev/zvol/home/dbox

Montam intr-un folder (ascuns pentru ca nu am vrut sa imi apara la o listare). Dupa ce trecem linia de jos in fstab, rulam un mount pe volum.

/dev/zvol/home/dbox                       /home/cristi/.dbox     ext4   defaults        0       0

Facem un symlink. Symlink-ul trebuie sa se numeasca Dropbox, trust me on this one.

ln -s /calea/catre/unde/vrem/sa/ajungem/Dropbox ~/.dbox/Dropbox

La final trebuie sa arate ceva de genul asta:
Mermeliti voi comanda, eu unul am scris mereu pe dos comanda de symlink, chiar si cu manualul in fata.

Pornim Dropbox si ni se ofera posibilitatea de a muta datele. Alegem sa le mutam si pointam Dropbox-ul catre ~/.dbox/Dropbox, dupa cum greu se observa in poza de jos:

Bonus: puteti face un symlink din $HOME/Dropbox in /calea/unde/este/folderul/pe/alt/HDD/Dropbox ca sa aveti la indemana folderul cand deschideti file-manager-ul.

Bye-bye OpenVZ, hello KVM!

M-am hotarat sa renunt la VPS-ul de pe OpenVZ si sa trec la KVM. Pe OpenVZ aveam un Ubuntu 14.04, SO al carui suport se apropie de sfarsit in aprilie 2019. Singura modalitate de upgrade pe OpenVZ este sa refac masina, asa ca am hotarat sa cumpar alta, de data asta pe KVM, dar tot de la SSDNodes.

De pe data de 16 februarie 2016 cand am cautat oferte la un VPS si asta pana azi, au trecut 984 de zile sau 2 ani, 8 luni si 11 zile.
2 ani, 8 luni si 11 zile in care m-am jucat cu vechiul VPS-ul pe care statea blogul asta. VPS-ul pe care am avut de invatat lucruri pe care nu puteam sa le invat in productie cu servere live. (sau mai bine zis, nu mi-am permis)

Astazi a venit momentul in care Linux vps 2.6.32-042stab127.2 #1 SMP Thu Jan 4 16:41:44 MSK 2018 x86_64 x86_64 x86_64 GNU/Linux devine Linux vps-linux365-ro 4.15.0-38-generic #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux, momentul in care Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz devine Intel Xeon Processor (Skylake, IBRS) si 4GB RAM se transforma in 16GB RAM.

Migrarea datelor a durat cam 4 zile, dar asta in mare parte pentru ca nu am vrut sa migrez tot si am vrut sa fac unele modificari (ipsec vs. openvpn, redis in loc de memcache, mysql in loc de mariadb) ce au necesitat mai mult timp decat ma asteptam. (cel mai mult m-am luptat cu ipsec-ul).

 

Astea fiind spuse, goodbye old VPS, hello new VPS!