Sto eseguendo Debian stable e sto cercando di stabilire il seguente ambiente per gli utenti nel mio gruppo 'sftponly':
- incarcerato
- può trasferire con SFTP
- può trasferire con SCP
- impossibile accedere in modo interattivo con SSH
Dalla mia sperimentazione e ricerca, sembra che la seguente strofa in sshd_config mi porti il 90% lì:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Questo mi dà SFTP incarcerato e nessun SSH, il che è buono. Ma disabilita anche SCP, che è tutt'altro che ideale perché parecchi client sono processi legacy e basati su script che utilizzano SCP anziché SFTP (il server che stiamo sostituendo supportato entrambi i protocolli) e dal momento che quei client non sono sotto il nostro controllo e facilmente modificato, probabilmente non è pratico disabilitare del tutto SCP.
È logico che questa configurazione disabiliti SCP, poiché le connessioni SCP in entrata fanno sì che sshd generi un processo `scp 'tramite la shell di login dell'utente, come quell'utente. Sembra che lo stesso sarebbe normalmente vero per SFTP, se non fosse per lo speciale gestore "internal-sftp".
Quindi, suppongo che la mia domanda sia: c'è un modo per ottenere lo stesso effetto di 'internal-sftp' ma per SCP, senza ricorrere all'uso di strumenti di terze parti come scponly e rssh? La cosa davvero bella di 'internal-sftp' è che non richiede la creazione di una jail con file di supporto o la gestione di binari setuid di terze parti potenzialmente sfruttabili (rssh, in particolare, ha una storia di exploit).