Newsgroup: it.comp.os.linux.iniziare
Titolo: Rsync da Remoto a Locale

Ciao a Tutti,
 
sto configurando, in biblioteca, un computer datato come macchina per 
backup, il quale contiene, internamente, 3 HDD.
1° Hdd = Sistema operativo
2° Hdd = Backup_1
3° Hdd = Backup_2
più un 4° Hdd_USB esterno = Backup_3
 
Questo per rispettare la regola del 3-2-1 della procedura di Disaster 
Recovery. La macchina è sempre spenta e viene accesa solamente per 
effettuare il backup del Nas Buffalo, questo per evitare, disastri da 
criptolocker. 
La biblioteca si trova in una sede separata dal Comune, quindi ha una sua 
LAN e solamente 2 computer sono nel dominio.
 
Per configurare il Nas tramite browser, si accede tramite username e 
password, ma all’interno del Nas NON è configurato nessun utente. Prima 
esisteva, ma è stato disattivato, perché altrimenti il comando robocopy 
di Windows10 non funzionava.
 
Ora però, ho reperito un computer datato (vedi sopra) e gli ho installato 
Ubuntu Mate 20.04 LTS e devo dire che funziona abbastanza bene ed è molto 
fluido e la mia intenzione è quella di utilizzarlo come computer 
principale per effettuare il backup del Nas (la macchina con Win10 e 
robocopy la metteri in archivio).
 
Ieri ho effettuato delle prove di simulazione backup (dry-run) con Grsync, 
il software con interfaccia grafica, ma mi esce il seguente errore:
#=================================================================
Unable to negotiate with 192.168.125.45 port 22: no matching key exchange 
method found. 
Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.3]
Stato di uscita del processo rsync: 255
#=================================================================
L’ip e le cartelle pubbliche, che ho scritto qui sotto sono  di fantasia, 
il firewall Gufw è su off (spento) e i parametri che ho utilizzato per la 
simulazione sono i seguenti:
Sorgente:	 192.168.125.45:/public/paperino
Destinazione:	Backup_1/NasBuffalo
 
In base alle mie (limitate) conoscenze, sembra che dall’errore manchi la 
chiave pubblica, sul Nas, che permette di dialogare tramite la porta 22, 
utilizzando il protocollo ssh.
Ma forse non è l’unico errore. L’assenza di un utente interno al Nas può 
essere determinante??
 
Grazie in anticipo per qualunque risposta positiva.
Un cordiale saluto,
Nemo
 
 
PS: Preferirei usare uno script rsync al posto di robocopy, perché ho 
notato che rsync è più stabile e flessibile. 
Con rsync è possibile anche escludere una serie di files, inserendoli in 
una lista, cosa che robocopy non può fare, inoltre alcuni switch di 
robocopy, usati in contemporanea, lo rendono instabile e non funziona…
Per cui, a mio avviso, finora rsync è il miglior sistema di backup che ho 
sperimentato.
 

 essere determinante??
 
uhm, dipende. con ssh/rsync ti dovrai comunque loggare con un utente in 
quel caso del sistema operativo sottostante. con che utente accedi? 

 quel caso del sistema operativo sottostante. con che utente accedi?
 
Il Nas, al suo interno, attualmente NON ha nessun utente, anche se tutto 
lo staff della biblioteca accede direttamente alle cartelle condivise.
 
E' la prima volta che affronto questo problema e mi piacerebbe risolverlo!!

 E' la prima volta che affronto questo problema e mi piacerebbe risolverlo!!
 
Se avrò problemi, chiederò ancora aiuto, intanto grazie ancora per la 
tua risposta!!
Ciao,
Nemo

Il 03/04/22 11:13, Nemo ha scritto:

Ieri sono riuscito ad effettuare qualche prova, ma con esito negativo.
#=================================================================
chmod 0700 ~/.ssh
 
touch ~/.ssh/config
chmod 0700 ~/.ssh/config
 
 
Host buffalo
		Hostname 192.168.125.45
		KexAlgorithms +diffie-hellman-group1-sha1
 
#=================================================================
Ho provato anche provato anche ad inserire nel file config la seguente 
stringa, trovata in un post in internet:
 
KexAlgorithms=diffie-hellman-group1-sha1 -o Ciphers=aes256-cbc
 
ma l'esito è sempre negativo. Esce sempre un messaggio di errore:
 
Unable to negotiate with 192.168.4.201 port 22: no matching key exchange 
method found. Their offer: 
diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.3]
Stato di uscita del processo rsync: 255
 
Ho effettuato un ping e non vi è nessuna perdita di pacchetti, quindi il 
Nas è raggiungibile. Ho effettuato un telnet ed esce questo messaggio:
 
alfa@beta:~$telnet 192.168.125.45 22
Trying 192.168.125.45
Connected to 192.168.125.45.
Escape character is '^]'.
ssh-2.0-openssh_3.7.1p2
Connection closed by foreign host.
alfa@beta:~$
 

 ma l'esito è sempre negativo. Esce sempre un messaggio di errore:
 
non ti sta prendendo l'impostazione.
 
Host deve matchare con il nome o l'indirizzo della nas. a titolo di debug 
puoi anche mettere * per far si che si applichi a tutti i server a cui ti 
colleghi.
 

 
Prova a lanciare il comando
"ssh -o KexAlgorithms=diffie-hellman-group1-sha1 root@<host>"
se lo accetta puoi aggiungere l'opzione "-o KexAlgorithms=ecc." nel 
comando rsync con l'opzione "-e ssh -o KexAlgorithms=ecc." (vado a 
memoria, adesso non ho sottomano lo script relativo).
 
angelo

Il 06/04/22 16:19, angelo ha scritto:

#==========================================================================
Ci sono degli sviluppi: scrivendo nel file config il seguente contenuto:
#==========================================================================
 
Host *
     Hostname 192.168.125.45
     KexAlgorithms=diffie-hellman-group1-sha1 -o Ciphers=aes256-cbc
 
Esce questo errore:
 
/home/biblioteca/.ssh/config line 5: garbage at end of line; "-o".
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) 
[Receiver=3.1.3]
Stato di uscita del processo rsync: 12
 
 
mentre se scrivo come mi ha suggerito Rootkit:
 
Host *
		Hostname 192.168.125.45
		KexAlgorithms +diffie-hellman-group1-sha1
 
ed eseguendo una simulazione (dry-run) con il software Grsync mi esce un 
MessageBox con il seguente messaggio:
 
The authenticity of host '(192.168.125.45)' can't be established.
RSA key fingerprint is SHA256:Uuxp6thxoWZT5pb6CCmyxLVHFyFCd6pw2iJPc7bwrqs.
Are you sure you wont to continue connecting (yes/no/[fingerprint])?
 
<OK>    <Cancel>
 
Mentre provando il suggerimento di Angelo, mi esce quest’altro messaggio:
 
ssh -o KexAlgorithms=diffie-hellman-group1-sha1 root@ 192.168.125.45
 
The authenticity of host '(192.168.125.45)' can't be established.
RSA key fingerprint is SHA256:Uuxp6thxoWZT5pb6CCmyxLVHFyFCd6pw2iJPc7bwrqs.
Are you sure you want to continue connecting (yes/no/[fingerprint])? 
^[[A^[[Ayes
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added '192.168.125.45' (RSA) to the list of known 
hosts.
Password:
Password:
Password:
 
 
Ora all'interno della cartella  ~/.ssh ci sono 2 files:
1) config
2) known_hosts
il quale (known_hosts) contiene 3 stringhe. La prima sembrerebbe la 
chiave ssh-rsa, mentre le altre due sono un'insieme di caratteri 
alfa-numerici casuali, che finiscono con ==
 
 
biblioteca@biblioteca:~$ ssh -o KexAlgorithms=diffie-hellman-group1-sha1 
ro...@192.168.125.45
 
Password:
Password:
Password:
ro...@1192.168.125.45's password:
Permission denied, please try again.
ro...@192.168.125.45
's password:
 
**A questo punto, qual è  la password di root, se all’interno del Nas 
non esiste nessun utente???**
 
Lanciando la similazione (dry-run) di Grsync esce un piccolo MessageBox 
con il seguente messaggio:
OpenSSH Authent...
Password
<OK>    <Cancel>
 
Premendo OK
 
Permission denied, please try again.
Permission denied, please try again.
bibli...@168.125.45: Permission denied 
(publickey,password,keyboard-interactive).


 non esiste nessun utente???**
 
ah, bella domanda. ma almeno un account amministratore ci sarà pure, 
altrimenti come la gestite quella nas?

 altrimenti come la gestite quella nas?
 
Aprendo un browser e digitando l’indirizzo IP del Nas, si accede ad una 
pagina web di login, che inserendo le dovute credenziali, si entra 
all’interno del software che configura il Nas.
 
Nella notte dei tempi, era stato creato un account Administrator con 
relativa password, ma poi era stato disabilitato, perché:
1) Windows7 non memorizzava la password di rete e ogni volta che lo 
staff accedeva alle cartelle condivise doveva sempre inserire la password;
2) Ora, con Windows10, la presenza di un login per accedere alle 
cartelle condivise di rete (Nas) usando il comando robocopy non 
funziona, si blocca,  o almeno io non sono stato capace di farlo funzionare.
 
<dettagli>
Avevo trovato uno script in powershell, ma non avevo voglia di perdere 
tempo, in quanto mi attrae di più imparare con Linux. Per questo motivo 
sto provando con Ubuntu Mate 20.04 LTS, che uso a casa.
L’anno scorso avevo provato anche con Open Media Vault, una distibuzione 
dedicata, basata su debian, ma non riuscivo a far funzionare rsync. 
Poichè a casa mia utilizzo con soddisfazione uno script di rsync, che 
Angelo ha condiviso tempo fa, volevo imparare ad utilizzare anche l’SSH.
</dettagli>
 
Ora, tornando a noi, se all’interno del Nas riattivo l’utente 
Administrator, con relativa password, questa sarebbe la famosa password 
di root??

 di root??
 
non si può sapere. dipende dalla nas, io ho un qnap e l'utente 
amministratore si chiama admin e si accede con lo stesso utente sia alla 
console web che via ssh. non esiste root.
 
poi prima di usare rsync ti conviene accedere in ssh e vedere come e dove 
sono montati i dischi. se non sei mai entrato come fai a sapere dove sono 
le cartelle che devi backuppare?
 
inoltre: perché rsync via ssh? a me verrebbe logico per una nas montare le 
cartelle da backuppare assolutamente *in* *read* *only* e lavorare con 
rsync con quelle. andare nel sistema con l'utente admin con il rischio che 
per un errore di battitura combini un disastro, non mi sembra una scelta 
igienica. considera che rsync è molto potente, ci sono dei flag che se 
usati impropriamente fanno uno spucinio... 

 di root??
 
In teoria dovrebbe essere sufficiente la chiave ssh dell'utente per 
lanciare rsync, sempre che la directory di destinazione sia accessibile 
da <user>
 
L'accesso ssh come root deve essere evitato in assoluto, se non per 
evento eccezionali, molto eccezionali.
 
angelo

 via ssh: "rsync <source_path> <user>@<server_ip>/<dest_path>"
Mancano i due punti:
 
via ssh: "rsync <source_path> <user>@<server_ip>:/<dest_path>"
 
idem piu' sotto:
 
rsync -avlht -e `ssh -o KexAlgorithms=diffie-hellman-group1-sha1 -i 
/home/<user>/<priv_key>` <source_path> <user>@<server_ip>:/<dest_path>"
 
angelo

 diretto: "<source_path> rsync://<user>@<server_ip>/<dest_path>"
 
Cosi' non funziona, meglio:
"rsync <source_path> rsync://<user>@<server_ip>/<dest_path>"
 
angelo

Il 07/04/22 18:58, angelo ha scritto:

Ci sono degli sviluppi….
Come avrete capito dalle mie domande, ho una conoscenza 
parziale/limitata della materia e poiché abbiamo iniziato a parlare e 
lavorare con il file config nella cartella .ssh, ho dato per scontato 
che tutta la procedura si svolgeva con il protocollo ssh.
Le vostre risposte sono come dei tasselli, che compongono un puzzle e 
che cerco di capire.
 
Venerdì ho fatto diverse prove, ho deciso di tralasciare Grsync, perché 
con il terminale, la richiesta della password esce subito!
 
1) Nel Nas, sezione utente, ho aggiunto l’utente staff con relativa 
password, (gruppo hdusers) per cui, dal terminale, ho provato il 
seguente comando:
biblioteca@biblioteca:~$ rsync st...@192.168.125.45:/public/test 
/media/biblioteca/Archivio500-A/NasBuffalo
Password: password di staff
Operation not permitted
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) 
[Receiver=3.1.3]
biblioteca@biblioteca:~$
 
2) Ho cambiato la password all’utente *admin* e ho dato il seguente comando:
biblioteca@biblioteca:~$ rsync ad...@192.168.125.45:/public/test 
/media/biblioteca/Archivio500-A/NasBuffalo
Password: password di admin
Operation not permitted
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) 
[Receiver=3.1.3]
biblioteca@biblioteca:~$
 
A proposito, la password dell’admin fa accedere alla pagina web del Nas.
 
Da windows10 non c’è nessuna restrizione di accesso al nas, per cui 
leggendo anche il manuale, in pdf, penso di capire che nella sezione 
Cartelle Condivise *NON* è stata impostata nessuna restrizione di 
accesso e cioè non è stato inserito nessun utente.
 
Lunedì pomeriggio, proverò a vedere e se manca inserirò l’utente staff.
 
Ora ho alcune domande da chiederVi:
 
1) Con rsync è meglio utilizzare l’utente staff, che admin (root), anche 
se staff può leggere e scrivere?
admin = gruppo admin
staff = gruppo hdusers
 
2) I servizi del nas sono Windows, Apple, FTP, SFTP, Backup del Disco e 
solo Windows ha la spunta, questo significa che è attivo solo Samba??
 
3) Se volessi utilizzare la connessione SSH con password, il comando 
sarebbe il seguente?
biblioteca@biblioteca:~$ rsync –e ssh st...@192.168.125.45:/public/test 
/media/biblioteca/Archivio500-A/NasBuffalo
Ma ha senso utilizzare SSH per un backup di un Nas ad 01 metro dal 
computer adibito al backup stesso, che si trova nella stessa Lan?
 
Se volessi saperne di più esiste qualche guida per principianti-utenti 
avanzati e sysadmin ?
 
Intanto, grazie per le vostre risposte e buona domenica!
 

 Intanto, grazie per le vostre risposte e buona domenica!
 
Buona domenica anche a te
 
angelo

Il 10/04/22 14:36, angelo ha scritto:

Grazie per le risposte chiarificatrici!
 
Mi sono preso una pausa, per riprendere in mano il problema a mente serena…
 
Purtroppo ho avuto risultati negativi.
 
1) Nelle impostazioni del Nas, nella scheda Cartelle Condivise, ho 
inserito l’utente staff.
2) Quindi dal terminale, ho lanciato il comando:
 
biblioteca@biblioteca:~$ rsync -avlht --delete 
st...@192.168.125.45:/public/test 
/media/biblioteca/Archivio500-A/NasBuffalo/
Password:
Operation not permitted
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) 
[Receiver=3.1.3]
biblioteca@biblioteca:~$
 
Ho cercato in internet il codice dell’errore e ho trovato queste cause:
Causes and fixes for the Rsync error 12
https://bobcares.com/blog/rsync-error-code-12/
 
1. Insufficient disk space
2. Missing remote Rsync
3. Failure due to idle connection
 
Quindi ho cercato “Buffalo Linkstation + rsync” e ho trovato questo sito 
web:
https://www.smallnetbuilder.com/archives/nas/nas-howto/30885-how-to-back-up-nas-to-nas-part-4
 
 
Sembra che nel Nas il server Rsync debba essere attivato, ma anche 
mettendo la spunta il risultato è sempre:
 
biblioteca@biblioteca:~$ rsync -avlht --delete 
st...@192.168.125.45:/public/test 
/media/biblioteca/Archivio500-A/NasBuffalo/
Password:
Operation not permitted
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) 
[Receiver=3.1.3]
biblioteca@biblioteca:~$
 
Sul computer client ho lanciato un telnet alla porta 873 di rsync
biblioteca@biblioteca:~$ telnet 192.168.125.45 873
Trying 192.168.125.4
Connected to 192.168.125.45
Escape character is ‘^]’
@RSYNC: 30.0
 
il cursore lampeggia e rimane li così, senza dare segni di vita, ad 
eccezione del cursore lampeggiante.
 
 
Inoltre, inserendo l’utente staff nei settaggi della cartella condivisa, 
anche da Windows10 non è più possibile accedere alla Public, anche 
inserendo il login dell’utente staff.
Questo è il messaggio che esce in Win10:
#==========================================
Apri cartella
Impossibile accedere a \\buffalo\public\test. L’utente potrebbe non 
disporre dell’autorizazione necessaria per l’utilizzo della risorsa di 
rete. Per le autorizzazioni di accesso contattare l’amministratore del 
server.
 
Le connessioni multiple a un server o a una risorsa condivisa da parte 
dello stesso utente, utilizzando più di un nome utente, non sono 
consentite. Interrompere tutte le connessioni precedenti al server o 
alla risorsa condivisa e riprovare.
OK
#==========================================
 
A questo punto, io non so più che pesci pigliare. Purtroppo il Nas non è 
mio e non posso portarmelo a casa per fare delle prove con calma.
Avevo pensato anche di effettuare delle prove con una macchina virtuale 
(virtualbox o KVM) ma dovrei installare il software del Buffalo 
Linkstation e non una distribuzione server linux.
 
Auguri di una Serena Pasqua,
Nemo

 Linkstation e non una distribuzione server linux.
 
io torno alla carica: ma perché non montare le cartelle della nas sul 
client e fare i backup di quelle?
montandole in read only non rischi nemmeno di fare danni e puoi usare 
comunque rsync fra le cartelle source (quelle montate) e dest (quelle di 
backup).
 

Il 17/04/22 10:49, rootkit ha scritto:

Wow, la tua risposta mi apre un orizzonte di speranza!!
 
Cercando in internet ho trovato questo tutorial, con credenziali:
https://linuxhint.com/mount-smb-shares-on-ubuntu/
 
 
Ma cosa intendi montare le cartelle-condivise in **read-only**, intendi 
noperm?
 
sudo mount -t cifs -o noperm //<IP Address>/<NameofShare> 
/mnt/<FolderyouCreated>
 

 /mnt/<FolderyouCreated>
 
mount -t cifs -o ro,username=<username>,password=<password> //<IP 


Il 17/04/22 18:32, rootkit ha scritto:

Grazie mille! Lo username  e la password sono dell'utente samba?
Martedì mattina, faccio delle prove!!!!
 
Ciao,
Nemo
 
 

Il 17/04/22 18:37, Nemo ha scritto:

#==================
Ci sono riuscito !!
#==================
 
Dopo aver installato i pacchetti **samba samba-common cifs-utils** e 
aver costruito in locale il punto di mount: mnt/NasBuffalo ho cercato di 
aprire le shared-folder del nas in locale, ma ho visualizzato diversi 
messaggi di errore, finché, dopo aver cercato in internet, ho aggiunto 
il flag vers=1.0
 
sudo mount -t cifs //
192.168.125.45/public
 /mnt/NasBuffalo -o 
user=myusername,pass=mypassword,ro,uid=biblioteca,vers=1.0
 
e all’improvviso, come un miracolo, ho trovato tutte le directories 
delle cartelle condivise dl nas, bellissimo!!!!!
 
A questo punto, ho già effettuato una prova rapida con rsync e funziona!!!!
 
Grazie mille per la Vostra disponibiltà!!!
 
Per me questo è un argomento che mi attrae e affascina, ma avendo 
solamente una conoscenza limitata, si acquisisce conoscenza/esperienza 
solamente affrontando e risolvendo problemi!
 
Un cordialissimo saluto e alla prossima,
Nemo