PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : active-/passive-ftp over lan/web on proftpd



Lightning
03.04.04, 02:59
ich habe ein sehr faszinierendes problem (wie eigentlich immer *g*).

mein server dient unter anderem auch als ftp-server per proftpd (running as standalone).
im internen netzwerk funktioniert dieser tadellos und verrichtet all seine dienste, wie ihm aufgetragen (login, daten, ...). genehmige ich jetzt auch usern von außen den zugriff auf meinen ftp, haut das ganze lustigerweise nichtmehr hin. ich selbst kann mir das ganze nicht wirklich erklären, habe aber die vermutung, dass das ganze irgendetwas mit active-/passive-ftp zu tun hat (deshalb auch mein posting in diesem forum). die in- und output-freigaben, die ich im netzwerk verwende habe ich auf das web übertragen, allerdings greifen diese hier nichtmehr richtig (bei kompletter erlaubnis von in- und output funktioniert mein ftp-server auch extern tadellos). laut meiner logfiles werden connections zwar korrekt hergestellt, allerdings bekommen die clients anscheinend keine informationen über den inhalte der verzeichnisse zugesandt.

vielleicht erkennt jemand von euch, warum das ganze im lan funktioniert im web aber nicht.


#! /bin/bash

# Var:
LANCARD=eth0
WEBCARD=eth1
WEB=ppp0
LAN=192.168.0.0/24
Lightning0=192.168.0.254
Lightning1=192.168.0.1

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

iptables -A FORWARD -i $WEB -o $LANCARD -p tcp -d $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $WEB -o $LANCARD -p udp -d $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o $WEB -j MASQUERADE


# FTPD on Lightning0 from LAN (funktioniert):
iptables -A INPUT -i $LANCARD -p tcp -s $LAN --dport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $LANCARD -p tcp -d $LAN --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $LANCARD -p tcp -s $LAN --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $LANCARD -p tcp -d $LAN --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT

# FTPD on Lightning0 from WEB (funktioniert nur teilweise):
iptables -A INPUT -i $WEB -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $WEB -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $WEB -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $WEB -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT

klemens
03.04.04, 03:17
modprobe ip_conntrack
modprobe ip_conntrack_ftp


(wobei meine Erfahrung ist, dass das auch keine 100% Garantie ist, dass dann alles funkt)

READY
03.04.04, 09:47
Aktive FTP Sessions sind nicht sehr sinnvoll da FTP Clients mit Firewalls oder Routern ohne umkonfiguration keine Chancen haben deinen FTP Server zu besuchen.

Daher empfehle ich dir deinen Server für passives FTP zu konfigurieren. Hierzu musst du bei der Firewall einige Ports öffnen.
Beim proftpd hast du die Möglichkeit einen passiven FTP Portbereich anzugeben welcher für passives FTP verwendet werden soll. Den genauen Names der Direktive weiss ich jetzt nicht, musst du mal in der Doku gucken, hier kannst du bspw. angeben Port 45000-48000 für passive FTP-Sessions zu verwenden, diese musst du dann auch in der Firewall öffnen.

Dann wird das funktionieren ;)

Du kannst dir dazu ja mal folgendes durchlesen: http://www.proftpd.de/7.0.html

-ready