Hallo,

ich verwalte ein kleines Netzwerk aus etwa 10-20 Rechnern. Es gibt einen Server (Debian stable), vor dem noch eine OpenBSD 4.9 Firewall geschaltet ist. Bei der Firewall habe ich mich im grossen und ganzen an die Small-office Loesung der pf-FAQ gehalten.
Anfragen z.B. an Apache auf dem Server werden von pf weitergeleitet mit
Code:
pass in on egress inet proto tcp to (egress) port $tcp_redir \
        rdr-to $shelx_srv synproxy state
Wobei tcp_redir eben die gewuenschten ports enthaelt.
Anfragen von innerhalb der Firewall werden nun nicht umgeleitet, was zur Folge hat, dass man per http auf die Firewall gelangt, wo kein httpd laeuft.
Im Moment ergibt ein nmap innerhalb der Firewall:
Code:
root@shelx-server:~# nmap shelx.uni-ac.gwdg.de

Starting Nmap 5.00 ( http://nmap.org ) at 2011-07-01 09:40 CEST
Interesting ports on shelx.uni-ac.gwdg.de (134.76.64.11):
Not shown: 996 closed ports
PORT    STATE SERVICE
13/tcp  open  daytime
22/tcp  open  ssh
37/tcp  open  time
113/tcp open  auth

Nmap done: 1 IP address (1 host up) scanned in 12.71 seconds
Mit der Regel
Code:
pass in quick on $int_if inet proto tcp from 192.168.0.0/24 \
        to 134.76.64.11 port $tcp_redir_internal \
       rdr-to $shelx_srv synproxy state
ergibt sich zwar
Code:
root@shelx-server:~# nmap shelx.uni-ac.gwdg.de

Starting Nmap 5.00 ( http://nmap.org ) at 2011-07-01 09:37 CEST
Interesting ports on shelx.uni-ac.gwdg.de (134.76.64.11):
Not shown: 990 closed ports
PORT    STATE SERVICE
13/tcp  open  daytime
22/tcp  open  ssh
25/tcp  open  smtp
37/tcp  open  time
80/tcp  open  http
113/tcp open  auth
443/tcp open  https
465/tcp open  smtps
993/tcp open  imaps
995/tcp open  pop3s

Nmap done: 1 IP address (1 host up) scanned in 12.60 seconds
d.h., man wird wohl auf den Server umgeleitet, doch kann sich ein Browser intern trotzdem nicht mit der Seite verbinden - es gibt einen timeout.
Kann mir jemand sagen, wie ich dieses Problem loese (thunderbird/icedove funktionieren aus dem gleichen Problem innerhalb der firewall auch nur, wenn man den internen Namen des Server angibt, welcher von einem internen DNS auf 192.168.0.2 zeigt), d.h., dass Anfragen vom internen Netzwerk auf die externe IP-Adresse auf die interne Adresse 192.168.0.2 des Servers weitergeleitet werden? Oder gibt es eine andere Loesung (ausser einen Eintrag in /etc/hosts)?

Hier die ganz pf.conf:
Code:
# 9/04/2011
# pf.conf for shelx external network

# macro definitions
int_if = "em0"   # external card
ext_if = "bge0"  # onboard device

# redirected ports for server
# 22: sshd; 80: http; 443: https; 465: smtps
# 993: imaps; 995: pop3s 25: smtp
tcp_redir = "{ 22, 25, 80, 443, 465, 993, 995 }"

# internally: redirect everything except for ssh-port 22
tcp_redir_internal = "{ 25, 80, 443, 465, 993, 995 }"
icmp_types = "echoreq"

# IP address of actual server
shelx_srv = "192.168.0.2"
# options (copied from OpenBSD pf-FAQ)
set block-policy drop
set loginterface $ext_if
set skip on lo

# match rules
match out on egress inet from !(egress) to any nat-to (egress:0)

# filter rules
block in log
# redirect internal tcp_services back to shelx server
#pass in quick on $int_if inet proto tcp from 192.168.0.0/24 \
#        to 134.76.64.11 port $tcp_redir_internal \
#       rdr-to $shelx_srv synproxy state
pass out quick

antispoof quick for { lo $int_if }
# redirect tcp_services to actual shelx server
pass in on egress inet proto tcp to (egress) port $tcp_redir \
        rdr-to $shelx_srv synproxy state

# "ping's"
pass in inet proto icmp all icmp-type $icmp_types

pass in on $int_if
Danke