Я туплю :((, хотя странно:
есть внутренняя сетка на 5 компов с ипами диапазона {intnet}
есть роутер с фрёй 7, натом и ипфв
есть интерфейс роутера, смотрящи во внутреннюю сеть {intif}
есть интерфейс роутера, смотрящи во внешнюю сеть {outif}
есть ip адресс внешнего интерфейса роутера {routerip}Есть проблема: фтп клиенты из внутренней сети не могут подключится к серверам во внешней сети, не только по активному, но и по пассивному протоколу :((
причём интернет по http работает без проблем, хотя правила применяются почти одни и теже
подключения происходят с внутренних компов порты 6000-7000 на сервера порты 21 того же диапазона что и {routerip} в пределах маски 255.0.0.0.ниже привожу правила фаерволла и лог фтп клиента
[log=filezilla]
Статус: Соединяюсь с {server_ip}:21...
Статус: Соединение установлено, ожидание приглашения...
Ответ: 220 Gene6 FTP Server v3.9.0 (Build 2) ready...
Команда: USER anonymous
Ответ: 331 Password required for anonymous.
Команда: PASS **************
Ответ: 230 User anonymous logged in.
Команда: SYST
Ответ: 215 UNIX Type: L8
Команда: FEAT
Ответ: 211-Extensions supported:
Ответ: AUTH TLS
Ответ: CCC
Ответ: CLNT
Ответ: CPSV
Ответ: EPRT
Ответ: EPSV
Ответ: MDTM
Ответ: MFCT
Ответ: MFMT
Ответ: MLST type*;size*;create;modify*;
Ответ: PASV
Ответ: PBSZ
Ответ: PROT
Ответ: REST STREAM
Ответ: SIZE
Ответ: SSCN
Ответ: TVFS
Ответ: UTF8
Ответ: XCRC "filename" SP EP
Ответ: XMD5 "filename" SP EP
Ответ: XSHA1 "filename" SP EP
Ответ: 211 End.
Команда: CLNT FileZilla
Ответ: 200 Noted.
Команда: OPTS UTF8 ON
Ответ: 200 UTF8 OPTS ON
Статус: Соединение установлено
Статус: Получение списка каталогов...
Команда: PWD
Ответ: 257 "/" is current directory.
Команда: TYPE I
Ответ: 200 Type set to I.
Команда: PASV
Ответ: 227 Entering Passive Mode ({server_ip},80,183)
Команда: LIST
Ошибка: Превышено время ожидания соединения
Ошибка: Не могу получить список каталогов!
[/log]правила ipfw:
[rules=ipfw]
#from intnet to NAT
add 50 skipto 72 tcp from {intnet} to not {intnet} 20,21,80,8080,443,53 out via {outif}
add 51 skipto 72 udp from {intnet} to not {intnet} 20,21,53 out via {outif}
#from Global to NAT
add 52 skipto 72 tcp from not {intnet} 20,21,80,8080,443,53 to {routerip} in via {outif}
add 53 skipto 72 udp from not {intnet} 20,21,53 to {routerip} in via {outif}
add 60 check-state
#NAT
nat 72 config ip {routerip} deny_in reset same_ports
add 70 deny all from any to any via {outif}
add 73 nat 72 ip from any to any via {outif}
#from intnet to Global via intinterface
add 80 allow tcp from {intnet} to not {intnet} 20,21,80,8080,443,53,1723 keep-state via {intif}
add 81 allow udp from {intnet} to not {intnet} 20,21,53 keep-state via {intif}
#from intnet to Globalt via out interface
add 82 allow tcp from {routerip} to not {intnet} 20,21,80,8080,443,53,1723 out via {outif}
add 83 allow udp from {routerip} to not {intnet} 20,21,53 out via {outif}
#from NAT to intnet via outinterface
add 84 allow tcp from not {intnet} 20,21,80,8080,443,53,1723 to {intnet} in via {outif}
add 85 allow udp from not {intnet} 20,21,53 to {intnet} in via {outif}
#Deny all
add 1000 deny all from any to any
[/rules]
>Я туплю :((, хотя странно:
>есть внутренняя сетка на 5 компов с ипами диапазона {intnet}
>есть роутер с фрёй 7, натом и ипфв
>есть интерфейс роутера, смотрящи во внутреннюю сеть {intif}
>есть интерфейс роутера, смотрящи во внешнюю сеть {outif}
>есть ip адресс внешнего интерфейса роутера {routerip}
>
>Есть проблема: фтп клиенты из внутренней сети не могут подключится к серверам
>во внешней сети, не только по активному, но и по пассивному
>протоколу :((странная формулировка - вот если бы ты спросил не только по пассивному, но и поактивному ...
по поводу пассива - кури маны по настройке шлюза, в поиске дофега
по поводу активного - тудаже
>[оверквотинг удален]
>add 83 allow udp from {routerip} to not {intnet} 20,21,53 out via
>{outif}
>#from NAT to intnet via outinterface
>add 84 allow tcp from not {intnet} 20,21,80,8080,443,53,1723 to {intnet} in via
>{outif}
>add 85 allow udp from not {intnet} 20,21,53 to {intnet} in via
>{outif}
>#Deny all
>add 1000 deny all from any to any
>[/rules]как уже подзае.. надоело смотреть кучи чужих правил, написанных непонятно зачем и вываленных тут. НЕ МОЖЕТЕ САМОСТОЯТЕЛЬНО НАСТРОИТЬ ФАРЕВОЛ? ВОЗМИТЕ ТИПОВЫЕ ПРАВИЛА ТИПА
ALLOW ALL FROM ANY TO ANY, И ПОСТЕПЕННО УСЛОЖНЯЙТЕ ИХ, ДОВОДЯ ДО НУЖНОГО ВАМ СОСТОЯНИЯ, А НЕ БЕРИТЕСЬ СРАЗУ ЗА СЛОЖНЫЕ НЕПОНЯТНЫЕ ВАМ ВЫРАЖЕНИЯ.
>странная формулировка - вот если бы ты спросил не только по пассивному,
>но и поактивному ...
>по поводу пассива - кури маны по настройке шлюза, в поиске дофега
>ОК попробую, но что-то не находил, может только на английском???
>
>как уже подзае.. надоело смотреть кучи чужих правил, написанных непонятно зачем и
>вываленных тут. НЕ МОЖЕТЕ САМОСТОЯТЕЛЬНО НАСТРОИТЬ ФАРЕВОЛ? ВОЗМИТЕ ТИПОВЫЕ ПРАВИЛА ТИПА
>
>ALLOW ALL FROM ANY TO ANY, И ПОСТЕПЕННО УСЛОЖНЯЙТЕ ИХ, ДОВОДЯ ДО
>НУЖНОГО ВАМ СОСТОЯНИЯ, А НЕ БЕРИТЕСЬ СРАЗУ ЗА СЛОЖНЫЕ НЕПОНЯТНЫЕ ВАМ
>ВЫРАЖЕНИЯ.Ну я там не писал ничего не понятного -- правила составлял собственноручно, по этому не такие красивые, и, может, можно было проще, зато читаются очвидно.
Суть проста через intif разрешить по динамике коннект к опр. портам во вне
Через outif -- задать тоже, но в статике, с указанием направлений, указания разрешонных портов клиентских пока не указал, но среди не приведённых правил было блокирование портов с 1-1023 на клиентских машинах; правила составлял изходя из описаний протоколов http, ftp и dns, с первым и последним проблем не возникло; проблема именно в ftp, подозреваю что до конца с ним не разобрался, почему не работает активный режим я понимаю (в нате стоит запрет на вход), а вот почему пассивный -- нет.
>[оверквотинг удален]
>Суть проста через intif разрешить по динамике коннект к опр. портам во
>вне
>Через outif -- задать тоже, но в статике, с указанием направлений, указания
>разрешонных портов клиентских пока не указал, но среди не приведённых правил
>было блокирование портов с 1-1023 на клиентских машинах; правила составлял изходя
>из описаний протоколов http, ftp и dns, с первым и последним
>проблем не возникло; проблема именно в ftp, подозреваю что до конца
>с ним не разобрался, почему не работает активный режим я понимаю
>(в нате стоит запрет на вход), а вот почему пассивный --
>нет.1) разберись что такое FTP, автивный, пассивный режимы, пойми как как все ходит, и ты поймешь, где крутить. В частности работа пассивного режима ничем не отличается от работы браузера по http с точки зрения файервола. Делай выводы.
2) вот потом уже можно заняться активынм FTP. Например обратить особое внимание на оптию natd - punch_fw.
>
>1) разберись что такое FTP, автивный, пассивный режимы, пойми как как все
>ходит, и ты поймешь, где крутить. В частности работа пассивного режима
>ничем не отличается от работы браузера по http с точки зрения
>файервола. Делай выводы.Во, нашёл -- всётаки отличается от ftp!! Спасибо!!, разобрался почему пассивный не работает: на стороне сервера используется не 20 порт для передаи данных, а динамиеский :((, а я ставил запрет на коннект клиента к динам. портам.
http://www.sys-adm.org.ua/system/ftp-nat.php#c2>2) вот потом уже можно заняться активынм FTP. Например обратить особое внимание
>на оптию natd - punch_fw.Поему не работает активный режим тоже понятно: в нате стоит deny_in, и на intif стоят динам. правила(не уверен, но они тоже могут блочить).
Хотя у меня не natd, а ipfw kernel nat, но думаю, что punch_fw там тоже присутствует -- пошёл курить ман...
Ещё раз СПАСИБО!!!
А не кто не подскажит, есть ли модули аналогичные ip_nat_ftp и ip_conntrack_ftpip_nat_ftp, но для ipfw + kernel nat; я, конечно, привык всё делать ручками, но изобретать велосиед желания нет...
>Во, нашёл -- всётаки отличается от ftp!! Спасибо!!, разобрался почему пассивный не
>работает: на стороне сервера используется не 20 порт для передаи данных,
>а динамиеский :((, а я ставил запрет на коннект клиента к
>динам. портам.ну если учитывать по номерам портов - естественно отличается )
если нет - то все три щняги - http и оба конекта ПАССИВНОГО ftp идут по tcp изнутри.
Вообще если нt стоит задача настроить пароноидальный фаревол - такие ограничения по портам делать не следует на исходящие конекты, это потенциальные грабли. Единственное что лучше всегда делать , дак это рубить все конекты исходящие на smtp (кроме собственных релеев) чтобы защитится от попадания в блек листы rbl.
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
>/sbin/modprobe ip_conntrack_ftp
>/sbin/modprobe ip_nat_ftpЭтож модули ipnat, а не natd/kernel NAT? (тот что в седьмой под ipfw работает)?? или я не прав??
>>/sbin/modprobe ip_conntrack_ftp
>>/sbin/modprobe ip_nat_ftp
>
>Этож модули ipnat, а не natd/kernel NAT? (тот что в седьмой под
>ipfw работает)?? или я не прав??я понял , не сразу дочитал .
у меня есть вариант для pf
:
ipreal=
iplocal=10.35.0.0/16map em0 $iplocal -> $ipreal portmap tcp/udp 40000:50000
map em0 $iplocal -> $ipreal proxy port ftp ftp/tcp
map em0 $iplocal -> $iprealпосле чего :
/sbin/ipnat -CF -f /my_nat_rulesпс , а те модули что я выше написал актуальны толкьо для Линукса.
>Вообще если нt стоит задача настроить пароноидальный фареволКак раз на оборот -- именно такая задача и стоит -- в сети же компы с виндой :(
А куды глядеть, чтоб активный режим настроить?
>>Вообще если нt стоит задача настроить пароноидальный фаревол
>
>Как раз на оборот -- именно такая задача и стоит -- в
>сети же компы с виндой :(если ты поставил шлюз, те физически разделил сети - о внешних угрозаз можно забыть, ибо забратся венутрь практически нереально, если ты конечно не используешь пароли типа 123 и не закрыл ssh из вне. Параноидальность как раз заключается в фильтрации также всего исходящего - задай себе вопрос - ОНО ТЕБЕ НАДО? каждый раз донастравать шлюз под новые требования? если требуется разграничить интернет для пользователей - это одно, если просто защитить сеть - это уже совершенно другое.
>А куды глядеть, чтоб активный режим настроить?у тебя же не natd?
>если просто защитить сеть - это уже совершенно другое.Ну в винде есть такое понятие как вирусы -- защита от них фаерволом -- не лучьшее решение, но тем не менее процентов 20-30 таким образом можно убрать.
>>А куды глядеть, чтоб активный режим настроить?
>
>у тебя же не natd?Вроде, если я правильно разобрался, kenel nat -- потомок natd, просто с изменённым синтаксисом, и встроенный в ядро.
>>если просто защитить сеть - это уже совершенно другое.
>
>Ну в винде есть такое понятие как вирусы -- защита от них
>фаерволом -- не лучьшее решение, но тем не менее процентов 20-30
>таким образом можно убрать.Фереволом можно в лучшем случае их обнаружить, например спамботов.
>>>А куды глядеть, чтоб активный режим настроить?
>>
>>у тебя же не natd?
>
>Вроде, если я правильно разобрался, kenel nat -- потомок natd, просто с
>изменённым синтаксисом, и встроенный в ядро.с кернел нат я не копался - попробуй для начала разрешить все на вход выход
возможно при полность открытом фареволе актив и так заработает
столько оффтопа, а по делу так никто ничего и не сказал.
>столько оффтопа, а по делу так никто ничего и не сказал.Давно забил на это дело, но недавно подвернулось, может кому поможет:
[q]
после запуска модуля alias_ftp.ko (или вручную через kldload alias_ftp.ko или через /boot/loader.conf alias_ftp_load="YES") поведение ipfw nat изменяется к лучшему - он начнет пропускать через себя активные FTP сессии инициализированные от клиентов находящихся за ним. Модуль alias_ftp отслеживат FTP трафик проходящий через нат и динамически изменяет внутреннюю таблицу ната для установления соответствия номеров портов используемых в сессии.
[/q]Если кто знает, как заставить ipfw создавать динамические правила вытаскивая из фтп командных сессий номера дата портов, напишите -- буду благодарен и вновь вернусь к данному вопросу....