Chaque jour, un grand nombre de robots visitent tous les sites sur Internet, en commençant par ceux qui sont importants pour nous (par exemple, yandex, google, etc.) et en terminant par ceux potentiellement dangereux. Après avoir analysé le journal du serveur Web, vous verrez des événements suspects. À l'heure actuelle, de plus en plus de types de hacks sont développés qui utilisent l'ingénierie sociale (pirater non pas le logiciel lui-même, mais trouver des failles) laissées par le développeur lui-même, l'administrateur. Aujourd'hui, nous vous expliquerons comment bloquer les robots qui recherchent des sauvegardes et installent phpmyadmin. Pour bloquer de tels bots, nous utiliserons Fail2Ban, un filtre et une règle (jail). Les travaux ont été effectués sur Centos 7.
Sauvegarde des robots de recherche
Le bot recherche les sauvegardes laissées sous la forme d'une archive, triant de la racine à divers dossiers typiques. S'il est trouvé, il transférera très probablement les informations à son propriétaire, mais les copies contiennent des fichiers et une base de données qui vous permettent d'accéder au site. Ces copies sont souvent oubliées pour être supprimées après le transfert du site d'un serveur ou d'un hébergement à un autre.
Ajoutons un filtre
backup-scan.local
[Definition]
failregex = ^ - - .*./(backup.tgz|backup.zip|backup.tar) HTTP/1.0" 404|301 ignoreregex =
Ajoutons une règle:
[backup-scan]
enabled = true
filter = backup-scan
action = iptables-multiport[chain="INPUT", name="backup-scan", port="http,https", protocol="tcp", blocktype="REJECT --reject-with icmp-port-unreachable"]
sendmail[dest="admin-mail@domain.tld", sender="fail2ban", sendername="Fail2Ban", name="backup-scan"]
logpath = /var/www/vhosts/system/*/logs/accesslog
maxretry = 5
Le nombre de tentatives peut être réduit, ce qui augmentera considérablement la sensibilité et réduira la charge sur le service Web. Nous recommandons aux propriétaires de sites de supprimer toutes les sauvegardes archivées de leurs serveurs. Les robots recherchent également des archives avec un nom de domaine, etc., nous avons donné ici les règles de base.
robots de recherche phpMyAdmin, rootkits, portes dérobées
Ces bots recherchent phpMyAdmin installé afin de rechercher plus avant les vulnérabilités et les attaques de piratage et de devinette de mot de passe. L'outil de base de données phpMyAdmin est très populaire et est périodiquement piraté, en fonction de la version installée, des paramètres.
Ajoutons un filtre:
phpmyadmin.local
[Definition]
failregex = ^ - - ../(phpmyadm1n|mysqladmin)/index.php
^ - - ../(pma.php|pmd_online.php|db_pma.php) HTTP/1.0" (404|301|200)
ignoreregex =
Dans le filtre, nous avons spécifié 2 conditions à la fois, la seconde bloquera les bots qui recherchent des scripts d'accès hébergés laissés par des attaquants sur des sites précédemment piratés. (handkits, portes dérobées)
Ajoutons une règle:
[phpmyadmin-scan]
enabled = true
filter = phpmyadmin
action = iptables-multiport[chain="INPUT", name="phpmyadmin", port="http,https", protocol="tcp", blocktype="REJECT --reject-with icmp-port-unreachable"]
sendmail[dest="admin-mail@domain.tld", sender="fail2ban", sendername="Fail2Ban", name="phpmyadmin-scan"]
logpath = /var/www/vhosts/system/*/logs/accesslog
maxretry = 5
N'oubliez pas de changer l'e-mail dans les paramètres pour le vôtre, il recevra des notifications de blocage indiquant la règle, l'adresse IP. Le chemin d'accès au fichier journal doit également être vérifié et spécifié. Dans notre cas, plusieurs fichiers journaux sont traités situés au même niveau d'imbrication, mais dans des dossiers différents. Si nécessaire, vous pouvez spécifier plusieurs fichiers journaux. Nous vous recommandons de supprimer les autorisations de lecture après avoir travaillé avec phpMyAdmin afin qu'il soit indisponible, avec une utilisation fréquente, vous pouvez ajouter une protection au niveau du serveur Web en utilisant des dossiers protégés par mot de passe dans htaccass et htpasswd.