!Ciao amici! Oggi ti offro un'alternativa all'utilizzo di un server FTP per il trasferimento sicuro dei file. Già il collega KZKG ^ Gaara pubblicato uno in base al pacchetto jailkit. Quello che svilupperemo si basa sui pacchetti che abbiamo più a portata di mano nel nostro repository.
Vedremo:
- Immettere richiesto
- Come configuriamo il server Openssh?
- Come creiamo gli utenti?
- Come modifichiamo le home directory per far funzionare la gabbia?
Immettere richiesto
Spesso abbiamo bisogno di copiare file da computer remoti sulla nostra macchina. Molti me lo hanno chiesto. Installa un FTP? Come installo un SAMBA? Bene, passiamo dal semplice al complesso. Fin dall'inizio, perché complicarci se abbiamo il Server OpenSSH installato?. E se non ce l'abbiamo, con il semplice comando:
aptitude installa openssh-server
Ora ce l'abbiamo!, E poi saremo in grado di trasferire file in sicurezza tramite il protocollo SFTP (Secure File Transfer Protocol), che utilizza SSH (Secure Shell) per la crittografia.
Per impostazione predefinita, gli utenti autorizzati ad avviare una sessione remota tramite utente ssh @ il mio team, potranno vedere quasi tutti i file archiviati nel nostro sistema, il che potrebbe non essere di nostro gradimento o che per motivi di sicurezza non dovremmo consentirlo.
Questo articolo ci aiuterà a configurare il Server OpenSSH in modo che gli utenti desiderati siano limitati alla loro directory personale / home / utente. Chiariamo che, Con questo metodo, gli utenti dichiarati non saranno in grado di avviare una sessione remota tramite una console ssh o tramite PuTTy. Potranno solo trasferire file da o verso la loro directory personale sul nostro computer o server.
Il metodo qui descritto è valido per le versioni Debian 5 (Lenny) o successive e per le versioni di Ubuntu 9.04 o successive. La versione del pacchetto SSH di Hardy o Ubuntu 8.04 è in ritardo e non supporta la configurazione che descriveremo di seguito.
Come configuriamo il server Openssh?
Come utente radice modifichiamo il file /etc/ssh/sshd_config con qualsiasi semplice editor di testo. Si consiglia l'uso di nano in modalità console.
nano / etc / ssh / sshd_config
Vogliamo che sia presente la seguente riga:
Sottosistema sftp
In Lenny e Squeeze ci sono:
Sottosistema sftp / usr / lib / openssh / sftp-server
Nel caso in cui non esista, aggiungiamo alla fine del file:
Sottosistema sftp internal-sftp
Continuiamo con la modifica del file sshd_config e aggiungiamo alla fine:
Match group group-sftp ChrootDirectory% h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Salviamo le modifiche e riavviamo il servizio:
/etc/init.d/ssh riavvio
Come creiamo gli utenti?
Per prima cosa creiamo il «gruppo»Che dichiariamo nel sshd_config. Attenzione al nome che abbiamo scelto in precedenza, non sarà che esiste già ed è un gruppo appartenente al Sistema. Se non vogliamo limitare gli utenti esistenti nel nostro sistema, dobbiamo creare nuovi utenti in modo che possano trasferire file. Perché la gabbia funzioni, dobbiamo anche fare loro, membri del gruppo in questione.
addgroup group-sftp adduser utente1 adduser utente2 [----] usermod -G group-sftp utente1 usermod -G group-sftp utente2
Per verificare la creazione del gruppo e degli utenti, possiamo fare:
meno / etc / password meno / etc / group ls -l / home
E dovrebbero apparire gli utenti user1 y user2così come i gruppi group-sftp e quelli corrispondenti agli utenti creati. Inoltre, quando si elenca la directory / Home, appariranno le home directory di ogni utente creato.
Come modifichiamo le home directory per far funzionare efficacemente la gabbia?
Dobbiamo aumentare la sicurezza delle cartelle personali di ogni utente creato in modo che non possano creare cartelle aggiuntive nella loro directory personale e con autorizzazioni di scrittura dove vogliamo (non dove vogliono) 🙂:
chown root: root / home / utente1 / home / utente2 chmod 755 / home / utente1 / home / utente2 cd / home / utente1 documenti mkdir html_public chown utente1: utente1 * cd / home / utente2 documenti mkdir html_public chown utente2: utente2 *
Utenti che appartengono al gruppo group-sftp, d'ora in poi potranno accedere con i loro nomi e password solo tramite SFTP, e potranno trasferire file da e verso le directory che si trovano sotto la loro cartella personale e che sono state create da noi, ma non lo saranno in grado di vedere il resto del nostro file system.
Per il trasferimento di file e cartelle, possiamo usare Nautilus, Konqueror, WinSCP, FileZilla e altri che supportano il protocollo SFTP. Nel caso di Konqueror, dobbiamo usare fish: // utente @ remotecomputer.
Speriamo che questo articolo ci sia di utilità pratica!
Alla prossima avventura, amici!
Buon articolo. Un modo molto sicuro per condividere file. Grazie mille per la spiegazione. 🙂
Eccellente
E non è più comodo usare sshfs?
Per il nostro team la cartella remota apparirà come un'altra cartella con le stesse caratteristiche.
Ciao Federico, come sempre ottimo articolo. Sono molto felice di poter leggere i tuoi post da Internet ora.
Un abbraccio
Come
Che ne dici di Jacobo, no Federico non è d'accordo direttamente. Ehi, quando torni non più ubuntu, dipingi di verde umano e apri completamente. Un abbraccio. 😉
Stai dando ottimi contributi, continua così 😀
Grazie mille KZKG ^ Gaara, e grazie a TUTTI per il vostro feedback
Un utente può essere ingabbiato in una cartella diversa da / home / user /… ..?
Quello che voglio fare è ingabbiare un utente nella cartella / media / hdd / ...
Devo farlo in questo modo poiché il server è un Raspberry Pi con Raspbian e ha la cartella / home / ... / su una scheda SD, che si riempirebbe in pochissimo tempo
L'ho provato in diversi modi e il risultato nel client è sempre «tubo rotto», e il risultato in un server fatale: cattiva proprietà o modalità per il componente della directory chroot «/ media / HDD /»
Grazie mille a tutti
Penso che dovrai dire al sistema che la cartella home di quell'utente è / home / HDD, purché quella partizione abbia un formato linux nativo, cioè ext4; ext3; eccetera. Esempio, se l'utente è jae, in breve, è necessario eseguire qualcosa del genere:
: ~ # usermod –move-home –home / home / HDD jae
Vedi anche l'uomo usermod. Saluti
Ho un problema o ho un servizio in amazon con un amico pubblico e devo entrare tramite sftp per inserire o rimuovere file.
L'ho fatto prima e va tutto bene, ma oggi mi ha fatto qualcosa che non mi era successo
All'interno dell'ami ci sono una serie di cartelle e una di queste è un captive internet portal (pagina per i miei utenti). Si scopre che lì faccio promozioni e pubblicità per i miei utenti e apporto costantemente modifiche e le carico tramite sftp (con winscp). permessi di root e il passaggio di root
Ho dato chmod 777 per i permessi di scrittura e tutto era andato bene
ma oggi durante l'aggiornamento del web e il caricamento dell'indice.html e degli altri file mi ha dato i nomi ma non mi ha lasciato nessun byte cioè zero (vuoto) ora non vedi nulla sul mio web
Ho chiuso la sessione e sono rientrato, ho dato nuovamente i permessi, cambio utente, aggiorno, provo a mettere altri file, ne generi di nuovi e fa sempre lo stesso
mi dà i file ma non hanno dati
Qualcuno può aiutarmi ???
Apprezzerei davvero le tue risposte
prima di tutto, grazie
Atte
Sig. Irving Hernandez
Ciao come usare filezilla, l'ho già visto in diversi modi e ancora non riesco a connettermi.
È sbagliato.
Buon pomeriggio
Esegui la procedura e la gabbia funziona perfettamente, tuttavia quando provo a scrivere sulla cartella «documenti» o «html_publico» mi dà accesso negato. Ha le autorizzazioni menzionate e nulla che lo consenta.
drwxr-xr-x. 2 utente1 utente1 4096 Mar 11 13:16 docs
drwxr-xr-x. 2 user2 user2 4096 Mar 11 13:16 html_publico
Il risultato è l'accesso negato quando si tenta di scrivere in qualsiasi cartella. Tuttavia, quando si esegue un get, lo consente.
Spero che tu possa aiutarmi il prima possibile.
Saluti.