PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Durch Firewall Samba Problem



Operator29
29.12.01, 19:58
Hi,

habe Samba bei mir installiert und immer wenn ich die Firewall starte kann ich von meinem Windows Rechner aus nicht mehr auf den Linux Rechner zugreifen weil die Firewall alles dicht macht. Für Squid und pop3 usw. sind Regeln erstellt damit er das trotzdem macht nur eben nicht für Samba. Könnt ihr Euch die Firewall mal anschauen und mir dann sagen welche Regel ich einfügen bzw. weglassen muss damit das auch wieder geht. Und das natürlich die restlichen Ports geschlossen sind. Danke

Hier mein Firewall Script:

#!/bin/tcsh
# IPTABLES FIREWALLSKRIPT
# copyright RAU-EDV Stuttgart


echo "Firewall wird gestartet...."

# 1.Teil: Variablen

set IPTABLES = /usr/sbin/iptables


# 2.Teil: spezielle Ports

set lowports = 1:1023 # priviligierte Ports
set highports = 1024:65535 # unpriviligierte Ports


# 3.Teil: Interfaces

set EXT = eth1
set INT = eth0
set IF = ($EXT $INT)
set ANY = 0.0.0.0/0 # Wildcard

# 4.Teil: IP Adressen der Hosts

set INTERN = 192.168.100.0/24
# set NS = 194.25.2.129 # IP Adresse(n) der/des Nameserver(s) hier eintragen
# set mail = mail.rau-edv.de # IP Adresse des Mailservers

# 5.Teil Grundkonfiguration dynamische Kernelparameter

echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# echo "5" > /proc/sys/net/ipv4/icmp_destunreach_rate
# echo "5" > /proc/sys/net/ipv4/icmp_echoreply_rate
# echo "5" > /proc/sys/net/ipv4/icmp_paramprob_rate
# echo "10" > /proc/sys/net/ipv4/icmp_timeexceed_rate


foreach if ($IF)

echo "1" > /proc/sys/net/ipv4/conf/$if/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$if/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$if/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/$if/bootp_relay
echo "1" > /proc/sys/net/ipv4/conf/$if/log_martians

end


# 6.Teil: (Jetzt geht's los) Die Grundprinzipien und Flush

$IPTABLES -P INPUT DROP # default policy input
$IPTABLES -P FORWARD DROP # default policy forward
$IPTABLES -P OUTPUT DROP # default policy output

$IPTABLES -F # flush aller chains (Tabelle filter)
$IPTABLES -t nat -F # flush aller chains (Tabelle nat)
$IPTABLES -X # delete all userdefined chains (Tabelle filter)


# 7.Teil: Spoof protection

$IPTABLES -A INPUT -s $INTERN -i $EXT -j DROP

$IPTABLES -A INPUT -s 10.0.0.0/8 -i $EXT -j DROP
$IPTABLES -A INPUT -s 172.16.0.0/12 -i $EXT -j DROP
$IPTABLES -A INPUT -s 192.168.0.0/16 -i $EXT -j DROP

$IPTABLES -A INPUT -d 10.0.0.0/8 -i $EXT -j DROP
$IPTABLES -A INPUT -d 172.16.0.0/12 -i $EXT -j DROP
$IPTABLES -A INPUT -d 192.168.0.0/16 -i $EXT -j DROP





# 8.Teil: Lokale Prozesse wieder freigeben

$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT

# 9.Teil: DROP & LOG Chain

$IPTABLES -N my_drop
$IPTABLES -A my_drop -p ICMP -j LOG
$IPTABLES -A my_drop -p UDP -j LOG
$IPTABLES -A my_drop -p TCP -j LOG
$IPTABLES -A my_drop -j DROP


# 10. Teil: Masquerading

$IPTABLES -t nat -A POSTROUTING -o $EXT -j MASQUERADE

# Ausgehende Pakete bei bestehender Verbindung

$IPTABLES -A OUTPUT \
-m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -i $INT -o $EXT \
-m state --state ESTABLISHED,RELATED -j ACCEPT

# Eingehende Pakete zu bestehender Verbindung

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# $IPTABLES -A INPUT -m state --state NEW,INVALID -j my_drop

$IPTABLES -A FORWARD -i $EXT -o $INT \
-m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $EXT -o $INT \
-m state --state NEW,INVALID -j my_drop





# 11.Teil: jetzt kommen die Filterregeln für lokale Dienste

# ICMP

$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT # ausgehender ping wird erlaubt
$IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j ACCEPT # eingehender ping wird beantwortet

# DNS

$IPTABLES -A OUTPUT -o $EXT -p UDP --dport 53 -j ACCEPT

# HTTP

$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 443 -j ACCEPT

# FTP

$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 21 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 20 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport $highports -j ACCEPT

# POP3

$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 110 -j ACCEPT

# NTP

$IPTABLES -A OUTPUT -o $EXT -p UDP --sport $highports --dport 37 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 37 -j ACCEPT

# Von Innen erlauben (Squid, Sendmail, pop3, Webmin und Telnet)

$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 3128 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport smtp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport pop3 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 81 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 23 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 37 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 37 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


# 12.Teil und nun Filterregeln für Forwarding

# 12.1 ICMP

$IPTABLES -A FORWARD -o $EXT -p ICMP --icmp-type echo-request -j ACCEPT # Ping nach außen kommt zurück

# 12.2 IDENT

$IPTABLES -A FORWARD -i $EXT -p TCP --dport auth --syn -j REJECT


# 12.3 DNS



$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p UDP --sport $highports --dport domain -j ACCEPT

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport domain -j ACCEPT



# 12.4 SMTP, POP3 und IMAP

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport pop3 -j ACCEPT

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport smtp -j ACCEPT

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport imap -j ACCEPT


# 12.5 HTTP und HTTPS

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport http -j ACCEPT

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport https -j ACCEPT

# 12.6 Telnet und SSH

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport ssh -j ACCEPT

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport telnet -j ACCEPT

# 12.7 FTP und passives FTP

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport ftp -j ACCEPT

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport $highports -j ACCEPT

# 12.8 Lotus Notes

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport 1352 -j ACCEPT

# 12.9 Homebanking

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport 3000 -j ACCEPT

# 12.10 Webmin

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport 81 -j ACCEPT

# 12.11 VNC

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport 5800 -j ACCEPT

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport 5900 -j ACCEPT


# 12.12 NTP

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p UDP --sport $highports --dport 37 -j ACCEPT

$IPTABLES -A FORWARD -o $EXT -m state --state NEW \
-p TCP --sport $highports --dport 37 -j ACCEPT




# 13. Von außen erlauben (pop3)

$IPTABLES -A INPUT -i $EXT -p TCP --sport $highports --dport pop3 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT



# 14. Teil Ausputzen, d.h. den Rest sperren und loggen (catch all)

$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j REJECT

echo "Passt. (Firewall Regeln sind aktiv)"

geronet
29.12.01, 22:03
so du ersetzt einfach den Teil 11 durch diesen hier:

# 11.Teil: jetzt kommen die Filterregeln für lokale Dienste
# ICMP
$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT # ausgehender ping wird erlaubt
$IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j ACCEPT # eingehender ping wird beantwortet
# DNS
$IPTABLES -A OUTPUT -o $EXT -p UDP --dport 53 -j ACCEPT
# HTTP
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 443 -j ACCEPT
# SMB
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 137 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p UDP --sport $highports --dport 137 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 138 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p UDP --sport $highports --dport 138 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 139 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p UDP --sport $highports --dport 139 -j ACCEPT

# FTP
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 21 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 20 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport $highports -j ACCEPT
# POP3
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 110 -j ACCEPT
# NTP
$IPTABLES -A OUTPUT -o $EXT -p UDP --sport $highports --dport 37 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 37 -j ACCEPT
# Von Innen erlauben (Squid, Sendmail, pop3, Webmin, Samba und Telnet)
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 3128 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport smtp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport pop3 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 81 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 23 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 37 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 37 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Operator29
29.12.01, 22:39
Hi geronet,

habe das ausgetauscht was du gesagt hast aber es hat immer noch nicht geklappt. Ganz oben steht ein Eintrag der sieht so aus

$IPTABLES -P INPUT DROP # default policy input

wenn ich den rausnehme dann geht alles aber dann sind auch sämtliche Ports offen. Muss ich den rausnehmen oder muss für die Regel noch etwas extra erstellt werden????

geronet
30.12.01, 13:18
Wow ist scho kompliziert, muss ich sagen, aber ich denk ich hab da was übersehen:

Damit sollte es gehen.

# 11.Teil: jetzt kommen die Filterregeln für lokale Dienste
# ICMP
$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT # ausgehender ping wird erlaubt
$IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j ACCEPT # eingehender ping wird beantwortet
# DNS
$IPTABLES -A OUTPUT -o $EXT -p UDP --dport 53 -j ACCEPT
# HTTP
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 443 -j ACCEPT
# SMB
$IPTABLES -A OUTPUT -o $INT -p TCP --sport $highports --dport 137 -j ACCEPT
$IPTABLES -A OUTPUT -o $INT -p UDP --sport $highports --dport 137 -j ACCEPT
$IPTABLES -A OUTPUT -o $INT -p TCP --sport $highports --dport 138 -j ACCEPT
$IPTABLES -A OUTPUT -o $INT -p UDP --sport $highports --dport 138 -j ACCEPT
$IPTABLES -A OUTPUT -o $INT -p TCP --sport $highports --dport 139 -j ACCEPT
$IPTABLES -A OUTPUT -o $INT -p UDP --sport $highports --dport 139 -j ACCEPT
# FTP
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 21 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 20 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport $highports -j ACCEPT
# POP3
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 110 -j ACCEPT
# NTP
$IPTABLES -A OUTPUT -o $EXT -p UDP --sport $highports --dport 37 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport $highports --dport 37 -j ACCEPT
# Von Innen erlauben (Squid, Sendmail, pop3, Webmin, Samba und Telnet)
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 3128 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport smtp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport pop3 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 81 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 23 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 37 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 37 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --sport $highports --dport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INT -s $INTERN -p UDP --sport $highports --dport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


Falls es dann immer noch nicht geht, brauch ich mehr Info, z.B. über welches Interface (eth0 warsch.) du mit Samba zugreifen willst.

Operator29
30.12.01, 16:10
Hi Geronet,

habe das ausgetauscht und es geht leider immer noch nicht. Habe eth0 fürs Internet und eth1 fürs interne Netz. Solltest du noch mehr Infos brauchen sag einfach bescheid. Danke schonmal im voraus.

Operator29

geronet
30.12.01, 16:50
Hä? Dann ist bei dir ja das INT und EXT umgedreht, und in dem Script müsste demnach alles falschrum sein..
Die offenen Ports innen sind dann aussen offen und andersrum!?!

Operator29
30.12.01, 16:57
Hi Geronet,

aber ich definiere doch oben welches Interface welche Karte benutzt wie kann das dann andersrum sein???????

Ausschnitt:

# 3.Teil: Interfaces

set EXT = eth1
set INT = eth0
set IF = ($EXT $INT)
set ANY = 0.0.0.0/0 # Wildcard

Wäre cool wenn du dein ICQ starten würdest dann könnten wir das ganze per Chat lösen. Meine Nummer ist 85410532

ArneE
09.04.02, 15:13
Hallo,

ich verwende folgendes Script:

#!/bin/bash
#
# /etc/ppp/ip-up.local
#
# User-Addons, die nach dem Verbindungsaufbau ausgefuehrt werden
# sollen
#
# Written: Michael@adsl4linux.de
#
# Most ideas and iptables-syntax from: packetfilter
# Written by Alexander Stielau (aleks@buug.de)
# http://www.buug.de/~aleks/iptables

####
#
# Einige Parameter, die uns der pppd mit uebergibt
#
####

# Interface-name (Device der aktuellen Verbindung, z.B. ppp0)
DEV_INET=$1

# local-IP-address (IP-Adresse, die wir vom Provider zuegwiesen bekommen
# haben
IP_INET=$4

# remote-IP-address (unsere Gegenstelle beim Provider)
IP_GATEWAY=$5

####
#
# Einige weitere Variablen, die praktisch sein koennen bzw. die
# benoetigt werden
#
####

# Das Device auf LAN-Seite
DEV_LAN=eth0
IP_LAN=192.168.99.1

# Loopback Device. Hat jeder. Finger weg!
DEV_LOOP=lo
IP_LOOP=127.0.0.1

# Kürzel für alle IP-Adressen
ANY=0.0.0.0/0

# Kürzel für alle IP-Adressen im eigenen LAN
LOC_NET=192.168.99.0/24

# Das aktuelle Datum und die Uhrzeit
DATE=$(date)

# Vollen Pfad von iptables
IPTABLES=/usr/sbin/iptables

####
#
# Hier beginnt das eigentliche Masquerading- und Firewallskript
#
####

# IP-Forwarding im Kernel zunächst deaktivieren - wird am Schluss des Skriptes
# wieder aktiviert
echo 0 > /proc/sys/net/ipv4/ip_forward

# Benoetigte Module laden
modprobe ip_tables &> /dev/null
modprobe ip_conntrack &> /dev/null
modprobe ip_conntrack_ftp &> /dev/null
modprobe ipt_state &> /dev/null
modprobe iptable_nat &> /dev/null
modprobe ipt_REJECT &> /dev/null
modprobe ipt_MASQUERADE &> /dev/null

# Alle alten Regeln löschen, anschließend die Default-Policy setzen
$IPTABLES -F
$IPTABLES -X
$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -t filter -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X

# Wenn keine andere Regel greift, alles verwerfen
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# PRE- und POST-Routing in der nat-Tabelle erlauben
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT

#
#
# Zunächst alle "illegalen" Pakete blocken - trotz der Default-Policy "DROP"
# sinnvoll, einzeln aufzulisten, um sie korrekt zu "REJECT"en und auch
# mitzuloggen.
#
#

# Ersteinmal alles löschen, was generell kaputt ist oder
# Angriffsversuche darstellen könnte.
$IPTABLES -N invalid
$IPTABLES -A INPUT -m state --state INVALID -i ! $DEV_LOOP -j invalid
$IPTABLES -A FORWARD -m state --state INVALID -j invalid
$IPTABLES -A INPUT -m unclean -i ! $DEV_LOOP -j invalid
$IPTABLES -A invalid -m limit -j LOG --log-prefix "invalid "
$IPTABLES -A invalid -j REJECT

#
# Scan-Pakete: log and drop
#

# Blocke sog. XMAS-Pakete
$IPTABLES -N xmas
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j xmas
$IPTABLES -A FORWARD -p tcp --tcp-flags ALL ALL -j xmas
$IPTABLES -A xmas -m limit -j LOG --log-level info --log-prefix "xmas-scan "
$IPTABLES -A xmas -j REJECT

# Blocke NULL Pakete
$IPTABLES -N null_scan
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j NULL_SCAN
$IPTABLES -A FORWARD -p tcp --tcp-flags ALL NONE -j NULL_SCAN
$IPTABLES -A null_scan -m limit -j LOG --log-level info --log-prefix \
"null-scan "
$IPTABLES -A null_scan -j REJECT

# Spoofed packets: log and drop
$IPTABLES -N spoofing
$IPTABLES -A INPUT -i $DEV_LAN -s ! $LOC_NET -j spoofing
$IPTABLES -A FORWARD -i $DEV_LAN -s ! $LOC_NET -j spoofing
$IPTABLES -A FORWARD -i $DEV_INET -s 192.168.0.0/16 -j spoofing
$IPTABLES -A FORWARD -i $DEV_INET -s 172.16.0.0/12 -j spoofing
$IPTABLES -A FORWARD -i $DEV_INET -s 10.0.0.0/8 -j spoofing
$IPTABLES -A spoofing -m limit -j LOG --log-level info --log-prefix "spoofing "
$IPTABLES -A spoofing -j REJECT

# icmp handling - ICMP-Pakete werden erlaubt, bis auf type 5 (redirect)
$IPTABLES -N icmp_allow
$IPTABLES -N icmp_reject
$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow
$IPTABLES -A INPUT -i $DEV_INET -p icmp --icmp-type 5 -m limit -j icmp_reject
$IPTABLES -A icmp_allow -j ACCEPT
$IPTABLES -A icmp_reject -m limit -j LOG --log-prefix "icmp_rej "
$IPTABLES -A icmp_reject -j REJECT --reject-with icmp-host-unreachable

#
#
# Freischalten, was auf dem *Router* benötigt wird
#
#

# Bereits bestehende Verbindungen werden immer akzeptiert: das spart
# das expizite freischalten der INPUT-Pakete bei erlaubten Verbindungen
# ein
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Verbindungen zum loopback-Device - Das ist NOTWENDIG
$IPTABLES -N lo_accept
$IPTABLES -A INPUT -i $DEV_LOOP -m state --state NEW -j lo_accept
$IPTABLES -A OUTPUT -o $DEV_LOOP -m state --state NEW -j lo_accept
$IPTABLES -A lo_accept -j ACCEPT

# Pings vom Gateway erlauben
$IPTABLES -N icmp_gate
$IPTABLES -A OUTPUT -p icmp -j icmp_gate
$IPTABLES -A icmp_gate -j ACCEPT

# Erlaube www/ftp vom Gateway (z. B. beim Update übers Inet)
$IPTABLES -N www_gate
$IPTABLES -A OUTPUT -p tcp --dport 21 -s $IP_INET -m state --state NEW \
-o $DEV_INET -j www_gate
$IPTABLES -A OUTPUT -p tcp --dport 80 -s $IP_INET -m state --state NEW \
-o $DEV_INET -j www_gate
$IPTABLES -A www_gate -j ACCEPT

# timeserver: erlaubt das Holen der aktuellen Zeit aus dem Inet
$IPTABLES -N ntp_gate
$IPTABLES -A OUTPUT -p udp --dport 123 -s $IP_INET -m state --state NEW \
-o $DEV_INET -j ntp_gate
$IPTABLES -A ntp_gate -j ACCEPT

# DNS erlauben
$IPTABLES -N dns_gate
$IPTABLES -A OUTPUT -p udp -o $DEV_INET --dport 53 -m state --state NEW \
-j dns_gate
$IPTABLES -A dns_gate -j ACCEPT

# ssh-Verbindungen erlauben (aus dem lokalen Netz, vom Gateway nach aussen):
# Bei gewünschten Verbindungen von aussen an das Gateway entpsrechende Zeile
# mit aktivieren!
$IPTABLES -N ssh_gate
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 22 -j ssh_gate
$IPTABLES -A INPUT -p tcp -m state --state NEW -s $LOC_NET --dport 22 \
-d $IP_LAN -j ssh_gate
#$IPTABLES -A INPUT -p tcp -m state --state NEW -d $IP_INET --dport 22 \
# -j ssh_gate
$IPTABLES -A ssh_gate -j ACCEPT

# Smtp-Verbindungen vom Gateway nach aussen (und ins LAN) erlauben
$IPTABLES -N smtp_gate
$IPTABLES -A OUTPUT -p tcp -o $DEV_INET -m state --state NEW \
--dport 25 -j smtp_gate
$IPTABLES -A OUTPUT -p tcp -o $DEV_LAN -m state --state NEW \
--dport 25 -d $LOC_NET -j smtp_gate
$IPTABLES -A smtp_gate -j ACCEPT

# Pop3-Verbindungen vom Gateway nach aussen erlauben
$IPTABLES -N pop3_gate
$IPTABLES -A OUTPUT -p tcp -o $DEV_INET -m state --state NEW \
--dport 110 -j pop3_gate
$IPTABLES -A pop3_gate -j ACCEPT

#
#
# Freischalten, was auf dem *Router* benötigt wird
#
#

# Bereits bestehende Verbindungen werden immer akzeptiert: das spart
# das expizite freischalten der INPUT-Pakete bei erlaubten Verbindungen
# ein
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# NAT/Masquerading ist notwendig
$IPTABLES -t nat -A POSTROUTING -o $DEV_INET -s $LOC_NET -j SNAT \
--to-source $IP_INET

# Das bekannte MTU/MSS-Spielchen bei ADSL und PPPoE
$IPTABLES -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS \
--clamp-mss-to-pmtu

# Einige Dienste, die man 100%ig nicht nach draussen lassen will, besonders
# wichtig bei Windowskisten, die sonst so ziemlich alles nach aussen pusten,
# was nur irgendwie gefährlich ist. "It's not a bug, itÄs a feature" - ja ja.
# Für weitere Details zu den Ports: siehe /etc/services
$IPTABLES -A INPUT -p tcp -m multiport \
--sport 135,137,138,139,67,68,69,23,111,161,1433 -j REJECT
$IPTABLES -A INPUT -p udp -m multiport \
--sport 135,137,138,139,67,68,69,23,111,161,1433 -j REJECT
$IPTABLES -A INPUT -p tcp -m multiport \
--dport 135,137,138,139,67,68,69,23,111,161,1433 -j REJECT
$IPTABLES -A INPUT -p udp -m multiport \
--dport 135,137,138,139,67,68,69,23,111,161,1433 -j REJECT
$IPTABLES -A FORWARD -p tcp -m multiport \
--sport 135,137,138,139,67,68,69,23,111,161,1433 -j REJECT
$IPTABLES -A FORWARD -p udp -m multiport \
--sport 135,137,138,139,67,68,69,23,111,161,1433 -j REJECT
$IPTABLES -A FORWARD -p tcp -m multiport \
--dport 135,137,138,139,67,68,69,23,111,161,1433 -j REJECT
$IPTABLES -A FORWARD -p udp -m multiport \
--dport 135,137,138,139,67,68,69,23,111,161,1433 -j REJECT

# Für's lokale LAN alles weitere erlauben. Sicherer ist es, wie oben beim
# Gateway jeden einzelnen Dienst freizuschalten. Das ist aber sehr
# zeitaufwendig und da die Rechner nicht direkt von aussen erreichbar sind,
# auch nicht wirklich notwendig
$IPTABLES -N locnet_out
$IPTABLES -A INPUT -s $LOC_NET -i $DEV_LAN -m state --state NEW -j locnet_out
$IPTABLES -A FORWARD -s $LOC_NET -i $DEV_LAN -o $DEV_INET \
-m state --state NEW -j locnet_out
$IPTABLES -A locnet_out -j ACCEPT

#
#
# Abschluss-Regeln
#
#

# Alles Loggen, was bis jetzt durchgegangen ist. Sollte man sich genauer
# anschauen, wenn das im Log auftaucht
$IPTABLES -A INPUT -m limit -j LOG --log-prefix "FINAL IN "
$IPTABLES -A OUTPUT -m limit -j LOG --log-prefix "FINAL OUT "
$IPTABLES -A FORWARD -m limit -j LOG --log-prefix "FINAL FOR "

# Und dann alles abblocken, was bis hierin durchgegangen ist
$IPTABLES -A INPUT -j REJECT
$IPTABLES -A OUTPUT -j REJECT
$IPTABLES -A FORWARD -j REJECT

# Forwarding im Kernel nun wieder aktivieren
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp

# IP-Spoofing aktivieren - Sollte unter SuSE leichter in /etc/rc.config
# gesetzt werden, ansonsten hier aktivieren
#for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
# echo 1 > $f
#done

Ich habe ebenfalls das Problem, dass Samba nicht mehr geht, wenn die Firewall-Regeln einmal aktiviert wurden.
Kannst du vielleicht sagen, worauf es ankommt (Ports o.ä.) bzw. wenn du ein bisschen Zeit hast, dir meine Regeln kurz anzugucken?

Danke!