Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Sep 2007 17:39:57 -0300
From:      "David Verzolla" <dverzolla@fcl.com.br>
To:        <freebsd-bugs@freebsd.org>
Subject:   Problem? With PF
Message-ID:  <94CADB570ACCB0418E8236C8F24BD95C01469F9E@VIRTUALEXCHANGE.corp.com>

next in thread | raw e-mail | index | archive | help
Hello,
I'm not sure about if this trouble must be posted in this list. BTW.

I'm working with two firewall box:
	- Dell poweredge 2950
		- First  network device BCE0
		- Second network device BCE1

	- HP ML350 G3
		- First network device BGE0
		- Second network device XL0

I'm working with PF Firewall + PFSYNC + VLANS (3 vlans) + CARP.
All interfaces is cloned with CARP.

The problem is:
My network is slow, when I try to connect in a web server, or try pings =
from my Firewall to some machine located in DMZ (tests from DMZ -> =
Firewall Box have the same result), I get this trouble:

The command: while true ; do ping -c 1 DMZ_IP ; done
Ping works in the most of tests, but some tests give me this error:

(For security reasons I suppress my original IP, sorry for =
inconvenience)

--- 201.x.x.x ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev =3D 0.194/0.194/0.194/0.000 ms
PING 201.x.x.x (201.x.x.x): 56 data bytes
64 bytes from 201.x.x.x: icmp_seq=3D0 ttl=3D64 time=3D0.197 ms

--- 201.x.x.x ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev =3D 0.197/0.197/0.197/0.000 ms
PING 201.x.x.x (201.x.x.x): 56 data bytes
64 bytes from 201.x.x.x: icmp_seq=3D0 ttl=3D64 time=3D0.192 ms

--- 201.x.x.x ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev =3D 0.211/0.211/0.211/0.000 ms
PING 201.x.x.x (201.x.x.x): 56 data bytes
---> ping: sendto: Operation not permitted

The ping returns "Operation not permitted".

Other command:
[root@f1000 /etc/pf]# ping 201.x.x.x
PING 201.x.x.x (201.x.x.x): 56 data bytes
ping: sendto: Operation not permitted
ping: sendto: Operation not permitted
ping: sendto: Operation not permitted
ping: sendto: Operation not permitted
64 bytes from 201.x.x.x: icmp_seq=3D4 ttl=3D64 time=3D2.636 ms
64 bytes from 201.x.x.x: icmp_seq=3D5 ttl=3D64 time=3D0.210 ms
64 bytes from 201.x.x.x: icmp_seq=3D6 ttl=3D64 time=3D0.136 ms

The ping returns "Operation not permitted" too.

I have other applications working with Ajax that is broken, the time to =
load all the resources is bigger, within this trouble (Ajax) its =
possible verify that the problem occur with TCP protocol as well. =20

When I disable PF, all works greatly.

Bellow my rules:
-- begin
#	$FreeBSD: src/etc/pf.conf,v 1.2.2.1 2006/04/04 20:31:20 mlaier Exp $
#	$OpenBSD: pf.conf,v 1.21 2003/09/02 20:38:44 david Exp $
#
# See pf.conf(5) and /usr/share/examples/pf for syntax and examples.
# Required order: options, normalization, queueing, translation, =
filtering.
# Macros and tables may be defined and used anywhere.
# Note that translation rules are first match while filter rules are =
last match.

# Macros: define common values, so they can be referenced and changed =
easily.

### NET DEVICES
ext_if		=3D	"bce0"
dmz_if		=3D	"vlan20"
corp_if		=3D	"vlan30"
ras_if		=3D	"vlan40"
sync_if		=3D	$ras_if

### ICMP OPTIONS
icmp_types=3D"{ echoreq, unreach }"


table <impsat>	 { 200.x.x.0/26   }
table <totalrange> { 201.x.x.0/20   }
table <dmz>        { 201.x.x.0/24   }


# Options: tune the behavior of pf, default values are given.
set optimization normal
#set timeout { tcp.closing 900, tcp.finwait 15, tcp.closed 90 }
set block-policy return
set state-policy floating=20
set skip on lo
set loginterface $ext_if
set fingerprints "/etc/pf/_pf.os"

# Normalization: reassemble fragments and resolve or reduce traffic =
ambiguities.
scrub in all

#### start
block in

# PFSYNC
pass on $sync_if proto pfsync

# Permit all out
pass out keep state

# PERMIT MULTI-CAST (CARP)
pass quick on { $dmz_if $corp_if $ras_if $ext_if } inet from any to =
224.0.0.0/4 allow-opts keep state

# PERMIT DNS OUT
pass in quick on { $dmz_if $corp_if $ras_if } inet proto { udp tcp } =
from any to any port 53 keep state

# PERMIT DMZ OUT
pass in quick on { $dmz_if } inet proto tcp from <dmz> to any \
	port 80 flags S/SA keep state

# PERMITE SSH=20
pass in quick on { $ext_if } inet proto tcp from <impsat> to any \
	port { 22 } flags S/SA keep state

# TEMP PERMIT, OLD NET -> NEW NET
pass quick inet proto tcp from <totalrange> to <impsat> \
	flags S/SA keep state

# ME
pass in quick on $ext_if inet proto tcp from <impsat> to $ext_if:network =
\
   port 22 flags S/SA keep state

pass in quick on $ext_if inet proto udp from <impsat> to $ext_if:network =
\
   port snmp keep state

pass in quick on $ext_if inet proto tcp from <totalrange> to =
$ext_if:network \
   port 22 flags S/SA keep state

pass in quick on $ext_if inet proto udp from <totalrange> to =
$ext_if:network \
   port snmp keep state

### GERAL RULES
## NTP
pass in quick on { $dmz_if } inet proto udp from 200.x.x.1 port { 123 } =
to any \
	port { 123 } keep state

### <NS1>
pass in quick on { $ext_if $corp_if } inet proto tcp from any port { 53 =
} to 200.x.x.2 \
	port { 53 } flags S/SA keep state

pass in quick on { $ext_if $corp_if } inet proto tcp from any to =
200.x.x.2 \
	port { 53 } flags S/SA keep state

pass in quick on { $ext_if $corp_if } inet proto tcp from <impsat> to =
200.x.x.2 \
	port { 22 } flags S/SA keep state

pass in quick on { $ext_if $corp_if } inet proto udp from any to =
200.x.x.2 \
	port { 53 } keep state

### </NS1>

### <HERZOG_NEW>
pass in quick on { $ext_if $corp_if } inet proto tcp from any to =
200.x.x.3 \
	port { 20 21 80 443 } flags S/SA keep state

# RSYNC
pass in quick on { $ext_if } inet proto tcp from <impsat> to 200.x.x.3 \
	port { 873 } flags S/SA keep state

# FTP
pass in quick on { $ext_if $corp_if } inet proto tcp from any to =
200.x.x.3 \
	port 30000 >< 65000 flags S/SA keep state # PASSIVE MODE
# FTP
pass in quick on { $dmz_if } inet proto tcp from 200.x.x.3 port 20 to =
any \
	flags S/SA keep state tag FTP-BACK # ACTIVE MODE
### </HERZOG_NEW>

### <Webtrends teste>
# WEB
pass in quick on { $ext_if $corp_if } inet proto tcp from any to =
200.x.x.4 \
	port { 80 } flags S/SA keep state

### </Webtrends teste>

# <WINDOWS MEDIA>
pass in quick on { $ext_if $corp_if } inet proto tcp from any to =
200.x.x.5 \
	port { 554 1755 } flags S/SA keep state

# VNC
pass in quick on { $ext_if } inet proto tcp from <impsat> to 200.x.x.5 \
	port { 5900 } flags S/SA keep state

pass in quick on { $ext_if $corp_if } inet proto udp from any to =
200.x.x.5 \
	port { 554 1755 } keep state
# </WINDOWS MEDIA>

# TEST NOTEBOOK - HOLYDAY
pass in quick on { $ext_if $dmz_if } inet proto tcp from any to =
200.x.x.6 \
	port { 22 80 } flags S/SA keep state
# </TESTE COM NOTEBOOK - HOLYDAY>

# TEST WITH CISNET=20
pass in quick on { $ext_if $corp_if } inet proto tcp from any to =
200.x.x.7 \
	port { 21 22 } flags S/SA keep state

pass in quick on { $ext_if $corp_if } inet proto tcp from any to =
200.x.x.7 \
	port 30000 >< 65000 flags S/SA keep state # PASSIVE MODE

pass in quick on { $dmz_if } inet proto tcp from 200.x.x.7 port 20 to =
any \
	flags S/SA keep state tag FTP-BACK # ACTIVE MODE
# </TESTE COM CISNET>

# PING
pass log inet proto icmp all icmp-type $icmp_types keep state

# TRACEROUTE
pass inet proto udp from any to any \
	port 33433 >< 33626 keep state

-- end

Thanks in advance.


David Verzolla
Administrador de Redes
Funda=E7=E3o C=E1sper L=EDbero - FCLNet
Tel: +55 11 3170.5937




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?94CADB570ACCB0418E8236C8F24BD95C01469F9E>