J'ai plus ou moins suivi la configuration sur AWS:
Equilibreur de charge élastique avec 3 machines o 3 zones de disponibilité différentes. Mon groupe de sécurité autorise 0.0.0.0/0:80 car c'est mon application rails (nginx, unicorn).
Je me demandais s'il y avait un moyen de refuser l'accès à mon application à une adresse IP publique spécifique? J'ai lu la documentation AWS, mais comme les SG "refusent tout", il n'y a aucun moyen de refuser une seule adresse IP spécifique.
Des idées? iptables sur les 3 machines derrière l'équilibreur de charge?
Merci!
la source
En fait, ce n'est pas une bonne solution car l'IP distant (
$remote_addr
dans Nginx) proviendra de l'équilibreur de charge d'Amazon. Une interdiction qui entraînera l'interdiction de tout le trafic transféré.Vous devrez inspecter les paquets et trouver l'en-
X-Forwarded-For
tête HTTP , IPtables n'est pas compatible avec le protocole comme ça.Je me suis contenté de la solution suivante pour 2 adresses IP coquines dans Nginx
Présentation d'une variable
$client_ip
, juste pour que je puisse aussi tester cela localement, là où il n'y en a pas dehttp_x_forwarded_for
disponible ..Légèrement hors sujet mais postant pour plus de commodité, j'ai également ajouté cette adresse IP client à mes journaux d'accès:
Ce n'est pas joli, mais j'espère que ça aide
la source