помогите с iptables (вопрос по правилам (учусь :( ))

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

помогите с iptables

Сообщение aliens »

начал для себя изучать iptables. Пока успехи минимальны, напсиал тут пару правил, и возник вопрос. Почему не работаюи исходящие ICMP запросы? хотя входящие работают на ура

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

#!/bin/bash
#интерфейсы
LAN_IF="eth0"
MODEM_IF="eth1"
LAN_MODEM_IP="192.168.1.250"
LAN_MASK="255.255.255.0"
LAN_IP="192.168.8.250"
AL="192.168.1.2"

LO_IFACE="lo"
LO_IP="127.0.0.1"

IPTABLES="/sbin/iptables"
#очищаем все
$IPTABLES -F
$IPTABLES -F -t filter
#запрет на все
$IPTABLES -P INPUT DROP #задаем политику по умочланию для цепочек
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#откроем все на локальном
$IPTABLES -A INPUT -p all -s $LAN_MODEM_IP -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -p all -s $LAN_IP -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -p all -s $LO_IP -i $LO_IFACE -j ACCEPT

$IPTABLES -A OUTPUT -p all -d $LAN_MODEM_IP -j ACCEPT
$IPTABLES -A OUTPUT -p all -d $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p all -d $LO_IP -j ACCEPT

#откроем SSH
$IPTABLES -A INPUT -p tcp -s $AL --dport 22 -d $LAN_MODEM_IP -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 22 -j ACCEPT
#откроем ICMP пакеты
$IPTABLES -A INPUT -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 11 -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT


Спасибо за помощь
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: помогите с iptables

Сообщение Mage-Warrior »

Это как? :wacko:
$IPTABLES -A INPUT -p all -s $LAN_MODEM_IP -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -p all -s $LAN_IP -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -p all -s $LO_IP -i $LO_IFACE -j ACCEPT

Что-то даже логике не поддается. Входящий на lo с адресов разных _ваших же_ разрешены... это на случай, если у lo интерфейса будут разные адреса?

А это что? :mellow:
$IPTABLES -A OUTPUT -p all -d $LAN_MODEM_IP -j ACCEPT
$IPTABLES -A OUTPUT -p all -d $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p all -d $LO_IP -j ACCEPT

Типа разрешить исходящие на один из ваших же адресов :)

Для lo делается все двумя строчками:

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

$IPTABLES -A INPUT -p all -i $LO_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -p all -i $LO_IFACE -j ACCEPT


Для начала так упростите. Рекомендую почитать туториалы по iptables (там с примерами). Поиском по форуму найдете, что нужно.

И кстати, почему вы решили, что пинги у вас не уходят из-за iptables? Может быть у вас маршруты не заданы до пингуемого.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

Re: помогите с iptables

Сообщение aliens »

Mage-Warrior,
спасибо

про маршруты, т.к пишет.что доступ запрещен ;) да и пингуемая машина находится в той же подсети и на том же свитче)
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: помогите с iptables

Сообщение Mage-Warrior »

aliens писал(а):
27.09.2007 14:50
...пишет.что доступ запрещен ;) да и пингуемая машина находится в той же подсети и на том же свитче)

Пожалуйста-пожалуйста.
Доступ запрещен? Хм... тогда грешу только на firewall со стороны пингуемого, так как в построенных Вами правилах используется политика DROP. То есть неподходящие пакеты просто сбрасываются, при этом никаких уведомлений в ответ не отсылается (например, как в правилах REJECT).
О! И вдруг подумалось... очень помогают в выявлении истины: -j LOG в правилах _перед_ сбросом пакетов; отдельный инструмент - tcpdump.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

Re: помогите с iptables

Сообщение aliens »

подскажите, а как разрешить исходящие фтп соединения? Хотя бы теоретически...
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: помогите с iptables

Сообщение Voice »

aliens писал(а):
30.09.2007 17:53
подскажите, а как разрешить исходящие фтп соединения? Хотя бы теоретически...

iptables -A OUTPUT -p tcp -s 0/0 --dport 21 -j ACCEPT
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

Re: помогите с iptables

Сообщение aliens »

имхо, не катит...
Проверял, не работает, на чтении списка файлов останавливается. Для фтп, простого открытия порта 21 не работает. Т.к. в пассивном режиме там на другой порт перекидывается.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: помогите с iptables

Сообщение vr13 »

$IPTABLES -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

этого достаточно для пассивного ftp. если обычный то нужно еще добавить правило $IPTABLES -A allowed -p TCP --syn -j ACCEPT, и соответственно открыть порт tcp ftp-data (20)

теория достаточно хорошо изложена в man iptables (в т.ч про модуль ядра state)
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

Re: помогите с iptables

Сообщение aliens »

vr13,
эм.. мне надо исходящие фтп соединения. т.е. с компьютера с фаерволом, заходиь на другие фтп.

терь появилось потребность в открытии фтп на этой же машине :(
не понимаю как
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

Re: помогите с iptables

Сообщение aliens »

фтп открыл, путем дополнительного открывания 1024-65535 портов... теперь как бы и то и то работает.
А других методов нету? а то оставлять столько портов открытыми...
Спасибо сказали:
Аватара пользователя
Dpoke
Сообщения: 106
ОС: Debian GNU/Linux Testing

Re: помогите с iptables

Сообщение Dpoke »

Загрузить спец модуль для ftp командой modprobe ip_conntrack_ftp.
Открыть 20 21 порты. Сделать фильтрацию пакетов по состоянию пакетов... должно помочь.

Или явным образом указать порты демону фтп которые он может использовать для передачи файлов.
в proftpd это делается так: PassivePorts 49152 65534 сразу после опции Port.

Можно почитать тут: http://www.opennet.ru/openforum/vsluhforumID10/2933.html
и тут: http://www.linux.org.ru/view-message.jsp?msgid=1596077
Любое слишком категоричное утверждение неверно, включая и это.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: помогите с iptables

Сообщение vr13 »

по поводу входящих ftp. на самом деле это

... -m state --state ESTABLISHED,RELATED -j ACCEPT

как раз и указывает "использовать ip_contrack", которого вполне достаточно, чтобы работали ftp: когда к вашему узлу подключился ftp (порт 21 открыт) и control-соединение установлено (ESTABLISHED) , в таблице /proc/net/ip_contrack имеется соответствующая запись, то опция RELATED, обеспечивает прозрачность для любых пакетов, связанных с этим существующим соединением

на сколько я понимаю (поправьте pls, если не прав) ip_conrack_ftp, ip_contrack_irc, ip_contrack_h323 - это частные случаи для пакетов опреденного протокола

что касается исходящих, то вариантов два - когда допускается использование ftp passive mode и когда нет. в первом случае для исходящих правил достаточно будет открытого порта ftp и того же established+related, как написано выше. второй случай требует явного открытия ftp-data

да, добавлю, что все это для iptables сервера и клиента, но не шлюза (там, вероятно сложнее)
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

Re: помогите с iptables

Сообщение aliens »

реализовал просто открытием портов в верхнем диапазоне. Спасибо за разъяснения.
Спасибо сказали:
Igor B.
Сообщения: 324

Re: помогите с iptables

Сообщение Igor B. »

Если в итоге открывать все порты (или даже только в верхнем диапазоне), то зачем вообще париться с iptables?

Протокол FTP отличается от других протоколов тем, что у него есть два соединения. Первое соединение (управляющее) устанавливает клиент с сервером по (стандартному) порту 21. А вот направление второго соединения (для передачи данных - комнады ls, get, put и др.) зависит от того, какой режим используется - активный или пассивный. При пассивном режиме соединение для данных устанавливает клиент, при активном (изначально - это стандартный режим) - сервер. А порт, по которому устанавливается соединение для данных, назначается ВНУТРИ пакета.

Сам iptables внутренности пакета не рассматривает, он работает только со стандартными заголовками. Вот как раз для работы с "потрохами" пакетов конкретных протоколов и используются специальные модули. Так что для правильной работы с ftp-протоколом упомянутый модуль необходим. Примеры работы с этим модулем есть в руководстве по iptables.
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

Re: помогите с iptables

Сообщение aliens »

Igor B.,
ух... ладно, будем думать и читать дальше...

спасибо
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1

Re: помогите с iptables

Сообщение aliens »

подскажите теорией ( а то не могу понять ),
имеется локальная сеть с 192.168.1.0/24 адресами, имеется сервер 192.168.1.250, к его eth1 подключен адсл модем в режиме роутера. Требуется, чтобы при устанвоки сервера основным шлюзом, он отдавал инет через модем. Если модем не в роутере, и до него надо поднимать PPPoE, то я понимаю что надо использовать маскарадинг(т.к. динамический ип). А вот в этом случае, не могу понять =\
или это просто надо включить ip_forward ?
Спасибо сказали: