Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:android_-_dns-problem

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:android_-_dns-problem [2014/01/04 09:44] klaustachtler:android_-_dns-problem [2014/01/04 10:27] (aktuell) – [Problem] klaus
Zeile 4: Zeile 4:
   * **''8.8.8.8''**   * **''8.8.8.8''**
   * **''8.8.4.4''**   * **''8.8.4.4''**
-durchzuführen, und **__nicht__** gegen meinen eignen im heimischen Netzwerk befindlichen DNS-Server ([[https://www.isc.org/downloads/bind/|ISC BIND]]).+durchzuführen, und **__nicht__** gegen meinenim heimischen Netzwerk befindlichen DNS-Server([[https://www.isc.org/downloads/bind/|ISC BIND]]).
  
-Obwohl ich meinem Mobiltelefon mit meinem eigenen DHCP-Server beim beziehen einer IP-Adresse auch den DNS-Server-Eintrag übermittle. (**Auszug aus meiner [[https://www.isc.org/downloads/dhcp/|ISC DHCP]]-Konfiguration**):+Firewall Verstöße aus **''/var/log/messages''** - (**nur relevanter Ausschnitt**): 
 +<code> 
 +... 
 +Jan  3 22:10:14 rechner01 kernel: FORWARD Defend IN=eth0 OUT=eth0 SRC=192.168.0.12 DST=8.8.8.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=UDP SPT=38163 DPT=53 LEN=40 
 +Jan  3 22:10:14 rechner01 kernel: FORWARD Defend IN=eth0 OUT=eth0 SRC=192.168.0.12 DST=8.8.4.4 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=UDP SPT=34705 DPT=53 LEN=40 
 +... 
 +</code> 
 + 
 +===== Problem ===== 
 + 
 +Ich übermittle meinem Mobiltelefon mit meinem DHCP-Server im heimischen Netzwerk beim beziehen einer IP-Adresse auch den DNS-Server-Eintrag. (**Auszug aus meiner [[https://www.isc.org/downloads/dhcp/|ISC DHCP]]-Konfiguration**):
  
 <code ini> <code ini>
Zeile 19: Zeile 29:
 </code> </code>
  
-Aufgrund dieser vielleicht gewollten oder auch ungewollten Ignoranz meines Mobiltelefons, wollte ich die Firewall Verstöße nicht länger sehen.+:!: **Dies wird jedoch von meinem Mobiltelefon __IGNORIERT__ !!!**
  
-Ein mögliche **Lösung** für dieses **Problem** ist ein +Aufgrund dieser vielleicht gewollten oder auch ungewollten Ignoranz meines Mobiltelefons, wollte ich die Firewall Verstöße nicht länger sehen **und** auch mein Mobiltelefon im heimischen Netzwerk, meinen DNS-Server [[https://www.isc.org/downloads/bind/|ISC BIND]] **ausschließlich** nutzen lassen.
-  * **Transparenter DNS-Server**, realisiert durch **NAT auf meinem Gateway/Router** via **''iptables''**!+
  
-===== iptables: NAT-Gateway =====+Mögliche **Lösungen** für dieses **Problem** sind 
 +  - **Transparenter DNS-Server**, realisiert durch **NAT auf meinem Gateway/Router** via **''iptables''**! 
 +  - **Transparenter DNS-Server**, realisiert durch **NAT auf einen DNS-Server** via **''iptables''**! 
 + 
 +===== iptables: NAT-Gateway/Router =====
  
 :!: **HINWEIS** - Beispiel mit DNS-Server auf dem Gateway/Router! :!: **HINWEIS** - Beispiel mit DNS-Server auf dem Gateway/Router!
  
-Im folgendem Beispiel sind nachfolgendem Ergänzungen im Regelsatz von **''iptables''** durchzuführen, um +Im folgendem Beispiel sind nachfolgende Ergänzungen im Regelsatz von **''iptables''** durchzuführen, um 
   - Alle DNS-Anfragen **TCP/UDP** auf **Port 53** umzuleiten   - Alle DNS-Anfragen **TCP/UDP** auf **Port 53** umzuleiten
   - Dies **transparent** (unsichtbar) für das jeweilige Endgerät   - Dies **transparent** (unsichtbar) für das jeweilige Endgerät
Zeile 56: Zeile 69:
 </code> </code>
  
-Ein erneute Abfrage des ''iptables''-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:+Eine erneute Abfrage des ''iptables''-Regelwerts, sollte dann in etwa nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
 <code> <code>
 # iptables -t nat -L -nv --line-numbers # iptables -t nat -L -nv --line-numbers
 Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination num   pkts bytes target     prot opt in     out     source               destination
-1        0     0 DNAT       tcp  --  eth1   *       192.168.0.0/24       0.0.0.0/          tcp dpt:53 to:192.168.0.1:53 +1        0     0 DNAT       tcp  --  eth0   *       192.168.0.0/24       0.0.0.0/          tcp dpt:53 to:192.168.0.1:53 
-2        0     0 DNAT       udp  --  eth1   *       192.168.0.0/24       0.0.0.0/          udp dpt:53 to:192.168.0.1:53+2        0     0 DNAT       udp  --  eth0   *       192.168.0.0/24       0.0.0.0/          udp dpt:53 to:192.168.0.1:53
  
 Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
Zeile 74: Zeile 87:
 <code> <code>
 ... ...
-1        0     0 DNAT       tcp  --  eth1   *       192.168.0.0/24       0.0.0.0/          tcp dpt:53 to:192.168.0.1:53 +1        0     0 DNAT       tcp  --  eth0   *       192.168.0.0/24       0.0.0.0/          tcp dpt:53 to:192.168.0.1:53 
-2        0     0 DNAT       udp  --  eth1   *       192.168.0.0/24       0.0.0.0/          udp dpt:53 to:192.168.0.1:53+2        0     0 DNAT       udp  --  eth0   *       192.168.0.0/24       0.0.0.0/          udp dpt:53 to:192.168.0.1:53 
 +... 
 +</code> 
 + 
 +Um diese ''iptables''-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im ''iptables''-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden: 
 +<code> 
 +# service iptables save 
 +iptables: Saving firewall rules to /etc/sysconfig/iptables: OK  ] 
 +</code> 
 + 
 +===== iptables: DNS-Server ===== 
 + 
 +:!: **HINWEIS** - Beispiel mit DNS-Server Weiterleitung! 
 + 
 +Im folgendem Beispiel sind nachfolgende Ergänzungen im Regelsatz von **''iptables''** durchzuführen, um  
 +  - Alle DNS-Anfragen **TCP/UDP** auf **Port 53** umzuleiten 
 +  - Dies **transparent** (unsichtbar) für das jeweilige Endgerät 
 +  - **Auf einen beliebigen DNS-Server - :!: HIER --> 192.168.0.20 !!!** 
 +durchzuführen. 
 + 
 +Um die aktuellen ''iptables''-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann: 
 +<code> 
 +# iptables -t nat -L -nv --line-numbers 
 +Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) 
 +num   pkts bytes target     prot opt in     out     source               destination 
 + 
 +Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) 
 +num   pkts bytes target     prot opt in     out     source               destination 
 + 
 +Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) 
 +num   pkts bytes target     prot opt in     out     source               destination 
 +</code> 
 + 
 +**UND** 
 + 
 +<code> 
 +# iptables -L FORWARD -nv --line-numbers 
 +Chain FORWARD (policy DROP 0 packets, 0 bytes) 
 +num   pkts bytes target     prot opt in     out     source               destination 
 +1        0     0 ACCEPT     all  --  +      *       0.0.0.0/           0.0.0.0/          state RELATED,ESTABLISHED 
 +2        0     0 DROP       all  --  +      *       0.0.0.0/           0.0.0.0/          state INVALID 
 +3        0     0 ACCEPT     icmp --  +      *       0.0.0.0/           0.0.0.0/          icmp type 255 
 +</code> 
 + 
 +Nachfolgende Befehle, fügen folgende ''iptables''-Regeln dem ''iptables''-Regelwerk ab der **Position 1** hinzu, ohne das der Paketfilter angehalten werden muss: 
 +  * <code>-A PREROUTING -s 192.168.0.0/24 -i eth0 -p tcp -m tcp --dport 53 -j DNAT --to-destination 192.168.0.20:53</code> 
 +  * <code>-A PREROUTING -s 192.168.0.0/24 -i eth0 -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.0.20:53</code> 
 +  * <code>-I INPUT 4 -s 192.168.0.0/24 -d 192.168.0.20/32 -i eth0 -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT</code> 
 +  * <code>-I INPUT 5 -s 192.168.0.0/24 -d 192.168.0.20/32 -i eth0 -p udp -m udp --dport 53- m state --state NEW -j ACCEPT</code> 
 +und hier die Befehle: 
 +<code> 
 +# iptables -A PREROUTING -s 192.168.0.0/24 -i eth0 -p tcp -m tcp --dport 53 -j DNAT --to-destination 192.168.0.20:53 
 +# iptables -A PREROUTING -s 192.168.0.0/24 -i eth0 -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.0.20:53 
 +# iptables -I INPUT 4 -s 192.168.0.0/24 -d 192.168.0.20/32 -i eth0 -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT 
 +# iptables -I INPUT 5 -s 192.168.0.0/24 -d 192.168.0.20/32 -i eth0 -p udp -m udp --dport 53- m state --state NEW -j ACCEPT 
 +</code> 
 + 
 +Eine erneute Abfrage des ''iptables''-Regelwerts, sollte dann in etwa nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann: 
 +<code> 
 +# iptables -t nat -L -nv --line-numbers 
 +Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) 
 +num   pkts bytes target     prot opt in     out     source               destination 
 +1        0     0 DNAT       tcp  --  eth0         192.168.0.0/24       0.0.0.0/          tcp dpt:53 to:192.168.0.20:53 
 +2        0     0 DNAT       udp  --  eth0         192.168.0.0/24       0.0.0.0/          udp dpt:53 to:192.168.0.20:53 
 + 
 +Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) 
 +num   pkts bytes target     prot opt in     out     source               destination 
 + 
 +Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) 
 +num   pkts bytes target     prot opt in     out     source               destination 
 +</code> 
 + 
 +**UND** 
 + 
 +<code> 
 +# iptables -L FORWARD -nv --line-numbers 
 +Chain FORWARD (policy DROP 0 packets, 0 bytes) 
 +num   pkts bytes target     prot opt in     out     source               destination 
 +1        0     0 ACCEPT     all  --  +      *       0.0.0.0/           0.0.0.0/          state RELATED,ESTABLISHED 
 +2        0     0 DROP       all  --  +      *       0.0.0.0/           0.0.0.0/          state INVALID 
 +3        0     0 ACCEPT     icmp --  +      *       0.0.0.0/           0.0.0.0/          icmp type 255 
 +4        0     0 ACCEPT     tcp  --  eth0         192.168.0.0/24       192.168.0.20        tcp dpt:53 state NEW 
 +5        0     0 ACCEPT     udp  --  eth0         192.168.0.0/24       192.168.0.20        udp dpt:53 state NEW 
 +</code> 
 + 
 +Die neuen Zeilen sind an **Position 1** und **Postition 2** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**): 
 +<code> 
 +... 
 +1        0     0 DNAT       tcp  --  eth0         192.168.0.0/24       0.0.0.0/          tcp dpt:53 to:192.168.0.20:53 
 +2        0     0 DNAT       udp  --  eth0         192.168.0.0/24       0.0.0.0/          udp dpt:53 to:192.168.0.20:53 
 +... 
 +</code> 
 + 
 +**UND** 
 + 
 +an **Position 4** und **Postition 5** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**): 
 +<code> 
 +... 
 +4        0     0 ACCEPT     tcp  --  eth0         192.168.0.0/24       192.168.0.20        tcp dpt:53 state NEW 
 +5        0     0 ACCEPT     udp  --  eth0         192.168.0.0/24       192.168.0.20        udp dpt:53 state NEW
 ... ...
 </code> </code>
tachtler/android_-_dns-problem.1388825091.txt.gz · Zuletzt geändert: 2014/01/04 09:44 von klaus