Consiglierei di utilizzare l'account di root in primo luogo. Se lo configuri in questo modo:
- Configura il tuo
sshd_config
computer di destinazione su PermitRootLogin without-password
.
- Utilizzare
ssh-keygen
sulla macchina che estrae il backup per creare una chiave privata SSH (solo se non si dispone già di una chiave SSH). Non impostare una passphrase. Google un tutorial se hai bisogno di dettagli per questo, ci dovrebbero essere molti.
- Aggiungi il contenuto del
/root/.ssh/id_rsa.pub
computer di backup al computer /root/.ssh/authorized_keys
di destinazione.
- Ora il tuo computer di backup ha accesso root al tuo computer di destinazione, senza dover utilizzare l'autenticazione con password.
quindi l'installazione risultante dovrebbe essere abbastanza sicura.
sudo
, in particolare combinato con NOPASSWD
quanto raccomandato nei commenti, non ha vantaggi in termini di sicurezza rispetto al solo utilizzo dell'account root. Ad esempio questo suggerimento:
aggiungi quanto segue al tuo /etc/sudoers
file:rsyncuser ALL= NOPASSWD:/usr/bin/rsync
essenzialmente dà rsyncuser
comunque i permessi di root. Tu chiedi:
@MartinvonWittich È facile ottenere una shell radice completa perché rsync
eseguita con sudo
? Cammina [m] e [attraverso] che per favore.
Bene semplice. Con la configurazione consigliata, rsyncuser
ora può essere eseguito rsync
come root senza nemmeno che sia richiesta una password. rsync
è uno strumento molto potente per manipolare i file, quindi ora rsyncuser
ha uno strumento molto potente per manipolare i file con i permessi di root. Trovare un modo per sfruttarlo mi ha richiesto solo pochi minuti (testato su Ubuntu 13.04, richiede dash
, bash
non ha funzionato):
martin@martin ~ % sudo rsync --perms --chmod u+s /bin/dash /bin/rootdash
martin@martin ~ % rootdash
# whoami
root
# touch /etc/evil
# tail -n1 /etc/shadow
dnsmasq:*:15942:0:99999:7:::
Come puoi vedere, mi sono creato una shell di root; whoami
identifica il mio account come root, posso creare file /etc
e posso leggere da /etc/shadow
. Il mio exploit è stato quello di impostare il bit setuid sul dash
binario; fa sì che Linux esegua sempre quel binario con le autorizzazioni del proprietario, in questo caso root.
Avere una vera radice non è [raccomandato] per buoni motivi. - redanimalwar 15 ore fa
No, aggirare goffamente l'account root in situazioni in cui è assolutamente appropriato usarlo non è per buone ragioni. Questa è solo un'altra forma di programmazione di culto del carico : non capisci davvero il concetto dietro sudo vs root, applichi semplicemente alla cieca la convinzione che "root è cattivo, sudo è buono" perché l'hai letto da qualche parte.
Da un lato, ci sono situazioni in cui sudo
è sicuramente lo strumento giusto per il lavoro. Ad esempio, quando lavori in modo interattivo su un desktop grafico Linux, diciamo Ubuntu, quindi dover usare sudo
va bene in quei rari casi in cui a volte hai bisogno dell'accesso root. Ubuntu ha intenzionalmente un account root disabilitato e ti costringe a utilizzare sudo
per impostazione predefinita per impedire agli utenti di utilizzare sempre sempre l'account root per accedere. Quando l'utente desidera semplicemente utilizzare ad esempio il browser Web, accedere come root sarebbe una cosa pericolosa , e quindi non avere un account root di default impedisce alle persone stupide di farlo.
D'altra parte, ci sono situazioni come la tua, in cui uno script automatizzato richiede autorizzazioni di root per qualcosa, ad esempio per eseguire un backup. Ora usare sudo
per aggirare l'account di root non è solo inutile, è anche pericoloso: a prima vista rsyncuser
sembra un normale account senza privilegi. Ma come ho già spiegato, sarebbe molto facile per un utente malintenzionato ottenere pieno accesso alla radice se avesse già ottenuto l' rsyncuser
accesso. Quindi, essenzialmente, ora hai un account root aggiuntivo che non assomiglia affatto a un account root, il che non è una buona cosa.
root
account in primo luogo.sudo
, in particolare combinato conNOPASSWD
quanto raccomandato nei commenti, non migliora davvero la sicurezza della tua macchina.