Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
tachtler:android_-_dns-problem [2014/01/04 10:00] – [iptables: NAT-Gateway/Router] klaus | tachtler:android_-_dns-problem [2014/01/04 10:27] (aktuell) – [Problem] klaus |
---|
* **''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 meinen, im 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> |
</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__ !!!** |
| |
| 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. |
| |
Ein mögliche **Lösung** für dieses **Problem** ist ein | 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 meinem Gateway/Router** via **''iptables''**! |
| - **Transparenter DNS-Server**, realisiert durch **NAT auf einen DNS-Server** via **''iptables''**! |
| |
===== iptables: NAT-Gateway/Router ===== | ===== 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 |
</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 |
</code> | </code> |
| |
===== iptables: NAT-Forward ===== | ===== iptables: DNS-Server ===== |
| |
:!: **HINWEIS** - Beispiel mit DNS-Server Weiterleitung! | :!: **HINWEIS** - Beispiel mit DNS-Server Weiterleitung! |
| |
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 |
Chain FORWARD (policy DROP 0 packets, 0 bytes) | Chain FORWARD (policy DROP 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 31147 18M ACCEPT all -- + * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED | 1 0 0 ACCEPT all -- + * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED |
2 21 852 DROP all -- + * 0.0.0.0/0 0.0.0.0/0 state INVALID | 2 0 0 DROP all -- + * 0.0.0.0/0 0.0.0.0/0 state INVALID |
3 75 7200 ACCEPT icmp -- + * 0.0.0.0/0 0.0.0.0/0 icmp type 255 | 3 0 0 ACCEPT icmp -- + * 0.0.0.0/0 0.0.0.0/0 icmp type 255 |
</code> | </code> |
| |
Nachfolgende Befehle, fügen folgende ''iptables''-Regeln dem ''iptables''-Regelwerk ab der **Position 1** hinzu, ohne das der Paketfilter angehalten werden muss: | Nachfolgende Befehle, fügen folgende ''iptables''-Regeln dem ''iptables''-Regelwerk ab der **Position 1** hinzu, ohne das der Paketfilter angehalten werden muss: |
* <code>-A FORWARD -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>-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 FORWARD -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> | * <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: | und hier die Befehle: |
<code> | <code> |
# iptables -A FORWARD -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 -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 FORWARD -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 | # 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> | </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 FORWARD (policy DROP 0 packets, 0 bytes) | Chain FORWARD (policy DROP 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 31147 18M ACCEPT all -- + * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED | 1 0 0 ACCEPT all -- + * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED |
2 21 852 DROP all -- + * 0.0.0.0/0 0.0.0.0/0 state INVALID | 2 0 0 DROP all -- + * 0.0.0.0/0 0.0.0.0/0 state INVALID |
3 75 7200 ACCEPT icmp -- + * 0.0.0.0/0 0.0.0.0/0 icmp type 255 | 3 0 0 ACCEPT icmp -- + * 0.0.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 | 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 | 5 0 0 ACCEPT udp -- eth0 * 192.168.0.0/24 192.168.0.20 udp dpt:53 state NEW |
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] | iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] |
</code> | </code> |
| |