Sélectionner une page

Dans la série « trucs & astuces », nous avons dû récemment ouvrir des accès SFTP à certains de nos clients ou partenaires.

Étant très pointilleux sur la sécurité de nos infrastructures et celle de nos clients, nous avons souhaité pouvoir logguer qui effectuait quel transfert en SFTP sur le serveur correspondant (en plus d’y mettre un chroot…)

Or, par défaut, openssh et son serveur sftp-server ne loggue pas qui transfère (en lecture, écriture ou effacement) quel fichier.

Cependant, depuis la version 4.2, sfp-server sait logguer ce type d’action. Pour cela, il suffit de configurer votre sshd comme suit :

La ligne du sftp:

Subsystem sftp /usr/lib/openssh/sftp-server 

doit être remplacée par la ligne ci-dessous :

Subsystem sftp /usr/lib/openssh/sftp-server -l INFO -f LOCAL0

Après redémarrage de ssh par /etc/init.d/ssh restart , on obtient, dans /var/log/syslog :

Aug 27 15:29:15 mg sftp-server[12]: session opened for local user admin from [91.194.61.194]
Aug 27 15:29:15 mg sftp-server[12]: opendir "/home/admin"
Aug 27 15:29:15 mg sftp-server[12]: closedir "/home/admin"
Aug 27 15:29:24 mg sftp-server[12]: open "/home/admin/test.txt" flags READ mode 0666
Aug 27 15:29:24 mg sftp-server[12]: close "/home/admin/test.txt" bytes read 5069 written 0
Aug 27 15:29:31 mg sftp-server[12]: open "/home/admin/test.txt" flags WRITE,CREATE,TRUNCATE,EXCL mode 0666
Aug 27 15:29:31 mg sftp-server[12]: close "/home/admin/test.txt" bytes read 0 written 184
Aug 27 15:29:31 mg sftp-server[12]: set "/home/admin/test.txt" modtime 20100528-12:11:29
Aug 27 15:29:31 mg sftp-server[12]: opendir "/home/admin"
Aug 27 15:29:31 mg sftp-server[12]: closedir "/home/admin"
Aug 27 15:29:34 mg sftp-server[12]: remove name "/home/admin/test.txt"
Aug 27 15:29:34 mg sftp-server[12]: opendir "/home/admin"
Aug 27 15:29:34 mg sftp-server[12]: closedir "/home/admin"
Aug 27 15:29:39 mg sftp-server[12]: session closed for local user admin from [91.194.61.194]