Косячит фтп из за файрвола

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
ss25
мл. сержант
Сообщения: 81
Зарегистрирован: 2009-06-18 23:34:09

Косячит фтп из за файрвола

Непрочитанное сообщение ss25 » 2009-09-17 14:52:00

настраивал файрфол по лисяре, юзер логинится но не может получить список файлов зависает и отваливается по таймауту в тоталкомандере, выключаю файрвол все ок

вот его конфиг IPFW

Код: Выделить всё

#!/bin/sh

# для начала вводим переменные - для нашего же удобства, чтобы не
# вводить по сотне раз одно и то же, а потом искать почему не работает,
# и в итоге выяснять, что ошибся IP адресом в одном из правил

FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="re0"            # внешний интерфейс
#LanIn="sis0"            # внутренний интерфейс
IpOut="xxx.xxx.xxx.xxx" # внешний IP адрес машины
#IpIn="192.168.20.254"   # внутренний IP машины
NetMask="24"            # маска сети (если она разная для внешней
                        # и внутренней сети - придётся вводить ещё
                        # одну переменную, но самое забавное, что
                        # можно и забить - оставить 24 - всё будет
                        # работать, по крайней мере я пробовал -
                        # работаало на 4-х машинах, в разных сетях,
                        # с разными масками - настоящими разными! но -
                        # это неправильно.)
#NetIn="192.168.20.0"    # Внутренняя сеть

# Сбрасываем все правила:
${FwCMD} -f flush

# Проверяем - соответствует ли пакет динамическим правилам:
${FwCMD} add check-state

# Разрешаем весь траффик по внутреннему интерфейсу (петле)
# Вообще я во многих местах читал что без него может ничё не заработать вообще
# и прочие страшилки. Работает - почта, апач, .... А вот squid - не работает :)
# так что без него и правда - никуда.
${FwCMD} add allow ip from any to any via lo0
# рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0 (вот честно - ни
# одного пакета по этим правилам не зарубилось за всё время... Может в этом
# моё счастье? :))
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

${FwCMD} -f table 0 flush
# rulezz for sshit table
${FwCMD} add deny not icmp from "table(0)" to me

# Вводим запреты:
# режем частные сети на внешнем интерфейсе - по легенде он у нас
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
# рубим фрагментированные icmp
${FwCMD} add deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}

# а тут собственно файрволл и начался:
# отправляем всех на frox
#${FwCMD} add fwd ${IpIn},2121 tcp from ${NetIn}/${NetMask} to any 21 via ${LanOut}
# отправляем всех на squid (в данном случае - прокси прозрачный)
#${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}

# пропускаем траффик через трансляцию сетевых адресов (NAT)
#${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
#${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

# рубим траффик к частным сетям через внешний интерфейс
# заметтьте - эти правила отличаются от тех что были выше!
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}

# разрешаем все установленные соединения (если они установились -
# значит по каким-то правилам они проходили.)
${FwCMD} add allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно? :))
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
#${FwCMD} add allow udp from any to any 53 via ${LanOut}
# разрешаем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}
# разрешаем ftp снаружи (оба правила - для пасивного режима)
# для узнавания портранджа по которому будет работать, лезем в
#/usr/home/lissyara/>sysctl net.inet.ip.portrange.first
# net.inet.ip.portrange.first: 49152
# /usr/home/lissyara/>sysctl net.inet.ip.portrange.last
# net.inet.ip.portrange.last: 65535
${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}
#Можно изгалиться примерно так, если есть желание, но я предпочитаю руками
#${FwCMD} add allow tcp from any to ${IpOut} \
#`sysctl net.inet.ip.portrange.first | awk '{print $2}'`-\
#`sysctl net.inet.ip.portrange.last | awk '{print $2}'` via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
# разрешаем некоторые типы ICMP траффика - эхо-запрос,
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 80 порт - если у нас есть WWW сервер на машине
${FwCMD} add allow tcp from any to ${IpOut} 80 via ${LanOut}
# открываем снаружи 25 порт (SMTP) если на машине крутится почта
${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
# открываем снаружи 143 порт(если надо смотреть почту снаружи по IMAP)
${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}
# открываем снаружи 110 порт(если надо смотреть почту снаружи по POP)
${FwCMD} add allow tcp from any to ${IpOut} 110 via ${LanOut}

${FwCMD} add allow ip from xxx.xxx.xxx.xxx to ${IpOut} via ${LanOut}
${FwCMD} add allow ip from ${IpOut} to xxx.xxx.xxx.xxx via ${LanOut}

# по поводу следующих трёх правил, для tcp, udp и icmp - их можно
# заменить одним правилом:
#${FwCMD} add allow ip from any to any via ${LanIn}
# но для удобства наладки и контроля происходящего я предпочитаю три отдельных
# правила, хотя могут быть грабли - например протокол gre не пройдёт -
# придётся стругать отдельное правило для него, типа
#${FwCMD} add allow gre from any to any via ${LanIn}
# итак:
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
#${FwCMD} add allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
#${FwCMD} add allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
#${FwCMD} add allow icmp from any to any via ${LanIn}
# запрещаем всё и всем. Если тип файрволла не open то это правило добавится
# автоматически, но всё-же ну его. Лучше сам. Надёжней.
${FwCMD} add deny ip from any to any


Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ADRE
майор
Сообщения: 2641
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: Косячит фтп из за файрвола

Непрочитанное сообщение ADRE » 2009-09-22 5:21:37

юзер логиниться активно? пассивно? пассивно должно работать

Код: Выделить всё

${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
http://www.google.ru/#hl=ru&source=hp&q ... 2b61a2bff9
//del

Аватара пользователя
ss25
мл. сержант
Сообщения: 81
Зарегистрирован: 2009-06-18 23:34:09

Re: Косячит фтп из за файрвола

Непрочитанное сообщение ss25 » 2009-09-24 12:36:10

Судя по тому чт овыдает тспдамп нужно расширить диапазон портов в фаерволе

Код: Выделить всё

12:29:13.985179 IP 202-13-ххх-ххх.ххх.com.ua.1809 > genesis.ххх.4682: . ack 1 win 65535
12:29:13.985233 IP 202-13-ххх-ххх.ххх.com.ua.1807 > genesis.ххх.ftp: P 78:84(6) ack 820 win 64716
12:29:13.985248 IP genesis.ххх.ftp > 202-13-ххх-ххх.ххх.com.ua.1807: . ack 84 win 65535
12:29:13.985309 IP genesis.ххх.ftp > 202-13-ххх-ххх.ххх.com.ua.1807: P 820:850(30) ack 84 win 65535

Аватара пользователя
ADRE
майор
Сообщения: 2641
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: Косячит фтп из за файрвола

Непрочитанное сообщение ADRE » 2009-09-29 5:37:47

да нифига, надо разрешить исходящии порты, у меня же пашет....
//del

Gerk
сержант
Сообщения: 194
Зарегистрирован: 2009-09-23 23:01:37
Откуда: Симферополь, UA

Re: Косячит фтп из за файрвола

Непрочитанное сообщение Gerk » 2009-09-29 10:11:26

ss25 писал(а):Судя по тому чт овыдает тспдамп нужно расширить диапазон портов в фаерволе

Код: Выделить всё

12:29:13.985179 IP 202-13-ххх-ххх.ххх.com.ua.1809 > genesis.ххх.4682: . ack 1 win 65535
12:29:13.985233 IP 202-13-ххх-ххх.ххх.com.ua.1807 > genesis.ххх.ftp: P 78:84(6) ack 820 win 64716
12:29:13.985248 IP genesis.ххх.ftp > 202-13-ххх-ххх.ххх.com.ua.1807: . ack 84 win 65535
12:29:13.985309 IP genesis.ххх.ftp > 202-13-ххх-ххх.ххх.com.ua.1807: P 820:850(30) ack 84 win 65535
Если я правильно читаю этот вывод :roll:
У вас в настройках ftpшника не указано, что нужно юзать пассивный режим и не указан
диапазон разрешенных портов для использования пассивного режима.