PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FTP Verbindung über Linux Router



Xothous
22.01.03, 18:17
Hallo,

ich habe hier einen Linux Router und zwei WinXP Workstations.
Ich bin jetzt angefangen mich mit iptables zu beschäftigen, und habe bisher folgendes Script erstellt:



#!/bin/sh

IPTABLES="/usr/sbin/iptables"
EXT_DEV="ppp0"
INT_DEV="eth1"
INT_IP="192.168.0.1"
LAN="192.168.0.0/24"

# Alte Regeln löschen
$IPTABLES -t filter -F
$IPTABLES -t mangle -F
$IPTABLES -t nat -F
$IPTABLES -X

# Alles verbieten
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# loopback Device
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# SSH von innen zulassen
$IPTABLES -A INPUT -p tcp -s $LAN -d $INT_IP --sport 1024: --dport 22 -i $INT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $INT_IP -d $LAN --sport 22 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT

# HTTP
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 80 -o $EXT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 80 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT

# HTTPS
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 443 -o $EXT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 443 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT

# SMTP
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 25 -o $EXT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 25 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT

# POP3
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 110 -o $EXT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 110 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT

# IMAP
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 143 -o $EXT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 143 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT

# ICQ
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 443 -o $EXT_DEV -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --dport 1024: --sport 443 -i $EXT_DEV -m state --state ESTABLISHED,RELATED -j ACCEPT

# IRC
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 6668 -o $EXT_DEV -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --dport 1024: --sport 6668 -i $EXT_DEV -m state --state ESTABLISHED,RELATED -j ACCEPT

#FTP-Kontrollkanal
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 21 -o $EXT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 21 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT

#FTP-Datenkanal
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 20 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 20 -o $EXT_DEV -m state --state ESTABLISHED -j ACCEPT

# DNS tcp und udp
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 53 -o $EXT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 53 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p udp -s $LAN --sport 1024: --dport 53 -o $EXT_DEV -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p udp -d $LAN --sport 53 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED -j ACCEPT

#Masquerading
$IPTABLES -A POSTROUTING -j MASQUERADE -o $EXT_DEV -t nat


Soweit so gut, und alles was ich in dem Script zugelassen habe funzt auch super, nur das mit dem FTP bekomme ich nicht hin.

Wenn ich vom WinXP Client aus eine FTP Verbindung nach außen öffnen will wird der Kontrollkanal auch geöffnet so dass ich mich einloggen kann, aber dann beim einlesen des Verzeichnises bekomme ich folgende Fehlermeldung:

"425 Can´t build data connection: No route to host"

Was ist falsch an den Regeln für FTP?

Bitte um Hilfe

mfG Xothous


P.S. Habe mithilfe der Suchfunktion nichts gefunden

HangLoose
22.01.03, 18:26
hi

du musst beim datenkanal auch NEW erlauben, da bei einer passiven ftp sitzung die verbindung vom client aus aufgebaut wird, an den port den der server über die control connection mitgeteilt hat.


Gruß HL

Xothous
22.01.03, 18:40
Danke,

aber eigentlich sollte das mit aktivem FTP funzen, und dazu wird die Verbindung vom Server aus hergestellt.
Wenn ich dass alles richtig gelesen habe brauche ich dann kein NEW erlauben, weil durch das Modul ip_conntrack_ftp dann ja RELATED reicht, oder?

Aber nebenbei, wenn ich NEW eintrage funzt es auch nicht, weder aktiv noch passiv :(

Xothous

HangLoose
22.01.03, 19:14
hi


aber eigentlich sollte das mit aktivem FTP funzen, und dazu wird die Verbindung vom Server aus hergestellt. Wenn ich dass alles richtig gelesen habe brauche ich dann kein NEW erlauben, weil durch das Modul ip_conntrack_ftp dann ja RELATED reicht, oder?

warum aktiv? die meisten ftp-server setzen heutzutage doch auf passiv, denke ich mal.


Aber nebenbei, wenn ich NEW eintrage funzt es auch nicht, weder aktiv noch passiv

wenn ich jetzt nicht völlig daneben liege, geht die data connection komplett über die high ports.

$ipt -A FORWARD -i eth0 -o ppp0 -p TCP --sport $p_high --dport $p_high -m state --state NEW -j ACCEPT


$ipt -A FORWARD -i ppp0 -o eth0 -p TCP --sport $p_high --dport $p_high -m state --state ESTABLISHED, RELATED -j ACCEPT

versuch die regel mal


Gruß HL

Xothous
23.01.03, 15:40
Hallo,

funzt leider auch net :(

Es muß an diesem Teilstück liegen:


#FTP-Datenkanal
$IPTABLES -A FORWARD -p tcp -d $LAN --sport 20 --dport 1024: -o $INT_DEV -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s $LAN --sport 1024: --dport 20 -o $EXT_DEV -m state --state ESTABLISHED -j ACCEPT


Was kann daran falsch sein?
Oder hat es vielleicht noch was mit dem Masquerading zu tun?
Xothous

Xothous
23.01.03, 16:05
Habs mir doch gedacht dass es was mit dem routing zu tun hat.



modprobe ip_nat_ftp


und alles läuft wunderbar :D

Xothous