ftp verbindet aber listet keine Verzeichnisse

diirch

diirch

Mit Glied
Hallo
ich habe ein Problem mit meiner Firewall. Glaube ich jedenfalls da
sie das einzige ist was ich geändert habe.
Es funktioniert alles perfekt nur nicht ftp. Es ist egal ob im textmode
oder mit gftp. Der Client verbindet aber beim auflisten bzw. ls bleibt der client
hängen.

Weiss hie vielleicht jemand woran das liegt?

Code:
#!/bin/sh
cmd="ipfw add"
skip="skipto 500"
pif=tun0
ks="keep-state"
good_tcpo="21,22,25,37,43,53,80,443,110,119,5190,5999"
good_udpo="27950,27960"
ipfw -q -f flush

$cmd 002 allow all from any to any via xl0
$cmd 003 allow all from any to any via lo0

$cmd 100 divert natd ip from any to any in via $pif
$cmd 101 check-state

# Authorized outbound
$cmd 120 $skip udp from any to 213.155.150.205 53 out via $pif $ks
$cmd 121 $skip udp from any to 63.208.196.90 53 out via $pif $ks
$cmd 122 $skip udp from any to 213.191.74.18 53 out via $pif $ks
$cmd 123 $skip udp from any to 213.191.92.87 53 out via $pif $ks
$cmd 125 $skip udp from any to any $good_udpo out via $pif $ks
$cmd 130 $skip tcp from any to any $good_tcpo out via $pif setup $ks
$cmd 135 $skip icmp from any to any out via $pif $ks

# Denyed inbound
$cmd 300 deny all from 192.168.0.0/16  to any in via $pif  #RFC 1918 private IP
$cmd 301 deny all from 172.16.0.0/12   to any in via $pif  #RFC 1918 private IP
$cmd 302 deny all from 10.0.0.0/8      to any in via $pif  #RFC 1918 private IP
$cmd 303 deny all from 127.0.0.0/8     to any in via $pif  #loopback
$cmd 304 deny all from 0.0.0.0/8       to any in via $pif  #loopback
$cmd 305 deny all from 169.254.0.0/16  to any in via $pif  #DHCP auto-config
$cmd 306 deny all from 192.0.2.0/24    to any in via $pif  #reserved for docs
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif  #Sun cluster
$cmd 308 deny all from 224.0.0.0/3     to any in via $pif  #Class D & E multicas

# Authorized inbound
$cmd 400 allow udp from any to any 27960 in via $pif
$cmd 420 allow tcp from any to me 25 in via $pif setup limit src-addr 2
$cmd 421 allow tcp from any to me 80 in via $pif setup limit src-addr 2
$cmd 422 allow tcp from any to me 110 in via $pif setup limit src-addr 2
$cmd 423 allow tcp from any to me 443 in via $pif setup limit src-addr 2
$cmd 424 allow icmp from any to me via $pif icmptypes 8

$cmd 450 deny log ip from any to any

# outbound stateful rules
$cmd 500 divert natd ip from any to any out via $pif
$cmd 510 allow ip from any to any

FreeBSD7 Stable
pppoe

Ich kann mir absolut nicht vorstellen warum ausgerechnet das ls in ftp nicht geht.

Gruss Diirch

Edit: Ich hatte die ports 27960 und 27950 für Q3-artige Games hinzu gefügt.
Aber ein entfernen der Ports stellt die Ftp funktion nicht wieder her.
Den tcpmssd hab ich durch mssfixup in der ppp.conf ersetzt.
 
Zuletzt bearbeitet:
Funktionieren sowohl active als auch passive FTP-Mode nicht? Beim active Mode wird ja eine Inbound-Verbindung für die Datenverbindung aufgebaut, für die du keine Regel drin hast, soweit ich das sehe. Hab schon eine Weile nicht mehr mit ipfw gearbeitet.
 
Ich hab gerade was in der ftp man dazu gefunden.
Wenn ls nicht funktioniert soll man den extended passiv-mode ausschalten.
Jetzt bekomme ich die fehlermeldung nicht mehr aber er hängt trotzdem.
Mit einer inbound Regel hab ich leider so meine Probleme weil der ftp
immer andere Ports verwendet.
Ich hab mal versucht eine .netrc zu benutzen in der EPSV aus ist.
Aber was noch viel schlimmer ist:
Meine Ports können nicht von ftp fetchen. *heul*
Ich weiss leider auch nicht genau seit wann das nicht mehr geht.
Das einzige was ich tat wahr den tcpmssd raus zu schmeissen.
Inzwischen hab ich den natürlich auch mal wieder rein getan.
Selbstverständlich ohne Resultat.

Irgendwie gehen mir die Optionen aus. Wenn du noch eine Idee hast stürze
ich mich auf sie. :)

Gruss Diirch
 
Bin jetzt mit BSD nicht so bewandert aber gibts da das Modul ip_contrack_ftp? Wenn ja, laden und die Ports 1024 - 65535 (destination und source) für den Datenkanal auf related,established.
Hoffe das hilft dir irgendwie.

grEeTz
 
conntrack_ftp gibt es bei BSD leider nicht (ist schliesslich kein iptables). Vielleicht hilft aber http://www.nagilum.net/gateway/index.html weiter. Da ist unter "01.0111 How to configure/install firewall, ipforward, logging?" eine Regel für Active FTP beschrieben.

Wenn ich mich recht entsinne hatte ich damals eine Regel um Verbindungen von Port 20 zu den Client-Rechner-Ports >1024 zuzulassen. Sah in etwa so aus:

allow tcp from any 20 to any 1024-65535 in setup keep-state
allow tcp from any to any 21 in setup keep-state
 
Genial! den port 20 hatte ich überhaupt nicht auf dem Zettel.
Auf die schnelle hab ichs zwar jetzt auch nicht hin bekommen
aber das wird. 8)
Wenns läuft poste ich natürlich.

vielen Dank

Gruss Diirch
 
Moin

So wie ich das sehe müssen neben Port 20 alle Ports > 1024 in beide richtungen für tcp offen sein.
Das finde ich ganz schön heftig wenn man bedenkt das wir uns
im "Bundestrojaner-Zeitalter" befinden. Da bei uns im Haus keiner
so wirklich ftp braucht liebäugel ich jetzt mit einem zweiten
Firewall-script. Dann muss ich halt bei portupgrade etc. mal die
Hosen runter lassen. :D
Aber wenn ich noch was Eleganteres hin bekomme (man gibt ja nicht auf)
dann poste ich es hier. :devil:

Gruss Diirch
 
Eigentlich müssen nur alle eingehenden Verbindungen von Port 20 des Servers auf deine Ports >1024 zugelassen sein. Das sollte eigentlich reichen.
 
Ich habs jetzt gerade hiermit probiert

$cmd 415 allow tcp from any 20,21,1024-65535 to any 20,21,1024-65535 in via $pif

wobei clients auf die ports 20,21 raus dürfen. >> NIX

Aktiv, Passiv, mit epsv und ohne

Er will einfach nicht.
Aber wenn ich das richtig verstanden habe wird auf den Clients auch ein Datenport > 1024 geöffnet. Irgendwie ist ftp schon ein recht eigenartiges
Protokoll.

Gruss Diirch
 
Bei FTP wird die Datenverbindung immer vom Server-Port 20 auf einen Client-Port >1024 gelegt. Daher sollte es eigentlich reichen, wenn man Verbindungen auf die Ports >1024 nur für Verbindungen zulässt, die vom Port 20 kommen. *grübel*
 
Jo
du hast recht
$cmd 130 $skip tcp from any to any 21,1024-65535 out via $pif
$cmd 420 allow tcp from any 20 to any 1024-65535 in via $pif

damit gehts

endlich portsnappen :D

Gruss Diirch
 
Warscheinlich wissen es alle hardcore Firewaller schon.:D
Aber ich hab jetzt mal ipf angetestet und muss sagen ich bin
begeistert.
Im ipnat bzw. in der ipnat.rules:
map tun0 192.168.xx.0/24 -> 0/32 proxy port 21 ftp/tcp
map tun0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcp
map tun0 192.168.xx.0/24 -> 0/32 portmap tcp/udp auto
ganz oben rein und eine ganz normale ich darf raus auf 21
Regel in in die ipf.rules.
Dann hat man kein riesen Loch "nur" wegen ftp in der FW.
Auf Wiedersehen ipfw obwohl mir der Syntax besser gefällt.

Gruss Diirch
 

Ähnliche Themen

pf problem

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Akonadi startet nicht mehr

Bruteforce-Angriffe auf FTP mit PF verhindern

CentOS 6.3 RADIUS - Keine Verbindung möglich

Zurück
Oben