Страница 1 из 1

PF RDR не работает

Добавлено: 2010-09-10 10:31:02
---nebo---
Сервер используется в качествве шлюза. Задача состоит в перенаправлении запросов. Используется PF RDR, но не работает. Проверял правила RDR на другом тестовом серваке - та же проблема.

Необходимо перенаправлять запросы приходящие на интерфейс CFG="em0"

Конфиг PF

Код: Выделить всё

LAN="em1"    
CFG="em0"   
NET="em2"  
LO="lo0"  

table <boss> persist file "/etc/pf/boss"

set loginterface $LAN
set block-policy return
set skip on $LO
scrub in all


###---Redirection for USERS
[b]rdr pass on $CFG proto {tcp , udp} from any to self -> X.X.X.X[/b]

###---NAT---###
nat on $NET           from <boss>    to any                  -> $NET
nat on $NET proto tcp from $LAN:network to {Y.Y.Y.Y, Y.Y.Y.Y}  port 53 -> $NET
nat on $NET proto tcp from $LAN:network to Y.Y.Y.Y port 25 -> $NET
nat on $NET proto tcp from $LAN:network to Y.Y.Y.Y port 110 -> $NET
nat on $NET proto tcp from $LAN:network to Y.Y.Y.Y port 143 -> $NET
nat on $NET proto tcp from $LAN:network to Y.Y.Y.Y port {80,443} -> $NET
nat on $NET proto udp from $LAN:network to any port 53          -> $NET

antispoof log quick for {$LO , $LAN , $NET , $CFG}

###---OUTGOING RULES---ALLOW EVERYTHING
pass out on $CFG
pass out on $LAN
pass out on $NET
pass out on $LO

####---INCOMING RULES
pass in quick on $LO           # ALLOW EVERUTHING ON LOOPBACK
###---INTERNET
block in on $NET
###---LAN
####################-----USERS-----###############################
block in on $LAN
pass  in on $LAN proto icmp from $LAN:network to any
pass  in on $LAN proto tcp  from $LAN:network to $LAN port 3128
pass  in on $LAN proto tcp  from $LAN:network to any port {25,53,110}
pass  in on $LAN proto udp  from $LAN:network to any port 53
pass  in on $LAN            from 10.10.11.0/24 to 10.11.11.0/24
pass in on $LAN from <boss> to any

###---CFG
################-----ADMINISTRATORS-----##########################
pass in on       $CFG from any to any
10.11.11.252 - адрес шлюза
10.11.11.232 - адрес клиента, которых набирая в браузере адрес шлюза должен перекидываться на указанный (Х.Х.Х.Х) адрес.

Вывод tcpdump при выключеном RDR

Код: Выделить всё

# tcpdump -tn -i em0 port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 96 bytes

IP 10.11.11.232.55666 > 10.11.11.252.80: S 951168083:951168083(0) win 5840 <mss 1460,sackOK,timestamp 15456863 0,nop,wscale 6>
IP 10.11.11.252.80 > 10.11.11.232.55666: S 1844529763:1844529763(0) ack 951168084 win 65535 <mss 1460,nop,wscale 3,sackOK,timestamp 2338042347 15456863>
IP 10.11.11.232.55666 > 10.11.11.252.80: . ack 1 win 92 <nop,nop,timestamp 15456863 2338042347>
IP 10.11.11.232.55666 > 10.11.11.252.80: P 1:429(428) ack 1 win 92 <nop,nop,timestamp 15456863 2338042347>
IP 10.11.11.252.80 > 10.11.11.232.55666: P 1:723(722) ack 429 win 8326 <nop,nop,timestamp 2338042348 15456863>
IP 10.11.11.232.55666 > 10.11.11.252.80: . ack 723 win 114 <nop,nop,timestamp 15456863 2338042348>
IP 10.11.11.232.55666 > 10.11.11.252.80: P 429:755(326) ack 723 win 114 <nop,nop,timestamp 15457143 2338042348>
IP 10.11.11.252.80 > 10.11.11.232.55666: P 723:1444(721) ack 755 win 8326 <nop,nop,timestamp 2338043476 15457143>
IP 10.11.11.232.55666 > 10.11.11.252.80: . ack 1444 win 137 <nop,nop,timestamp 15457145 2338043476>
IP 10.11.11.252.80 > 10.11.11.232.55666: F 1444:1444(0) ack 755 win 8326 <nop,nop,timestamp 2338048477 15457145>
IP 10.11.11.232.55666 > 10.11.11.252.80: . ack 1445 win 137 <nop,nop,timestamp 15458405 2338048477>
Вывод tcpdump при включеном RDR

Код: Выделить всё

# tcpdump -tn -i em0 port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 96 bytes

IP 10.11.11.232.55666 > 10.11.11.252.80: F 951168838:951168838(0) ack 1844531208 win 137 <nop,nop,timestamp 15467300 2338048477>
IP 10.11.11.252.80 > 10.11.11.232.55666: . ack 1 win 8325 <nop,nop,timestamp 2338084095 15467300>
IP 10.11.11.232.55669 > 10.11.11.252.80: S 1612585458:1612585458(0) win 5840 <mss 1460,sackOK,timestamp 15467588 0,nop,wscale 6>
IP 10.11.11.252.80 > 10.11.11.232.55669: R 0:0(0) ack 1612585459 win 5840
IP 10.11.11.232.55670 > 10.11.11.252.80: S 1633752427:1633752427(0) win 5840 <mss 1460,sackOK,timestamp 15467865 0,nop,wscale 6>
IP 10.11.11.252.80 > 10.11.11.232.55670: R 0:0(0) ack 1633752428 win 5840
IP 10.11.11.232.55671 > 10.11.11.252.80: S 1643707115:1643707115(0) win 5840 <mss 1460,sackOK,timestamp 15467901 0,nop,wscale 6>
IP 10.11.11.252.80 > 10.11.11.232.55671: R 0:0(0) ack 1643707116 win 5840
IP 10.11.11.232.55672 > 10.11.11.252.80: S 1644507102:1644507102(0) win 5840 <mss 1460,sackOK,timestamp 15467948 0,nop,wscale 6>
IP 10.11.11.252.80 > 10.11.11.232.55672: R 0:0(0) ack 1644507103 win 5840

Re: PF RDR не работает

Добавлено: 2010-09-16 10:03:30
---nebo---
Проблема была решела, как оказалось нужно было натить пакеты, которые перенаправляются. Тоесть что бы с сервера они уходили с ЭГО адресом. Не совсем понятно для чего это сделано.

Re: PF RDR не работает

Добавлено: 2010-09-16 10:10:59
freebsdun
видать, шлюз забыли прописать на машине, куда редиректили.
У меня без ната работает, чистый rdr.

Re: PF RDR не работает

Добавлено: 2010-09-16 10:14:05
_ze
хм у меня перенаправляемый траф не натится и все работает...мб нат помог сугубо для преодоления граблей на адресуемом аппарате, например аппарат назначения тоже сервер, а на на нем разрешена тока локаль, тогла подстановка адреса шлюза(с локалки) переваривается нормально... я так на роутер пакеты натю, ибо ень а роутере прописывать внутренние сети, проше снатить на самом шлюзе адреса(роутер и внешняя карта шлюза в 1 подсети, такой маршрут всегда естьв дефаулте роутера)

Re: PF RDR не работает

Добавлено: 2010-09-16 10:29:06
---nebo---
freebsdun писал(а):видать, шлюз забыли прописать на машине, куда редиректили.
У меня без ната работает, чистый rdr.
все машины находятся в одной подсети и дальше нее никуда не выходят. Все машины друг друга видят.