Ich habe ein kleines Skript für iptables irgendwo mal geladen. Seit ich es benutzen will, kann ich meine Samba Freigabe nicht sehen:
Ich vermute, dass die Zeilen "# ausgehende Verbindungen" und "# eingehende Verbindungen" Fehler enthalten. Aber ich kann diese nicht finden. Für mich sieht alles gut aus, wenn ich die FW abschalte, dann sind die Freigaben aber immer noch nicht zu sehen. Erst wenn ich das System neustarte ohne das Script automatisch auszuführen, sind die smb Freigaben sichtbar. Die "SuSeFirewall_setup" und "*_init" habe ich aus der Startroutine rausgenommen.
Code:
#!/bin/sh
# suche nach iptables
iptables=`which iptables`
# wenn nicht installiert abbrechen
test -f $iptables || exit 0
case "$1" in
start)
# rules loeschen
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
# rules erzeugen
$iptables -N garbage
$iptables -I garbage -p TCP -j LOG --log-prefix="DROP TCP-Packet: " --log-level err
$iptables -I garbage -p UDP -j LOG --log-prefix="DROP UDP-Packet: " --log-level err
$iptables -I garbage -p ICMP -j LOG --log-prefix="DROP ICMP-Packet: " --log-level err
# default Policy
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP
# ueber Loopback alles erlauben
$iptables -I INPUT -i lo -j ACCEPT
$iptables -I OUTPUT -o lo -j ACCEPT
#####################################################
# ausgehende Verbindungen
# Port 137
$iptables -I OUTPUT -o eth0 -p UDP --sport 1024:65535 --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I INPUT -i eth0 -p UDP --sport 137 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Port 138
$iptables -I OUTPUT -o eth0 -p UDP --sport 1024:65535 --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I INPUT -i eth0 -p UDP --sport 138 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Port 139
$iptables -I OUTPUT -o eth0 -p TCP --sport 1024:65535 --dport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I INPUT -i eth0 -p TCP --sport 139 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Port 445
$iptables -I OUTPUT -o eth0 -p TCP --sport 1024:65535 --dport 445 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I INPUT -i eth0 -p TCP --sport 445 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
#####################################################
# einkommende Verbindungen
# Port 137
$iptables -I INPUT -i eth0 -p UDP --sport 1024:65535 --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p UDP --sport 137 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Port 138
$iptables -I INPUT -i eth0 -p UDP --sport 1024:65535 --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p UDP --sport 138 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Port 139
$iptables -I INPUT -i eth0 -p TCP --sport 1024:65535 --dport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p TCP --sport 139 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Port 445
$iptables -I INPUT -i eth0 -p TCP --sport 1024:65535 --dport 445 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p TCP --sport 445 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
#####################################################
# bestehende Verbindungen akzeptieren
$iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#####################################################
# garbage uebergeben wenn nicht erlaubt
$iptables -A INPUT -m state --state NEW,INVALID -j garbage
#####################################################
# alles verbieten was bisher erlaubt war
$iptables -A INPUT -j garbage
$iptables -A OUTPUT -j garbage
$iptables -A FORWARD -j garbage
;;
stop)
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
$iptables -P INPUT ACCEPT
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD ACCEPT
;;
restart|reload|force-reload)
$0 stop
$0 start
;;
*)
echo "Syntax: /etc/init.d/firewall (start|stop)"
exit 1
;;
esac
exit 0
Ich vermute, dass die Zeilen "# ausgehende Verbindungen" und "# eingehende Verbindungen" Fehler enthalten. Aber ich kann diese nicht finden. Für mich sieht alles gut aus, wenn ich die FW abschalte, dann sind die Freigaben aber immer noch nicht zu sehen. Erst wenn ich das System neustarte ohne das Script automatisch auszuführen, sind die smb Freigaben sichtbar. Die "SuSeFirewall_setup" und "*_init" habe ich aus der Startroutine rausgenommen.