PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables script - fehler -ftp



rogen
28.07.02, 18:24
Ich habe mir ein script zusammenkopiert , das mein server (apache, postifix , ..router ) ein bischen schützen soll.

Funktioniert alles super bis auf ein kleines problem und zwar wenn ich mit ftp was auf meinen server spielen möchte komme ich nicht rein. (von einem anderen rechner in meinen netz)
wenn ich aber was ins internet per ftp spiele funktioniert es super !

ftp protokoll

SYST
215 UNIX Type: L8
REST 100
350 Restarting at 100. But we're in ASCII mode
REST 0
350 Restarting at 0
PWD
257 "/" is your current location
TYPE A
200 TYPE is now ASCII
PASV
227 Entering Passive Mode (213,147,162,27,241,102)
Opening data connection IP: 213.147.162.27 PORT: 61798.
... es wird im ftp nichts angezeigt


mein script

#! /bin/sh
#
# ----- IP TABLES / FIREWALL ----
#
echo "Starting Firewall!"
#
#
iptables=/usr/sbin/iptables
#
# Benoetigte Module hinzufuegen
/sbin/modprobe ip_conntrack
#
# Zuruecksetzen aller Regeln
$iptables -F
$iptables -X
$iptables -Z
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
$iptables -P OUTPUT DROP
#

# für das netzwerk

iptables -A POSTROUTING -t nat -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.2 -j ACCEPT

iptables -A FORWARD -s 192.168.0.3 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.0.3 -p tcp --dport 110 -j ACCEPT


# Alle bereits bestehenden Verbindungen erlauben
$iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Erlauben von PING
$iptables -A INPUT -m limit -p ICMP --limit 1 --limit-burst 2 -j ACCEPT
$iptables -A OUTPUT -m limit -p ICMP --limit 1 --limit-burst 2 -j ACCEPT
#
# Erlauben von Loopback-Verbindungen
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT
#
#Erlauben von FTP (Client)
$iptables -A INPUT -p tcp --dport 21 -j ACCEPT
$iptables -A INPUT -p tcp --sport 21 -j ACCEPT

$iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -j ACCEPT
#
#Erlauben von SSH (Server und Client)
$iptables -A INPUT -p tcp --dport 22 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#
#Erlauben von pop3 (Server und Client)
$iptables -A INPUT -p tcp --dport 110 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 110 -j ACCEPT


#Erlauben von SMTP (Server und Client)
$iptables -A INPUT -p tcp --dport 25 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
#
# Erlauben von DNS
$iptables -A INPUT -p udp --sport 53 --dport 7531 -j ACCEPT
$iptables -A OUTPUT -p udp --sport 1024: --dport 53 -j ACCEPT
#
#Erlauben von HTTP (Server und Client)
$iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 1024: --dport 80 -j ACCEPT
#
#Erlauben von ident
$iptables -A INPUT -p tcp --dport 113 -j ACCEPT -m limit --limit 2 --limit-burst 4
$iptables -A OUTPUT -p tcp --sport 113 -j ACCEPT -m limit --limit 2 --limit-burst 4
#
#Erlauben von IMAP (Server und Client)
$iptables -A INPUT -p tcp --dport 143 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 143 -j ACCEPT
#
#Erlauben von HTTPS (Server und Client)
$iptables -A INPUT -p tcp --dport 443 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
#
#Erlauben von Webmin (auf port 10000)
$iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 10000 -j ACCEPT

# Alle bereits bestehenden Verbindungen erlauben
$iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


#
# Schluss und Logging
$iptables -A INPUT -j LOG
$iptables -A OUTPUT -j LOG
$iptables -A INPUT -p tcp --dport auth -j REJECT --reject-with tcp-reset
$iptables -A INPUT -j DROP
$iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
$iptables -A INPUT -p udp -j REJECT
$iptables -A INPUT -j DROP
#
$iptables -L

PhilD
28.07.02, 21:12
hi,

meiner meinung nach brauchst du noch eine "ftp-data" connection.
du solltest die regel

$iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT

noch erweitern, d.h. noch den port 20 mit dazu nehmen.

---> $iptables -A OUTPUT -p tcp --sport 20:21 -j ACCEPT


so far
PD