День добрый!Может такой вопрос обсуждался, тогда ткните носом плизззззз....
Вот приблизительная схема моей сетки:
+-------------+ +-------------+
| Hub | | FreeBSD 6.2 | +----------+
| 10.0.0.0/24 |------ vr0 <-+ PF +-> vr1/tun0 ---| Internet |
+------+------+ +------+------+ PPPoE +----------+
| |
| v
+-----------+ vr2
| WEB | |
| 10.0.0.77 | +-------------+
+-----------+ | Mail |
| 192.168.1.3 |
+-------------+
где:int_if="vr0" - сетевая, смотрящая в локалку. её адрес 10.0.0.1
viz_if="vr1" - сетевая, смотрящая в другую сеть. её адрес 192.168.1.1
ext_if="tun0" - виртуальная сетевая при поднятии PPPoE, которая смотрит в Инэт через ADSL модем
__________________________
Я хочу, чтобы из Инэта можно было попасть на сайт, организованый на WEB-сервере (10.0.0.77)
для этого в PF пишу редирект:
rdr on $ext_if inet proto tcp from any to ($ext_if) port 80 -> 10.0.0.77 port 80
но при попытке открыть сайт на 10.0.0.77, открывается страница сообщения Апача, поднятого на Фришке, то есть никто и никуда и никого не перекидывает!..
где я ошибаюсь? может есть другой путь?тоже самое при попытке перебросить почту в другую сеть на почтовый сервер!..
>для этого в PF пишу редирект:
>
>rdr on $ext_if inet proto tcp from any to ($ext_if) port 80 -> 10.0.0.77 port 80
>
>но при попытке открыть сайт на 10.0.0.77, открывается страница сообщения Апача,
>поднятого на Фришке, то есть никто и никуда и никого не
>перекидывает!..Порты лучше разнести. У меня так под опёнком работает (порты не перекрываются):
# Внешний и внутренний интерфейсы.
#
ext_if = "pppoe0"
int_if = "rl0"# TCP сервисы, обслуживаемые маршрутизатором.
#
tcp_svc = "22 80 443"# TCP/UDP сервисы, обслуживаемые внутренним сервером.
#
athlon_tcp_rdr = "8000 55555"
athlon_udp_rdr = "8000 55555"
athlon = "192.168.0.2"# Выполнить нормализацию всех пакетов.
#
scrub in
scrub out on pppoe0 max-mss 1440# altq
## Транслировать внутренние адреса в (основной) адрес внешнего интерфейса.
#
nat on $ext_if from !($ext_if) -> ($ext_if:0)# Подключить nat/rdr правила, создаваемые ftp-proxy (для OpenBSD 3.9 и новее).
#
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"# Пропустить FTP через transparent proxy.
#
rdr on $int_if proto tcp to !(self) port ftp -> 127.0.0.1 port 8021# Переадресовать TCP/UDP сервисы, обслуживаемые внутренним сервером.
#
rdr on $ext_if proto tcp to ($ext_if) port { $athlon_tcp_rdr } -> $athlon
rdr on $ext_if proto udp to ($ext_if) port { $athlon_udp_rdr } -> $athlon# Защита от IP spoofing.
#
pass quick on { lo $int_if } no state
antispoof quick for { lo $int_if }# Подключить правила, создаваемые ftp-proxy (для OpenBSD 3.9 и новее).
#
anchor "ftp-proxy/*"# По умолчанию блокировать все на внешнем интерфейсе. Для TCP соединений
# возвращать RST.
#
block return log on $ext_if# Разрешить исходящие ICMP ping пакеты, любой UDP, GRE трафик и TCP соединения.
#
pass out on $ext_if inet proto icmp icmp-type echoreq code 0
pass out on $ext_if inet proto { udp gre tcp }# Разрешить входящие ICMP ping пакеты, обслуживаемые UDP и TCP сервисы.
#
pass in on $ext_if inet proto icmp to ($ext_if) icmp-type echoreq code 0
pass in on $ext_if inet proto tcp to ($ext_if) port { $tcp_svc }# Разрешить входящие TCP/UDP пакеты, обслуживаемые внутренним сервером.
#
pass in on $ext_if inet proto udp to $athlon port { $athlon_udp_rdr }
pass in on $ext_if inet proto tcp to $athlon port { $athlon_tcp_rdr }# Разрешить входящие TCP соединения для FTP proxy.
#
pass in on $ext_if inet proto tcp to port > 49151 user proxykeep state с версии OpenBSD 4.1 подразумевается, по умолчанию.
СПС!.. бу пробовать!