web-dev-qa-db-fra.com

Comment puis-je transférer depuis un port basé sur l'IP source?

J'ai deux sources Syslog qui arrivent sur le port 514 et je veux les transférer vers deux ports différents en fonction de l'IP source (pour un serveur Graylog).

Je suis en mesure de tout transférer sur ce port vers un autre port local.

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp --dport 514 -j REDIRECT --to-port 1514
COMMIT

Mais si j'essaie de filtrer en fonction de la source IP, rien ne semble se produire, tout continue à aller sur le port 1514.

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp -s $some_ip --dport 514 -j REDIRECT --to-port 1513
-A PREROUTING -p udp -s $some_ip --dport 514 -j REDIRECT --to-port 1514
COMMIT

Toute aide serait heureusement appréciée, car je suis sûr que je dois rater quelque chose de très évident.

3
Spencer French

Assurez-vous de mettre la règle dans le bon tableau et la bonne chaîne. Je me battais avec ce même scénario hier avec iptables. Essayez de faire une capture de paquet pour vous assurer que les paquets entrent comme vous le croyez avec tcpdump "tcpdump -s0 -w port 514". Vous pouvez également configurer la journalisation des paquets par iptables pour vérifier la chaîne utilisée par AMD. Inspectez les règles en cours et les arguments iptables en ligne de commande avec "iptables -nL" et "iptables -S"

https://commons.m.wikimedia.org/wiki/File:Netfilter-packet-flow.svg

2
Kyle H