Puncte:1

iptables - cum se utilizează mai multe surse de prerouting pentru a forța traficul dns printr-un anumit IP?

drapel br

Știu că această întrebare a fost pusă din punct de vedere istoric, dar răspunsurile pe care nu le găsesc încă nu sunt prea utile în acest caz de utilizare de nișă.

În prezent, am un router care rulează DD-WRT pe 192.168.0.1, un router conectat la precedentul cu IP 192.168.0.2 care rulează ca client VPN și un Raspberry Pi configurat pentru a rula https://pi-hole.net DNS filtrare pe 192.168.0.21.

În cele din urmă, scopul meu aici este doar să blochez toate solicitările DNS din rețeaua mea de la orice dispozitiv către orice server DNS, cu excepția celui de-al doilea router și pihole, și să permit doar acelor două dispozitive să facă cereri DNS.


Pe routerul meu, regulile mele actuale pentru firewall(iptables) sunt următoarele:

#####Păstrați rețeaua pe pi-hole
iptables --table nat --insert PREROUTING --in-interface br0 --protocol tcp --source ! 192.168.0.2,192.168.0.21 --destination-port 53 --jump DNAT --to-destination 192.168.0.21:53
iptables --table nat --insert PREROUTING --in-interface br0 --protocol udp --source ! 192.168.0.2,192.168.0.21 --destination-port 53 --jump DNAT --to-destination 192.168.0.21:53
#####Perforați gaura DNS pentru pi-hole
iptables --table nat --insert PREROUTING --in-interface br0 --protocol tcp --source 192.168.0.2,192.168.0.21 --destination-port 53 --jump ACCEPT
iptables --table nat --insert PREROUTING --in-interface br0 --protocol udp --source 192.168.0.2,192.168.0.21 --destination-port 53 --jump ACCEPT

Acum, tocmai am presupus că toate acestea funcționează bine și bine. Cu toate acestea, nu am intrat niciodată și încercat pentru a testa regulile. După ce am încercat să execut comenzile, constat că regulile 3 și 4 funcționează bine. Cu toate acestea, regulile 1 și 2 nu:

root@ddwrt:~# iptables --table nat --insert PREROUTING --in-interface br0 --protocol tcp --source ! 192.168.0.2,192.168.0.21 --destination-port 53 --jump ACCEPT
Argument prost `192.168.0.2,192.168.0.21'

niste cercetare m-a făcut să mă gândesc că poate ! ar trebui să meargă înaintea --sursă, așa că am încercat asta, ceea ce ar fi putut funcționa, cu excepția că mai multe adrese IP sursă sunt interzise de versiunea mea de iptables:

root@ddwrt:~# iptables --table nat --insert PREROUTING --in-interface br0 --protocol tcp ! --source 192.168.0.2,192.168.0.21 --destination-port 53 --jump ACCEPT
iptables v1.8.5 (moștenire): ! nu este permis cu mai multe adrese IP sursă sau destinație

Mai mult cercetare m-a determinat să încerc să folosesc ipset pentru a rezolva problema:

root@ddwrt:~# ipset -N piholeAndVpnPassthrough iphash
root@ddwrt:~# ipset -A piholeAndVpnPassthrough 192.168.0.2
root@ddwrt:~# ipset -A piholeAndVpnPassthrough 192.168.0.21

Partea aia a mers bine. Cu toate acestea, neavând niciodată folosit ipset, nu am reușit să-l fac să funcționeze în niciun fel pe care l-am încercat:

root@ddwrt:~# iptables --table nat --insert PREROUTING --in-interface br0 --protocol tcp ! --source --match-set "piholeAndVpnPasshthrough" --destination-port 53 --jump DNAT --to-destination 192.168.0.21:53
Argument prost `piholeAndVpnPasshthrough'
Încercați „iptables -h” sau „iptables --help” pentru mai multe informații.
root@ddwrt:~# iptables --table nat --insert PREROUTING --in-interface br0 --protocol tcp ! --source -m set --match-set piholeAndVpnPasshthrough --destination-port 53 --jump DNAT --to-destination 192.168.0.21:53
„Set” de argumente proaste
Încercați „iptables -h” sau „iptables --help” pentru mai multe informații.
root@ddwrt:~# iptables --table nat --insert PREROUTING --in-interface br0 --protocol tcp -m set --match-set piholeAndVpnPasshthrough ! --source --destination-port 53 --jump DNAT --to-destination 192.168.0.21:53
iptables v1.8.5 (moștenire): --match-set necesită două argumente.
Încercați „iptables -h” sau „iptables --help” pentru mai multe informații.
root@ddwrt:~# iptables --table nat --insert PREROUTING --in-interface br0 --protocol tcp -m set --match-set piholeAndVpnPasshthrough src ! --source --destination-port 53 --jump DNAT --to-destination 192.168.0.21:53
iptables v1.8.5 (moștenire): Setarea piholeAndVpnPasshthrough nu există.

Prin urmare, nu am idee cum să realizez acest lucru. Cum se folosesc două adrese sursă negate în iptables?

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.