Estoy ejecutando Debian estable y estoy buscando establecer el siguiente entorno para los usuarios de mi grupo 'sftponly':
- encarcelado
- puede transferir con SFTP
- puede transferir con SCP
- no puede iniciar sesión interactivamente con SSH
De mi experimentación e investigación, parece que la siguiente estrofa en sshd_config me lleva al 90%:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Esto me da SFTP encarcelado y no SSH, lo cual es bueno. Pero también deshabilita SCP, que es menos que ideal porque muchos clientes son procesos heredados con secuencias de comandos que usan SCP en lugar de SFTP (el servidor que estamos reemplazando admite ambos protocolos), y dado que esos clientes no están bajo nuestro control y fácilmente modificado, es probable que no sea práctico deshabilitar SCP por completo.
Tiene sentido que esta configuración deshabilite SCP, ya que las conexiones SCP entrantes hacen que sshd genere un proceso 'scp' a través del shell de inicio de sesión del usuario, como ese usuario. Parece que lo mismo sería normalmente cierto para SFTP, si no fuera por el controlador especial 'internal-sftp'.
Entonces, supongo que mi pregunta es: ¿hay alguna manera de lograr el mismo efecto que 'internal-sftp' pero para SCP, sin recurrir al uso de herramientas de terceros como scponly y rssh? Lo realmente bueno de 'internal-sftp' es que no requiere configurar una cárcel con archivos de soporte, o tratar con binarios setuid de terceros potencialmente explotables (rssh, en particular, tiene un historial de exploits).