URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 86914
[ Назад ]

Исходное сообщение
"настройка PF"

Отправлено gat , 15-Окт-09 15:36 
Поставили в одном филиале FreeBSD 7.2
Подняли ipsec тунель с головным офисом (cisco)

Установил и настроил  pf

конфиг
set block-policy drop
set state-policy floating
#set loginterface $wan_if
set limit { frags 100000, states 100000 }
set optimization normal
set skip on  { lo0 $lan_if}
#
scrub in all
#
nat on $wan_if from $lan to any -> ($wan_if)
no nat  from $lan to $msk

antispoof quick for $wan_if

block on $wan_if all

pass out on $wan_if proto tcp to any port $tcp_ports keep state
pass out on $wan_if proto udp to any port $udp_ports keep state

pass from {$ip_ak $msk} to any
pass to {$ip_ak $msk}


когда pf выключен то все работает, компы в обоих сетках  другу друга видят трафик весь ходит.

Как только включаем pf из филиала в головной офис проходит только icmp все остальное режется. причем правилом block in on $wan_if all

Из головного офиса при этом все робит.

Что я делаю не так? помогите уже мозг вспотел :)


Содержание

Сообщения в этом обсуждении
"настройка PF"
Отправлено agu2 , 15-Окт-09 16:00 
При использовании PF в правилах фаера должны быть строки (у мене так работает):
  
           ip_tun1="IP1"
           Ip_tun2="IP2"

  pass out quick on $ext proto udp from $ip_tun1 port = isakmp to $ip_tun2 port = isakmp
  pass out quick on $ext proto esp from $ip_tun1 to $ip_tun2
  pass out quick on $ext proto ipencap from $ip_tun1 to $ip_tun2

  pass in quick on $ext proto udp from $ip_tun2 port = isakmp to $ip_tun1 port = isakmp
  pass in quick on $ext proto esp from $ip_tun2 to $ip_tun1
  pass in quick on $ext proto ipencap from $ip_tun2 to $ip_tun1


"настройка PF"
Отправлено gat , 15-Окт-09 17:22 

pass from {$ip_ak $msk} to any
pass to {$ip_ak $msk}


на сколько я понимаю мои правила шири и поглощают ваш пример.

у меня происходит блок на in wan, режется обратка это видно в логах

tcpdump: WARNING: pflog0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pflog0, link-type PFLOG (OpenBSD pflog file), capture size 96 bytes
000000 rule 1/0(match): block in on rl0: 192.168.0.6.3389 > 192.168.2.200.55985:  tcp 32 [bad hdr length 0 - too short, < 20]
2. 108460 rule 1/0(match): block in on rl0: 93.157.177.16.60519 > 255.255.255.255.1947: UDP, length 40
1. 022291 rule 1/0(match): block in on rl0: 192.168.0.6.3389 > 192.168.2.200.55985:  tcp 32 [bad hdr length 0 - too short, < 20]
6. 562174 rule 1/0(match): block in on rl0: 192.168.0.6.3389 > 192.168.2.200.55985:  tcp 32 [bad hdr length 0 - too short, < 20]

это пример телнет сессии с компа 192,168,2,200 на 192,168,0,6

, я вообще не понимаю как туда попадают пакеты  из тунеля.
да отдельных интерфейсов для тунеля я не использую.


"настройка PF"
Отправлено Alexpn , 15-Окт-09 18:04 
дак
$wan_if
чему равен ??????

"настройка PF"
Отправлено gat , 15-Окт-09 19:34 
>дак
> $wan_if
>чему равен ??????

wan_if="rl0"
lan_if="rl1"


"настройка PF"
Отправлено gat , 15-Окт-09 21:28 
вот такой конфиг работает как надо,только вот терзают смутные сомнения на сколько правильна такая конструкция -- block log on $wan_if  from ! $msk

###########################################################################

set block-policy drop
set state-policy floating
#set loginterface $wan_if
set limit { frags 100000, states 100000 }
set optimization normal
set skip on { lo0 $lan_if}
################################################################################
#
scrub in log  all
#
nat on $wan_if from $lan to any -> ($wan_if)
no nat  from $lan to $msk

###############################################################################################


antispoof quick for $wan_if

#block log all
block log on $wan_if  from ! $msk

#################################################################

pass out log on $wan_if proto tcp to any port $tcp_ports keep state
pass out log on $wan_if proto udp to any port $udp_ports keep state

pass log from {$ip_ak $msk} to any
pass log to {$ip_ak $msk}