I have the following network configuration:
Internet....Firewall....Network Switch....Web-Server Windows XP Desktop #1 Windows XP Desktop #2 Windows XP Desktop #3 Wireless AP.....Windows XP Laptop #1 Windows XP Laptop #2 Ubuntu Laptop Windows XP Work Laptop My firewall is a Sun Netra X1 running OpenBSD 4.2 Stable, and has pf with NAT and RDR rules and I have dhcpd running on the internal network on the 192.168.0.0/24 subnet. My web-server is a Sun Netra T1 running OpenBSD 4.2 Release. My firewall assigns a fixed IP address via DHCP to the web-server which is 192.168.0.4. My wireless access point is a DLink 800+. My firewall assigns a fixed IP address via DHCP to the access point which is 192.168.0.2. Here's my dilemma. All of my desktops and laptops can access the internet including accessing a VPN server for my work laptop. BUT I CANNOT access my internal web-server at 192.168.0.4!!! I've looked on the internet for pf rules but they only offer solutions that can access either the internet or the web-server only but not both. ****I've looked at the OpenBSD pf FAQ and tried the inetd(8) with nc(1) suggestion but...it blocks web access to the internet. ****Does anyone have a suggestion on how I can get my desktops and laptops to get access to the internet AND my web-server? Here's my pf.conf setup that allows all of my desktops and laptops to get to the internet but not my web-server... # macros ext_if="dc0" int_if="dc1" web_server="192.168.0.4" # scrub scrub in # nat nat on $ext_if from !($ext_if) to any -> ($ext_if:0) # redirection rdr on $ext_if proto tcp from any to any port 80 -> $web_server # filter rules block in pass out keep state antispoof for { lo $int_if } ## take care of lo traffic pass quick on lo all ## block inet6 traffic block in quick inet6 ## block broadcast noise block in quick on $ext_if from any to 255.255.255.255 ## take care of VPN pass in quick proto gre all pass out quick proto gre all ## pass out all UDP connections and keep state pass out on $ext_if proto udp from ($ext_if) to any keep state ## pass out all ICMP connections and keep state pass out on $ext_if inet proto icmp from ($ext_if) to any keep state ## pass SSH traffic to firewall pass in quick on $ext_if inet proto tcp from any to ($ext_if) port 22 flags S/SA keep state ## pass web traffic to web_server pass in on $ext_if inet proto tcp from any to $web_server port 80 flags S/SA synproxy state ## pass everything else pass in quick on $int_if