Никак не могу понять, в чем дело. Стоит FreeBSD 4.8, за ней сеть 10.0.0.0/8, запущен natd.
В правилах ipfw я указываю divert на natd всех пакетов через внешний интерфейс. Пакет из серой сети уходит нормально, но ответ на него доходит только до файрвола, который пишет в лог, например,
/kernel: ipfw: 65500 Deny UDP <внешний днс>:53 10.0.0.2:1194 in via <внешний интерфейс>.
Пробовал прописывать правило pass udp from 10.0.0.0/8 to any 53 keep-state, но правило не работает, как я понимаю, из-за того, что пакет уходит в divert раньше, чем до правила доберется, следовательно, динамическое правило не создается и вернуться в серую сеть пакет не может.
Я могу это побороть, прописав pass udp from any 53 to 10.0.0.0/8 , но это мне не кажется очень хорошей идеей по соображениям безопасности. Можно ли заставить ipfw+natd работать с серой сетью так же, как и с публичными адресами (т.е. пришел пакет в правило keep-state, для него создалось динамическое правило, информация в обе стороны прошла, правило закрылось)?
Надеюсь, объяснение не очень непонятное. Благодарю за помощь.
|