Здравствуйте! Не могу никак разобраться в проблеме.
Данная конфигурация ipfw не дает возможности для подключения к ftp в активном режиме, работает только пассивный режим. Что я сделал не так? Заранее благодарю за ответ!
Активные режим - это подключение между 20 портом и портом клиента > 1023 (сначала 21, затем 20 - >1023).em0 - внеш. сетевой интерфейс
igb0 - внутр. сет. инт.
00100 42 4570 allow ip from any to any via lo0
00101 0 0 check-state
00350 8 416 allow tcp from any to me dst-port 80,443 setup
00370 1 52 allow tcp from any to me dst-port 21,50000-60000 setup00400 7109 1179738 allow ip from 192.168.1.0/24 to any in recv igb0
00500 11673 10432842 allow ip from me to any keep-state
00600 6325 873729 divert 8668 ip from 192.168.1.0/24 to any out xmit em0
00610 7557 8748806 divert 8668 ip from any to {внешний ip} in recv em0
00620 0 0 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00630 6 504 allow icmp from any to any65535 552 39649 deny ip from any to any
> Активные режим - это подключение между 20 портом и портом клиента >
> 1023 (сначала 21, затем 20 - >1023).В активном режиме клиент сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться К КЛИЕНТУ для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта КЛИЕНТА, используя со своей стороны номер TCP-порта 20 для передачи данных.
> 52 allow tcp from any to me dst-port 21,50000-60000 setup
Вы разрешили клиенту подключаться к СЕРВЕРУ, да еще и зарезали диапазон портов. У вас и пассивный ftp через ж#опу работать будет.
>> Активные режим - это подключение между 20 портом и портом клиента >
>> 1023 (сначала 21, затем 20 - >1023).
> В активном режиме клиент сообщает серверу номер порта (из динамического диапазона 1024-65535)
> для того, чтобы сервер мог подключиться К КЛИЕНТУ для установки соединения
> для передачи данных. FTP-сервер подключается к заданному номеру порта КЛИЕНТА, используя
> со своей стороны номер TCP-порта 20 для передачи данных.
>> 52 allow tcp from any to me dst-port 21,50000-60000 setup
> Вы разрешили клиенту подключаться к СЕРВЕРУ, да еще и зарезали диапазон портов.
> У вас и пассивный ftp через ж#опу работать будет.Для пассивного режима я прописал в конфиге ftp сервера именно порты 50000-60000. С этим проблем нет.
Подключение с 20 порта к любому порту клиента > 1023 должно обеспечить правило
allow ip from me to any keep-state
Вот тут я что-то могу не знать.
> Для пассивного режима я прописал в конфиге ftp сервера именно порты 50000-60000.
> С этим проблем нет.Воля ваша, у себя наступал на какие-то грабли с этими ограничениями, в итоге пришел к выводу, что нужно открывать все > 1023
> allow ip from me to any keep-state
> Вот тут я что-то могу не знать.Упростите конфиг
# Можно все на localhost
allow ip from any to any via lo0
# Можно icmp
allow icmp from any to any
# Можно все от меня куда угодно
allow ip from me to any setup keep-state
# Активный FTP
allow tcp from any to any 21 setup keep-state
allow tcp from any to any 20 setup keep-state
# www
allow tcp from any to any 80 setup keep-state
allow tcp from any to any 443 setup keep-state
# Пассивный FTP
allow tcp from any to any 50000-60000 setup keep-state
# Все остальное нельзя
deny all from any to anyДолжно взлететь, потом допилите nat.
Если не взлетает - tcpdump в руки, и смотрите, что где застревает.у ipfw помнится еще какая-то своеобразная логика обработки правил по порядку.
>[оверквотинг удален]
> # www
> allow tcp from any to any 80 setup keep-state
> allow tcp from any to any 443 setup keep-state
> # Пассивный FTP
> allow tcp from any to any 50000-60000 setup keep-state
> # Все остальное нельзя
> deny all from any to any
> Должно взлететь, потом допилите nat.
> Если не взлетает - tcpdump в руки, и смотрите, что где застревает.
> у ipfw помнится еще какая-то своеобразная логика обработки правил по порядку.Думаю, активный режим у меня не может работать из-за попыток подключения через NAT. Надо попробовать с какого-нибудь реального ip адреса подключиться без NAT.