« OpenSSH » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 5 : | Ligne 5 : | ||
Subsystem sftp internal-sftp | Subsystem sftp internal-sftp | ||
Match group sftp | Match group sftp | ||
ChrootDirectory /home/ | ChrootDirectory /home/sftp/%u | ||
ForceCommand internal-sftp | ForceCommand internal-sftp | ||
AllowTcpForwarding no | AllowTcpForwarding no | ||
| Ligne 14 : | Ligne 14 : | ||
groupadd -g 3000 sftp | groupadd -g 3000 sftp | ||
mkdir /home/ | mkdir /home/sftp/ | ||
mkdir -p /home/ | mkdir -p /home/sftp/sftp-user | ||
useradd -g sftp -M -b / -s /sbin/nologin sftp-user | useradd -g sftp -M -b / -s /sbin/nologin sftp-user | ||
Version du 13 novembre 2025 à 15:46
SFTP
Activer un chroot SFTP avec OpenSSH
dans /path/to/sshd_config
Subsystem sftp internal-sftp
Match group sftp
ChrootDirectory /home/sftp/%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/sftp/ mkdir -p /home/sftp/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