Puncte:0

iptables NAT REDIRECT

drapel pe

Am un server care primește trafic syslog. Multe dintre dispozitivele mele pot trimite numai la portul implicit udp/514. Serverul meu syslog nu poate rula pe porturile <1024 și rulează pe 5000. Am o redirecționare de PREROUTING nat pe sistem și funcționează grozav.

Am câteva controlere wireless Aruba pe care vreau să le direcționez către un alt port. Încerc să redirecționez pachetele cu adresa sursă 10.5.5.0/24 către portul 5008. Aici este configurația completă.

*calandru
:ACCEPTAREA PRE-ROUTARE [53851:21198923]
:INPUT ACCEPT [53851:21198923]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [1227:8988526]
: POSTROUTING ACCEPT [1227:8988526]
COMMIT
# Finalizat joi, 30 septembrie 14:52:43 2021
# Generat de iptables-save v1.8.4 pe joi, 30 septembrie 14:52:43 2021
*nat
:ACCEPTAREA PRE-ROUTARE [0:0]
:INPUT ACCEPT [0:0]
: POSTROUTING ACCEPT [0:0]
: ACCEPT IEȘIRE [0:0]
-A PREROUTING -s 10.5.5.0/24 -p udp -m udp --dport 514 -j REDIRECT --la-porturi 5008
-A PREROUTING -p udp -m udp --dport 514 -j REDIRECT --la-porturi 5000
COMMIT
# Finalizat joi, 30 septembrie 14:52:43 2021
# Generat de iptables-save v1.8.4 pe joi, 30 septembrie 14:52:43 2021
*filtru
:INPUT ACCEPT [53852:21199096]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [1234:8990186]
-A INTRARE -s 10.0.0.0/8 -p udp -m udp --dport 514 -j ACCEPT
COMMIT

Redirecționarea către udp/5000 funcționează excelent, dar Tot este redirecționat la 5000. Traficul Aruba de la 10.5.5.0/24 nu reușește să fie împins la udp/5008.

Daca dau comanda: iptables -t nat -L -n -v --line-number . Confirmă că zero octeți lovesc linia 1 și totul lovește linia 2.

Cred că ordinea este importantă și linia mai specifică ar trebui să fie înaintea liniei generice (după cum se arată mai sus). Am încercat să le inversez și nu a ajutat.

Syslog pe UDP este unidirecțional și fără stat, așa că ați crede că acesta ar fi cel mai ușor NAT din lume.

A facut cineva astfel de configuratii? Toate acestea sunt în cutie și încerc doar să separ mesajul syslog Aruba primit de toate celelalte mesaje ale mele.

Mulțumiri!

drapel it
Probabil că trebuie să eliminați regulile conntrack din kernel, astfel încât acestea să fie recreate din noile iptables pe care le-ați adăugat. Dacă traficul syslog este consecvent (ca în pachetele care vin la fiecare 30 de secunde sau ceva, care este TTL implicit pentru intrările conntrack înainte de expirare (reglabil printr-o setare a nucleului)), intrările mai vechi conntrack vor rămâne active și astfel traficul va continua să lovească vechiul port. Consultați https://serverfault.com/questions/367626/delete-specific-conntrack-entries pentru un exemplu rapid de utilizare a conntrack.
drapel pe
Sistemul meu nu are conttrack. Ceea ce am făcut a fost ```service iptables restart```. Asta șterge contoarele. Chiar acum presupun că asta șterge și tabelul de conexiuni. Tot nu merge. Nu există accesări pentru primul element rând. Serverul syslog încă nu vede niciun pachet care sosește pe udp/5008.
drapel fr
Puteți verifica cu instrumentul de capturare a pachetelor (cum ar fi tcpdump sau tshark) că într-adevăr primiți trafic de la rețeaua 10.5.5.0/24 la portul UDP 514? Adresa DESTINATIE este corecta? BTW, pentru ce este regula INPUT? Este de prisos.
drapel pe
@Tomek Am folosit „tcpdump udp -nnX port 514 and net 10.5.5.0/24” și da, primesc o mulțime de pachete syslog. Regula INPUT este acolo pentru că nu mi-am dat seama că condiția implicită pentru a trece tot traficul era pe loc și încercam orice ca să funcționeze. Vă rugăm să fiți amabili și să nu uitați, sunt destul de nou în iptables. Mulțumiri!
drapel it
„Presupun că asta șterge și tabelul de conexiuni” - nu presupuneți nimic. Aceste instrumente interacționează cu diferite subsisteme ale nucleului. Vă rugăm să instalați instrumentul conntrack și să rulați `conntrack -L` pentru a vedea sesiunile NAT care sunt urmărite în prezent. Folosiți `conntrack -F` pentru a spăla complet masa. Dacă acest lucru nu este posibil, trimiteți sistemul pentru o repornire.
drapel pe
Pentru dragostea lui Pete. Asta a făcut-o. `conntrack -L` a confirmat problema. `conntrack -F` a rezolvat problema. Făceam această presupunere din cauza cât de prost ar fi că ar fi nevoie de un pas separat. Linux vrea să distrugă viețile oamenilor? :-) Vă mulţumesc pentru ajutor!
Puncte:0
drapel za

Redirecționați portul 514 la 5000 și faceți-l să funcționeze pe mașina locală

Dacă creați regula iptables pe serverul dvs. syslog, utilizați comanda de mai jos:

iptables -t nat -A OUTPUT -o lo -p tcp --dport 514 -j REDIRECT --to-port 5000

sau

iptables -A PREROUTING -t nat -i eth0<Interfață-intrare> -p tcp --dport 514 -j REDIRECT --la-port 5000

redirecționează o conexiune de intrare către o altă adresă IP pe un anumit port

Dacă încercați să faceți redirecționarea portului către un alt IP și serverul dvs. (eu l-am numit firewall), care primește UDP/514 este în spatele scenariului de client și server Syslog. github-ul meu, trebuie să faci redirecționare porturi iptables cu setp arbore:

exemplu de scenariu simplu:

 | client:10.5.5.0/24 | --> | 10.5.5.1:enp0s8 firewall enp0s3:192.168.2.1 | --> | 192.168.2.2:enp0s3 Syslog |

1- Activați redirecționarea IP

sudo sysctl -w net.ipv4.ip_forward=1

2- PRERUTARE pentru traficul de intrare către firewall

sudo iptables -t nat -A PREROUTING -d 10.5.5.1 -i enp0s8 -p tcp --dport 514 -j DNAT --to-destination 192.168.2.2:5000 

3- POSTROUTING pentru lăsarea traficului către serverul Syslog

sudo iptables -t nat -A POSTROUTING -o enp0s3 -p tcp --dport 514 -d 192.168.2.2 -j SNAT --to-source 192.168.2.1

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.