все таже проблема с FTP!!!

Всем доброго!

Уже второй день немогу настроить доступ ftp с самого сервака. Схема стандартная, 2 сетевых интерфейса(мир и локалка), не могу настроить iptables, так чтобы с самого сервера можно было соединиться по фтп, а проблема с эти ftp-data(20 порт).
Может тот кто уже сталкивался и успешно устранял эту проблему, поможет. Я лично уже запутался, до основания.

Заранее спасибо!

Видать все

Видать все телепаты в отпуске. Хоть бы набор правил показал.
А настраивает все просто по принципу -A OUTPUT -i ethX -j accept

дело в том, что

дело в том, что не всегда задействован только 20 порт.
не помню точно в каком режиме(активном или пасивном, хотя скорее в активном) нужно открыть все порты выше 1024 чтоли... ну это диапазон свободных портов. tcpdump полностью проясняет тут ситуацию.

Ни каких портов

Ни каких портов открывать не надо. Надо загрузить модуль nf_contrack_ftp он сам нужные порты будет открывать (конечно если ESTABILISHED,RELATED пропускаются и NEW на порт 21)

+1

+1

Re: Ни каких портов(ftp-data)

Доброго!
Само соединение с хостами происходит, только когда я посылаю команду "ls", наступает тишина :(.
Модуль ip_contrack_ftp подключил, но ожидаемого результата не получил.

Вот конфиг, ткните пальцем, что я тут намутил(а намутил я уже достаточно, чтобы запутаться) и как это поправить.
Еще раз повтарюсь, не могу получить данные(ftp-data) по фтп с самого сервака, сами понимаете если бы не обнавления, можно было бы не обращать внимание.

IPT="/sbin/iptables"

# Смотрит в мир
WAN_IP="192.168.1.9"
WAN_INTERFACE="eth0"

# Локалка
LAN_IP="192.168.100.9"
LAN_IP_RANGE="192.168.100.0/24"
LAN_INTERFACE="eth1"

LO_INTERFACE="lo"
LO_IP="127.0.0.1"

UNPRIVPORTS="1024:65535"

echo 1 > /proc/sys/net/ipv4/ip_forward

$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

$IPT -A INPUT -p tcp --tcp-flag SYN,ACK SYN,ACK -m state --state NEW -j DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

################### Тут у меня не понятки происходят ############################################

$IPT -A INPUT -p tcp -s $WAN_IP --dport 21 -m state --state NEW -j ACCEPT
$IPT -A INPUT -p tcp -s $WAN_IP --sport $UNPRIVPORTS --dport 20 -j ACCEPT --syn
$IPT -A OUTPUT -p tcp -m tcp -s $WAN_IP --dport 21 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp -s $WAN_IP --dport 20 -j ACCEPT

################### Конец #######################################################################

################### Рабочий раздел, проброс внутрь сети на FTP сервер ###########################
#
# FTP forward packets
#

$IPT -A FORWARD -d 192.168.100.3 -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT

#
# FTP NAT
#

$IPT -t nat -A PREROUTING -d $WAN_IP -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.100.3:21
$IPT -t nat -A POSTROUTING -d 192.168.100.3 -p TCP -m tcp --dport 21 -j SNAT --to-source $WAN_IP

$IPT -A INPUT -p ALL -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT

# NAT
$IPT -t nat -A POSTROUTING -o $WAN_INTERFACE -j SNAT --to-source $WAN_IP

В /etc/sysctl.conf

В /etc/sysctl.conf добавляешь:

net.ipv4.ip_forward = 1

Останавливаешь iptables если он запущен rc-config stop iptables
В /var/lib/iptables/rules-save пишешь:

# Generated by iptables-save v1.3.8 on Sun Oct 14 17:11:00 2007
*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Sun Oct 14 17:11:00 2007
# Generated by iptables-save v1.3.8 on Sun Oct 14 17:11:00 2007
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
[0:0] -A PREROUTING -d 192.168.1.9 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.100.3
[0:0] -A POSTROUTING -d 192.168.100.3 -p TCP -m tcp --dport 21 -j SNAT --to-source 192.168.1.9
COMMIT
# Completed on Sun Oct 14 17:11:00 2007
# Generated by iptables-save v1.3.8 on Sun Oct 14 17:11:00 2007
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Sun Oct 14 17:11:00 2007
# Generated by iptables-save v1.3.8 on Sun Oct 14 17:11:00 2007
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
[0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
[0:0] -A INPUT -i lo -j ACCEPT 
[0:0] -A INPUT -s 192.168.100.0/24 -j ACCEPT 
[0:0] -A INPUT -p tcp --dport 21 -j ACCEPT
[0:0] -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
[0:0] -A FORWARD -d 192.168.100.3 -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT
[0:0] -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
COMMIT
# Completed on Sun Oct 14 17:11:00 2007

Добавляешь iptables в уровень default - rc-update -a iptables default
Запускаешь его - rc-config start iptables
НЕ ЗАБУДЬ самодельный скрипт в музей сдать. А то будут серьезные траблы. Он ведь даже не очищает правила перед запуском!

Re: В /etc/sysctl.conf

Я тупил однозначно, решение оказалось следующим,
как тут уже говорилось не обезательно ftp-data это 20 порт, так оно и вышло, проблему решил просто, открыл все исходящие пакеты на внешнем интерфейсе и все зашмыгало.

Всем спасибо!!!!

Все открывать

Все открывать не обязательно, а скрипт твой заменить не помешает!

Но я открыл

Но я открыл только на выход, так что не думаю, что особые проблемы с безопастностью могут возникнуть.
Пробежался nmap'ом ничего лишнего, кроме того что я открыл нету.
Какие еще могут быть подводные камни?

А какие тут

А какие тут камни - у вас же не терминальный сервер - никто кроме сетевых сервисов да админов не будет генерировать исходящий трафик и вообще причем тут nmap вы же отклыли весь ИСХОДЯЩИЙ трафик. Рекомендую почитать IPTables tutorial для полного понимания дабы в будущем не напороть какую глупость.

С чего вы

С чего вы взяли?
Как раз таки, сейчас мой сервер работает достаточно продуктивно, просто из всего что мне надо было, у меня не получалось организовать нормальную работу фтп доступа с самого сервака.
Nmap(использовал не на сервере соотвествено) показал мне, что открыты только те порты что я разрешил, для доступа из вне.

Ну так об этом

Ну так об этом вам и было написано мною(что у вас видать локальный исходящий трафик запрещен).

спасибо за

спасибо за науку. поумнел ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".