Articoli

Recently I changed my QNAP, moving from an old 32bit model to a recent 64bit. The new NAS enabled me to install the 4.3.x firmware that introduces many new features and use 64-bit computing.

The migration occurred in conjunction with Wannacry (found on Homelab blog an article on how to exploit this vulnerability on NAS QNAP) and on my NAS was no longer running Samba (SMB). I don’t know if it is due to the wannacry patch or NAS/Firmware change. But Samba did not go anymore! Several people on the official QNAP forum complain about the same problem.

I solved by connecting via SSH to the NAS and editing the Samba configuration file. A small guide…

$ smb2status

smbd (samba daemon) Version 3.6.25
smbd (samba daemon) is not running.
max protocol SMB 2.1 enabled.

By typing the smb2status command, in output I had “smbd is not running” even if the WEB interface was correctly active.

$ mv /etc/config/smb.conf /etc/config/smb.conf.old

I did a backup copy of the Samba configuration file and saved it in smb.conf.old. Then I read the default configuration file:

$ cat /etc/default_config/smb.conf

Copy the contents of this file locally, in the text editor you prefer, then read the old configuration file:

$ cat /etc/config/smb.conf.old

Immediately after the Global Statement ([GLOBAL] … …) you will find the specifications of each of your shared folders, just copy this contents on your local text file.

You will then have a file composed of [GLOBAL] variable coming from the default file and then the variables of each of your shared folders coming from the old file. Example:

[global]

[Multimedia]
….

[Download]

[Web]

[Public]
….

Now you have to recreate the configuration file by copying inside it the newly built text:

$ rm /etc/config/smb.conf

$ vi /etc/config/smb.conf

Once the new Samba configuration file is pasted, we restart Samba.

$ /etc/init.d/smb.sh restart

After the reboot has finished, try typing smb2status again and it should be ok:

$ smb2status

smbd (samba daemon) Version 4.4.14
smbd (samba daemon) is running.
max protocol SMB 3.0 enabled.

Unfortunately QNAP does not have Root and Intermediate Certificate Bundles, which means that no system software (such as Curl or Wget) can easily access SSL sites.

The following guide, taken partially by Stefan Wienert, allows you to install the complete bundled root certificates.

Connect via SSH to your QNAP NAS and type the following commands:

# cd /share/
# curl https://curl.haxx.se/ca/cacert.pem -O -k
# mkdir certs
# cat cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "certs/cert" n ".pem”}'
# cd certs
# for filename in cert*pem;do mv $filename `openssl x509 -hash -noout -in $filename`.0; done;
# cp *.0 /etc/ssl/certs/

I’ve tried in QTOS 4.2.x firmware released in May 2017 and it works perfectly.

 

BitTorrent_SyncBitTorrent Sync, denominato anche BtSync, è software di condivisione dei file prodotto da BitTorrent permette di sincronizzare i file tra i dispositivi in una rete locale, o tra dispositivi remoti tramite Internet con l’utilizzo di tecnologia P2P.

BitTorrent Sync sincronizza i file tramite tecnologia peer-to-peer (P2P). I dati dell’utente vengono memorizzati sul dispositivo locale anziché in un servizio di Cloud storage, pertanto, richiede almeno un dispositivo, o “nodo” per essere online e per poter sincronizzare i file. BitTorrent Sync cripta i dati con AES con chiave a 128 bit. Questa può essere generata in modo casuale o impostata dall’utente. Questa chiave è derivata da un ‘segreto’ (una stringa), che può essere condiviso con altri utenti per permettere di condividere i dati. I dati vengono inviati tra i dispositivi direttamente, a meno che il dispositivo di destinazione non sia raggiungibile (ad esempio dietro un firewall), nel qual caso i dati saranno inoltrati tramite un nodo intermediario. Molti dispositivi possono essere collegati contemporaneamente e i file saranno condivisi tra di loro in una rete Mesh.

Non c’è limite alla quantità di dati che possono essere sincronizzati, se non lo spazio libero disponibile su ogni dispositivo. {Wikipedia}

Personalmente ho iniziato ad usare BtSync in sostituzione di Rsync, RSync è un ottimo strumento per effettuare una replica monodirezionale ma nel mio caso l’intento era quello di tenere sincronizzati due NAS della QNAP in maniera biderezionale.

BtSync è distribuito ancora in versione Beta e alla stesura di questo articolo la versione disponibile è la 1.4.106, ma è già disponibile anche in versione Alpha la seconda versione. BtSync è disponibile nell’App Center ufficiale di QNAP,  ma chi usa i prodotti QNAP saprà che purtroppo i plugin di terze parti vengono aggiornati raramente. Infatti ad oggi siamo indietro di 3 aggiornamenti, considerando che il software è una Beta è assai fondamentale aggiornarlo per ottenere i fix più recenti.

Installiamo BtSync sul NAS QNAP

Il primo passaggio da eseguire è quello di collegarsi via SSH al proprio QNAP, assicuratevi di aver abilitato la connessione SSH e dal terminale o da Putty per gli utenti Windows eseguite la connessione con le credenziali che comunemente usate per accedere all’interfaccia web come amministratore

$ ssh [email protected]

Ora dobbiamo creare la Directory che ospiterà l’eseguibile di BtSync, tale directory andrà posta in /share/MD0_DATA/.qpkg:

$ cd /share/MD0_DATA/.qpkg

$ mkdir btsync && cd btsync

Adesso dobbiamo scaricare dal sito ufficiale di BitTorrent Sync l’ultima versione disponibile, fate attenzione a selezionare il pacchetto per Linux contenete le librerie GLIBC e selezionate l’architettura i386 o amd64 in base al vostro modello di NAS.

$ wget http://download.getsyncapp.com/endpoint/btsync/os/linux-glibc23-i386/track/stable -O bittorrent_sync_glibc23_i386.tar.gz

$ tar -xvf bittorrent_sync_glibc23_i386.tar.gz

Successivamente renderemo BtSync eseguibile automaticamente all’avvio del NAS, andremo quindi nella directory /share/MD0_DATA/.qpkg e creiamo una nuova cartella denominata autorun

$ cd /share/MD0_DATA/.qpkg

$ mkdir autorun && cd autorun

Il software QNAP predispone di avviare automaticamente tutti gli script contenuti nella cartella autorun andremo quindi a creare un nuovo script come segue:

$ touch autorun.sh

$ vi autorun.sh

All’interno del file autorun.sh andremo a scrivere quanto segue:

#!/bin/sh
umask 0000
/share/MD0_DATA/.qpkg/btsync/btsync –config /share/MD0_DATA/.qpkg/btsync/sync.conf –log /share/MD0_DATA/.qpkg/btsync/sync.log

Il seguente script è di facile comprensione, permette infatti di eseguire l’eseguibile di BtSync con le configurazioni contenute in sync.conf e di salvare i log in sync.log. La Umask è fondamentale citarla per avviare il software con i permessi di amministratore e quindi ottenere i corretti permessi nella scrittura/lettura dei file, altrimenti avrete problemi ad accedere o ad eliminare i file sincronizzati.

Successivamente attribuiremo i permessi esecutivi al file appena creato

$ chmod +x autorun.sh

Benissimo non ci rimane che configurare BtSync attraverso il file sync.conf e avviare BtSync attraverso lo script appena creato:

$ ./autorun.sh

Buona Sincronizzazione 😉