Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Dokumente DNS umleiten
Artikelaktionen

DNS umleiten

von BeDaZuletzt verändert: 17.07.2009 02:14

Notiz: Falls ich wieder einmal jemanden einen DNS Server aufzwingen möchte.

Alles auf Port 53 auf lokalen DNS umleiten

  # alle DNS Anfragen auf lokalen Bind9 umleiten
   [ $ifc_eth1 -eq 1 ] && $iptables -t nat -A PREROUTING -i eth1 -p udp -s $net_eth1 -d ! $ip_eth1 --dport 53 -j DNAT --to $ip_eth1
   [ $ifc_eth1 -eq 1 ] && $iptables -t nat -A PREROUTING -i eth1 -p tcp -s $net_eth1 -d ! $ip_eth1 --dport 53 -j DNAT --to $ip_eth1

   [ $ifc_eth2 -eq 1 ] && $iptables -t nat -A PREROUTING -i eth2 -p udp -s $net_eth2 -d ! $ip_eth2 --dport 53 -j DNAT --to $ip_eth2
   [ $ifc_eth2 -eq 1 ] && $iptables -t nat -A PREROUTING -i eth2 -p tcp -s $net_eth2 -d ! $ip_eth2 --dport 53 -j DNAT --to $ip_eth2

   [ $ifc_eth4 -eq 1 ] && $iptables -t nat -A PREROUTING -i eth4 -p udp -s $net_eth4 -d ! $ip_eth4 --dport 53 -j DNAT --to $ip_eth4
   [ $ifc_eth4 -eq 1 ] && $iptables -t nat -A PREROUTING -i eth4 -p tcp -s $net_eth4 -d ! $ip_eth4 --dport 53 -j DNAT --to $ip_eth4

Bind nach draussen

 # Bind9 darf DNS Anfragen stellen
   [ $ifc_eth0 -eq 1 ] && $iptables -A OUTPUT -o eth0 -p udp -s $ip_eth0 --dport 53 -m owner --uid-owner 103 -m state --state NEW -j ACCEPT
   [ $ifc_eth0 -eq 1 ] && $iptables -A OUTPUT -o eth0 -p tcp -s $ip_eth0 --dport 53 -m owner --uid-owner 103 -m state --state NEW -j ACCEPT

Oder nur als Forwarder auf die DNS Server in der resolv.conf?

  # DNS Server aus der /etc/resolv.conf zaehlen
   int_dnsserver=$($grep ^nameserver /etc/resolv.conf | $wc -l | $tr -d " ")

  # DNS Anfragen auf Server in /etc/resolv.conf
  for ((I=1; $I <= $int_dnsserver; I++)) ; do
   # DNS-IP's ermitteln
    dnsip=$($grep ^nameserver /etc/resolv.conf | $head -n $I | $tail -n 1 | $cut -d " " -f 2)
   # $DNSIP in die chains schreiben
  
     [ $ifc_eth0 -eq 1 ] && $iptables -A OUTPUT -o eth0 -p tcp -s $ip_eth0 -d $dnsip --dport 53 -m state --state NEW -j ACCEPT
     [ $ifc_eth0 -eq 1 ] && $iptables -A OUTPUT -o eth0 -p udp -s $ip_eth0 -d $dnsip --dport 53 -m state --state NEW -j ACCEPT
  
    # Schleifenabbruch
     if [ $I -eq $int_dnsserver ] ; then
      break
     fi
  done