Hi @ all,
habe ein kleines Problem mit meinem Linux Rechner zu Hause. Vielleicht kann mir einer von euch weiterhelfen und ich komme auch mal vor 2 Uhr nachts ins Bett, weil ich nicht mehr 875 verschiedene Dinge ausprobieren muß ;-)
Also habe mir ein kleines Firewallscript gebastelt:
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -p all -s localhost -j ACCEPT
iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -p all -d localhost -j ACCEPT
iptables -A OUTPUT -p all -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -p all -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -p tcp --dport http -s 192.168.1.1 -j ACCEPT
iptables -A FORWARD -p udp --dport domain -s 192.168.1.0 -j ACCEPT
iptables -A nat -t POSTROUTING -p all -s 192.168.1.0/24 -o ippp0
Inetzugang klappt vor dem Script bestens.
eth0 hat die 192.168.1.1
ippp0 hat 192.168.0.99 (wobei die ja uninteressant ist, da dynamisch ;-)
Seit ich das iptabls Script habe, kann ich vom Router nicht mal mehr pingen, DNS funzt auch nicht, lynx auch nicht. Habe wahrscheinlich irgendwo einen kleinen Fehler drin, den ich aber nicht finde. Echt nervig. Vielleicht fällt Euch ja noch was ein. By the Way: vor iptables funzte Dial-On-Demand auch noch, d.h bei ping www.heise.de hat er selbstständig eine Verbindung aufgebaut und den ping abgesetzt. Jetzt sagt er das er den Host nicht kennt ??? Nameserver sind aber eingetragen... Komisch alles...
Danke und Gruß
Onlinefreak
Linux 15.036 Themen, 107.107 Beiträge
Nimm fuer die Forwardregel das:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state NEW -i ! ippp0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ippp0 -j MASQUERADE
Und das fuer DNS:
iptables -A INPUT -i ippp0 -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o ppp0 -p udp --sport 1024: --dport 53 -j ACCEPT
Wenn irgendetwas nicht funktioniert, solltest du eine Logregel am Anfang setzen, um zu sehen, was abgewiesen wird. Ausserdem solltest du dich mit statefull beschaeftigen.
Was sagt denn:
cat /proc/sys/net/ipv4/ip_forward
Steht dann da eine 1? Wenn nicht, dann nimmst du dieses im Script mit auf:
echo 1 > /proc/sys/net/ipv4/ip_forward
Bye, Klaus