Commencez par essayer ceci sur une machine à laquelle vous avez un accès physique.
Tables IP
Premièrement, trouvons les règles des tables IP pour bloquer une adresse IP. Pour des instructions détaillées, consultez ce guide. Supposons toutes les connexions entrantes à partir d’une adresse IP donnée:
iptables -A INPUT -s A.B.C.D -j DROP
Après cela, redémarrez iptables comme d'habitude. Essayez cette commande pour vérifier si cela fonctionne bien pour vous, familiarisez-vous avec la syntaxe, puis continuez.
Script Bash
Créons un script Bash pour bloquer une adresse IP. Cela ressemblerait à quelque chose comme ceci (avertissement: vous devrez peut-être jouer avec les permissions de l'utilisateur et sudo pour que cela fonctionne). Créez un nouveau fichier, par exemple blockip.sh.
#! /usr/bin/env bash
iptables -A INPUT -s $1 -d DROP
<other stuff you want to do when you block an IP>
<note: the IP address is in variable $1>
Exécuter chmod +x blockip.sh
pour rendre le script exécutable. Maintenant, vous pouvez le lancer en tant que /path/to/file/blockip.sh 1.2.3.4
.
Sudo Permissions
Si votre script doit disposer d'autorisations d'utilisateur root, vous devez configurer sudo pour vous fournir un accès sans mot de passe. En vous référant à cette question de débordement de pile , exécutez sudo visudo
et ajoutez la ligne suivante:
nobody ALL = NOPASSWD: /your/script
Enregistrez le fichier et quittez. En guise d'avertissement de sécurité, assurez-vous que vous seul pouvez modifier le fichier de script. Sinon, une personne peut potentiellement exécuter du code préjudiciable en tant qu'utilisateur root en modifiant le script.
Code PHP
Exécutez ce petit bijou de code chaque fois que vous souhaitez bloquer quelqu'un.
exec("sudo /path/to/file/blockip.sh ".$_SERVER['REMOTE_ADDR']);
Conclusion
Commencez par tester ce code sur une machine à laquelle vous avez un accès physique. Sachez également que plusieurs utilisateurs situés derrière un réseau local partageraient la même adresse IP externe et que le blocage de l'un d'eux entraînerait le blocage de tous. Faites attention. Upvote si la réponse vous a aidé.