Grand merci pour prendre ma question !
je comprends que je suis trop dans mon sujet et du coup j’en oubli d’être vraiment précis, je vais essayer de me corriger.
[quote=“PascalHambourg”]Je ne comprends pas. Que représente la double flèche notée “nat” ?
Pourquoi y a-t-il la même ip1:xx des deux côtés de PI ?[/quote]
Le NAT est fait par la LB vers trois ports:
- 2 vers le NAS (1 OpenVPN + 1 PPTP)
- 1 vers le PI (celui que j’ai voulu représenter avec ma double flèche) ip1:xx
Le PI n’a qu’un seul NIC et qu’une seule IP
[quote=“PascalHambourg”]1) Tu veux dire DNAT au lieu de FORWARD.
2) Ce n’est pas possible. Toutes les opérations de NAT appliquées à une connexion se décident lors du passage du premier paquet. On ne peut plus changer en cours de route sinon cela casserait la connexion. Or le premier paquet d’une connexion HTTP ne contient pas l’URL.
Une solution est de faire la redirection par un reverse proxy HTTP.[/quote]
Oui c’est bien là que j’ai mon problème, ce que je voudrais c’est:
Quand le PI (ip1:xx) reçoit monsite:xx/MOTCLE/??? il “FWD” ou “re NAT” la requette sur ip2:XX (du coup par le même NIC puisqu’il n’en a qu’un)
Quand le PI (ip1:xx) reçoit monsite:xx[/???/???/] sans MOTCLE bien placé alors il DROP
l’idée que j’ai est d’utiliser le rule set du script ci-dessous (il fonctionne pour le DROP je cherche à l’adapter pour “FWD” or “re-NAT”):
#!/bin/bash
création de notre chaîne w00t :
iptables -N w00t
redirige les paquets TCP sur notre chaîne :
iptables -A INPUT -p tcp -j w00t
recherche du premier SYN et création de la liste :
iptables -A w00t -m recent -p tcp --syn --dport 80 --set
recherche du paquet SYN,ACK et mise à jour la liste :
iptables -A w00t -m recent -p tcp --tcp-flags PSH,SYN,ACK SYN,ACK --sport 80 --update
recherche du paquet ACK et mise à jour la liste
iptables -A w00t -m recent -p tcp --tcp-flags PSH,SYN,ACK ACK --dport 80 --update
recherche de la signature de DFind dans le prenier PSH+ACK.
Si elle est présente, on DROP.
On supprime la liste pour ne pas filtrer les paquets suivants
iptables -A w00t -m recent -p tcp --tcp-flags PSH,ACK PSH,ACK --dport 80 --remove
-m string --to 70 --algo bm --string “GET /w00tw00t.at.ISC.SANS.” -j DROP
et c’est là que cale lamentablement 