pekka wrote:

> Hi,
> 
> is there a way to shorten these redirection rules with some macros
> 
> server1 = 192.168.140.1
> server2 = 192.168.140.2
> server3 = 192.168.140.3
> server4 = 192.168.140.4
> rdp_port1 = 10001
> rdp_port2 = 10002
> rdp_port3 = 10003
> rdp_port4 = 10004
> 
> pass in log on $ext_if proto tcp from any to $ext_if port $rdp_port1 \
> rdr-to $server1 port 3389
> pass in log on $ext_if proto tcp from any to $ext_if port $rdp_port2 \
> rdr-to $server2 port 3389
> pass in log on $ext_if proto tcp from any to $ext_if port $rdp_port3 \
> rdr-to $server3 port 3389
> pass in log on $ext_if proto tcp from any to $ext_if port $rdp_port4 \
> rdr-to $server4 port 3389
> 
> The port number is always "server number + 10000"
> 
> The manual says port ranges are supported with:
> 
> pass in on tl0 proto tcp from any to any port 10001:10004 \
>     rdr-to 192.168.140.1 port 3389
> 
> but is there a way to use similar accemding ordering for "servers"
> somehow like this:
> 
> pass in on tl0 proto tcp from any to any port 10001:10004 \
>     rdr-to "192.168.140.1":"192.168.140.4" port 3389
> 
> -pekka-

I'm not aware of such functionality.

If it's not too much trouble I'd like to suggest using a script to generate 
these rules, e.g.:

#!/bin/sh

start=10;
i=${start};
port=0;
server="192.168.0.";
nsrv=2;

while [ $i != $((nsrv+start)) ];
do
        echo "port $((port+i)) rdr-to ${server}${i}";
        i=$((i+1));
done

generates:

port 10 rdr-to 192.168.0.10
port 11 rdr-to 192.168.0.11

(I'll leave it to you to fill in the blanks)

If you redirect the output to a file, e.g. /etc/pf/rdp.rules, you can include 
that in your main pf.conf.

Reply via email to