J'ai configuré un serveur Ubuntu avec openssh afin de pouvoir s'y connecter et exécuter des commandes à partir d'un système distant tel qu'un téléphone ou un ordinateur portable. Le problème est ... Je ne suis probablement pas le seul.
Existe-t-il un moyen de connaître toutes les tentatives de connexion effectuées sur le serveur?
Réponses:
Sur les serveurs Ubuntu, vous pouvez trouver qui a ouvert une session quand (et depuis où) dans le fichier
/var/log/auth.log
. Là, vous trouvez des entrées comme:la source
lastb
commande ?/var/log/auth.log
Sur les distributions basées sur Red Hat telles que Fedora / CentOS / RHEL, vous pouvez rechercher les utilisateurs connectés dans le fichier
/var/log/secure
.Si vous souhaitez plus d’informations, lisez le Q & R du super-utilisateur intitulé: Comment enregistrer les tentatives d’accès SSH et garder une trace de ce que les utilisateurs SSH finissent par faire sur mon serveur? .
la source
/var/log/secure
aucun de mes systèmes Ubuntu./var/log/auth
dans mes systèmes. C'est pourquoi avant de poster la réponse, j'ai vérifié si j'avais/var/log/secure
dans mon système, qui est aussi un serveur Ubuntu :)/var/log/secure
./var/log/secure
est un isme Fedora / CentOS / RHEL.Sur Ubuntu, vous pouvez vous connecter via SSH et utiliser la commande Linux tail pour afficher le dernier x nombre de lignes de votre
/var/log/auth.log
fichier. Lorsque vous êtes connecté via SSH, utilisez la commande suivante pour afficher les 100 dernières lignes de votre journal SSH:ou même plus propre
la source
Notez que la configuration par défaut sur Ubuntu consiste à NE PAS enregistrer les connexions SSH dans le
/var/log/auth
fichier. C'est leINFO
niveau de journalisation.Si vous souhaitez qu'il inclue les tentatives de connexion dans le fichier journal, vous devez éditer le
/etc/ssh/sshd_config
fichier (en tant que root ou avec sudo) et changer leLogLevel
de deINFO
àVERBOSE
.Après cela, redémarrez le démon sshd avec
Après cela, les tentatives de connexion ssh seront enregistrées dans le
/var/log/auth.log
fichier.la source
Ma recommandation est d'utiliser auditd . Cela enregistre en utilisant le sous - système d’audit du noyau Linux et, à mon avis, la bonne façon de le faire si vous êtes sérieux. Et étant donné la nature de la question {liée à la sécurité}, vous devriez également utiliser PAM . Au niveau par défaut, auditd et PAM étant installés, toutes les tentatives SSH réussies ou non doivent être enregistrées automatiquement dans votre fichier audit.log. Donc, vous n'avez vraiment rien à configurer, vous devez simplement installer auditd et PAM . Je connais cette première main pour SLES. Et parierais que RHEL et toute autre version d' entreprise de Linux fonctionneraient de la même manière.
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
Dans le journal d'audit brut généré par auditd, vous pouvez utiliser l'une des méthodes
aureport
de filtrage décrites dans les pages de manuel auditd , écrire votre propre analyseur de texte ou tout simplement utiliser un VI et rechercher des mots-clés.voici une exception de mon
/var/log/audit/audit.log
fichier avec moi ssh'ing dans mon serveur linux.date --date @1480622612.317
ce qui aboutitThu Dec 1 15:03:32 EST 2016
et c'est quand je ssh'd sur mon serveur.Quand
res=failed
devez-vous examiner ces adresses IP et ces noms d'hôte pour voir quels systèmes tentaient de se connecter, avec quelle tentative d'utilisateur? Et bien sûr, le succès de ssh tente de comprendre ce qui se passe sur votre système - par exemple, votre collègue, Bob, qui siège au même bureau tous les jours avec hostname = bobscomputer et ip address = 192.168.5.5; si vous voyez une tentative réussie de ssh à 2h du matin hier sous son nom d'utilisateur à partir de l'adresse IP 10.10.5.6 par exemple, il pourrait être dans votre intérêt de parler à Bob pour enquêter. Tentative de piratage possible par quelqu'un d'autre? Et peu de temps après, y a-t-il des tentatives de recherche de racine dans le journal d'audit du compte de bob?quand vous voyez répétitif
res=failed
etauid=0
etacct=root
puis que de quelqu'un qui essaie de ssh dans votre boîte dans le compte root, et lorsque vous modifiez/etc/hosts.deny
avec cette adresse IP pour SSHD.la source
Je sais que c'est vieux, mais j'ai écrit quelque chose pour surveiller les connexions / tentatives ssh réussies et échouées. Ainsi que les adresses IP interdites si vous utilisez sshguard. Le logiciel est écrit en Python. Il vous enverra un e-mail lorsque quelqu'un se connectera avec succès via ssh, si quelqu'un se trompe de mot de passe ssh ou si quelqu'un est banni en raison de nombreuses tentatives infructueuses. J'espère que cela aidera quelqu'un à l'avenir qui recherche ce problème et trouve mon code!
Pour le script python, j'ai écrit un script bash pour surveiller le processus. Il vérifie s'il est exécuté toutes les minutes via la tâche cron racine. S'il n'est pas en cours d'exécution, un autre processus est lancé. Ce qui est appelé par une tâche cron racine toutes les minutes.
la source
La meilleure chose que je connaisse pour la journalisation des commandes SSH est rootsh, cet outil permettant à l’administrateur d’obtenir chaque commande de chaque session avec un niveau de journalisation étendu.
J'ai écrit un script pour installer et configurer ROOTSH sous Ubuntu et CentOS / RHEL
télécharger à partir de github voici le lien
la source