IV. Journalisation

Afin de voir les connexions faites via le protocole SFTP, il faut :

IV.1 - Paramétrez le service ssh

Pour cela, dans le fichier /etc/ssh/sshd_config commentez la ligne :

#Subsystem  sftp    /usr/lib/openssh/sftp-serv

Et rajoutez les lignes suivantes :

# SFTP access
Subsystem     sftp     internal-sftp
#Port 384
PermitRootLogin no
Match User sftp
ChrootDirectory  /home/sftp/sites-web
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 022 -l INFO

Fixez les permissions sur les répertoires :

chown root /home/sftp
chown root /home/sftp/sites-web

Pour finir redémarrez le service ssh :

systemctl restart ssh

IV.2 - Créez une nouvelle règle rsyslog

Créez le fichier /etc/rsyslog.d/sftp.conf avec le contenu suivant :

# create additional sockets for the sftp chrooted users
module(load="imuxsock")
input(type="imuxsock" Socket="/home/sftp/sites-web/dev/log" CreatePath="on")

# log internal-sftp activity to sftp.log
if $programname == 'internal-sftp' then /var/log/sftp.log
& stop

Créez le répertoire :

mkdir -m2755 /home/sftp/sites-web/dev

Redémarrez le service rsyslog :

systemctl restart rsyslog

IV.3 - Activez la journalisation

Créez le fichier /etc/logrotate.d/sftp avec le contenu suivant :

/var/log/sftp.log
{
    notifempty
    compress
    delaycompress
    create 640 root adm
}