[pf4freebsd] Re: nfsd send error 1 probably caused by pf ?

Florian C. Smeets flo at kasimir.com
Wed Sep 15 20:56:14 PDT 2004


Pyun YongHyeon wrote:
> Does nfs client is FreeBSD-CURRENT machine?
clients and server are all -CURRENT from within the last 4 or 5 days

> Which NFS version do you use?(NFS V2 or NFS V3)
> Do you use some special mount options such as -r or -w?

Here is my fstab on the clients:

172.30.1.1:/space/ports /usr/ports  nfs rw,nfsv3,tcp  0       0
172.30.1.1:/space/src   /usr/src    nfs rw,nfsv3,tcp  0       0
172.30.1.1:/space/obj   /usr/obj    nfs rw,nfsv3,tcp  0       0

> Do you have a scrub rule such as 'reassemble tcp'?
> Can you post entire pf ruleset?

it is attached

if i remove this line (the last but one) the problem disapears:

pass out quick on $Int keep state

Yesterday i recognized that it is useless in my config... because of no=20
block rules on $Int.

> (I want to reproduce the problem on my box.)
>=20
> BTW, there might be bugs in FreeBSD-CURRENT nfs code.
> If you read CURRENT list you already noticed some users reported
> nfs problems.

yeah i saw it.

thanks for the help so far,
flo



-- Attached file included as plaintext by Ecartis --
-- File: pf.conf

### VARIABLEN ###

    Ext =3D "tun0"            # Device an dem das Internet angeschlossen =
ist=20
    Int =3D "xl0"      # Device an dem das interne Netz haengt
    IntNet =3D "172.30.1.0/24"      # Adressraum des internen Netzes
    RouterIP =3D "172.30.1.1"       # IP Adresse des Routers
    Loop =3D "lo0"                   # Loopback Device

    # Adressen die auf dem externen Device nicht geroutet werden
    # (Adressbereich des internen Netzes muss man wegen der Weiterleitung=
en zulassen)
    NoRoute =3D "{ 127.0.0.1/8, 172.16.0.0/12, 10.0.0.0/8, 255.255.255.25=
5/32 }"

    # Ports die geoeffnet werden sollen
    InServicesTCP =3D "{ ssh, smtp, www, 4661, 4662, 6881, 6882, 6883, 68=
84, 6885, 6886, 6887, 6888, 6889  }"
    InServicesUDP =3D "{ 4665, 4672 }"


    ### OPTIONS ###

    # Macht Statistiken fuer die DSL-Verbindung (pfctl -s info)
    set loginterface $Ext

    # Beendet inaktive Verbindungen schneller - geringerer Speicherverbra=
uch.
    set optimization aggressive

    # Fragmentierte Pakete saeubern
    scrub on $Ext all fragment reassemble random-id


### queueing

#altq on $Ext priq bandwidth 100Kb queue { q_pri, q_def }
#queue q_pri priority 7
#queue q_def priority 1 priq(default)
#

    ### NAT & FORWARD ###

    # NAT aktivieren (unter Linux als Masquerading bekannt)
    nat on $Ext from $IntNet to any -> $Ext #static-port

    # Active FTP - Umleitung zu unserem ftp-proxy
    #rdr on $Int proto tcp from !$RouterIP to !$IntNet port 21 -> 127.0.0=
.1 port 8081

# Transparent squid
rdr on $Int inet proto tcp from any to any port www -> 127.0.0.1 port 808=
0

rdr on $Ext inet proto tcp from any to any port 4661 -> 172.30.1.2 port 4=
661
rdr on $Ext inet proto tcp from any to any port 4662 -> 172.30.1.2 port 4=
662
rdr on $Ext inet proto udp from any to any port 4665 -> 172.30.1.2 port 4=
665
rdr on $Ext inet proto udp from any to any port 4672 -> 172.30.1.2 port 4=
672
rdr on $Ext inet proto tcp from any to any port 6884 -> 172.30.1.8 port 6=
884
rdr on $Ext inet proto tcp from any to any port 6885 -> 172.30.1.8 port 6=
885
rdr on $Ext inet proto tcp from any to any port 6886 -> 172.30.1.8 port 6=
886
rdr on $Ext inet proto tcp from any to any port 6887 -> 172.30.1.8 port 6=
887
rdr on $Ext inet proto tcp from any to any port 6888 -> 172.30.1.8 port 6=
888
rdr on $Ext inet proto tcp from any to any port 6889 -> 172.30.1.8 port 6=
889

    rdr-anchor redirect


    ### FILTER ###

    # Zum Debuggen....
   #pass quick all             # Alles durchlassen

    # Generelle Block Regel
    block on $Ext

    # Freiwillig machen wir keinen mucks ;)
    block return log on $Ext

    # Wir wollen kein IPv6.0
    block quick inet6

    # Loopback Device darf alles
    pass quick on $Loop

#pass out on $Ext proto tcp from $Ext to any flags S/SA keep state queue =
(q_def, q_pri)
#pass in  on $Ext proto tcp from any to $Ext flags S/SA keep state queue =
(q_def, q_pri)

    # Erschwert scannen mit nmap und co.
    block in log quick on $Ext inet proto tcp from any to any flags FUP/F=
UP
    block in log quick on $Ext inet proto tcp from any to any flags SF/SF=
RA
    block in log quick on $Ext inet proto tcp from any to any flags /SFRA


    # Active FTP erlauben
    #pass in quick on $Ext inet proto tcp from any to any port > 49151 us=
er proxy flags S/SAFR keep state

    # Ping akzeptieren (ablehnen ist uebrigends wenig sinnvoll)
    pass in quick on $Ext inet proto icmp all icmp-type 8 code 0 keep sta=
te

    # Ports nach aussen oeffnen
    pass in quick on $Ext inet proto tcp from any to any port $InServices=
TCP flags S/SAFR keep state label ServicesTCP
    pass in quick on $Ext inet proto udp from any to any port $InServices=
UDP

    anchor passin

    # IP Spoofing verhindern
    block in log quick on $Ext inet from $NoRoute to any
    block in log quick on $Ext inet from any to $NoRoute
=20

    # Raus darf (fast) alles
    pass out quick on $Int keep state
    pass out quick on $Ext keep state






More information about the freebsd-pf mailing list