--- categories: ['OpenBSD','Système','Sécurité'] date: 2020-08-27T03:04:57+02:00 description: "Se protéger des attaques par force brute sur le serveur SSH sous OpenBSD." draft: false include_toc: true show_comments: false tags: ['OpenBSD','SSHGuard','SSH'] title: "SSHGuard : se protéger des attaques par force brute sur sshd et autres (services) / OpenBSD" translationKey: 'openbsd-sshguard' --- ## Description **SSHGuard** protège les hôtes des attaques par force brute. Il supporte IPv6, gère des listes blanches et journalise l'authentification ; il s'interface avec les plus grands systèmes pare-feu, a un analyseur de journaux remarquablement intelligent, et est indépendant, rapide et léger puisqu'écrit en C. www : http://www.sshguard.net ## Installation **{{< inside2 l="sys/openbsd/pkg" t="Installez" a="installer" >}} le paquet `sshguard`**. ---- ## Documentation * {{< anchor "man 8 sshguard" "man-8-sshguard" >}} * `man 7 sshguard-setup` * `less /usr/local/share/doc/[[#pkg-readme|pkg-readmes]]/sshguard` * `less /usr/local/share/examples/sshguard/sshguard.conf.sample` * {{< anchor "pkg-readme" "pkg-readme" >}} ### man 8 sshguard #### Synopsis **sshguard** [**-hv**] [**-a** threshold] [**-b** threshold:blacklist_file] [**-i** pidfile] [**-p** blocktime] [**-s** detection_time] [**-w** address | whitelist_file] [file ...] #### Description **sshguard** protège les hôtes des attaques par force brute contre SSH et d'autres services. Il aggrége les journaux systèmes et bloque les récidives en utilisant un des nombreux backend pare-feu. **sshguard** peut surveiller les fichiers des journaux ou lire les messages depuis l'entrée standard. Les messages sont analysés ligne par ligne selon des patterns reconnus. Une attaque est détectée lorsque plusieurs patterns correspondent dans une intervalle de temps définie. Les attaquants sont bloqués temporairement mais peuvent aussi être bannis de manière semi-permanente en utilisant l'option blacklist. #### Options * **-a** __threshold__ (**default 30**)
Bloque les attaquants lorsque leur score d'attaque cumulée excède un __seuil__. La plupart des attaques ont un score de 10. * **-b** __threshold:blacklist_file__
Blackliste un attaquant lorsque son score excède le __seuil__. Les adresses blacklistées sont chargées et ajoutées dans un __fichier de blackliste__. * **-i** __pidfile__
Écrit le PID de **sshguard** vers le fichier __pidfile__. * **-p** __blocktime__ (**default 120**)
Bloque les attaquants selon un __temps de blocage__ en seconde après avoir atteint le __seuil__. Les blocages suivants sont incrémentés d'un facteur de 1.5.
**sshguard** débloque les attaques à intervalles aléatoires, ainsi les temps de blocages actuels seront plus longs. * **-s** __detection_time__ (**default 1800**)
Se souvenir de potentiels attaquants durant un __temp de détection__ en secondes avant de réinitialiser leur score. * [**-w** __address__ | __whitelist_file__]
Une liste blanche est une simple adresse, ou un bloc d'adresse. Cette option peut être utilisée plusieurs fois. Alternativement, il est possible de fournir un chemin absolu vers une fichier de liste blanche contenant des adresses. Voir la section {{< anchor "Liste Blanche" "liste-blanche" >}} * **-h** affiche l'information d'utilisation puis sort. * **-v** affiche l'information de version puis sort. #### Environnement * **SSHGUARD_DEBUG**
Permet d'activer la sortie verbeuse depuis sshg-blocker. #### Fichiers * **/etc/sshguard.conf**
Lire le fichier d'exemple de configuration dans `/usr/local/share/examples/sshguard/sshguard.conf.sample`. #### Liste Blanche Les adresses en liste blanche ne sont jamais bloquées. Les adresses peuvent être spécifiées depuis la ligne de commande ou être enregistrées dans un fichier. En ligne de commande, écrivez l'option **-w** une ou plusieurs fois avec une adresse IP, un bloc d'adresses CIDR, ou un nom d'hôte en argument. Les noms d'hôtes sont résolus une fois lors du démarrage. Si un nom d'hôte résoud de multiples adresses, elles sont toutes mises en liste blanches. Par exemple : ```sh sshguard -w 192.168.1.10 -w 192.168.0.0/24 -w friend.example.com -w 2001:0db8:85a3:0000:0000:8a2e:0370:7334 -w 2002:836b:4179::836b:0000/126 ``` Si l'argument donné à **-w** commence avec un '/' ou un '.', l'argument est traité en tant que chemin vers une fichier de liste blanche. Le fichier de liste blanche contient des commentaires *(des lignes commençant avec '#')*, des adresses, des blocs d'adresses, ou des noms d'hôtes, un par ligne. #### Voir aussi * sshguard-setup(7) --- 2.3, 9 Janvier 2017, SSHGUARD(8) --- ### pkg-readme Pour utiliser sshguard avec pf(4), ajouter quelque chose de similaire à ce qui suit dans votre fichier `/etc/pf.conf` : ```cfg table persist block in quick on egress proto tcp from \ to any port ssh label "ssh bruteforce" ``` --- ## Historique J'ai écrit historiquement cette documentation de manière collaborative sur le wiki de la communauté "OpenBSD Pour Tous". ---