проблема заключается в следующем
для выхода в интернет из локальной сети используется машина с фри бсд
на одну их локальных машин необходимо получить доступ из интернет по 213 порту.
используя ipfw
в ipf.rules
pass in quik on sis0 proto tcp from 85.12.20x.xxx to 192.168.0.5 port = 213 flafs S keep state keep fragsи в ipnat.rules
rdr sis0 85.12.20x.xxx port 213 -> 192.168.0.5 port 213 tcpв итоге происходит доступ по 213 порту только в интернет. на машину в локалке доступа нет.
что может быть не так и как сутуацию можно исправить ?
>[оверквотинг удален]
>pass in quik on sis0 proto tcp from 85.12.20x.xxx to 192.168.0.5 port
>= 213 flafs S keep state keep frags
>
>и в ipnat.rules
>rdr sis0 85.12.20x.xxx port 213 -> 192.168.0.5 port 213 tcp
>
>в итоге происходит доступ по 213 порту только в интернет. на машину
>в локалке доступа нет.
>
>что может быть не так и как сутуацию можно исправить ?лично я пользуюсь для этих целей портом rinetd
весьма удобно и практично!
Судя по правилам ты используешь не ipfw, а ipf. С этим фаерволлом не работал, но смысл ошибки ясен: когда пакет попадает в фаервол он перенаправляется правилом rdr, изменением в заголовке пакета адреса получателя. При обратной отправке в заголовке пишется отправитель 192.168.0.5. В итоге получается, что гостевая машина отправляет на 85.12.20x.xxx пакет с флагом SYN, а с SYN+ACK получает от 192.168.0.5, в итоге никто никого не понимает. В общем, нужно занатить локальный адрес, чтобы в пакете от 192..., проходя нат, менялся адрес отправителя.
вот сдесь вес ужас ситуации и проявляется в том что от гостевой машины т.е от 192.168.0.5 на 85.12.20x.xxx все приходит отлично.
а наоборот нет=(
утром попробую натом или rinetd...
192.168.0.5 - это локальная, гостевая - это та, которая из инета пытается достучаться.
ок. понял. исправлюсь.
А насчет rinetd - всегда шли на 3 буквы тех людей, которые принебригают встроенными возможностями ядра и предлагают левые решения в юзер-спейсе, - это всегда менее стабильно и медленее.
т.е мне нужно создать правило в нате разрешающее соединение на локальный адрес из внехи?
а если 192.168.0.5 пустить не через хаб+фаервол, а на вторую сетевую фаервола и сделать демилитаризованную зону типа 172.20.0.2,из нее не проще будет работать?
не совсем: тебе необходимо сделать так, чтобы машиана 192.168.0.5 могла выходить в инет, через нат, маскируясь под 85.12.20x.xxx, потом на роутере редиректом перенаправить пакеты, приходящие из инета на 85.12.20x.xxx:213 на 192.168.0.5:213 и все.для гостевой машины будет казаться, что она общается с 85.12.20x.xxx:213.
краем уха слышал что pf и ipf имеют в какой-то степени взаимозаменяемые правила, поэтому пример:
http://www.openbsd.org/faq/pf/rdr.html#rdrnat - тут наглядно продемонстрировано как это должно быть.
для ее маскировки сделал в ipnat
map sis0 192.168.0.5 -> 85.12.20x.xxx/32 portmap tcp/udp
rdr оставил прежним. сотрудничать отказываетсо
заработало
в ipf.rules добавил
pass in quik on sis0 proto tcp from any to 192.168.0.5 port = 213 flafs S keep state keep frags
pass in quik on sis0 proto tcp from 85.12.20x.xxx to 192.168.0.5 port = 213 flafs S keep state keep fragsи в ipnat.rules
rdr sis0 85.12.20x.xxx port 213 -> 192.168.0.5 port 213 tcp
мистика!
без ната не должно было заработать! скорее всего ты из той-же сети что и внутренняя тачка проверял.
темные силы электричества. проверяли из другого города. связь с сервером была установлена и работа с б/д идет(пока) без ошибок.
Почитайте внимательно вот эту статю http://freebsd.org.ua/doc/ru_RU.KOI8-R/books/handbook/networ..., там есть все что вам нужно. У меня так веб и почтовый сервера работают безотказно.