Garder des logs des tentatives de connexions SSH
Procédure pour activer et tuner les logs de niveau INFO afin de garder les traces, entre autres, des tentatives de connexions ssh refusées.
Activer le logging de niveau INFO
Cette manipulation permet entre autres de connaître les tentatives d''accès en SSH ainsi qu''en SFTP.
Avec les droits root (se connecter en root ou faire sudo sh) :
- Editer le fichier /opt/etc/openssh/sshd_config et décommenter :
SyslogFacility AUTH
LogLevel INFO
- Recharger le fichier de conf :
/opt/etc/init.d/S40sshd reload
ou
/opt/etc/init.d/S40sshd restart
- Editer le fichier
/etc/syslog.deny
et mettre en commentaire "info" :
# These priorities in this config file are not logged
# refer to syslog.h
#alert
#crit
debug
#emerg
#err
#info
notice
- Arrêter et redémarrer le processus syslogd :
* trouver le pid_syslogd :
ps -ef | grep syslog
* tuer le process :
kill -9 pid_syslogd
* relancer
/sbin/syslogd
* voir les log sshd :
cat /var/log/messages | grep sshd
Vous pouvez par la suite vous créer un script, combiné à un cron et à iptables vous permettant de bannir des adresses IP faisant des requêtes de connexions refusées.
Tuning de la configuration du syslogd
Par défaut, lorsqu'il collecte les messages de type info, syslogd écrit des lignes "
-- MARK --" toutes les 20 minutes, ce qui maintient le disque du Syno allumé en permanence. Pour désactiver l'écriture de ces lignes, il faut rajouter le flag
-m 0 dans la commande de lancement du syslogd :
/sbin/syslogd -m 0
Procédure pour que ce paramètre soit pris en compte lors du lancement de syslogd au démarrage du Syno :
Méthode un peu barbare, mais Synology oblige :
Avec les droits root, modifier dans le fichier /etc/rc la ligne :
${syslogd_program:-/sbin/syslogd} ${syslogd_flags}
en
${syslogd_program:-/sbin/syslogd} ${syslogd_flags:--m 0}
Il est également possible de rajouter différents autres flags :
Pour les connaître, consulter :
http://www.busybox.net/downloads/BusyBox.html
rubrique syslogd
Par exemple, il est aussi possible de changer le fichier de syslog par défaut (par exemple le mettre sur une clé USB, pour ne pas éveiller le disque à chaque ligne rajoutée), d'envoyer les messages syslog vers un serveur syslog :
syslogd_flags="-m 0 -L -R server"