> like to be able to log in to their machine.  I've tried setting up
> specific rules that rdr to their machines to no avail.  Here are some
> things I've tried:

I'm not quite sure why you are using the rdr rule?  I've got the 
same requirements as you have described above but no need for rdr.

I am assuming that you are making the user authenticate again after
making any change to the authpf.rules for that particular user.

You should be able to use the following pf.conf and authpf.rules 
for your particular needs.

I hope that this helps.

Mark T. Uemura
OpenBSD Support Japan Inc.
www.openbsd-support.com

################################################################################
# OpenBSD 3.7 (Generic) - pf.conf
################################################################################

#-------------------------------------------------------------------------------
# Set up a bunch of variables

# Interface Names & their respective IP addresses
int_if="fxp0"    # AAA.AAA.AAA.AAA
ext_if="fxp1"    # BBB.BBB.BBB.BBB

loop="lo0"

table <sshscan> persist
table <select_ips> { aaa.aaa.aaa.aaa }

icmp_types = "{ 0 3 8 11 }"

#-------------------------------------------------------------------------------
# Options

set block-policy return
set loginterface $int_if
set loginterface $ext_if

#-------------------------------------------------------------------------------
# Clean up fragmented and abnormal packets

scrub in all no-df random-id fragment reassemble

#-------------------------------------------------------------------------------
# NAT

nat-anchor "authpf/*"

#-------------------------------------------------------------------------------
# Set out default policies (block and log everything)

block in log all
block out log all

#-------------------------------------------------------------------------------
# loopback packets left unmolested

pass quick on $loop all

#-------------------------------------------------------------------------------
#-- $ext_if        fxp1   BBB.BBB.BBB.BBB
#-------------------------------------------------------------------------------

antispoof quick for $ext_if inet

block in log quick on $ext_if proto tcp from <sshscan> to any port 22

# PASS IN icmp requests 
pass in log on $ext_if inet proto icmp from any to $ext_if icmp-type 
$icmp_types keep state

# PASS IN inbound ssh 
pass in log on $ext_if inet proto tcp from any to $ext_if port 22 flags S/SA 
keep state

# PASS OUT all outbound traffic on $ext_if
pass out log on $ext_if inet proto { tcp, udp, icmp } all keep state

#-------------------------------------------------------------------------------
#-- $int_if        fxp0    AAA.AAA.AAA.AAA
#-------------------------------------------------------------------------------

# Block spoofed packets for this interface
antispoof quick for $int_if inet

# PASS IN from internal LAN
pass in quick on $int_if inet proto tcp from <select_ips> to $int_if port 22 
flags S/SA keep state
pass in quick on $int_if inet proto icmp from <select_ips> to $int_if icmp-type 
$icmp_types keep state

anchor "authpf/*"

################################################################################
#                                   The End
################################################################################

==

################################################################################
# OpenBSD 3.7 (Generic) - authpf.rules
################################################################################

#-------------------------------------------------------------------------------
# Set up a bunch of variables

int_if="fxp0"    # AAA.AAA.AAA.AAA

rdcuser_ip="aaa.aaa.aaa.aaa"

rdc="3389"

#-------------------------------------------------------------------------------

nat on $int_if from $user_ip to any -> $int_if

#-------------------------------------------------------------------------------
#-- PASS OUT select outbound traffic on $int_if
#-------------------------------------------------------------------------------

pass out log on $int_if inet proto tcp from $int_if to $rdcuser_ip port $rdc 
flags S/SA keep state

################################################################################
#                                   The End
################################################################################
 

Reply via email to