DNS kyselyiden uudelleen ohjaus

Liittynyt
18.10.2016
Viestejä
650
Teinpä tästä oman säikeen. Eli tarkoitus olisi siis ohjata DNS kyselyt reitittimessä uuteen osoitteeseen. Tämä siis siksi, että jotkut ohjelmat ja laitteet eivät käytä reitittimen DNS osoitetta tai jos joku menisi muuttelemaan oman laitteensa DNS asetusta.

No itse olen yrittänyt tätä tehdä parillakin eri konstilla. Minulla siis käytössä Asus N56U reititin, jossa Padavan firmis sisällä. Lisäksi kotiverkossa pyörii pi-hole, joka siivoaa turhia DNS kyselyitä mm. mainoksia yms. Koitin tehdä portin ohjauksen tuolta hallintasivulta seuraavasti.

porttio.JPG

Testasin muuttamalla tietokoneen DNS osoitteen 8.8.8.8. Tämä ei tunnu toimivan.

Toinen kokeilu oli lisätä tuonne "aja palumuurin käynnistymisen jälkeen" laatikkoon pari iptables riviä.
Koodi:
#reroute google dns to pihole
iptables -t nat -A PREROUTING -i br0 -p udp --destination 8.8.8.8 --dport 53 -j DNAT --to 192.168.11.5
iptables -t nat -A PREROUTING -i br0 -p udp --destination 8.8.4.4 --dport 53 -j DNAT --to 192.168.11.5
Tämä kyllä toimii, mutta ohjaa vain googleen suunnatut DNS kyselyt piholeen.

Apua siis kaivattaisiin, jotta saisin kaikki muutkin DNS kyselyt tuonne pi-holeen.
 
Tuo porttiohjaus reitittimen hallinnassa taitaa toimia vaan sisäänpäin eli ei toimi tässä tarkoituksessa.

Tarvittaisiin se ip-tables -ammattilainen kertomaan palomuurisääntö pelkälle portille.. Manuaalista voisi selvitä.
 
Koodi:
iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to 192.168.11.5:53
iptables -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to 192.168.11.5:53

Vois kokeilla myös ilman --destination ip:tä tuota prerouting rimpsua?
 
Jos nyt harrastetaan hakuammuntaa niin toimisiko
iptables -t nat -A PREROUTING -i br0 -p udp ! --destination 192.168.11.5 --dport 53 -j DNAT --to 192.168.11.5
iptables -t nat -A PREROUTING -i br0 -p tcp ! --destination 192.168.11.5 --dport 53 -j DNAT --to 192.168.11.5

Elikkäs huutomerkki ennen --destination x.x.x.x tarkoittaa että jos osoite ei ole x.x.x.x niin ohjaa tuonne --to osoitteeseen.

Man page of IPTABLES

[!] -s, --source address[/mask][,...]
Source specification. Address can be either a network name, a hostname, a network IP address (with /mask), or a plain IP address. Hostnames will be resolved once only, before the rule is submitted to the kernel. Please note that specifying any name to be resolved with a remote query such as DNS is a really bad idea. The mask can be either a network mask or a plain number, specifying the number of 1's at the left side of the network mask. Thus, a mask of 24 is equivalent to 255.255.255.0. A "!" argument before the address specification inverts the sense of the address. The flag --src is an alias for this option. Multiple addresses can be specified, but this will expand to multiple rules (when adding with -A), or will cause multiple rules to be deleted (with -D).​
[!] -d, --destination address[/mask][,...]
Destination specification. See the description of the -s (source) flag for a detailed description of the syntax. The flag --dst is an alias for this option.​

Vois kokeilla myös ilman --destination ip:tä tuota prerouting rimpsua?

Sitä me yritettiinkin tuolla toisessa ketjussa.
 
Jos nyt harrastetaan hakuammuntaa niin toimisiko
iptables -t nat -A PREROUTING -i br0 -p udp ! --destination 192.168.11.5 --dport 53 -j DNAT --to 192.168.11.5
iptables -t nat -A PREROUTING -i br0 -p tcp ! --destination 192.168.11.5 --dport 53 -j DNAT --to 192.168.11.5

Elikkäs huutomerkki ennen --destination x.x.x.x tarkoittaa että jos osoite ei ole x.x.x.x niin ohjaa tuonne --to osoitteeseen.

Man page of IPTABLES




Sitä me yritettiinkin tuolla toisessa ketjussa.
Hyviä ajatuksia tullut.

Tätä koitin ja laitoin koneeseen 8.8.8.8 DNS osoitteeksi niin tuli vastaus "This site can’t be reached because server DNS address could not be found" ja samalla koko perhe alkoi ulvoa, että netti ei toimi. :eek: Piholen logeissa alkoi kyllä näkyä reitittimen IP, joten ehkä tuo osittain toimikin.

Täytyypä tutustua tuohon linkkiin ja jatkaa tutkimuksia.
 
Kokeilin myös noita Lagittajan testaamia sääntöjä dd-wrt reitittimen palomuurissa käyttämällä Opendns:n Family shield dns-osoitetta:

Koodi:
iptables -t nat -A PREROUTING -i br0 -p udp ! --destination 208.67.222.123 --dport 53 -j DNAT --to 208.67.222.123
iptables -t nat -A PREROUTING -i br0 -p tcp ! --destination 208.67.222.123 --dport 53 -j DNAT --to 208.67.222.123

Toimii.

Koodi:
iptables -t nat -A PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 208.67.222.123
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 208.67.222.123

Toimii.

Ei se toimikaan jos pihole ei tee mitään niillä dns kyselyillä?

Eli olisko tässä jotain tsekkaamista?


E: Sivuhuomautuksena saman saa tehtyä suoraan dd-wrt:n asetuksista valitsemalla "Forced DNS Redirection" -täpän.
 
Viimeksi muokattu:
Otin siis pois reitittimen DNS osoitteen, joka vei kyselyt piholeen. Käynnistin uudelleen. Eli pitäisi varmaankin DNS kyselyt mennä palvelun tarjoajan kautta. Mutta silti vaan piholen lokiin tulee kyselyitä. Tarkistin ja poistin kaikki iptables rivit ja muut asetukset, eikä mitään näy. Sitten terminaaliyhteys reitittimeen ja sinne iptables kysely, joka löytyi tuolta em. mainitusta linkistä.
Koodi:
iptables -t nat -n -L
Siellä näkyy seuraavia rivejä, joita en ymmärrä.
Koodi:
Chain vserver (1 references)
target     prot opt source               destination

DNAT       tcp  --  192.168.11.22        0.0.0.0/0            tcp dpt:53 to:192.168.11.5
DNAT       udp  --  192.168.11.22        0.0.0.0/0            udp dpt:53 to:192.168.11.5
Aika itsepäinen verkko.:eek: Ja tuo .22 osoite on siis tämä mun tietokone. Olen kyllä tästäkin tyhjentänyt DNS cachen.

Muoks. Tuo chain vserver tarkoittaa manuaalisti tehtyjä porttiohjauksia ja sieltähän nuo löytyikin.:facepalm:
 
Viimeksi muokattu:
Kokeilin myös noita Lagittajan testaamia sääntöjä dd-wrt reitittimen palomuurissa käyttämällä Opendns:n Family shield dns-osoitetta:

Koodi:
iptables -t nat -A PREROUTING -i br0 -p udp ! --destination 208.67.222.123 --dport 53 -j DNAT --to 208.67.222.123
iptables -t nat -A PREROUTING -i br0 -p tcp ! --destination 208.67.222.123 --dport 53 -j DNAT --to 208.67.222.123

Toimii.

Koodi:
iptables -t nat -A PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 208.67.222.123
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 208.67.222.123

Toimii.



Eli olisko tässä jotain tsekkaamista?


E: Sivuhuomautuksena saman saa tehtyä suoraan dd-wrt:n asetuksista valitsemalla "Forced DNS Redirection" -täpän.
No nyt kun sain reitittimen puhtaaksi niin testasin nuo molemmat vaihtoehdot ja ne toimii. Toimii vaikka tai juuri siksi, että reitittimen DNS osoiterivi on tyhjä.
 
Noilla säännöillä ohitetaan reitittimen dns-asetus eli ei pitäisi vaikuttaa oli tyhjä tai ei.

Virtoja pois tai tarvittaessa hard resetti lähettää vanhat säädöt pois. Vanhaa, mutta toimivaa koulukuntaa.
 
No nyt aamulla tuli heti tämmöinen ajatus mieleen. Piholehan lähettää hyväksytyt DNS kyselyt eteenpäin, tietenkin reitittimen kautta. Tuli mieleen, että nämä säännöt sitten vaan palauttavat nekin takaisin piholeen. Eli kokeilin nyt sääntöä joka palauttaa ne kyselyt, jotka eivät olleet menossa sinne piholeen asetettuun DNS osoitteeseen.
Koodi:
iptables -t nat -A PREROUTING -i br0 -p udp ! --destination 9.9.9.9 --dport 53 -j DNAT --to 192.168.11.5
iptables -t nat -A PREROUTING -i br0 -p tcp ! --destination 9.9.9.9 --dport 53 -j DNAT --to 192.168.11.5
Näyttäisi ainakin netti toimivan. Ja piholen lokiin tulee kyllä yllättävän paljon DNS kyselyitä reitittimen IP osoitteesta.

Muoks. 10 minuutissa tuli melkeen 15k kyselyä pääasiassa reitittimen IP osoitteesta. Jotenkin vielä kiertää varmaankin. Otin pois päältä.
Muoks.2 Uusi yritys. Laitoin piholen dns asetuksiin käsin tuon 9.9.9.9 sen sijaan, että olisin ruksinut sen quad9 DNS vaihtoehdon ja palautin nuo iptablesit kuten mainittu. Nyt näyttäisi toimivan kuten toivottu.
 
Viimeksi muokattu:
Tosiaan. Iptablesit on reitittimessä ja oikeastaan kaikki säädötkin on tehty siinä. Piholessa on ainoastaan vaihdettu se ulos lähtevä DNS osoite käsin syötettyyn 9.9.9.9 valmiiksi valitun quad9 tilalle.

Muoks ja pihole siis erillisessa raspissa.
 
Viimeksi muokattu:
Eipäs tullut pieneen mieleenkään että Pihole on erillisessä laitteessa. No tietenkin on.. Joten reitittimen päässä tuo sääntö tietenkin estää ne Piholen tekemät kyselyt...

Kokeilin Edgerouterin kanssa että mikä toimisi miten halutaan.
upload_2018-9-2_23-19-34.png

@angle näyttäisi siltä että tarvitset vielä sen @Pertti Kosunen mainitseman "! --source 192.168.11.5" taikaloitsun niihin rimpsuihin.

Eli näiden pitäisi ainakin teoriassa toimia miten halutaan.
Koodi:
iptables -t nat -A PREROUTING -i br0 -p udp ! --source 192.168.11.5 ! --destination 192.168.11.5 --dport 53 -j DNAT --to 192.168.11.5
iptables -t nat -A PREROUTING -i br0 -p tcp ! --source 192.168.11.5 ! --destination 192.168.11.5 --dport 53 -j DNAT --to 192.168.11.5
Tässä siis
! --source x.x.x.x
jos DNS kysely tulee täältä niin DNAT sääntö ei kosketa sitä​
! --destination x.x.x.x
jos DNS kysely ei ole menossa tänne niin se ohjataan uudelleen​
--to x.x.x.x
jos DNS kysely ohjataan uudelleen niin se ohjataan tänne​

Eli jos esim 192.168.11.100 yrittää tehdä DNS kyselyä 9.9.9.9 palvelimelle niin se ohjataan 192.168.11.5.
Mutta jos 192.168.11.5 yrittää tehdä DNS kyselyä 9.9.9.9 niin se menee tämän säännön ohi.

Edgerouterin asetukset oli siis näin:
upload_2018-9-2_23-28-0.png
(punainen numero vastaa ensimmäisen kuvan nslookup testejä)

Ja jos jotakuta kiinnostaa niin komentorivillä ER:n konffi (numero 4) näyttää tältä
Koodi:
service {
    nat {
        rule 1 {
            description "DNS redirect"
            destination {
                address !208.67.222.123
                port 53
            }
            inbound-interface switch0.1
            inside-address {
                address 208.67.222.123
            }
            log disable
            protocol tcp_udp
            source {
                address !10.99.10.100
            }
            type destination
        }
    }
}
 
Täytyypä testata. Tuo vaikuttaisi aukottomalta säännöltä. Tuo omanihan laskisi DNS kyselyn piholen ohi, jos se tehtäisiin suoraan 9.9.9.9 osoitteeseen.
 
Meneekö nyt koko liikenne piholen kautta vai rajaako tuo porttiin 53 sääntö pois muut kuin dns kyselyt? On kai muutakin kuin dns kyselyjä.
Näin ainakin olisi tarkoitus ja näyttäisi toimivankin. Tuon muun liikenteen osalta en osaa sanoa. Enkä nyt keksi kuinka tuon testaisinkaan.
 
Meneekö nyt koko liikenne piholen kautta vai rajaako tuo porttiin 53 sääntö pois muut kuin dns kyselyt? On kai muutakin kuin dns kyselyjä.

Ei mene koska se --dport rajaa sen säännön liikenteeseen joka on menossa tiettyyn porttiin. Ja porttia 53 käyttää pääsääntöisesti DNS.

Toki sitä porttia voi käyttää jokin muukin
Port 53 (tcp/udp)
Tässä on listattuna 13 eri palvelua, ohjelmaa tjsp jotka käyttävät porttia 53 oli se sitten tcp tai udp
3kpl on itse DNS
3kpl on MMORPG vuodelta 2003, online FPS PS2 peli vuodelta 2002/2003 jonka palvelimet suljettu 2012 ja joku PS2 peli vuodelta 2001 jonka palvelimet varmaan on myös jo suljettu.
7kpl troijalaisia, matoja tjsp pöpöjä tai ei haluttuja juttuja.

P.S. Kyllä, DNS käyttää pääsääntöisesti UDP:tä mutta DNS voi käyttää myös TCP:tä tietyssä tilanteessa joten jos halutaan olla 100% varma että kaikki DNS kyselyt ohjataan uudelleen tarvitaan myös se TCP sääntö.
 
Eipäs tullut pieneen mieleenkään että Pihole on erillisessä laitteessa. No tietenkin on.. Joten reitittimen päässä tuo sääntö tietenkin estää ne Piholen tekemät kyselyt...

Kokeilin Edgerouterin kanssa että mikä toimisi miten halutaan.
upload_2018-9-2_23-19-34.png

@angle näyttäisi siltä että tarvitset vielä sen @Pertti Kosunen mainitseman "! --source 192.168.11.5" taikaloitsun niihin rimpsuihin.

Eli näiden pitäisi ainakin teoriassa toimia miten halutaan.
Koodi:
iptables -t nat -A PREROUTING -i br0 -p udp ! --source 192.168.11.5 ! --destination 192.168.11.5 --dport 53 -j DNAT --to 192.168.11.5
iptables -t nat -A PREROUTING -i br0 -p tcp ! --source 192.168.11.5 ! --destination 192.168.11.5 --dport 53 -j DNAT --to 192.168.11.5
Tässä siis
! --source x.x.x.x
jos DNS kysely tulee täältä niin DNAT sääntö ei kosketa sitä​
! --destination x.x.x.x
jos DNS kysely ei ole menossa tänne niin se ohjataan uudelleen​
--to x.x.x.x
jos DNS kysely ohjataan uudelleen niin se ohjataan tänne​

Eli jos esim 192.168.11.100 yrittää tehdä DNS kyselyä 9.9.9.9 palvelimelle niin se ohjataan 192.168.11.5.
Mutta jos 192.168.11.5 yrittää tehdä DNS kyselyä 9.9.9.9 niin se menee tämän säännön ohi.

Edgerouterin asetukset oli siis näin:
upload_2018-9-2_23-28-0.png
(punainen numero vastaa ensimmäisen kuvan nslookup testejä)

Ja jos jotakuta kiinnostaa niin komentorivillä ER:n konffi (numero 4) näyttää tältä
Koodi:
service {
    nat {
        rule 1 {
            description "DNS redirect"
            destination {
                address !208.67.222.123
                port 53
            }
            inbound-interface switch0.1
            inside-address {
                address 208.67.222.123
            }
            log disable
            protocol tcp_udp
            source {
                address !10.99.10.100
            }
            type destination
        }
    }
}
Nämä iptables säännöt tuntuisi toimivan, pihole loki on ainakin kirjannut hiukan enemmän kyselyitä reitittimestä kuin ennen.

Eikös noita voi ajella tuollaisenaan vaikka raspi-boxissa on Unbound käytössä, eli ulkopuolisia normaaleja nimipalvelimia (esim 9.9.9.9) ei käytetä ollenkaan?
 
Kysymys, itsellä on käytössä kaksi pi-hole boksia (192.168.1.10 ja 192.168.1.11) miten tuota yllä olevaa iptables rimpsua voisi muuttaa niin, että DNS pyynnöt menevät tarvittaessa jompaan kumpaan laitteeseen eikä pelkästään toiseen?
 

Statistiikka

Viestiketjuista
258 402
Viestejä
4 489 882
Jäsenet
74 154
Uusin jäsen
Almedin

Hinta.fi

Back
Ylös Bottom