Protezione del file system per un server SFTP sicuro


12

Potrebbe non sembrare una domanda di sviluppo, ma in sostanza lo è. Lasciami spiegare come. Il nostro focus principale sullo sviluppo sono le pagine di contenuti dinamici. Alcuni dei nostri clienti ci hanno chiesto di lasciare loro spazio nei nostri server (che pagano) per il loro vecchio contenuto statico. Usiamo per realizzare questo dando al cliente un account ftp a un dominio diverso. (ad esempio il dominio del cliente è customer.com ma stavano accedendo al loro contenuto statico attraverso otherdomain.com/customerstatic).

Ora vogliamo aumentare la sicurezza offrendo ai clienti account sftp nei loro server Linux. Sto usando openssh / sftp-server nel loro ambiente di shell, quindi non sono in grado di accedere o eseguire comandi.

Il problema è che per natura molti file system sono di default (drwxr-xr-x), il che significa che qualsiasi utente sarà in grado di leggere il contenuto della directory e possibilmente alcuni file. Non penso che cambiare l'intero file system in -rwxr-x - x sia una mossa saggia poiché non so quanti file di sistema avranno bisogno di quel permesso di lettura.

Qualcuno ha affrontato questo problema in passato. Se hai, potresti illuminare la strada?

Grazie


Buona domanda e concisa risposta completa: un moderatore dovrebbe probabilmente cambiare il titolo e trasformarlo in una domanda non wiki.
MikeyB,

non è possibile annullare il wiki di una domanda; scusa
Jeff Atwood,

Risposte:


22

SFTP per natura non è insicuro; lasciarli nel tuo intero filesystem è. Dai un'occhiata a questo per vedere come puoi abilitare l'accesso SFTP su base chroot , che bloccherà le directory a cui possono accedere, diciamo, le loro directory home o dove vuoi che vengano caricate.

Su Linux, presterei attenzione a questa parte (configurando / etc / ssh / sshd_config):

  Match Group sftponly
         ChrootDirectory %h
         ForceCommand internal-sftp 
         AllowTcpForwarding no

Ciò significa che chiunque nel gruppo di utenti "sftponly" sarebbe limitato alle proprie home directory.

Vedere il collegamento per ulteriori informazioni e leggere anche la manpage sshd_config. Spero possa aiutare.


Inoltre, potresti dover dire a OpenSSH di usarlo internal-sftpquando il client richiede il sottosistema sftp, potrebbe essere stato impostato per usare il sftp-serverprogramma esterno . Per fare ciò, aggiungi o modifica la linea Subsystem sftp internal-sftpnella sezione principale del file di configurazione (non sotto la Matchsezione).
Nate,

Josh, hai mai trovato un modo per rendere questo non richiede la proprietà di root delle home directory degli utenti?
Matt Simmons,


1

Quando si dice "Molti file system sono di default 755 permessi", che in realtà significa il default umask è impostato su 022. È possibile modificare questa impostazione predefinita (per i nuovi file) impostando l'umask a 027, il che renderebbe le autorizzazioni predefinite 750, o imposta umask su 007, il che renderebbe le autorizzazioni predefinite 770.


0

Si potrebbe prendere in considerazione la configurazione di un server OpenVZ e la creazione di un 'container' ftp / sftp separato per ogni azienda. Questo li tiene tutti separati, e una volta capito OpenVZ è davvero utile per questo tipo di piccole cose.

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.