FTP und pf problem

Mr. BBQ

Der Wurstfachverkäuferin
Ich hab bei meinem freund nun auch einen openbsd router aufgestellt und nun wollte er was auf meinem webspace hochladen. der webspace liegt auf meinem server zu hause. jedesmal wenn er connectet sieht es so aus als würd es funktionieren, jedoch sieht er keine ordner von meinem webspace. anscheinend wird irgendein port geblockt. von meiner arbeit aus kann ich aber auf meinen server rauf. ich denk mal dass irgendwas in der pf.conf seines routers nicht passt. die pf.conf ist fast gleich wie meine zu hause. ich versteh einfach nicht wieso das hier nicht funzt. kann mir bitte jemand helfen.

Code:
# our defines
ext_if="ppp0"
int_if="rl0"
if_to_ext_if="vr0"
internal_net="192.168.0.0/24"

table <unroutable> { 127.0.0.1/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, !$internal_net, 255.255.255.255/32 }

# make stats for the ADSL-connection
set loginterface $ext_if

# close inactive connections faster - less memory is needed
set optimization aggressive

# clean fragmented packets
scrub on $ext_if all fragment reassemble random-id

# force packets to conform to specifications.  You can miss off the
# no-df if you don't intend to use IPSec.
scrub in  all no-df
scrub out all no-df

# enable forwarding
nat on $ext_if from $internal_net to any -> $ext_if

# ... in the filtering section of pf.conf ...

# predefined workstations
preimes = "192.168.0.101"

# ports that should be able to reach from outside
ssh_ports               = "{ 2222 }"
im_ports                = "{ 1863 5190 5222 }"
bittorrent_ports        = "{ 6969, 6881:6999 }"
dns_port                = "{ 53 }"

# bittorrent stuff
rdr on $ext_if proto tcp from !$internal_net to any port 6969 -> $preimes port 6969
rdr on $ext_if proto { tcp udp} from !$internal_net to any port 6881:6999 -> $preimes port 6881:6999

# we don't want IPv6
block quick inet6

# don't allow IP spoofing
block in log quick on $ext_if inet from <unroutable> to any
block in log quick on $ext_if inet from any to <unroutable>

# allow to ping this server
pass in quick on $ext_if inet proto icmp all icmp-type 8 code 0 keep state

# filter rules for $ext_if inbound
block in on $ext_if all
pass  in on $ext_if inet proto { tcp udp} from any to $preimes port $bittorrent_ports flags S/SAFR keep state
pass  in on $ext_if inet proto tcp from any to any port $ssh_ports flags S/SA keep state
# filter rules for $ext_if outbound
block out on $ext_if all
pass  out on $ext_if inet proto tcp from $ext_if to any flags S/SA keep state
pass  out on $ext_if inet proto { udp icmp } from $ext_if to any keep state
pass  out on $ext_if inet proto { tcp udp } from $ext_if to any port domain keep state
pass  out on $ext_if inet proto tcp from $ext_if to any port $ssh_ports flags S/SA keep state
pass  out on $ext_if inet proto tcp from $ext_if to any port $im_ports flags S/SA keep state
pass  out on $ext_if from $preimes to any

# filter rules for $int_if inbound
block in on $int_if all
pass  in on $int_if from $internal_net

# filter rules for $int_if outbound
block out on $int_if all
pass  out on $int_if from any to $internal_net

der account von ihm ist auf jedenfall ok.

danke schon im voraus
 
Moin moin.

Die Workstation $preimes ist der FTP-Client von dem zu deinem Server connected werden soll? Dann musst du auch einen state erzeugen.

Überprüfe doch mal die Outbound-Regeln die du gepostet hast. PF basiert auf "last match". Wenn $preimes sich nach draußen connecten will, wird kein state erzeugt.

Gruß
morph
 
du meinst wohl die zeile

Code:
pass  out on $ext_if from $preimes to any

da hab ich jetzt noch ein keep state hinzugefügt. aber im endeffekt hats nix bracht

sein ftp-client meldet immer

Code:
connecting data channel to 212.41.255.73:5,75(1355)
PORT 192,168,0,101,8,155
500 Illegal PORT command
Port failed 500 Illegal PORT command
 
man ftp-proxy
man pf.conf und darin /ftp-proxy

SuFu Forum ftp-proxy bzw Google => openbsd pf ftp-proxy

und ausprobieren.

Das Ding dient da zu, da FTP äh etwas speziell ist beim aktive ftp von wegen wo wann welcher port. das die firewall bzw ftp-proxy sich zwischen die Kommunikation der beiden ftp-partner stellt und das management übernimmt. (so ungefähr)
 
Zuletzt bearbeitet:
Zurück
Oben