Archives de l’auteur : Thierry ESCOLA

filtre fail2ban pour DokuWiki

Comme vous le savez, dokuwiki est le wiki par excellence. Il permet de créer des wiki pour les geeks que nous sommes. Il est léger, réactif, et il est de bon goût pour tout geek d’en posséder un.

Le revers de la médaille étant que sa notoriété fait qu’il devient la cible d’attaques en tout genre.

On trouve dans le fichier /var/log/apache2/access.log de nombreuses lignes telles que

149.62.41.158 – – [14/Jan/2023:18:52:09 +0100] “GET /titiwiki/doku.php?do=register HTTP/1.1” 200 8668 “https://escola.fr/titiwiki/doku.php?id=%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%BB%D1%81%D1%8F-%D1%80%D1%82%D1%83%D1%82%D0%BD%D1%8B%D0%B9-%D0%B3%D1%80%D0%B0%D0%B4%D1%83%D1%81%D0%BD%D0%B8%D0%BA_-%D1%80%D0%B5%D1%88%D0%B8%D0%BB%D0%B0-%D1%81%D0%BE&do=login&sectok=” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Vivaldi/5.3.2679.68”

C’est un peu obscure, je n’ai d’ailleurs pas tenté de creuser le pourquoi de cette ligne de log, mais le résultat de ce type d’attaque a été que mon serveur a servi de passerelle de spam pendant quelques jours.

Comme j’ai déjà un fail2ban d’installé sur ma machine, pour bannir les tentatives d’accès à SSH et à l’administration de WordPress, j’ai décidé de créer un filtre supplémentaire pour bannir les machines qui ont tenté de se logguer sur mon DokuWiki de cette manière.

Tout d’abord on crée le jail

#nano /etc/fail2ban/jail.d/dokuwiki.conf
[dokuwiki]
# To use more aggressive modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
enabled = true
mode = aggressive
port = http,https
filter = dokuwiki
action = iptables-multiport[name=DOKUWIKI, port="http,https", protocol=tcp]
logpath = /var/log/apache2/access.log
maxretry = 1
bantime = 4w

il y a ici un réglage simplifié qui fonctionne, on peut le tweaker bien plus, mais je vous laisse le loisir de consulter la documentation.

Pour résumer : on vérifie le fichier de log d’Apache, on bannit à 1 seule tentative, pendant 4 semaines, en utilisant le filtre dokuwiki qu’il faut créer

#nano /etc/fail2ban/filters.d/dokuwiki.conf
[Definition]
failregex = ^<HOST> .*(GET|POST) .*/titiwiki/doku\.php.*(%%.*){10,}.*
ignoreregex =

La seule chose étant une expression régulière, alias  Regex, qui stipule qu’on détecte un GET ou un POST suivi d’un /titiwiki/doku.php puis un minimum de 10 fois le caractère % entrecoupés d’autres caractères.

une fois ces fichiers créés, on peut faire le test

#fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/dokuwiki.conf 
Results
=======
Failregex: 470 total
|- #) [# of hits] regular expression
| 1) [470] ^<HOST> .*(GET|POST) .*/titiwiki/doku\.php.*(%.*){10,}.*

On voit bien qu’il à a eu 470 correspondances entre la regex et le fichier access d’Apache.

#fail2ban reload dokuwiki
va charger ce filtre dans dokuwiki
#fail2ban status dokuwiki
au bout de quelques heures va donner

Status for the jail: dokuwiki
|- Filter
| |- Currently failed: 0
| |- Total failed: 59
| `- File list: /var/log/apache2/access.log
`- Actions
|- Currently banned: 587
|- Total banned: 587
`- Banned IP list: 103.41.106.199 135.181.74.243 139.59.186.196

et je vous fais grâce des 587 IP qui ont été bannies

FPGA

qu’est qu’un FPGA : on a la description sur Wikipédia.
Pour appréhender la programmation FPGA, j’ai trouvé une carte qui correspond à ce que je désirais pour de la découverte.
Cette carte est une Tang nano 4K


équipée d’une prise USB-C et d’une prise HDMI et de nombreuses entrées/sorties.
L’USB permet de programmer et de déboguer sans câble spécifique. La prise HDMI est connecté au FPGA, qui une fois correctement programmé va être une sortie vidéo.
J’ai décidé de travailler sur une machine Windows.
En tout premier, on installe l’IDE qu’on trouve sur sur le site de GOWIN.
On prend la version éducation qui ne demande pas de licence.
Une fois l’IDE installé, on trouve dans le dossier d’installation, un dossier « programmer », ce dossier contient les logiciels de programmation et de debug, mais qui fonctionnent avec les câbles spécifiques de GOWIN, et on doit donc télécharger le programmer de chez Tang.
on le décompresse et on copie le dossier programmer vers le dossier d’installation de Gowin IDE afin de remplacer le dossier programmer d’origine. Dans ce dossier, il y a un dossier driver, on installe les drivers qui s’y trouvent.
Pour le premier test, j’ai utilisé un tutoriel d’un brésilien.
les premiers tests étant concluants, l’apprentissage du langage Verilog est la prochaine étape.