Здравствуйте!
FreeBSD 4.10, natd, ipfw
На манине два интерфейса:
rl0:192.168.0.1 - смотрит во внутреннюю сеть
rl1:172.31.0.153 - смотрит в интернетВсе работает. Пользователи из локальной сети 192.168.0.0/24 могут выйти в интернет через эту машину (прописав ее шлюзом).
Начинаю ковырять:
/etc/rc.conf
firewall_type="open"
Это не есть гуд! Читаю маны, хендбуки... Нужно ставить значение "simple". Отредактировал /etc/rc.firewall, прописал в операторе "case [Ss][Ii][Mm][Pp][Ll][Ee]" адреса из своей сети. Поставил, ребут - болт! При загрузки сендмаил опух (послал его на Ctrl+C), шлюз перестал быть виден из локальной сети.
Решил делать все сам. Начинаю экспериментировать:
ipfw flush
ipfw add 200 divert natd all from any to any via rl1
ipfw add 300 allow ip from any to any
Работает на ура! Только вот если выткнуть rl1, то ssh коннектиться не хочет!? Запрашивает логин и виснет... (коннектюсь из локальной сети на rl0).
Ладно. Переделываю вот так:
ipfw add 100 allow ip from me to any
ipfw add 200 allow ip from any to me
ipfw add 300 allow ip from any to any
коннектюсь по ssh (предварительно вернув rl1 в состояние active), смотрю pifw show и вижу, что правило 300 пропускает пакеты!!! Чешу затылок и не понимаю как они до него доходят, если первые два правила должны полностью удовлетворять весь трафик.
Короче вот такая вот каша у меня! Искал решение в сети - куча всего, но дельного мало. Посоветуйте куда читать, или готовые решения. И откуда у меня берется активность в 300ом правиле. А почему выткнув внешнюю сеть я не могу по ssh приконнектиться к шлюзу из внутренней?