Regional-it archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Problemi con PF e ftp-proxy(8)



Ciao all'intera comunità NetBSD,
sto cercando di configurare PF su una macchina con NetBSD 5.0_BETA. Ho
ricompilato quindi il kernel abilitando pf(4) e pflog(4).

Ho poi iniziato ad editare secondo le mie necessità il file /etc/pf.conf
(allegato in questa email) bloccando *tutto* il traffico, sia in
entrata che in uscita (leggendo l'ottimo ``Firewalling with OpenBSD's PF
packet filter'' di Peter N. M. Hansteen[0]). Per tutti i servizi che utilizzo
(IM, OpenSSH, HTTP, ecc.) non ho nessun tipo di problema, non riesco
invece ad utilizzare FTP.

Seguendo la nuova procedura presente in NetBSD 5.0 ho letto
ftp-proxy(8) e l'ho abilitato su rc.conf aggiungendo le seguenti righe:

 ftp_proxy=YES
 ftp_proxy_flags="-A"

ed appositamente aggiunto le regole in pf.conf. Nonstante ciò non riesco
ad utilizzarlo completamente, ad esempio provando il tutto con ftp.netbsd.org
riesco a leggere il motd ma come digito un comando ottengo l'errore
``Can't connect to `204.152.190.13:56783': No route to host''.
Ecco un esempio:

 $ ftp ftp.netbsd.org
 Trying 2001:4f8:4:7:230:48ff:fe31:43f2:21 ...
 ftp: Can't connect to `2001:4f8:4:7:230:48ff:fe31:43f2:21': No route to host
 Trying 204.152.190.13:21 ...
 Connected to ftp.netbsd.org.
 220 ftp.NetBSD.org FTP server (NetBSD-ftpd 20080916) ready.
 331 Guest login ok, type your name as password.
 Password: 
 230-
        The NetBSD Project FTP Server located in Redwood City, CA, USA
 [...]
 ftp> ls
 229 Entering Extended Passive Mode (|||59962|)
 ftp: Can't connect to `204.152.190.13:59962': No route to host
 200 PORT command successful.
 
 421 Service not available, remote server timed out. Connection closed.
 ftp> 

Contemporaneamente a ftp(1) ho avviato tcpdump(1) intercettando il
traffico generato sull'interfaccia pflog0 ovvero secondo le mie regole
di pf(4) tutto il traffico che viene bloccato:

 # tcpdump -vv -i pflog0 
 tcpdump: WARNING: pflog0: no IPv4 address assigned
 tcpdump: listening on pflog0, link-type PFLOG (OpenBSD pflog file), capture 
size 96 bytes
 17:11:35.955544 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP 
(6), length 64) 192.168.1.15.65512 > ftp.netbsd.org.59962:  tcp 44 [bad hdr 
length 0 - too short, < 20]
 17:11:37.135839 IP (tos 0x0, ttl 48, id 0, offset 0, flags [DF], proto TCP 
(6), length 64) ftp.netbsd.org.62394 > 192.168.1.15.65511:  tcp 44 [bad hdr 
length 0 - too short, < 20]
 17:11:43.129846 IP (tos 0x0, ttl 48, id 0, offset 0, flags [DF], proto TCP 
(6), length 64) ftp.netbsd.org.62394 > 192.168.1.15.65511:  tcp 44 [bad hdr 
length 0 - too short, < 20]
 17:11:55.136752 IP (tos 0x0, ttl 48, id 0, offset 0, flags [DF], proto TCP 
(6), length 64) ftp.netbsd.org.62394 > 192.168.1.15.65511:  tcp 44 [bad hdr 
length 0 - too short, < 20]
 17:12:19.144640 IP (tos 0x0, ttl 48, id 0, offset 0, flags [none], proto TCP 
(6), length 64) ftp.netbsd.org.62394 > 192.168.1.15.65511:  tcp 44 [bad hdr 
length 0 - too short, < 20]

Allego il file di configurazione pf.conf, qualsisi tipo di suggerimento a
riguardo è apprezzato. Grazie in anticipo!

 
 [0]: http://home.nuug.no/~peter/pf/


Ciao, Leonardo
-- 
 Leonardo Taccari | Peace, love and NetBSD. | http://leot.netsons.org/
#       $NetBSD: pf.conf,v 1.4 2008/06/18 09:06:25 yamt Exp $

# Macros
#
icmp_types = "{ echoreq }"
ifs = "{ lii0, lo0 }"
tcp_services_in = "{ ssh }"
tcp_services_out = "{ http, https, imaps, ssh, xmpp-client, \
    587, 1863, 6667 }"
udp_services_out = "{ domain, ntp }"

# Tables
#
table <localnet> { 192.168.1.0/24, !192.168.1.1 }

# Options
#
set skip on lo0

# Scrub
#
scrub in all

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

# Filter rules
#
block log all

antispoof for $ifs

# Incoming packets
pass in inet proto tcp from <localnet> to any port $tcp_services_in

# Outgoing packets
# ICMP
pass out inet proto icmp all icmp-type $icmp_types keep state

# traceroute(8)
pass out inet proto udp from any to any port 33433 >< 33626 keep state

# FTP
anchor "ftp-proxy/*"
pass out inet proto tcp from any to any port ftp keep state flags S/SA

pass out inet proto udp from any to any \
    port $udp_services_out keep state
pass out inet proto tcp from any to any \
    port $tcp_services_out keep state flags S/SA


Home | Main Index | Thread Index | Old Index