Hallo zusammen, ich habe hier ein kleines DNS Problem mit meinem IP-Table Script. Mein DNS Server im lokalen Netz kann keine DNS aus dem INEt mehr auflösen, ein sauberes Pingen nach draußen geht aber. Die Clients aus dem Netz 192.168.1.0/255.255.255.0 dürfen nur über dem Proxy das Inet erreichen, die clients aus dem Netz 192.168.0.0/255.255.0.0 dürfen per NAT nach draußen routen. Der DNS Server hat die IP 192.168.0.3 Vielleicht kann mir jemand mal über das Script schauen?? Danke schonmal, Stefan Anbei mein Script #!/bin/sh # Stefan Eggert # Email: stefan.eggert@tux-world.de # # Diable forwarding echo 0 > /proc/sys/net/ipv4/ip_forward LAN_IP_NET='192.168.1.0/255.255.0.0' IT_IP_NET='192.168.0.0/255.255.0.0' LAN_NIC='eth0' WAN_IP='62.153.140.162' WAN_NIC='eth1' FORWARD_IP='0.0.0.0' IPTABLES=/usr/sbin/iptables # load some modules (if needed) modprobe ip_nat_ftp modprobe ip_conntrack_ftp # Flush iptables -t nat -F POSTROUTING iptables -t nat -F PREROUTING iptables -t nat -F OUTPUT iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # enable Masquerade and forwarding iptables -t nat -A POSTROUTING -s $IT_IP_NET -j MASQUERADE iptables -A FORWARD -j ACCEPT -s $IT_IP_NET iptables -A FORWARD -j ACCEPT -i $LAN_NIC -s $LAN_IP_NET # VPN Tunnel Masquerade $IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp0 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp1 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp2 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp3 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp4 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp5 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp6 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp7 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp8 -j MASQUERADE # Open ports on router for server/services iptables -A INPUT -j ACCEPT -p tcp --dport 25 iptables -A INPUT -j ACCEPT -p tcp --dport 22 iptables -A INPUT -j ACCEPT -p udp --dport 53 iptables -A INPUT -j ACCEPT -p tcp --dport 5000 iptables -A INPUT -j ACCEPT -p tcp --dport 8080 # Closed Ports $IPTABLES -N DHCPS $IPTABLES -A DHCPS -s 192.168.1.0/255.255.255.0 -p tcp -o eth1 --dport 1:63000 -j REJECT $IPTABLES -A FORWARD -j DHCPS # STATE RELATED for router iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Open ports to server on LAN (Post/Prerouting) #iptables -A FORWARD -j ACCEPT -p tcp --dport 21 #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to 0.0.0.0:21 # Enable forwarding echo 1 > /proc/sys/net/ipv4/ip_forward
Stefan Eggert wrote:
Mein DNS Server im lokalen Netz kann keine DNS aus dem INEt mehr auflösen,
Vielleicht kann mir jemand mal über das Script schauen??
man named.conf: Query Address If the server doesn't know the answer to a question, it will query other nameservers. query-source specifies the address and port used for such queries. If address is * or is omitted, a wildcard IP address ( INADDR_ANY) will be used. If port is * or is omitted, a random unprivileged port will be used. The default is "query-source address * port *"; Note: query-source currently applies only to UDP queries; TCP queries always use a wildcard IP address and a random unprivileged port. Deine iptables-Regel fuer DNS ist kaputt. Peter -- Falls dir meine Antwort nicht passt -> hast du http://www.lugbz.org/documents/smart-questions_de.html gelesen und befolgt?
Hallo Peter
man named.conf: Query Address
Hmmm. Da kann ich festelegen auf welchem Port die Annfragen laufen.
Deine iptables-Regel fuer DNS ist kaputt.
Eigendlich sollte ja der Bereich 192.168.0.0 mit NAT nach draußen, ohne einschränkungen. Im normalfalle sollte ich dann keine Regel für DNS setzen müssen. Aber was mache ich am NAT falsch??? Stefan
Stefan Eggert wrote:
Deine iptables-Regel fuer DNS ist kaputt.
Im normalfalle sollte ich dann keine Regel für DNS setzen müssen. Aber was mache ich am NAT falsch???
Da gar nichts. Aber du erlaubst nur UDP-Pakete, die an Port 53 gehen. DNS benutzt halt ab und an auch mal TCP und ich wuerde eher --sport 53 verwenden. Ich hatte dich auch so verstanden, als das der Router die DNS-Abfragen fuer die Clients macht. Wenn die alles selbst machen sollen, muss ich mir die Regeln eh noch mal genauer anschauen. Das wird bis zur Mittagspause dauern. Peter -- Falls dir meine Antwort nicht passt -> hast du http://www.lugbz.org/documents/smart-questions_de.html gelesen und befolgt?
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Zusaetzlich noch "-A FORWARD ...."? Dadurch sollten die Clients dann auch dns koennen. (Und alles andere was rausgeht.) Und "-A OUTPUT" damit die tcp-dns Antworten die FW passieren koennen. Stimmt, jetzt klappt es. Hatte nur vergessen es im Forward und Output wieder rein zu lassen. Vielen dank!!! Stefan
participants (2)
-
Peter Wiersig
-
Stefan Eggert