Посоветуйте новичку, пожалуйста. Пытаюсь настроить шлюз в инет на базе OpenBSD 4.2 с помощью pf. Но, ничего не работает... Пингуется вся внутренняя сеть и внешний ip, шлюз для внешнего ip уже нет (тот, что провайдер дал). Работает, только если грузить только nat-правила :-). Что я делаю неправильно?Вот мой pf.conf:
# MACROS -------------------------------------------------------------
ext_if = "em0" # Внешний интерфейс - смотрит в интернет
int_if = "msk0" # Внутренний интерфейс - смотрит в локальную сеть
extnet = $ext_if:network # Внешняя сеть
localnet = $int_if:network # Внутренняя сеть# На какие порты могут ходить пользователи из внутренней сети
user_out_tcp = "{ domain, http, https, ftp, smtp, pop3, 8000, 8080 }"
user_out_udp = "{ domain }"icmp_types = "echoreq"
# Порты MailRu-Agent
mra_ports = "{ 443, 1863, 2041, 2042, 5190 }"# Порты IRQ
irq_ports = "{ 6666, 6667, 6668, 6669 }"
# TABLES -------------------------------------------------------------# Таблица пользователей, все, кроме админов
table <Users> { 192.168.0.0/24, \
!192.168.0.1, \
!192.168.0.9, \
!192.168.0.12, \
!192.168.0.14 }
# Таблица пользователей, только админы
table <Admins> { 192.168.0.1, 192.168.0.9, 192.168.0.12, 192.168.0.14 }# Таблица адресов серверов MailRu-Agent и ICQ
table <MRA> { 194.67.23.0/24 }
table <ICQ> { 205.188.0.0/16, \
64.12.0.0/16, \
194.67.57.26, \
64.236.47.13, \
81.19.66.52 }
# OPTIONS -------------------------------------------------------------# Просмотр статистики на интерфейсе ext_if, (pfctl -s info)
# отключение - вместо интерфейса - none
set loginterface $ext_if# Оптимизация
set optimization normal# Блокировка пакетов drop-молча игнорировать,return-Connection refused
set block-policy return# Интерфейсы, на которых не должно быть фильтрации (localhost)
set skip on { lo0 }# Выводить информацию только на серьезные ошибки
set debug urgent
# NORMALISATIONS -------------------------------------------------------
#scrub in on $ext_if all fragment reassemble
scrub all# QUEUEING ------------------------------------------------------------
# TRANSLATIONS ---------------------------------------------------------
# NATnat on $ext_if from $localnet to any -> ($ext_if)
# FILTERING -------------------------------------------------------------
# Сначала запрет на все
block inet6 all
block all# Разрешаем ping
pass in inet proto icmp all icmp-type $icmp_types keep state# Разрешаем Traceroute
pass out on $ext_if inet proto udp from any to any \
port 33433 >< 33626 keep state# Разрешаем ходить пользователям только по определенным портам
pass out on $ext_if inet proto tcp from <Users> to any \
port $user_out_tcp keep state
pass out on $ext_if inet proto udp from <Users> to any \
port $user_out_udp keep state# Блокируем MailRu-Agent для пользователей
block out on $ext_if from <Users> to <MRA>
block out on $ext_if inet proto tcp from <Users> to any port $mra_ports# Блокируем IRQ для пользователей
block out on $ext_if inet proto tcp from <Users> to any port $irq_ports# Блокируем ICQ для пользователей
block out on $ext_if from <Users> to <ICQ>
# Разрешаем все для админов
pass out on $ext_if from <Admins> to any keep stateantispoof for $ext_if inet
# Конец pf.conf
Еще вопрос. На этом же шлюзе планируется поднять dhcpd, слушающий на внутренней карте. Что мне надо будет прописать в pf.conf?
Спасибо огромное!
>[оверквотинг удален]
>pass out on $ext_if from <Admins> to any keep state
>
>antispoof for $ext_if inet
>
># Конец pf.conf
>
>Еще вопрос. На этом же шлюзе планируется поднять dhcpd, слушающий на внутренней
>карте. Что мне надо будет прописать в pf.conf?
>
>Спасибо огромное!Второе правило блокирут весь трафик, кроме icmp, на внутреннем
интерфейсе. Добавьте в каждое правило "log" и сами все увидите
запустив "tcpdump -nettti pflog0"С уважением by_
Спасибо, попробую!