>Чего хочу:
>1. Почему выткнув rl1 я не могу приконнектиться к шлюзу из локалки???
>Ведь rl1 тут вообще не играет никакой роли - это всего-лишь
>выход в интернет.
>2. ipfw add 1 allow tcp from any ssh to any ssh
>
>По этому правилу не передается вообще ни одного покета! Тогда какое нужно
>правило исключительно для ssh?
>3. В наборе правил
>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
>правило 300 должно перекрываться первыми двумя и по нему не должны ходить
>пакеты!!! У меня ходят (при воткнутом rl1 только). Почему так, ведь
>пакет, найдя удовлетворяющее правило, проходит по нему и больше не обрабатывается
>барндмауэром.
>4. Как учитывать внешний трафик отдельной машины из локальной сети?
>5. Встретил в сети слово "pf", которое, якобы, круче чем связка natd+ipfw.
>Дайте ключевые слова и расскажите в двух словах что это? По пунктам
1. Выткнув rl1 у тебя скорее всего сбиваются все настройки на интерфейсах, ну не любит BSD когда железо меняют. Ведь меняется там нумерация и смешения в памяти по доступу к устройствам и т.д.... Кароче если что-то изменил в железе то будь добор настраивай всё заново.
2.А ты думаешь что на клиенте тоже ssh порт открывается при соединении? Я тебя разочарую, соект дуплексный но обратный порт очень редко равен порту назначения. А у тебя правило пытается считать именно пакеты которые участвуют в tcp соединении где порт клиента совпадает с портом сервера, что на правктике при соединении ssh вообще никогда не возникает. Не понятно о чём я ? Тогда соединись клиентом по shh на сервер и набери на сервере
sockstat -4
и ты увидишь что порт клиента не shh (т.е. не 22), а какие-то числа больше 1024 . И ещё набери
cat /etc/services | grep ssh
и убедись что у тебя ssh = 22, а так же открой конфиг sshd.conf и убедись что ты не сменил там порт сервера.
3. Ещё раз для тех кто не понимает то что я написал выше. Да по идее должно, но у меня етсть предположение что сервер после того как получил пакет из вне и один раз пропустил его по правилам ipfw пускает его на таблицу маршрутизации где сказано что все пакеты пришедшие из вне нужно переадресовывать локалке (НАТИТЬ во внутрь локалки) поэтому сервер берёт и меняет адрес назначения со своего me, на адрес компьютера в локальной сети, а затем снова пускает его на файрвол, так как это уже новый пакет котрый ipfw ещё не рассматривала но только у этого пакета уже обратный адрес не me а какой-то сайт из вне. Вот пример того что будет происходить при пинге с машины с локальным адресом 192.168.0.36 удалённого хоста 194.87.0.8
Пакет №1 тип ICMP
назначение 194.87.0.8
источник 192.168.0.36
данные
прибыл на шлюз, проходит проверку по ipfw
проверку прошёл на 300 правилу
попал на таблицу маршрутизации сервера и был изменён теперь это
Пакет №36 тип ICMP
назначение 194.87.0.8
источник 172.31.0.153
данные - тунельный пакет от 192.168.0.36
снова прибыл на твой шлюз
заново проходит через ipfw (так как это уже новый пакет созданный самим шлюзом)
проверку прошёл на правиле 100
попал на таблицу маршрутизации и был отправлен посредством изернет кадров с указанием МАК адреса твоего внешнего гетвея , т.е. был отправлен например на 172.31.0.1 без изменения адреса в ip протоколе.
дальше судьбу пакеты мы не знаем...
вдруг в какой-то момент получаем пакет из вне такого вида
Пакет № 37 тип ICMP - эхореквест
назначение 172.31.0.153
источник 194.87.0.8
данные - тунельный пакет для 192.168.0.36
он попадает на ipfw проходит по правилу номер 200
попадает на таблицу маршрутизации где сказано разтунелировать пакет
меняет пакет на следующий
Пакет №2 тип ICMP - эхореквест
назначение 192.168.0.36
источник 194.87.0.8
данные
Заново пускает его на ipfw
проходит по правилу 300
отправляется посредством изернет кадров на мак адрес локальной машины
Всё! Теперь яснее то что я сказал? Хотя это всего лишь моё виденье как всё работает, основанное на том что я читал и с чем имел дело. Может я где-то и нагнал но примерно схема такая.
4. trafd или netams зависит от задачи
5. pf это если я не глючу packet filter под OPEN BSD / Да он новее чем ipfw и по слухам более дружелюбен с natd . Сам с ним дел не имел, поэтому ничего более сказать не могу .
А найти его легко напиши в гугле или яндексе пакетный фильтр pf OpenBSD и тебе там такое море ссылок выползет...