Question Journalisation SFTP: existe-t-il un moyen?


Je me demande s'il existe un moyen de consigner les commandes reçues par le serveur. Il peut s'agir de toutes les commandes SSH, à condition qu'il contienne 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 à en trouver.

Je cherche à ouvrir une session sur CentOS ou sur OS X (bien que je soupçonne que si c'est possible, ce serait similaire sur les deux).


82
2017-10-11 01:42


origine




Réponses:


Les versions OpenSSH 4.4p1 et supérieures (qui devraient inclure la dernière version de CentOS 5) intègrent une fonction de journalisation SFTP - il vous suffit de la configurer.

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

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

et changez le en:

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

INFO n'est qu'un niveau de détail par rapport à ce que vous voyez par défaut. Il fournit des informations détaillées sur les transferts de fichiers, les modifications d'autorisation, etc. Si vous avez besoin d'informations supplémentaires, vous pouvez ajuster le niveau de journalisation 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 concerne VERBOSE représente probablement plus d'informations que ce que vous recherchez, mais cela pourrait être utile.

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

systemctl restart sshd

86
2017-10-13 23:21



Je ne savais pas que vous pouviez vous connecter à SFTP comme ça, c'est ce dont j'ai besoin. Où stocke-t-il les journaux? /var/log/auth.log? - Rory
Cela dépend de votre configuration syslog. À l'aide du niveau de journalisation INFO, la plupart des syslog.conf par défaut placent ces entrées dans / var / log / messages. - rvf
Est-il possible de faire cela en utilisant le serveur sftp interne? - Cian
cela fonctionne parfaitement pour SFTP, mais qu'en est-il de SCP? Je n'ai trouvé aucune entrée dans le journal pour un fichier copié avec la commande scp, bien que le journal ait réussi pour sftp - Ale
Sur Ubuntu, ces journaux utilisent par défaut /var/log/auth.log. Ajouter -f USER pour que Subsystem ligne de configuration pour les envoyer à /var/log/syslog. - Throwaway Account 3 Million


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

Subsystem   sftp    internal-sftp -f AUTH -l INFO

Avec la journalisation de niveau INFO activée, les messages commencent à apparaître sous / var / log / messages (au moins sous Distros basé 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

39
2018-05-29 12:42



J'ai découvert que, dans mon cas, il ne consignait que les sessions sftp pour root mais pas pour mon test d'utilisateur en mode chrooté. Je ne comprends pas pourquoi, avez-vous des idées? - JohnnyFromBF
On dirait que vous avez besoin /dev/log dans votre zone de chroot. Quelque chose comme sudo mkdir /chrooted/area/dev, sudo touch /chrooted/area/dev/log, sudo chmod 511 /chrooted/area/dev, sudo chattr +i /chrooted/area/dev, sudo mount --bind /dev/log /chrooted/area/dev/log. Les utilisateurs auront toujours un accès en écriture à ce fichier / dev / log, mais comme il s'agit d'un socket, ils ne peuvent pas faire beaucoup de mal si tout ce qu'ils ont accès est sftp. - sch
Merci pour l'allusion. Je n'arrive pas à le faire fonctionner, cependant. Pourriez-vous être un peu plus précis? - user1092608
FWIW: Dans le wiki ArchLinux, il existe une bonne description sur la façon d'activer la journalisation dans l'environnement chroot: wiki.archlinux.org/index.php/SFTP_chroot#Logging - Kaii