Hi,

I have a problem getting my ftp client to work through a pf firewall. I
have a local machine (quark) with only one interface (fxp0) which
connects to the internet through a
router. PF is running on quark with a very simple set of rules (see
below). I tried to follow the FAQ and the ftp-proxy man page to get
those rules working, but they don't. I guess I am just doing something
stupid or that I really don't understand what is going on...

I tried setting net.inet.ip.forwarding=1 and running ftp-proxy with the
-r flag, but nothing works. When I try to connect with gftp I get error
message

Looking up ftp.openbsd.org
Trying openbsd.sunsite.ualberta.ca:21
Connected to ftp.openbsd.org:21
220-
220-                 Welcome to SunSITE Alberta
220-
220-     at the University of Alberta, in Edmonton, Alberta, Canada
220-
220-All connections to and transfers from this server are logged. If 
220-you do not like this policy, please disconnect now.
220-
220-You may want to grab the index file called "ls-lR.gz" in /pub.  It
is 
220-updated nightly with the contents of the ftp tree.  
220-
220-    If you have any questions, hints, or requests, please email
220-
220-            [EMAIL PROTECTED]
220-
220 
USER anonymous

331 Who are you impersonating today?
PASS xxxx
230-
230-    Welcome to Sunsite Alberta
230- Login Successful.
230 Your data rate unrestricted
SYST

215 UNIX Type: L8
TYPE I

200 Switching to Binary mode.
CWD /pub

250 Directory successfully changed.
Loading directory listing /pub from server (LC_TIME=C)
PASV

227 Entering Passive Mode (129,128,5,191,164,210)
Cannot create a data connection: No route to host
Disconnecting from site ftp.openbsd.org


So it seems that the connection gets established, but nothing can be
transferred... I get similar messages when using ftp from a terminal.
This is all on an OpenBSD 4.1 box.


[EMAIL PROTECTED] loic> cat /etc/pf.conf                                        
      
#       $OpenBSD: pf.conf,v 1.34 2007/02/24 19:30:59 millert Exp $
#
# See pf.conf(5) and /usr/share/pf for syntax and examples.
# Remember to set net.inet.ip.forwarding=1 and/or
# net.inet6.ip6.forwarding=1
# in /etc/sysctl.conf if packets are to be forwarded between interfaces.

# Macros
ext_if="fxp0"
tcp_services="{ ssh, smtp, domain, www, pop3, auth, sftp, \
                pop3s, imap, imaps, https }"
udp_services="{ domain, ntp }"
icmp_types="echoreq"

# Tables

# Options
set block-policy return
set skip on lo

# Scrub
scrub in

# Queueing

#Translation
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr pass on $ext_if proto tcp from any to any port ftp -> \
    127.0.0.1 port 8021


# Filter rules
#antispoof quick for $ext_if
block all
anchor "ftp-proxy/*"
pass in on $ext_if proto tcp from any to $ext_if port ssh
pass out proto tcp from any to any port 21
pass out proto tcp to any port $tcp_services
pass out proto udp to any port $udp_services
pass out inet proto icmp all icmp-type $icmp_types
pass out proto tcp to www-atrium.bib.umontreal.ca port 8000

# Allow traceroute (8) to pass through
pass out on $ext_if inet proto udp from any to any\
        port 33433 >< 33626




Any help is appreciated.
Thanks in advance,

Looc

Reply via email to