Puncte:0

Creați o regulă NFQUEUE pentru a se potrivi cu o destinație de adrese locale în routerul meu raspberry pi

drapel pe

Lucrez la un proiect pentru a verifica sursa fiecărui pachet dacă destinația acestuia este unul dintre mai multe IP-uri din rețeaua LAN.Sunt interesat de IP-urile LAN, nu de WAN.

Am încercat să creez multe potriviri ca următoarele, dar nimic nu a funcționat.

iptables -t nat -d <lista de IP-uri> -A FORWARD -j NFQUEUE --queue-num 1

Am folosit următoarele reguli pentru a activa rutarea în raspberry pi meu

sudo iptables -F

sudo iptables -t nat -F

sudo iptables -t nat -A POSTROUTING -o $eth -j MASQUERADE

sudo iptables -A FORWARD -i $eth -o $wlan -m stat --state RELATED,STABLISHED -j ACCEPT

sudo iptables -A FORWARD -i $wlan -o $eth -j ACCEPT

Întrebarea este unde ar trebui să pun regula NFQUEUE?

-EDITAȚI | ×-

Mi s-a spus să activez proxy_arp, astfel încât orice solicitare locală să fie răspunsă de către routerul raspberry pi. Cred că trebuie să configurez tabelele de rutare în interiorul raspberry pi, nu-i așa?

Orice gand va fi apreciat.


Din păcate, Proxy ARP nu mi-a fost de ajutor pentru a obține controlul dorit asupra pachetelor ARP din rețea. Oricum. Am vazut o solutie (OpenVPN de la client la client) dar nu am implementat-o ​​încă, voi reveni la această întrebare pentru a posta dacă a funcționat sau nu.

drapel pl
Nu există un tabel „nat” în lanțul FORWARD. Comandați să aruncați o eroare? Ce încerci să obții, să trimiți pachetul la un program spațial utilizator?
zezo mehdawi avatar
drapel pe
Vă mulțumim pentru răspunsuri! mi-am actualizat intrebarea. va rog sa ma informati daca aveti nevoie de mai multe detalii
zezo mehdawi avatar
drapel pe
@BrahimGaabab Exact, încerc să trimit pachetele care se potrivesc cu o anumită destinație în spațiul utilizatorului.
zezo mehdawi avatar
drapel pe
@BrahimGaabab Care este regula iptables potrivită ar trebui să adaug la regulile anterioare?
Puncte:0
drapel pl

Atunci când se utilizează netfilter, trebuie să înțelegeți cum circulă un pachet prin nucleu, adică care lanţuri (similar cu un „punct de control rutier”) pe care îl vizitează și ce fel de prelucrare intră în fiecare lanț (la care se face referire cu termenul masa). Procesarea și lanțurile sunt afișate în această ilustrație, fiecare cutie are lantul in partea inferioara si tipul de prelucrare in cea superioara. (Trebuie să vă concentrați pe stratul de rețea.) În funcție de calea pachetului, este implicat doar un subset de lanțuri: pachetele care curg prin zmeura dvs. vor trece doar prin PRERUUTARE, REDIRECŢIONA și POSTOUTARE.

Având REDIRECŢIONA lanț, nu implică că direcționează pachetele. Trebuie să-l activați folosind comanda sysctl -w net.ipv4.ip_forward=1 (nepersistent).

Mai mult, așa cum se arată în figură, nu există nat prelucrare în REDIRECŢIONA numai lanț calandru și filtru, deci comanda

iptables -t nat -d <lista de IP-uri> -A FORWARD -j NFQUEUE --queue-num 1

este incorect.

Procesarea pachetelor pentru fiecare tabelă/lanț este de fapt condusă de o listă ordonată de reguli, tabelul, pe care o definiți cu iptables comanda. Fiecare regulă este alcătuită din criterii de potrivire și o acțiune care depinde de tipul tabelului (nfqueue este permis doar să intre filtru Mese, mascaradă în nat mese etc.)

Acum, venind la nfqueue. Folosim o astfel de acțiune atunci când procesarea ulterioară a unor pachete urmează să fie făcută în afara nucleului, printr-un program pe care îl creați singur (vezi un exemplu python aici, de exemplu, în sistemele de detectare a intruziunilor.Pachetele sunt puse într-o coadă (identificate cu un număr de 16 biți), procesate apoi returnate la nucleu pentru a-și relua fluxul la următorul tabel/lanț. (De asemenea, pot fi aruncate în spațiul utilizatorului). Într-un scenariu comun, de obicei veți dori să trimiteți numai pachete acceptate în spațiul utilizator (cele filtrate sunt ignorate la nivel de kernel). Trebuie să fii atent la nevoile tale exacte, care nu sunt încă clare. Voi încerca să dau un exemplu pentru a explica cum funcționează folosind scenariul dvs.:

sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t nat -A POSTROUTING -o $eth -j MASQUERADE
sudo iptables -A FORWARD -i $eth -o $wlan -m stare --state RELATED,ESTABLISHED -j NFQUEUE --queue-num 1
sudo iptables -A FORWARD -i $wlan -o $eth -j NFQUEUE --queue-num 1

Aceasta înseamnă că pachetele care circulă între $eth și $wlan va fi pus în aceeași coadă. Trebuie să vă asigurați că un program se ocupă de coada nr. 1 și gata de procesare a pachetelor.

zezo mehdawi avatar
drapel pe
Mulțumesc pentru explicația minunată, chiar mi-a lămurit mintea.Dar lucrul este că regulile sugerate de dvs. se potrivesc doar cu traficul care merge pe internet. Pe măsură ce construiesc un IDS, caut să potrivesc numai traficul intern. Testez dacă funcționează găzduind o pagină web de pe laptop și apoi încerc să o accesez de pe telefon. În acest scenariu, NFQUEUE ar trebui să detecteze acea solicitare!
zezo mehdawi avatar
drapel pe
iată propriul meu fișier jurnal după aplicarea regulilor sugerate. Asta poate clarifica rezultatele. IP conexiune: 157.240.196.60 MAC conexiune: e8:cd:2d:a9:01:f7 IP conexiune: 20.93.28.56 MAC conexiune: e8:cd:2d:a9:01:f7 IP conexiune: 172.64.154.168 MAC conexiune: e :cd:2d:a9:01:f7 â
drapel pl
Nu vă așteptați să vă dau seama de scenariul dvs. și de traficul care urmează să fie pus în coadă :-) Deci, laptopul și telefonul sunt pe partea rețelei WLAN în aceeași subrețea IP? Dacă acesta este cazul, probabil că trebuie să vă bazați pe driverul de interfață wlan pentru a captura și pune pachetul în coadă în spațiul utilizatorului, deoarece netfilter nu permite ținta `NFQUEUE` pentru cadrele thernet. Doriți să luați o decizie de redirecționare acolo, este doar pentru a copia cadre?
zezo mehdawi avatar
drapel pe
Da exact, dar scopul nu este copierea ei este acceptarea sau aruncarea pachetului. Nu vă faceți griji cu privire la programul meu userspace funcționează perfect. Trebuie doar să adaug regula iptables la coadă. Pot seta o sesiune de zoom pentru ca tu să arăți detaliile dacă vrei.
drapel pl
O modalitate este de a forța pachetele să treacă prin driverul IP al routerului, făcând ca routerul să facă publicitate MAC-ului interfeței wlan în LAN. Vă voi anunța dacă este disponibil în seara asta sau mâine dimineață.
zezo mehdawi avatar
drapel pe
Bine! Multumesc pentru amabilitate
zezo mehdawi avatar
drapel pe
Buna ziua domnule, sper sa ma contactati cat de curand ca sa-mi pot respecta data limita de proiect :(
drapel pl
@zezomehdawi, sunt disponibil acum. Pentru a forța pachetele să treacă prin router, trebuie să-i faceți publicitate MAC în WLAN-ul dumneavoastră. Puteți face acest lucru activând proxy ARP pe router.
zezo mehdawi avatar
drapel pe
De fapt, nu am instalat niciodată un proxy arp. Puteți să mă instruiți aici sau putem continua această sesiune de zoom. Este alegerea ta. https://iauvle.zoom.us/j/7036217353
drapel pl
Nu funcționează dintr-un motiv oarecare (aveți un cont de zoom corporativ?). Puteți configura un alt serviciu.
zezo mehdawi avatar
drapel pe
Mai am unul, lasă-mă doar o secundă
zezo mehdawi avatar
drapel pe
Acesta este contul meu personal: https://us04web.zoom.us/j/7559513161?pwd=bW9JVWJhdG95Mkd4RTFZM2hPQitEUT09

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.