Je veux interdire les IP qui demandent certaines pages, par exemple, example.com/weird.php
et celles qui envoient une POST
demande à example.com/weirder.php
.
J'ai beaucoup cherché et appris plusieurs choses, iptables
mais il semble que certaines soient des instructions pour CentOS. Je crains aussi d'être en lock-out. Je cherche donc une réponse un peu détaillée et sûre.
J'utilise AWS EC2, Ubuntu et nginx.
Réponses:
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:
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.
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: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.
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é.
la source