GNU/Linux >> Linux Esercitazione >  >> Linux

Configura utenti SFTP in sistemi basati su Linux

Questo articolo mostra come creare utenti SFTP (File Transfer Protocol) SSH protetti che sono limitati o imprigionati nelle loro directory home.

AVVISO :non tentare di incarcerare l'utente root. Incarcerare solo utenti aggiuntivi in ​​modo da non impedire all'utente root di eseguire correttamente le operazioni.

Prima di iniziare, esamina le seguenti best practice:

  • La directory home dell'utente SFTP deve essere di proprietà di root:root . Altre directory possono (e dovrebbero) essere di proprietà (e scrivibili) dell'utente.

  • È importante assicurarsi che l'utente chroot abbia accesso in scrittura alla DocumentRoot specificata.

  • È importante accedere e verificare che l'utente SFTP funzioni correttamente.

  • È importante assicurarsi che l'utente SFTP aggiunto venga aggiunto al gruppo SFTP.

  • Queste istruzioni servono per aggiungere un singolo dominio (utente SFTP), ma potresti potenzialmente utilizzarle per gestire più domini.

Importante :i passaggi in questo articolo non funzionano con RHEL® 7 o CentOS® 7. Come per qualsiasi operazione chroot corretta, questa configurazione non fornisce l'accesso in scrittura alla directory chroot. Solo le sottodirectory della jail chroot sono scrivibili. Ciò è dovuto al modo in cui i permessi di root vengono interpretati nelle directory di livello superiore in cui è contenuto l'utente SFTP.

Utilizzare i seguenti passaggi per creare utenti SFTP protetti che vengono imprigionati nelle loro directory home:

  1. Aggiungi il gruppo SFTP che desideri utilizzare per l'accesso SFTP eseguendo il comando seguente:

    groupadd sftponly
    
  2. Aggiungi l'utente SFTP eseguendo il comando seguente, sostituendo myuser con il nome utente:

    useradd -d /var/www/vhosts/domain.com -s /bin/false -G sftponly myuser
    
  3. Crea una password per l'utente eseguendo il comando seguente, sostituendo myuser con il nome utente:

    passwd myuser
    
  4. Apri sshd_config file che contiene la configurazione SSH e SFTP eseguendo il comando seguente:

    nano /etc/ssh/sshd_config
    
  5. Commenta la riga seguente aggiungendo un cancelletto (#) all'inizio, come mostrato nell'esempio seguente:

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  6. Aggiungi la seguente riga direttamente sotto la riga che hai appena commentato:

    Subsystem sftp internal-sftp
    
  7. Aggiungi il codice seguente in fondo al file:

    Match Group sftponly
         ChrootDirectory %h
         X11Forwarding no
         AllowTCPForwarding no
         ForceCommand internal-sftp
    
  8. Esegui sshd comando per testare le modifiche, quindi riavviare il servizio.

    Importante :Se questo passaggio viene eseguito in modo errato, potrebbe interrompere la configurazione SSHD.

    sshd -t
    service sshd restart
    

Assicurati che i permessi dei file sul file system siano corretti

Successivamente, devi verificare che i permessi dei file sul file system siano corretti in modo che la jail SFTP funzioni correttamente.

  1. Verifica che il SFTPROOT directory (la directory home che hai impostato quando hai aggiunto l'utente SSH) ha il diritto user:root group:root autorizzazioni eseguendo il comando seguente:

    chown root:root /var/www/vhosts/mywebsite.com/
    
  2. Per verificare che l'accesso SFTP funzioni, connettiti a SFTP eseguendo il comando seguente, sostituendo myuser con l'utente che hai scelto, come mostrato nell'esempio seguente:

    sftp myuser@localhost
    myuser@localhost's password:
    Connected to localhost.
    
  3. Testare l'elenco delle directory eseguendo il comando seguente:

    sftp> ls -al
    

    L'output dovrebbe essere simile al seguente esempio:

    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 .
    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 ..
    drwxr-xr-x    2 5001     33           4096 Sep 28 08:52 html
    -rw-r--r--    1 0        0               0 Sep 28 08:09 test.php
    

    Nota :Usa il cd comando per accedere alla directory HTML (che si trova in /var/www/vhosts/mywebsite.com/html perché il sito web 'documentroot' è un livello al di sotto della root dell'utente SSH SFTP directory. Dovresti usare questa configurazione perché il tuo www-data gli utenti (gli utenti del server web) hanno root user:group autorizzazioni sui suoi file.

  4. Verifica la capacità di caricare file eseguendo i seguenti comandi:

    sftp> cd html
    sftp> put test.php
    Uploading test.php to /html/test.php
    test.php                                                                                                                                                                                                                                        
    100%    12K     20.0KB/s   00:00
    
  5. Verifica la capacità di scaricare file eseguendo il comando seguente:

    sftp> get test.php
    Fetching /test.php to test.php
    
  6. Visualizza la directory di lavoro attuale eseguendo il comando seguente:

    sftp> pwd
    
    Remote working directory: /html
    

    SFTP vede solo i file in /var/www/vhosts/mywebsite.com/ directory e considera questa directory la directory root ('/') di livello più alto.

  7. Utilizzare i seguenti passaggi per connettersi a SFTP e configurare il client SFTP:

    1. Installa Cyberduck®.
    2. Apri l'applicazione Cyberduck.
    3. Nella parte superiore della finestra, fai clic sull'icona per Apri connessione .
    4. Nel menu a discesa, seleziona SFTP (SSH File Transfer Protocol) .
    5. Nel server campo, immettere l'indirizzo IP (Internet Protocol) per il server.
    6. Inserisci il nome utente e la password che utilizzi per connetterti a SFTP.
    7. Fai clic su Connetti .

Importante :verifica sempre il tuo sito web dopo aver modificato le autorizzazioni dei file.


Linux
  1. Come creare più account utente in Linux

  2. Utenti e Gruppi

  3. Elenca utenti in Linux - Metodo migliore

  4. Come impostare i valori predefiniti del desktop per i nuovi utenti??

  5. Come configurare le chiavi SSH su Debian

Come aggiungere utenti a un gruppo in Linux

Come impostare o modificare l'agente utente con curl

Come gestire gli utenti in Plesk

Come elencare gli utenti in Linux

Come modificare o impostare la password utente in Linux

Utenti Webmin