%
Puffy image/svg+xml Puffy 2019-06-14 Stéphane HUC OpenBSD Team Inkscape Puffy OpenBSD https://www.openbsd.org/art4.html English "Puffy", it's a symbol of OpenBSD

sshlockout : protéger le serveur SSH, sous OpenBSD

Comment protéger le serveur SSH des abus de connexions, sous OpenBSD, avec l'outil sshlockout

Détails relatifs à l'article

Article publié, le
et modifié le
2 minutes de lecture

Cet article contient 281 mots.

Identifiant de l'article : tag:doc.huc.fr.eu.org,2022-04-03:/fr/sys/openbsd/sshlockout#ecc46cda142041fad2e6e6ab6d80f6d374ebc17fa77aea64c1050804111cc468


Source brute de l'article :
Commit version : 9bf3d7b


Cet article est aussi disponible sur le protocole Gemini :
gemini://doc.huc.fr.eu.org/fr/sys/openbsd/sshlockout.gmi


Description

sshlockout est un petit outil logiciel bien pratique pour surveiller les connexions sur le service SSH. Il gardera une trace des tentatives de connexions par des utilisateurs inconnus aussi bien que des erreurs d’authentification.

Au bout de 5 tentatives sur une période d’une heure, une entrée permanente est ajoutée à la table associée aux adresses IP par pf(4).

En deux, trois minutes d’installation et de configuration, voici un système de surveillance, géré avec le parefeu, efficace et fonctionnel !

Installation

Installez le paquet sshlockout.

Configuration

Packet-Filter

Il faut ajouter/modifier vos règles du parefeu Packet-Filter :

  1. une table persistante, nommée lockout, telle que :
    table <lockout> persist
  2. puis l’équivalent de cette règle bloquante :
    block in quick on egress proto tcp from <lockout> to port ssh

/etc/syslog.conf

Il est nécessaire de modifier le fichier de configuration /etc/syslog.conf, en ajoutant la déclaration suivante :

auth.info;authpriv.info | exec /usr/bin/doas -n /usr/local/sbin/sshlockout -pf "lockout"

cron

Pour finir, il faut ajouter une tâche cron, pour libérer les adresses IP de la table lockout, dont l’enregistrement est vieux de plus d’un jour.

Le manpage officiel informe de mettre dans la cron-table de root : 3 3 * * * pfctl -t lockout -T expire 86400


Personnellement, je préfère ajouter à mon fichier daily.local, l’écriture suivante :

## sshlockout: expire IP
pfctl -t lockout -T expire 84600
printf '%s\n' "=> Nb IPs into lockout table:"
pfctl -t lockout -T show | wc -l

ce qui libére les adresses IP enregistrées depuis une journée, et me restitue dans le mail quotidien le nombre d’IP enregistrées dans la table.


Voilà !

Documentation



Enjoy-ID!
Enjoy-IT!