OpenSSH
Sommaire
SFTP
Activer un chroot SFTP avec OpenSSH
dans /path/to/sshd_config
Subsystem sftp internal-sftp Match group sftp ChrootDirectory /home/sftpusers/%u ForceCommand internal-sftp AllowTcpForwarding no GatewayPorts no X11Forwarding no
Mettre l'user dans le bon home directory à la connexion
groupadd -g 3000 sftp mkdir /home/sftpusers/ mkdir -p /home/sftpusers/sftp-user/sftp-user useradd -g sftp -M -b / -s /sbin/nologin sftp-user
L'idée est d'avoir dans /etc/passwd
un utilisateur comme ceci :
sftp-user:x:500:3000::/sftp-user:/sbin/nologin
/sbin/nologin
peut être remplacé par /bin/false
, le shell est forcé par le ForceCommand
de la sous section d'OpenSSH
Autoriser l'utilisation d'une clé RSA
dans /path/to/sshd_config
AuthorizedKeysFile /home/sftpusers/%u/.ssh/authorized_keys
Attention, l'utilisateur "sftp-user" doit impérativement pouvoir lire le fichier authorized_keys (les droits de l'intégralité du path doivent au moins contenir read
pour le groupe sftpusers
, le chroot étant réalisée une fois les credentials obtenus.
Ajouter du log verbeux
Dans la rubrique Match
, ajouter -f AUTH -l INFO
à la fin de la ligne ForceCommand internal-sftp
.
Cela va avoir pour effet de forcer l'user à écrire dans son /dev/log, qui n'existe pas, il faut donc créer le répertoire mkdir /home/sftpusers/sftp-user/dev
et demander à rsyslog d'aller y écouter. Dans /etc/rsyslog.d/chroot.conf
:
$AddUnixListenSocket /home/sftpusers/sftp-user/dev/log
Un restart du tout et c'est OK.
Il est possible de changer le niveau de verbosité (configuré à INFO
) et le syslogfacility (AUTH
), mais il faudra également penser à adapter rsyslog pour traiter cette facility.
Tips
Afficher les algo acceptés par ssh sshd
ssh -Q key
Créer une clé SSH
ssh-keygen -q -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -C "$(whoami)@$(hostname)"
ssh-keygen -q -t ed25519 -f ~/.ssh/id_ed25519 -N "" -C "$(whoami)@$(hostname)"
Calculer un fingerprint
format sha256 encodé en base64
ssh-keygen -lf ~/.ssh/id_rsa.pub
pour l'avoir en ancien format MD5
ssh-keygen -lf ~/.ssh/id_rsa.pub -E md5