HS: iptables interface de sortie par la m=c3=aame que l'entr=c3=a9e.
15 réponses
Jérémy Prego
Bonjour,
en ce Dimanche nocturne je me décide à poser ma question ici. En effet,
je fais de la redirection d'IP en OUTPUT et en PREROUTING avec iptables.
depuis la machine routeur et le réseau local derrière c'est parfait la
machine jeremy.domain.net passe bien par la connexion que j'ai demandé a
Iptables.
Le souci est quand de la machine jeremy.domain.net qui se trouve donc
sur internet je cherche à contacter le routeur par son interface
principale, il se passe un truc très embêtant, Iptables renvoie les
réponses par l'interface que j'ai choisi pour ma redirection de
l'OUTPUT. Du coup, ça ne peut pas fonctionner, forcément.
est-ce qu'une solution existe pour que si ça arrive par l'interface
wan0, ça reparte par la même interface et que ça ne passe pas par les
règle que j'ai mis pour l'output ?
pour rappel, un petit exemple de ce que je fais:
##routage alternatif
iptables -t mangle -N ROUTING-POLICY
iptables -t mangle -A OUTPUT -j ROUTING-POLICY
iptables -t mangle -A PREROUTING -j ROUTING-POLICY
iptables -t mangle -D ROUTING-POLICY -d jeremy.domain.net -j MARK
--set-mark 0x3
une règle que j'ai testé mais sans succès vu que j'avais plus de
redirection vers 0x3 sur le routeur lui même:
iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.tld ! -o wan0 -j
MARK --set-mark 0x3
j'ai testé ça qui ne fonctionne pas non plus: iptables -t mangle -D ROUTING-POLICY -d jeremy.domain.net -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1 iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -j CONNMARK --restore-markc
Je suppose que -D et --restore-markc sont des erreurs de copier-coller ?
oui
Qu'est-ce qui se passe exactement ?
ça ne sort pas du tout ... c'est pour ça que j'aimerai bien un peu d'aide sur les règles a appliquer vraiment pour comprendre parce que là je patauge vraiment. j'ai aucune idée de ce qu'est une bonne règle dans ce cas précis.
re, bon alors, voyant que ça ne fonctionnait pas j'ai décidé de partir sur une vm fraîche pour faire des tests et effectivement ça fonctionne ! du coup, merci beaucoup ! Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Jerem
Le 17/04/2019 à 07:27, Pascal Hambourg a écrit :
Le 16/04/2019 à 18:44, Jérémy Prego a écrit :
j'ai testé ça qui ne fonctionne pas non plus:
iptables -t mangle -D ROUTING-POLICY -d jeremy.domain.net -m conntrack
--ctstate NEW -j CONNMARK --set-mark 0x1
iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -j CONNMARK
--restore-markc
Je suppose que -D et --restore-markc sont des erreurs de copier-coller ?
oui
Qu'est-ce qui se passe exactement ?
ça ne sort pas du tout ... c'est pour ça que j'aimerai bien un peu
d'aide sur les règles a appliquer vraiment pour comprendre parce que là
je patauge vraiment. j'ai aucune idée de ce qu'est une bonne règle dans
ce cas précis.
re,
bon alors, voyant que ça ne fonctionnait pas j'ai décidé de partir sur
une vm fraîche pour faire des tests et effectivement ça fonctionne ! du
coup, merci beaucoup !
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au
lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense
pas qu'on puisse réduire ça en une ligne ?
j'ai testé ça qui ne fonctionne pas non plus: iptables -t mangle -D ROUTING-POLICY -d jeremy.domain.net -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1 iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -j CONNMARK --restore-markc
Je suppose que -D et --restore-markc sont des erreurs de copier-coller ?
oui
Qu'est-ce qui se passe exactement ?
ça ne sort pas du tout ... c'est pour ça que j'aimerai bien un peu d'aide sur les règles a appliquer vraiment pour comprendre parce que là je patauge vraiment. j'ai aucune idée de ce qu'est une bonne règle dans ce cas précis.
re, bon alors, voyant que ça ne fonctionnait pas j'ai décidé de partir sur une vm fraîche pour faire des tests et effectivement ça fonctionne ! du coup, merci beaucoup ! Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Jerem
Pascal Hambourg
Le 17/04/2019 à 18:14, Jérémy Prego a écrit :
Le 17/04/2019 à 07:27, Pascal Hambourg a écrit :
Le 16/04/2019 à 18:44, Jérémy Prego a écrit :
iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1 iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -j CONNMARK --restore-markc(...)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ? Combien ? La liste est fixe ou dynamique ? Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur. Tu peux utiliser ipset pour gérer une liste d'adresses.
Le 17/04/2019 à 18:14, Jérémy Prego a écrit :
Le 17/04/2019 à 07:27, Pascal Hambourg a écrit :
Le 16/04/2019 à 18:44, Jérémy Prego a écrit :
iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -m conntrack
--ctstate NEW -j CONNMARK --set-mark 0x1
iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -j CONNMARK
--restore-markc(...)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au
lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense
pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ? Combien ? La liste est fixe
ou dynamique ?
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
Tu peux utiliser ipset pour gérer une liste d'adresses.
iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1 iptables -t mangle -A ROUTING-POLICY -d jeremy.domain.net -j CONNMARK --restore-markc(...)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ? Combien ? La liste est fixe ou dynamique ? Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur. Tu peux utiliser ipset pour gérer une liste d'adresses.
Jérémy Prego
Le 17/04/2019 à 21:51, Pascal Hambourg a écrit :
)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine. en fait, je fais passer des services par des connexion différentes, mais il arrive que ces mêmes service doivent pouvoir contacter la connexion principal du routeur. ssh, http, dns ...
La liste est fixe ou dynamique ?
plutot fixe, il m'arrive parfois d'ajouter des adresses mais ça ne change pas souvent.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
???
Tu peux utiliser ipset pour gérer une liste d'adresses.
Merci, je vais regarder. Jerem
Le 17/04/2019 à 21:51, Pascal Hambourg a écrit :
)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au
lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense
pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine. en fait, je fais passer des services par des
connexion différentes, mais il arrive que ces mêmes service doivent
pouvoir contacter la connexion principal du routeur. ssh, http, dns ...
La liste est fixe ou dynamique ?
plutot fixe, il m'arrive parfois d'ajouter des adresses mais ça ne
change pas souvent.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
???
Tu peux utiliser ipset pour gérer une liste d'adresses.
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine. en fait, je fais passer des services par des connexion différentes, mais il arrive que ces mêmes service doivent pouvoir contacter la connexion principal du routeur. ssh, http, dns ...
La liste est fixe ou dynamique ?
plutot fixe, il m'arrive parfois d'ajouter des adresses mais ça ne change pas souvent.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
???
Tu peux utiliser ipset pour gérer une liste d'adresses.
Merci, je vais regarder. Jerem
Pascal Hambourg
Le 17/04/2019 à 22:07, Jérémy Prego a écrit :
Le 17/04/2019 à 21:51, Pascal Hambourg a écrit :
)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine.
Alors ipset est probablement plus efficace que des centaines de règles.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
???
iptables -t mangle -N ROUTING-POLICY iptables -t mangle -N ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse1 -j ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse2 -j ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse3 -j ROUTING-POLICY-2 ... iptables -t mangle -A ROUTING-POLICY-2 -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1 iptables -t mangle -A ROUTING-POLICY-2 -j CONNMARK --restore-mark
Le 17/04/2019 à 22:07, Jérémy Prego a écrit :
Le 17/04/2019 à 21:51, Pascal Hambourg a écrit :
)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au
lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense
pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine.
Alors ipset est probablement plus efficace que des centaines de règles.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine.
Alors ipset est probablement plus efficace que des centaines de règles.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
???
iptables -t mangle -N ROUTING-POLICY iptables -t mangle -N ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse1 -j ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse2 -j ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse3 -j ROUTING-POLICY-2 ... iptables -t mangle -A ROUTING-POLICY-2 -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1 iptables -t mangle -A ROUTING-POLICY-2 -j CONNMARK --restore-mark
Jérémy Prego
Le 17/04/2019 à 23:49, Pascal Hambourg a écrit :
Le 17/04/2019 à 22:07, Jérémy Prego a écrit :
Le 17/04/2019 à 21:51, Pascal Hambourg a écrit :
)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine.
Alors ipset est probablement plus efficace que des centaines de règles.
oui je suis en train de regarder, ça semble plus optimisé en effet :) et pas difficile a mettre en place.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
???
iptables -t mangle -N ROUTING-POLICY iptables -t mangle -N ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse1 -j ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse2 -j ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse3 -j ROUTING-POLICY-2 ... iptables -t mangle -A ROUTING-POLICY-2 -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1 iptables -t mangle -A ROUTING-POLICY-2 -j CONNMARK --restore-mark
merci beaucoup pour tout ! Jerem
Le 17/04/2019 à 23:49, Pascal Hambourg a écrit :
Le 17/04/2019 à 22:07, Jérémy Prego a écrit :
Le 17/04/2019 à 21:51, Pascal Hambourg a écrit :
)
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au
lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense
pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine.
Alors ipset est probablement plus efficace que des centaines de règles.
oui je suis en train de regarder, ça semble plus optimisé en effet :) et
pas difficile a mettre en place.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
Par contre, l'inconvénient est que du coup j'ai 2 lignes par host au lieu d'une seul du coup ça va me doubler toute les rules. Je ne pense pas qu'on puisse réduire ça en une ligne ?
Comment ça, par host ? Il y en a d'autres ?
oui, quelques uns.
Combien ?
plusieurs centaine.
Alors ipset est probablement plus efficace que des centaines de règles.
oui je suis en train de regarder, ça semble plus optimisé en effet :) et pas difficile a mettre en place.
Tu peux factoriser l'adresse grâce à une autre chaîne utilisateur.
???
iptables -t mangle -N ROUTING-POLICY iptables -t mangle -N ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse1 -j ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse2 -j ROUTING-POLICY-2 iptables -t mangle -A ROUTING-POLICY -d adresse3 -j ROUTING-POLICY-2 ... iptables -t mangle -A ROUTING-POLICY-2 -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1 iptables -t mangle -A ROUTING-POLICY-2 -j CONNMARK --restore-mark