3 votes

usurpation/changement d'adresse IP pour les tests sur la machine locale

J'essaie de limiter le trafic vers mon site Web de sorte que les personnes qui tentent d'extraire des quantités massives de données soient bloquées après un certain temps. Je suis censé faire cela en me basant sur les adresses IP des requêtes entrantes. Je pense avoir écrit la fonctionnalité de limitation d'IP, mais je ne sais pas comment la tester. Je dois pouvoir changer mon adresse IP plusieurs fois, pour simuler un trafic valide. J'ai également besoin de tester >20 IP différentes, donc une solution de proxy pour chacune d'entre elles ne fonctionnera pas pour moi.

Je teste le code sur ma machine locale (sous Ubuntu) afin de pouvoir modifier les paramètres de mon serveur (Apache) si nécessaire pour ce test.

Je suis derrière un réseau d'entreprise et je ne peux donc pas modifier les paramètres MAC/ARP pour me voir "réattribuer" une nouvelle IP. J'espérais une sorte de changement d'adresse IP sur l'hôte local, afin de pouvoir tirer parti du fait que le serveur et le client sont la même machine.

De plus, j'essayais d'éviter de modifier le code avant qu'il ne soit déployé sur les serveurs de production, mais c'est peut-être la meilleure façon de procéder.

Comment puis-je le mettre en place ?

7voto

MemphiS Points 46

Ce que vous pourriez faire, c'est qu'au lieu de vérifier l'IP, vous feriez quelque chose comme ça :

$ip = '1337.1337.1337.1337';

Au lieu de :

$ip = $_SERVER['REMOTE_ADDR']

Et ensuite, faites votre code de vérification d'IP.

Ainsi, lorsque vous avez terminé, le code de votre variable $ip peut ressembler à ceci :

//$ip = '1337.1337.1337.1337';
$ip = $_SERVER['REMOTE_ADDR']

Vous pouvez donc facilement activer et désactiver le "bouton de débogage".

EDITAR:

Ou même rendre l'IP dynamique :

$ips = Array('192.168.1.220', '120.843.592.86', '256.865.463.563');
$ip = $ips[rand(1,count($ips)-1)];

1voto

Vous pouvez facilement le faire en exécutant la commande suivante sous linux :

ifconfig eth0:0 127.0.0.2
ifconfig eth0:1 127.0.0.3
etc... (création de fausses interfaces locales)

Vous devrez peut-être configurer apache pour qu'il écoute sur ces IP si vous n'écoutez pas sur 0.0.0.0 (toutes les interfaces), puis vous pourrez accéder directement à ces IP.

Si vous voulez utiliser d'autres ips, vous pouvez facilement le faire aussi, mais n'oubliez pas de les supprimer une fois vos tests terminés.

Cela ne fonctionnera que de votre machine locale, vers votre machine locale.

0voto

Patrick Gryciuk Points 634

Il existe de nombreuses façons de tester cela. Le moyen le plus simple serait de créer une liste d'entrées ARP où les adresses IP que vous usurpez pointent vers l'adresse MAC du serveur. Vous pouvez alors écrire une application simple qui définit l'adresse src de chacune des adresses IP usurpées, vous connecter et envoyer n'importe quelle requête HTTP. Le serveur devrait répondre sans problème.

0voto

gnomed Points 1923

Je ne sais pas exactement si c'est ce que vous cherchez, mais j'ai dû usurper mon adresse MAC afin d'obtenir une nouvelle IP pour contourner un quota de téléchargement dans mon université. Changer le MAC a permis d'obtenir une nouvelle IP. Il y a un programme dans les dépôts standard d'Ubuntu appelé "macchanger". Il suffit de l'exécuter avec la bonne option ("-r" pour aléatoire) et de spécifier le périphérique, comme suit.

sudo macchanger -r eth0

Vous pouvez le faire en cliquant avec le bouton droit de la souris sur l'icône de réseau et en décochant la case "activer le réseau".

0voto

Trey Points 4170

Vous devez envisager de le faire au niveau du pare-feu (si ce n'est pas le pare-feu de la frontière de la corporation, mais un pare-feu logiciel sur votre hôte). Il existe de nombreuses situations dans lesquelles un hôte abusif peut encore mettre hors service ou affecter les performances de votre site si vous ne le limitez qu'au niveau de l'application. Ils consomment toujours des sockets et des threads de travail du serveur web même si vous finissez par les rejeter. Il se peut même qu'un code ait une certaine dépense avant la vérification de l'IP. Tout dépend vraiment de la légèreté de votre application, mais une chose est sûre, un pare-feu, qu'il soit matériel ou logiciel, peut bloquer les clients indisciplinés bien plus efficacement que votre application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X