IPtables - NAT pro DNS

IPtables - NAT pro DNS
« kdy: 10. 01. 2020, 14:58:17 »
Potrebuju zaridit aby packety z routovane site s privatnim rozsahem smerujici na DNS server s verejnou IP (ktera k nam po zmene providera uz neprinalezi) byly na brane (debian+iptables) odNATovany do vnitrni site na IP noveho sekundarniho DNS a nasledne opet putovaly na branu kde budou NATem otoceny zpet na stroj ktery je vygeneroval.

Je to trosku krkolomne, ale pokud jsem na to zkousel jen s DNATem tak packety prichazely na originalni stroj s DST IP vnitrni adresou sec DNS coz orig stroj zrejme povazoval za spoofing. Asi tedy bude treba nasimulovat ze packety "odesly do internetu" (obe IP verejne), nasledne na server prisel DNS dotaz "z internetu", a nakonec prisla na orig stroj odpoved "z internetu" (src verejna). Mozna je to blbost ale nenapada me jiny zpusob jak toho dosahnout. Bohuzel mi to nefunguje a mam lehke tuseni ze kvuli poradi pravidel a iptables workflow (postrouting).

Mohl by mi prosim nekdo rict kde delam chybu, pripadne ze cela ta konstrukce je blbost a jde to zaridit jinak?
« Poslední změna: 12. 01. 2020, 18:43:38 od Petr Krčmář »


Re:iptables - nat pro DNS
« Odpověď #1 kdy: 10. 01. 2020, 15:07:52 »
Jelikoz stejne chcete presmerovavat provoz, co takhle pouzit prosty routing bez NATu?
V routovacich tabulkach nastavte routing na funkcni DNS server a na DNS serveru nastavte "starou" IP adresu na "dummy" interface.

Pravda, pokud nekdy nekdo v Internetu na te IP spusti sluzbu, na kterou by se vasi klienti chteli pripojit, budou mit smulu...

robac

  • ***
  • 202
    • Zobrazit profil
    • E-mail
Re:iptables - nat pro DNS
« Odpověď #2 kdy: 10. 01. 2020, 15:12:44 »
Potrebuju zaridit aby packety z routovane site s privatnim rozsahem smerujici na DNS server s verejnou IP (ktera k nam po zmene providera uz neprinalezi) byly na brane (debian+iptables) odNATovany do vnitrni site na IP noveho sekundarniho DNS a nasledne opet putovaly na branu kde budou NATem otoceny zpet na stroj ktery je vygeneroval.

Na tohle je hairpin NAT. NA linuxu resp. iptables jsem to nikdy nekonfiguroval, ale neměl by to být problém.

https://blog.lordvan.com/blog/learned-something-new-today-hairpin-nat-with-iptables-on-linux/

U DNS nezapomeňte i na TCP...

Re:iptables - nat pro DNS
« Odpověď #3 kdy: 10. 01. 2020, 15:16:52 »
Přepdokládám, že ten nový DNS server umí poslat pakety přímo zpět do té privátní sítě. Tím pádem se pakety nevrací zpět původní cestou přes NAT, který by je přeložil zpět – a počítač, který položil dotaz, dostane odpověď z jiné IP adresy, než kam posílal dotaz, takže samozřejmě odpověď zahodí. Musíte tedy na NATujícím počítači dělat nejenom DNAT, ale i SNAT (maškarádu) – nastavit zdrojovou adresu paketu na adresu toho NATujícího zařízení. DNS server tím pádem neodpoví přímo, ale pošle paket zpět na NATující zařízení a to má šanci paket upravit zpět (udělat inverzní operaci, kterou dělal DNAT na paketu dotazu). Obecně se tomu říká hairpin NAT, v iptables se to dělá právě pomocí toho SNATu nebo maškarády.

Re:iptables - nat pro DNS
« Odpověď #4 kdy: 10. 01. 2020, 16:05:44 »
Potrebuju zaridit aby packety z routovane site s privatnim rozsahem smerujici na DNS server s verejnou IP (ktera k nam po zmene providera uz neprinalezi) byly na brane (debian+iptables) odNATovany do vnitrni site na IP noveho sekundarniho DNS a nasledne opet putovaly na branu kde budou NATem otoceny zpet na stroj ktery je vygeneroval.

Na tohle je hairpin NAT. NA linuxu resp. iptables jsem to nikdy nekonfiguroval, ale neměl by to být problém.

https://blog.lordvan.com/blog/learned-something-new-today-hairpin-nat-with-iptables-on-linux/

U DNS nezapomeňte i na TCP...

hairpin NAT jsem neznal, diky kouknu na to...