Всем привет"
Кто либо публиковал Exchаnge 2003 с помощью пакетного фильтра PF?
Настроил ридирект из инета в сеть, видно что пакеты проходят но обратно нет.Могет кто сталкивался?
вот мой конфиг PF
ext_if = "bge1"
int_if = "bge0"
lan_net = "10.0.0.0/8"
exchange = "10.0.2.17"
exchange_port = "{http,https}"nat on $ext_if from {$int_if, $lan_net} to any -> ($ext_if)
rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchangeblock log all
pass in log on $ext_if proto tcp from any to $exchange port $exchange_port \
flags S/SA synproxy statepass out on $int_if from any to $lan_net
Может я с натом напутал?
>[оверквотинг удален]
>block log all
>
>pass in log on $ext_if proto tcp from any to $exchange port
>$exchange_port \
> flags S/SA synproxy state
>
>pass out on $int_if from any to $lan_net
>
>
>Может я с натом напутал?а где разрешение входящих пакетов на внутреннем интерфейсе?
>ext_if = "bge1"
>int_if = "bge0"
>lan_net = "10.0.0.0/8"
>exchange = "10.0.2.17"
>exchange_port = "{http,https}"
>
>nat on $ext_if from {$int_if, $lan_net} to any -> ($ext_if)помоему $int_if тут не нужен.
>rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange
>
>block log all
>после nat , ответ под правило наверно не попадет.
>[оверквотинг удален]
>
>помоему $int_if тут не нужен.
>
>
>>rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange
>>
>>block log all
>>
>
>после nat , ответ под правило наверно не попадет.а куда он поподает?
Я в логах смотрю там вообще обращения нет
>а куда он поподает?
>Я в логах смотрю там вообще обращения нетв логах pf или внутреннего сервака?
>>а куда он поподает?
>>Я в логах смотрю там вообще обращения нет
>
>в логах pf или внутреннего сервака?в логах PF
а вот правила доступа из сети
pass in log on $int_if from $lan_net to any
pass out log on $int_if from any to $lan_net
вообще, вот весь конфиг
ext_if = "bge1"
int_if = "bge0"
lan_net = "10.0.0.0/8"
mail_service = "{smtp, pop3}"
exchange = "10.0.2.100"
exchange_port = "{http,https,3389}"
# scrub incoming packets
scrub in all
rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchangenat on $ext_if from {$int_if, $lan_net} to any -> ($ext_if)
# setup a default deny policy
block log all
# activate spoofing protection for the internal interface.
antispoof quick for $ext_if inet
pass in log on $ext_if proto tcp from any to $exchange port $exchange_port \
flags S/SA synproxy state#pass in log on $int_if proto tcp from $lan_net \
to $int_if port ssh keep state
#pass out log on $int_if proto tcp from $lan_net \
to $int_if keep state# pass all traffic to and from the local network
pass in log on $int_if from $lan_net to any
pass out log on $int_if from any to $lan_net
pass in log on $ext_if proto {tcp,udp} from any to $ext_if port {domain,smtp,pop3}pass out log on $ext_if proto tcp all keep state
pass out log on $ext_if proto { udp, icmp } all keep state
ext_if = "bge1"
int_if = "bge0"
lan_net = "10.0.0.0/8"
mail_service = "{smtp, pop3}"
exchange = "10.0.2.100"
exchange_port = "{http,https,3389}"
# scrub incoming packets
scrub in allnat on $ext_if from $lan_net to any -> $ext_if
rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange port \
$exchange_port# setup a default deny policy
block log all# activate spoofing protection for the internal interface.
antispoof quick for $ext_if inet
pass in log on $ext_if proto tcp from any to $exchange port $exchange_port \
flags S/SA keep state
pass in log on $ext_if proto {tcp,udp} from any to $ext_if port {domain,smtp,pop3} \
keep statepass out on $ext_if inet proto tcp all keep state
pass out on $ext_if inet proto udp all keep state
pass out on $ext_if inet proto icmp all keep state# pass all traffic to and from the local network
pass in log on $int_if all
pass out log on $int_if all
>[оверквотинг удален]
>exchange_port = "{http,https,3389}"
>
>
># scrub incoming packets
>scrub in all
>
>nat on $ext_if from $lan_net to any -> $ext_if
>
>rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange port \
> $exchange_portтут ругается на синтаксис а именно на $exchange port \
$exchange_port
если строка такая, то рукани нет
rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange
>[оверквотинг удален]
>pass out on $ext_if inet proto
>tcp all keep state
>pass out on $ext_if inet proto
>udp all keep state
>pass out on $ext_if inet proto
>icmp all keep state
>
># pass all traffic to and from the local network
>pass in log on $int_if all
>pass out log on $int_if allно все равно не работает
>[оверквотинг удален]
>>pass out on $ext_if inet proto
>>udp all keep state
>>pass out on $ext_if inet proto
>>icmp all keep state
>>
>># pass all traffic to and from the local network
>>pass in log on $int_if all
>>pass out log on $int_if all
>
>но все равно не работаетrdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange $exchange_port
>[оверквотинг удален]
>>>pass out on $ext_if inet proto
>>>icmp all keep state
>>>
>>># pass all traffic to and from the local network
>>>pass in log on $int_if all
>>>pass out log on $int_if all
>>
>>но все равно не работает
>
>rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange $exchange_portодин хрен пишет
pfctl -nf pf.conf
pf.conf:14: syntax errorну не суть я ставил
rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange port 443и все равно не было
>[оверквотинг удален]
>>rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange $exchange_port
>
>один хрен пишет
>pfctl -nf pf.conf
>pf.conf:14: syntax error
>
>ну не суть я ставил
>rdr on $ext_if proto tcp from any to $ext_if port $exchange_port -> $exchange port 443
>
>и все равно не былоу меня вот это работает
rdr on $ext_if proto tcp from 2.2.1.0/24 to $external_addr port 3389 -> 192.168.21.7 port 3389
>[оверквотинг удален]
>>pass out on $ext_if inet proto
>>udp all keep state
>>pass out on $ext_if inet proto
>>icmp all keep state
>>
>># pass all traffic to and from the local network
>>pass in log on $int_if all
>>pass out log on $int_if all
>
>но все равно не работаетдобавь еще первым разрешающим правилом
pass quick on lo all
>[оверквотинг удален]
>>>icmp all keep state
>>>
>>># pass all traffic to and from the local network
>>>pass in log on $int_if all
>>>pass out log on $int_if all
>>
>>но все равно не работает
>
>добавь еще первым разрешающим правилом
>pass quick on lo allтак, с этим тараканом я разобрался.
все дело было в шлюзах, у одного компа один( на нем все работало и тогда все правила работали) у второго (exchange) другой.
Тогда вопрос не вкурсе как в pf сделать так. чтобы подменить адресс запроса?
Exchange видит что запрос идет из вне и пытается переслать его через свой шлюз, и соответственно это не работает.
Я знаю в Ip firewall есть команда Map, которая делает подмену.
А сдесь есть что либо подобное?
сделай nat на внутреннем интерфейсе, что бы ответ прислали на эту машину
>сделай nat на внутреннем интерфейсе, что бы ответ прислали на эту машину
>сделал, тока потом не мог по ssh зайдти
nat on $int_if from $lan_net to any ->$int_if так?
>>сделай nat на внутреннем интерфейсе, что бы ответ прислали на эту машину
>>
>
>сделал, тока потом не мог по ssh зайдти
>
>nat on $int_if from $lan_net to any ->$int_if так?nat on $int_if from ! $lan_net to $lan_net -> $int_if
можеш еще порты добавить
короче, все заработало.
добавил еще одно правило
nat on $int_if from any to $exchange port 80 ->10.0.0.1и все заработало.
хотя если использовать не стандартные порты, то есть тормаза