Я туплю :((, хотя странно:
есть внутренняя сетка на 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]