On 10 sep 2010, at 21.24, Peter N. M. Hansteen wrote:

> Per-Olov Sjvholm <p...@incedo.org> writes:
>
>> It seems the first one is unable to convert as is seems "no match in
on..."
>> does not work.
>
> Off the top of my head, move the rdr-to bits to your pass rules, make
> sure the pass rule without the rdr-to is either the last or a
> quick. Or use a negation in the criteria for your match rule.  Hard to
> be more specific without the full rule set.
>
> - P
> --
> Peter N. M. Hansteen, member of the first RFC 1149 implementation team
> http://bsdly.blogspot.com/ http://www.bsdly.net/ http://www.nuug.no/
> "Remember to set the evil bit on all malicious network traffic"
> delilah spamd[29949]: 85.152.224.147: disconnected after 42673 seconds.
>


Here is some more info from the rule set...

I for sure try to find the easiest "no rdr" statement replacement to what I
had in 4.6. Maybe a mix of sticky match rules in "match" statements and "pass"
statements with "rdr-to" in them will do the trick. However. I try to replace
the earlier "no rdr" with a negated match rule. It seem I miss something here
or it's simply not possible to achieve anymore. At least it seems to be a
problem to replace the earlier "rdr" rules from 4.6 with just drop in "match"
statments. Am I *forced* to mix also pass rules with "rdr-to" in them?????
Below is the spec of the problem.... Switch directly to 4.7 break FTP if I
cannot easily solve the "no rdr" problem




---#--- This is what I have in rc.conf.local ---#---
r...@xanadu:~#more /etc/rc.conf.local
named_flags=""          # for normal use: ""
pf=YES                  # Packet filter / NAT
sshd_flags="-4"         # for normal use: ""
dhcpd_flags="vlan2"     # for normal use: ""
ntpd_flags=""           # for normal use: ""
ftpproxy_flags="-R 192.168.2.35 -p 21 -b 82.82.222.222"        # for normal
use: ""



---#--- For the case relevant stuff cut out from pf.conf in 4.6.... ---#---

nat-anchor "ftp-proxy/*"
nat on $INTERNET_INT inet from $DMZ1_ORIGO -> $INTERNET_INT_IP2
rdr-anchor "ftp-proxy/*"

nat on $INTERNET_INT from $DMZ1_ORIGO to any -> $INTERNET_INT_IP2
nat on $INTERNET_INT from $LAN_INT:network to any -> $INTERNET_INT_IP1
nat on $INTERNET_INT from $DMZ1_INT:network to any -> $INTERNET_INT_IP1

no rdr on $INTERNET_INT proto tcp from any to $INTERNET_INT_IP2 port 21
rdr on $INTERNET_INT proto { tcp udp } from any to $INTERNET_INT_IP2 ->
$DMZ1_ORIGO

pass out on $ALL_INTERFACES inet proto {tcp gre esp udp icmp} all keep state

pass in log quick on $DMZ1_INT inet proto tcp  from $DMZ1_ORIGO to any flags
S/SA keep state
pass in log quick on $DMZ1_INT inet proto { icmp udp } from $DMZ1_ORIGO to any
keep state

pass in log quick on $INTERNET_INT inet proto tcp  from any  to $DMZ1_ORIGO
port { 21 143 993 } flags S/SA keep state (max-src-nodes 50, max-src-states
70, max-src-conn 70, max-src-conn-rate 20/30, overload <bad_hosts> flush
global)


---#--- I translated this to the following in 4.7---#---

anchor "ftp-proxy/*"
match out on $INTERNET_INT inet from $DMZ1_ORIGO nat-to $INTERNET_INT_IP2
#rdr-anchor "ftp-proxy/*"

match out on $INTERNET_INT from $DMZ1_ORIGO to any nat-to $INTERNET_INT_IP2
match out on $INTERNET_INT from $LAN_INT:network to any nat-to
$INTERNET_INT_IP1
match out on $INTERNET_INT from $DMZ1_INT:network to any nat-to
$INTERNET_INT_IP1

# no rdr on $INTERNET_INT proto tcp from any to $INTERNET_INT_IP2 port 21
# >>>>>>PROBLEM TO TRANSLATE THE ABOVE ROW<<<<<<

# rdr on $INTERNET_INT proto { tcp udp } from any to $INTERNET_INT_IP2 ->
$DMZ1_ORIGO
match in on $INTERNET_INT proto { tcp udp } from any to $INTERNET_INT_IP2
rdr-to $DMZ1_ORIGO

pass out on $ALL_INTERFACES inet proto {tcp gre esp udp icmp} all keep state

pass in log quick on $DMZ1_INT inet proto tcp  from $DMZ1_ORIGO to any flags
S/SA keep state
pass in log quick on $DMZ1_INT inet proto { icmp udp } from $DMZ1_ORIGO to any
keep state

pass in log quick on $INTERNET_INT inet proto tcp  from any  to $DMZ1_ORIGO
port { 21 143 993 } flags S/SA keep state (max-src-nodes 50, max-src-states
70, max-src-conn 70, max-src-conn-rate 20/30, overload <bad_hosts> flush
global)




Everything works except the FTP service on my RFC1918 DMZ.


Suggestions very much appreciated.
(Using just match rules instead of pass rules with rdr-to if possible....)


/Peo
--
GPG keyID: 5231C0C4
GPG fingerprint: B232 3E1A F5AB 5E10 7561 6739 766E D29D 5231 C0C4
GPG key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x766ED29D5231C0C4

Reply via email to