115 votes

Journalisation SFTP : existe-t-il un moyen ?

Je me demande s'il existe un moyen d'enregistrer les commandes reçues par le serveur. Il peut s'agir de toutes les commandes SSH, tant que cela inclut des informations sur les commandes liées au transfert de fichiers.

J'ai des problèmes avec un client SFTP et le créateur demande des journaux, mais je ne parviens pas à trouver de journaux existants.

Je cherche à me connecter sur les deux systèmes ou sur CentOS ou OS X (bien que je soupçonne que si c'est possible, ce serait similaire sur les deux).

130voto

rvf Points 1415

Les versions 4.4p1 et supérieures d'OpenSSH (qui devraient inclure la dernière version avec CentOS 5) ont la capacité de journalisation SFTP intégrée - vous devez juste la configurer.

Trouvez ceci dans votre sshd_config (dans centos, le fichier /etc/ssh/sshd_config ) :

Subsystem       sftp    /usr/libexec/openssh/sftp-server

et le changer en :

Subsystem       sftp    /usr/libexec/openssh/sftp-server -l INFO

INFO est juste un niveau de détail par rapport à ce que vous voyez par défaut - il fournit des informations détaillées concernant les transferts de fichiers, les changements de permission, etc. Si vous avez besoin de plus d'informations, vous pouvez ajuster le niveau du journal en conséquence. Les différents niveaux (par ordre de détail) sont :

QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3

Tout ce qui est supérieur à VERBOSE est probablement plus d'informations que ce que vous recherchez, mais cela peut être utile.

Enfin, redémarrez le service SSH pour mettre à jour les changements (centos) :

systemctl restart sshd

53voto

nex3 Points 4309

Les mêmes commutateurs autour de la journalisation pour sftp-server fonctionnent également pour internal-sftp. Voici un exemple tiré de mon /etc/ssh/sshd_config :

Subsystem   sftp    internal-sftp -f AUTH -l INFO

Avec le niveau de journalisation INFO activé, les messages commenceront à s'afficher dans /var/log/messages (au moins sous les Distros basés sur Red Hat) :

May 27 05:58:16 test-server sshd[20044]: User child is on pid 20049
May 27 05:58:16 test-server sshd[20049]: subsystem request for sftp by user test-user
May 27 05:58:16 test-server internal-sftp[20050]: session opened for local user test-user from [192.168.1.1]
May 27 05:58:16 test-server internal-sftp[20050]: received client version 3
May 27 05:58:16 test-server internal-sftp[20050]: realpath "."
May 27 05:58:21 test-server internal-sftp[20050]: opendir "/home/test-user/"
May 27 05:58:21 test-server internal-sftp[20050]: closedir "/home/test-user/"
May 27 05:58:21 test-server internal-sftp[20050]: lstat name "/home/test-user/upload"
May 27 05:58:21 test-server internal-sftp[20050]: realpath "/home/test-user/upload/"
May 27 05:58:21 test-server internal-sftp[20050]: stat name "/home/test-user/upload"
May 27 05:58:24 test-server internal-sftp[20050]: open "/home/test-user/upload/test-file.pdf" flags WRITE,CREATE,TRUNCATE mode 0664
May 27 05:58:25 test-server internal-sftp[20050]: close "/home/test-user/upload/test-file.pdf" bytes read 0 written 1282941

7voto

Phil Points 193

Afin de clarifier les commentaires ci-dessus :

Si vous avez configuré sftp en utilisant un jail (environnement chroot), vous ne pouvez pas écrire le journal sans effort de configuration supplémentaire. Le journal ne peut pas être écrit dans l'environnement chroot, vous devez créer un mount bind ou un socket. Je recommanderais d'utiliser un socket, car c'est une fonctionnalité fournie par syslog-ng ainsi que rsyslog (et peut-être beaucoup d'autres).

Pour ceux qui utilisent syslog-ng, jetez un coup d'œil à ce lien . Pour ceux qui utilisent rsyslog ; J'espère que cela vous aidera. .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X