Bonjour,

Je souhaiterai avoir les logs lorsqu'on effectue un transfert en SFTP.

Mon fichier ssh_config est composé :
# Logging
SyslogFacility AUTH
LogLevel INFO
Subsystem sftp internal-sftp -l INFO -f AUTH
Et mon fichier rsyslog :
auth,authpriv.*                 /var/log/auth.log
Je ne comprends pas trop pourquoi dans les logs auth.log je n'ai que les connexions des utilisateurs en sshd et rien venant du server-sftp, j'ai beau changer les LogLevel jusqu'à DEBUG3 rien n'y fait.

Si quelqu'un a une solution à ce petit problème, je suis preneur

Je vous remercie
Chez moi ça marche plutot bien ...
Mar  9 15:00:48 sftp-server[18724]: opendir "/home/thewintch/torrents/BtN"
Mar  9 15:00:48 sftp-server[18724]: closedir "/home/thewintch/torrents/BtN"
Mar  9 15:00:55 sftp-server[18724]: opendir "/home/thewintch/torrents/BtN/Banshee"
Mar  9 15:00:55 sftp-server[18724]: closedir "/home/thewintch/torrents/BtN/Banshee"
Mar  9 15:00:58 sftp-server[18724]: open "/home/thewintch/torrents/BtN/Banshee/Banshee.S03E09.720p.HDTV.x264-KILLERS.mkv" flags READ mode 0666
Mar  9 15:01:06 sftp-server[18724]: close "/home/thewintch/torrents/BtN/Banshee/Banshee.S03E09.720p.HDTV.x264-KILLERS.mkv" bytes read 5439488 written 0
Mar  9 15:01:12 sftp-server[18724]: session closed for local user thewintch from [185.xx.x.xxx]
Mon sshd_config :
Subsystem sftp /usr/lib/openssh/sftp-server -l INFO -f AUTH
J'avais jamais testé tiens ...
tes utilisateurs ils seraient pas chrootés des fois ? il me semble que dans ce cas ça merde mais je t'avoue jamais m’être penché sur la question....


*EDIT : dsl, j'avais pas fait gaffe a ta config...c'est bien ton chroot qui met la pagaille, il faut que tu contournes ce pb en créant un /dev/log dans chaque /user/ chrooté , puis ajouter un socket pour chaque ds rsyslog blablabeurk BREF tu trouveras moultes explications un peu partout
Tu nous raconteras ta soluce ? ça a l'air un peu relou a faire ....
Oui mes utilisateurs sont bien chrooter dans leurs répertoires respectifs. Ca marche, je vais essayer et si j'y arrive je le poste.

En tout cas merci de la réponse
Bon voilà ça fonctionne, si quelqu'un est intéressé par la solution.

Mon fichier sshd :
Match User user1,user2
	ChrootDirectory /home/%u
	X11Forwarding no
	ForceCommand internal-sftp -l VERBOSE -f LOCAL6
Si comme dans mon cas, les utilisateurs ne sont pas dans le root filesystem. Il faut modifier le fichier syslog ou rsyslog :
# For SFTP logging
local6.*                        /var/log/sftp.log
# Create an additional socket for some of the sshd chrooted users.
$AddUnixListenSocket /home/sftp.log.socket
# Log internal-sftp in a separate file
:programname, isequal, "internal-sftp" -/var/log/sftp.log
:programname, isequal, "internal-sftp" ~
Explication : You will see verbose sftp logging being produced in the /var/logmessages for each chroot’ed user, where by default this should go to the daemon.log. The reason for this is that the chroot’ed sftp process can not open /dev/log as this is not within the chrooted filesystem.

Chaque utilisateur doit avoir son log :
mkdir /home/user1/dev
chmod 755 /home/user1/dev
ln /home/sftp.log.socket /home/user1/dev/log
Puis relancer les services SSH et RSYSLOG.

Par contre, les messages sont en doubles dans le sftp.log je ne sais pas encore trop pourquoi.

Source
Cool!

Merci pour le retour.

Et pour le double log...aucune idée
8 mois plus tard
hello,

merci pour ce tuto,

malheureusement en tenant compte de ta solution les logs ne s'affiche tjs pas..
as tu fait qqch de plus qu'expliquer plus haut ?

merci
Hi,

Non, je n'ai rien fait de plus .. Si ça marche pas, tu supprimes le dev/log et tu le recrées.

J'espère que ça marchera
ce que je en comprends pas c'est ton :
# Create an additional socket for some of the sshd chrooted users.
$AddUnixListenSocket /sftp/sftp.log.socket
où est creer le folder /sftp ?
Ah en effet, il y a une faute sur cette ligne par rapport à celle qui est écrite en dessous.

Il faut mettre dans le fichier rsyslog :
$AddUnixListenSocket /home/sftp.log.socket
Ce qui est bien en lien avec :
ln /home/sftp.log.socket /home/user1/dev/log
mhh.. en essayant de creer le lien je me retrouve avec cette erreur..
ln /home/sftp.log.socket /home/user1/dev/log
ln: impossible de créer le lien direct « /home/user1/dev/log » => « /home/sftp.log.socket »: Lien croisé de périphéque invalide
j'ai pourtant bien les logs de mon user root dans /var/log/sftp.log
et le fichier sftp.log.socket est présent dans le /home général..
C'est bien sur la même partition ?
négatif, les 4 users on des /home respectifs sur différentes partition..
Ah c'est pour cela que ça fonctionne pas.

Tu peux essayer avec la commande : ln -s

Soit :
ln -s /home/sftp.log.socket /home/user1/dev/log
J'espère que cela va fonctionner.

Robin
merci pour le tips.. ça fonctionne pour le lien avec cette commande mais malheureusement pour moi le sftp.log.socket dans /home reste vide..

j'avoue que je sèche .. comme si les users chrooted ne voulais pas faire de logs, alors que le socket est ajouté dans le rsyslog.conf comme décris plus haut..
4 jours plus tard
Hello,

J'avoue que je commence à sécher également .. Je sais que parfois, qu'une fois quand ça marchait pas, j'ai recommencé toute la procédure :
mkdir /home/user1/dev
chmod 755 /home/user1/dev
ln /home/sftp.log.socket /home/user1/dev/log
Et redémarrer rsyslog.

Robin
Répondre…