nvhost
06-08-2012, 10:19
Ребят помогите не могу понять в чем может быть дело, перегружаю FreeBSD все работает кроме правил для входящих RDP запросов, как только делаю принудительное применение правил pfctl -f /etc/pf/conf то все сразу начинает работать, после перегруза машина опять пока не подключусь по ssh не наберу волшебную команду не пускает ниже приведено содержание файла pf.conf
# vr0 - имя сетевой карточки, смотрящей в офисную сеть
int_if="vr0"
# rl0 - имя сетевой карточки, смотрящей в интернет
ext_if="tun0"
localnet="10.0.0.0/24"
#определяем через переменные ip-адреса офисов
office1_ip="111.111.111.111"
office2_ip="222.222.222.222"
#опять таки, через переменную перечисляем какие порты выпускать из офиса во внешний мир
#tcp_ports="{22,80,443,25,110,465,995,5190}"
#udp_ports="{53}"
#не фильтруем трафик, проходящий по интерфейсу lo0 (интерфейс внутренней петли), gif0 (виртуальный туннель между офисами) и $int_if (интерфейс внутрен
set skip on lo0
set skip on gif0
set skip on $int_if
#отбрасываем входящие пакеты, с нестандартными опциями
scrub in all
#создаем правило входящие для RDP
rdr pass on $ext_if proto tcp from any to $ext_if port 3389 tag RDP -> 10.0.0.100 port 3389
nat on $ext_if tagged RDP -> ($ext_if)
#создаем правило трансляции адресов из офисной сети во внешний мир
nat on $ext_if from $localnet to any -> ($ext_if)
#создаем правило входящие для RDP
#rdr pass on $ext_if proto tcp from any to ($ext_if) port 3389 tag RDP -> 10.0.0.100 port 3389
#nat on $int_if tagged RDP -> 10.0.0.1
#создаем правило входящие для LotuNotes
#rdr pass on $ext_if proto tcp from any to ($ext_if) port 1352 tag LotusNotes -> 10.0.0.100 port 1352
#nat on $int_if tagged LotusNotes -> 10.0.0.1*
#включаем антиспуфинг для внешнего интерфейса
antispoof quick for $ext_if
#блокируем все по умолчанию
block all
#разрешаем доступ из офисной сети во внешний мир портам, перечисленным в переменных tcp_ports и udp_ports:
pass out on $ext_if proto tcp to any
pass out on $ext_if proto udp to any
#разрешаем доступ к нашей машине по ssh из внешнего мира
pass in inet proto tcp from any to $ext_if port 22 keep state
#разрешаем пинг
pass inet proto icmp all
#разрешаем исходящий трафик IPSec с офиса 1 на офис 2
pass out quick on $ext_if proto udp from $office1_ip port = isakmp to $office2_ip port = isakmp
pass out quick on $ext_if proto esp from $office1_ip to $office2_ip
pass out quick on $ext_if proto ipencap from $office1_ip to $office2_ip
#разрешаем входящий трафик IPSec, пришедший с офиса 2 на офис 1
pass in quick on $ext_if proto udp from $office2_ip port = isakmp to $office1_ip port = isakmp
pass in quick on $ext_if proto esp from $office2_ip to $office1_ip
pass in quick on $ext_if proto ipencap from $office2_ip to $office1_ip
# vr0 - имя сетевой карточки, смотрящей в офисную сеть
int_if="vr0"
# rl0 - имя сетевой карточки, смотрящей в интернет
ext_if="tun0"
localnet="10.0.0.0/24"
#определяем через переменные ip-адреса офисов
office1_ip="111.111.111.111"
office2_ip="222.222.222.222"
#опять таки, через переменную перечисляем какие порты выпускать из офиса во внешний мир
#tcp_ports="{22,80,443,25,110,465,995,5190}"
#udp_ports="{53}"
#не фильтруем трафик, проходящий по интерфейсу lo0 (интерфейс внутренней петли), gif0 (виртуальный туннель между офисами) и $int_if (интерфейс внутрен
set skip on lo0
set skip on gif0
set skip on $int_if
#отбрасываем входящие пакеты, с нестандартными опциями
scrub in all
#создаем правило входящие для RDP
rdr pass on $ext_if proto tcp from any to $ext_if port 3389 tag RDP -> 10.0.0.100 port 3389
nat on $ext_if tagged RDP -> ($ext_if)
#создаем правило трансляции адресов из офисной сети во внешний мир
nat on $ext_if from $localnet to any -> ($ext_if)
#создаем правило входящие для RDP
#rdr pass on $ext_if proto tcp from any to ($ext_if) port 3389 tag RDP -> 10.0.0.100 port 3389
#nat on $int_if tagged RDP -> 10.0.0.1
#создаем правило входящие для LotuNotes
#rdr pass on $ext_if proto tcp from any to ($ext_if) port 1352 tag LotusNotes -> 10.0.0.100 port 1352
#nat on $int_if tagged LotusNotes -> 10.0.0.1*
#включаем антиспуфинг для внешнего интерфейса
antispoof quick for $ext_if
#блокируем все по умолчанию
block all
#разрешаем доступ из офисной сети во внешний мир портам, перечисленным в переменных tcp_ports и udp_ports:
pass out on $ext_if proto tcp to any
pass out on $ext_if proto udp to any
#разрешаем доступ к нашей машине по ssh из внешнего мира
pass in inet proto tcp from any to $ext_if port 22 keep state
#разрешаем пинг
pass inet proto icmp all
#разрешаем исходящий трафик IPSec с офиса 1 на офис 2
pass out quick on $ext_if proto udp from $office1_ip port = isakmp to $office2_ip port = isakmp
pass out quick on $ext_if proto esp from $office1_ip to $office2_ip
pass out quick on $ext_if proto ipencap from $office1_ip to $office2_ip
#разрешаем входящий трафик IPSec, пришедший с офиса 2 на офис 1
pass in quick on $ext_if proto udp from $office2_ip port = isakmp to $office1_ip port = isakmp
pass in quick on $ext_if proto esp from $office2_ip to $office1_ip
pass in quick on $ext_if proto ipencap from $office2_ip to $office1_ip