Come posso creare un utente SFTP in CentOS?


8

Vorrei dare un accesso SFTP temporaneo a un ragazzo del supporto. Come faccio a creare un utente SFTP? E come posso eliminarlo una volta terminato il lavoro?

Inoltre, come posso specificare una home directory per loro? Posso impedire loro di accedere a determinate sottodirectory nella loro home directory?

Utilizziamo CentOS 6.3 e fzSftp


Dipende dalla configurazione che ci fornisce il tuo file di configurazione potrebbe essere d'aiuto.
Kiwy,

Quali impostazioni particolari devo pubblicare?
OC2PS,

uno di voi ftp
deamon

Sei sicuro di voler FTP o SFTP? Il motivo per cui ti chiedo è che hai elencato fzsftp (filezilla sftp) che è il client che Filezilla utilizza per le connessioni SFTP.
slm

Ah! Mi sono collegato tramite FileZilla a SFTP, quindi elencato fzsftp ... ho pensato che fosse il mio server. SFTP andrebbe bene, se mi puoi aiutare con quello. Grazie!
OC2PS,

Risposte:


14

Accesso non chroot

Se non si dispone di una configurazione del server FTP e si ha la certezza che l'utente effettuerà l'accesso, per non cercare troppo nel proprio server, sarei invece propenso a fornire loro un account a SFTP nel sistema.

Il wiki di CentOS mantiene un semplice howto intitolato: Semplice configurazione SFTP che lo rende abbastanza indolore.

Dico che è indolore perché devi letteralmente creare l'account e assicurarti che il firewall consenta il traffico SSH, assicurati che SSH il servizio sia in esecuzione e il gioco è fatto.

Se sshdnon è già in esecuzione:

$ /etc/init.d/sshd start

Per aggiungere un utente:

$ sudo useradd userX
$ sudo passwd userX
... set the password ...

Al termine dell'account:

$ sudo userdel -r userX

Accesso chroot

Se invece vuoi limitare questo utente a una directory designata, il server SFTP incluso con SSH (openssh) fornisce una configurazione che lo rende anche facile da abilitare. È un po 'più di lavoro ma non troppo. I passaggi sono illustrati qui in questo tutorial intitolato: Come installare Chroot SFTP in Linux (Consenti solo SFTP, non SSH) .

Apporta queste modifiche al tuo /etc/ssh/sshd_configfile.

Subsystem       sftp    internal-sftp

## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config

Match Group sftpusers
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp

Ora dovrai creare l'albero della directory chroot in cui questo utente verrà bloccato.

$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}

Le autorizzazioni dovrebbero essere le seguenti:

$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing

Le directory di livello superiore come questa:

$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser

Non dimenticare di riavviare il sshdserver:

$ sudo service sshd restart

Ora crea l'account userX:

$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...

Puoi verificare che l'account sia stato creato correttamente:

$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin

Al termine dell'account, eliminalo nello stesso modo sopra:

$ sudo userdel -r userX

... e non dimenticare di rimuovere le modifiche al file di configurazione che abbiamo apportato sopra, quindi riavviare sshdper renderle nuovamente attive.


Bello! Come posso limitare l'utente a una determinata directory e impedire all'utente di accedere a un paio di sottodirectory all'interno di quella directory?
OC2PS,

associare l'utente all'interno della sua cartella home e aggiungere un collegamento simbolico all'interno delle diverse directory che si desidera consentire
Kiwy,

@ OC2PS - quanto sopra mostra un metodo per fare il chroot degli utenti, puoi anche chroot nella loro home directory. Generalmente divido questi utenti in un'area designata in modo che sia ovvio quando guardo /home/...chi è veramente un utente su un sistema. Anche se eseguo un vero server SFTP per lavoro, le mie esigenze sono leggermente diverse.
slm

Quando eseguo sudo useradd -D userX, ottengo Utilizzo: useradd [opzioni] LOGIN
OC2PS

@ Prova OC2PS useradd userX. Mi dispiace, ho letto male la pagina man di useradd.
slm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.