Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Firewall *nix: iptables, ipfw, pf etc...

Автор: urodliv
Дата сообщения: 06.08.2012 12:52

Цитата:
Как объяснил предыдущий админ, необходимо именно прописывать и в Input, и в Output, таковы настройки фаервола.

Ещё раз. Цепочки INPUT и OUTPUT отвечают за фильтрацию пакетов идущих в (из) userspace на самом шлюзе. Вряд ли вам они нужны. Не всегда предыдущий админ прав.

Цитата:
Получается, правильно будет так?

Нет. Правильно будет так:

Код:
iptables -A FORWARD -d $edds -p tcp -m multiport --dport 389,1002,1720,1731,1503,3601,3603,3604,5001,5060,8080,3230:3237,3220:3225,1024:65535 -j ACCEPT
iptables -A FORWARD -s $edds -p tcp -m multiport --sport 389,1002,1720,1731,1503,3601,3603,3604,5001,5060,8080,3230:3237,3220:3225,1024:65535 -j ACCEPT
iptables -A FORWARD -d $edds -p udp -m multiport --dport 1002,3601,5060,1718:1719,3230:3247,1024:65535 -j ACCEPT
iptables -A FORWARD -s $edds -p udp -m multiport --sport 1002,3601,5060,1718:1719,3230:3247,1024:65535 -j ACCEPT
Автор: syrus
Дата сообщения: 06.08.2012 13:11
Alukardd
Я спрашивал этот момент, мне сказали, что фаервол настроен так, что эти цепочки нужны, что кроме форвардинга их необходимо разрешить на вход/выход... Потому и пишу, но попробую закомментировать, может я что недопонял.

В форварде я попутал с dport/sport. Получается так?

Код:
iptables -I INPUT -p tcp --dport 389,1002,1720,1731,1503,3601,3603,3604,5001,5060,8080 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 389,1002,1720,1731,1503,3601,3603,3604,5001,5060,8080 -j ACCEPT
iptables -I INPUT -p udp --dport 1002,3601,5060 -j ACCEPT
iptables -I OUTPUT -p udp --dport 1002,3601,5060 -j ACCEPT

iptables -I INPUT -p tcp -m multiport --dport 3230:3237,3220:3225,1024:65535 -j ACCEPT
iptables -I OUTPUT -p tcp -m multiport --dport 3230:3237,3220:3225,1024:65535 -j ACCEPT
iptables -I INPUT -p udp -m multiport --dport 1718:1719,3230:3247,1024:65535 -j ACCEPT
iptables -I OUTPUT -p udp -m multiport --dport 1718:1719,3230:3247,1024:65535 -j ACCEPT

iptables -A FORWARD -d $edds -p tcp --dport 389,1002,1720,1731,1503,3601,3603,3604,5001,5060,8080 -j ACCEPT
iptables -A FORWARD -s $edds -p tcp --sport 389,1002,1720,1731,1503,3601,3603,3604,5001,5060,8080 -j ACCEPT
iptables -A FORWARD -d $edds -p udp --dport 1002,3601,5060 -j ACCEPT
iptables -A FORWARD -s $edds -p udp --sport 1002,3601,5060 -j ACCEPT

iptables -A FORWARD -d $edds -p tcp -m multiport --dport 3230:3237,3220:3225,1024:65535 -j ACCEPT
iptables -A FORWARD -s $edds -p tcp -m multiport --sport 3230:3237,3220:3225,1024:65535 -j ACCEPT
iptables -A FORWARD -d $edds -p udp -m multiport --dport 1718:1719,3230:3247,1024:65535 -j ACCEPT
iptables -A FORWARD -s $edds -p udp -m multiport --sport 1718:1719,3230:3247,1024:65535 -j ACCEPT
Автор: Alukardd
Дата сообщения: 06.08.2012 13:20
syrus
Что бы к Вам цепляться, нужно либо иметь "белый" ip на Polycom'е, либо писать правила для DNAT'а.

Как правильно и красиво Вам написал т. urodliv.

Все описанные правила, описывают ситуацию когда подключаются к Вам. Для разрешения исходящих соединений надо описать те же правила, только поменять местами -s и -d, при этом --sports и --dports не трогать.
Автор: syrus
Дата сообщения: 06.08.2012 13:26
Alukardd

Цитата:
Что бы к Вам цепляться, нужно либо иметь "белый" ip на Polycom'е, либо писать правила для DNAT'а.

У нашей сети есть статический ip-адрес, по которому и пытаются попасть на polycom, который стоит на одной из машин ($edds). Почему и хочу весь приходящий на определенные порты трафик перенаправлять на $edds.
Подходит ли статический ip-адрес под "белый" и какие правила для DNAT'а вы имеете в виду?


Цитата:
Для разрешения исходящих соединений надо описать те же правила

Понял, спасибо.
Автор: Alukardd
Дата сообщения: 06.08.2012 13:38
syrus
Эм... У вас какая структура сети? LAN <---> GW (NAT) <---> Internet - такая? В локалке у вас какие адреса, реальные или локальные?

Кстати, рекомендует для пущей надёжности описывать правила в цепочке FORWARD с указанием интерфейсов (, например, -i eth0 -o eth1). Это не обязательно, но так для справки.
Автор: syrus
Дата сообщения: 06.08.2012 13:40
Alukardd
Да, вы правы.


Цитата:
FORWARD с указанием интерфейсов (, например, -i eth0 -o eth1)

Спасибо за совет, я разберусь, поправлю.
Автор: Alukardd
Дата сообщения: 06.08.2012 13:47
syrus
Тогда показывайте ту часть скрипта которая занимается NAT'ом. Т.е. правила в цепочках POSTROUTING и PREROUTING таблицы nat (-t nat).
Автор: syrus
Дата сообщения: 06.08.2012 14:00
Alukardd
К сожалению смогу показать только завтра, у нас уже 10 вечера, а дома комп переустановил и ОпенВПН еще не ставил, т.к. не было острой нужды.
Но я в эту секцию ничего не добавлял, касательно polycom'a.
На что нужно обратить внимание? Касательно чего почитать мануалы?
Автор: Alukardd
Дата сообщения: 06.08.2012 14:03
syrus
Читать всю статью на wikibooks. Это касательно iptables.
Я не знаю что там у Вас с общим пониманием функционирования сети. Знаете ли вы что такое NAT, что такое маршрутизация и т.п. вещи.
Автор: urodliv
Дата сообщения: 06.08.2012 14:05

Цитата:
На что нужно обратить внимание?

Чесслово, я бы вообще все правила сюда вытолкнул, чтобы хоть что-то стало понятно. Ибо если читать на сайте поликома, то такого бешеного количества портов открывать совершенно нет необходимости.
Автор: syrus
Дата сообщения: 06.08.2012 14:10
Alukardd, urodliv
Спасибо, я с wikibooks и начал, завтра дочитаю, буду вникать.
С утра кину файл с правилами, может еще какие косяки увидите))


Цитата:
Ибо если читать на сайте поликома, то такого бешеного количества портов открывать совершенно нет необходимости.

Я все порты брал отсюда - http://www.polycom.su/support/faq/detail.php?ID=904
Тут их многовато, но наши кураторы так и сказали, чтобы были отрыты все.
Автор: syrus
Дата сообщения: 07.08.2012 07:31
Alukardd, urodliv
Спасибо вам огромное за помощь))
Разобрался с настройками, при обращении на наш внешний адрес появилось видео-изображение... Почему-то нет звука от них и Polycom не принимает веб-камеру, хотя в винде она работает, но это уже тема другого разговора
Автор: Small_green_yojik
Дата сообщения: 15.08.2012 10:29
Добрый день!
Есть модем DLINK с внешнем ip и внутренним 192.168.1.1 за ним стоит debian шлюз (iptables, proxy, reserve_inet, openVPN) 192.168.1.2 и 192.168.0.70, в сети, на одной (192.168.0.105) из машин поднят FTP.

Проблема с пробросом FTP до сервера.
Буду очень благодарен за помощь.

На модеме просто прокинул 21 до 192.168.1.2 (в активном режиме для начала дабы список файлов хотя бы увидеть).
[more=iptables шлюз]
#!/bin/sh
INET=${1}
NET="eth0"

LANIP="192.168.0.70"
NET_NET="192.168.0.0/24"

INETIP=${2}

UNPRIVPORTS="1024:65535"

#Сбрасываем все правила
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F
iptables -t mangle -F

modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack ftp

#Запрещаем все
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#Инет на сервере (в т.ч. через прокси)
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

#разрешаем пинг
iptables -A OUTPUT -d 8.8.8.8 --protocol icmp --jump ACCEPT

#echo "Запрещаем левые запросы (мусор)"
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

#Сброс запоросов на соединение, кроме SSH
iptables -A INPUT -d $INETIP -p TCP --syn --dport ! 22 -j DROP

# SSH (с защитой от брута)
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 3 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 60000 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j DROP
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

#openVPN, DHCP
iptables -A OUTPUT -p UDP --dport 1194 -j ACCEPT
iptables -A OUTPUT -p UDP --dport 67 -j ACCEPT
iptables -A INPUT -p UDP --dport 68 -j ACCEPT

#FTP port forwarding
iptables -t nat -A PREROUTING -i $INET -p TCP -d $INETIP --dport 21 -j DNAT --to 192.168.0.105:21
iptables -t filter -A FORWARD -d 192.168.0.105 -p TCP --dport 21 -j ACCEPT
#iptables -t nat -A PREROUTING -i $INET -p TCP --dport 10000:10500 -j DNAT --to-destination 192.168.0.105:10000-10500
#iptables -t filter -A FORWARD -p TCP --dport 10000:10500 -m state --state ESTABLISHED,RELATED -j ACCEPT


#Порты из локалки, в т.ч. WebMin
iptables -A INPUT -s $NET_NET -p TCP -d $LANIP -m multiport --dport 22,1080,80,443,555,2025,3025,4025,5025,2110,3110,4110,5110,8080,10000 -j ACCEPT
iptables -A INPUT -s $NET_NET -p TCP -d $LANIP -m multiport --dport 8082,9875 -j ACCEPT

#Оба офиса друг другу любые пакеты
iptables -A FORWARD -p ALL -j ACCEPT

#Чтоб все ходило
iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s $LANIP -i lo -j ACCEPT
iptables -A INPUT -p ALL -s $INETIP -i lo -j ACCEPT
iptables -A OUTPUT -p ALL -d 127.0.0.1 -o lo -j ACCEPT
iptables -A OUTPUT -p ALL -s $LANIP -j ACCEPT
iptables -A OUTPUT -p ALL -s $INETIP -j ACCEPT
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT

#Провайдеру TTL
#iptables -t mangle -A PREROUTING -i $INET -j TTL --ttl-set 64

#Включаем ip НАТ
iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INETIP
echo "1" > /proc/sys/net/ipv4/ip_forward
[/more]
Автор: Alukardd
Дата сообщения: 15.08.2012 11:23
Small_green_yojik
ЭМ... А 20 порт?
С натом FTP вообще есть заморочки, в случае Linux неплохо бы добавить модуль modprobe nf_conntrack_ftp

Добавлено:
И да, сервер всё же в пассивном режиме надо ставить, т.к. вряд ли у клиента белый ip.
Автор: Small_green_yojik
Дата сообщения: 15.08.2012 11:39
Alukardd
Добавил, добавил 20-й. Картина прежняя.

Клиент будет с белым ip (по факту FTP нужен только для одного клиента; обмен по FTP, вместо VPN)
Автор: Alukardd
Дата сообщения: 15.08.2012 11:47
Small_green_yojik
Вы в FORWARD не разрешили подключения на диапазон портов, ни в одну сторону ни в другую, так не какой из режимов FTP законнектится не сможет. Кстати, диапазон портов разрешён тот который используют Ваш ftp сервер и клиент?
Автор: Small_green_yojik
Дата сообщения: 15.08.2012 11:55
Alukardd
Раскоментил. Добавил порт форвардинг для диапазона на модем. Пока все попрежнему. Быть может ему SNAT на модем не хватает?
Автор: urodliv
Дата сообщения: 15.08.2012 11:57
Small_green_yojik
Ну я бы того, начал бы эту "балалайку" разруливать с модема. Ибо что-то мне подсказывает (гусары молчать!), что там стоит "одомашненная мыльница". И как показывает практика, у них-то оооочень большие проблемы с пробросом ftp.
Автор: Small_green_yojik
Дата сообщения: 15.08.2012 12:02
Текущий [more=Iptables]
INET=${1}
NET="eth0"

LANIP="192.168.0.70"
NET_NET="192.168.0.0/24"

INETIP=${2}
UNPRIVPORTS="1024:65535"

#Сбрасываем все правила
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F
iptables -t mangle -F

modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack ftp
modprobe nf_conntrack_ftp

#Запрещаем все
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#Инет на сервере (в т.ч. через прокси)
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

#разрешаем пинг
iptables -A OUTPUT -d 8.8.8.8 --protocol icmp --jump ACCEPT

#echo "Запрещаем левые запросы (мусор)"
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

#Сброс запоросов на соединение, кроме Webmin
iptables -A INPUT -d $INETIP -p TCP --syn --dport ! 22 -j DROP

# SSH (с защитой от брута)
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 3 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 60000 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j DROP
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT


#openVPN, DHCP
iptables -A OUTPUT -p UDP --dport 1194 -j ACCEPT
iptables -A OUTPUT -p UDP --dport 67 -j ACCEPT
iptables -A INPUT -p UDP --dport 68 -j ACCEPT


#FTP port forwarding
iptables -t nat -A PREROUTING -i $INET -p TCP -d $INETIP --dport 20:21 -j DNAT --to 192.168.0.105:20-21
iptables -t filter -A FORWARD -d 192.168.0.105 -p TCP --dport 20:21 -j ACCEPT
iptables -t nat -A PREROUTING -i $INET -p TCP --dport 10000:10500 -j DNAT --to-destination 192.168.0.105:10000-10500
iptables -t filter -A FORWARD -p TCP --dport 10000:10500 -m state --state ESTABLISHED,RELATED -j ACCEPT


#Порты из локалки, в т.ч. WebMin
iptables -A INPUT -s $NET_NET -p TCP -d $LANIP -m multiport --dport 22,1080,80,443,555,2025,3025,4025,5025,2110,3110,4110,5110,8080,10000 -j ACCEPT
iptables -A INPUT -s $NET_NET -p TCP -d $LANIP -m multiport --dport 8082,9875 -j ACCEPT


#Оба офиса друг другу любые пакеты
iptables -A FORWARD -p ALL -j ACCEPT

#Чтоб все ходило
iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s $LANIP -i lo -j ACCEPT
iptables -A INPUT -p ALL -s $INETIP -i lo -j ACCEPT
iptables -A OUTPUT -p ALL -d 127.0.0.1 -o lo -j ACCEPT
iptables -A OUTPUT -p ALL -s $LANIP -j ACCEPT
iptables -A OUTPUT -p ALL -s $INETIP -j ACCEPT
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT

#Провайдеру TTL
#iptables -t mangle -A PREROUTING -i $INET -j TTL --ttl-set 64

#Включаем ip НАТ
iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INETIP
echo "1" > /proc/sys/net/ipv4/ip_forward

[/more]

[more=Нат на модеме]

[/more]

Добавлено:
На FTP вижу: could not send reply, disconnected
Автор: urodliv
Дата сообщения: 15.08.2012 12:20
Ну так я бы вашу задачу на две части поделил.
1. Подключаем ftp-сервер в сеть 192.168.1.x и пробуем на него пролезть извне. Если не прошли, то дальше трепыхаться бесполезно - надо менять модем. Если прошли, то переходим ко второму пункту.
2. Возвращаем ftp-серверу его теперешний адрес. В сеть 192.168.1.x подключаем комп и с него пытаемся пробраться через деба на сервак.
А то если не разделить вашу задачу на две, то можно долго и упорно ловить "серую кошку в тёмной комнате, особенно если её там нет".
Автор: Small_green_yojik
Дата сообщения: 15.08.2012 12:25
urodliv
Спасибо.
Но сия конструкция находиться не близко. Так что разбить на подзадачи смогу только на выходных.
А пока имеем то, что имеем (удаленка)...

Добавлено:
Хотя...

Добавлено:
Сделал так:

Код:
iptables -t nat -A PREROUTING -p TCP --dport 20:21 -j DNAT --to 192.168.0.105:20-21
iptables -t filter -A FORWARD -d 192.168.0.105 -p TCP --dport 20:21 -j ACCEPT
iptables -t nat -A PREROUTING -p TCP --dport 10000:10500 -j DNAT --to-destination 192.168.0.105:10000-10500
iptables -t filter -A FORWARD -p TCP --dport 10000:10500 -m state --state ESTABLISHED,RELATED -j ACCEPT
Автор: Alukardd
Дата сообщения: 15.08.2012 19:42
Small_green_yojik
Цитата:
Там мы, так же, имеем iptables.
эм... У вас туда root доступ?.. FTP корректно работает с правилом RELATED только при соответсвующем модуле ядра. Кстати как я понял достаточно 21 порта в таком случае, т.к. 20 он тоже умеет определять как RELATED.


Кстати, народ не могу найти саму суть, как устроены RELATED соединения? Нашёл что вроде они как бы инициируются из ESTEBLISHED, но как это так?) Т.е. есть механизм который шлёт SYN пакет с уже используемого порта и при этом просить ответить на другой? И всё это дело conntrack как-то отслеживат?
Ткните пожалуйста где об этом подробно написано, в RFC на TCP не заметил.
Автор: Small_green_yojik
Дата сообщения: 15.08.2012 20:31
urodliv
Удалось проверить первую часть задачи. При текущих настройках нат (модем) на .1.2 (FTP server) из вне пускает отлично.
Только в паре модем > шлюз возникают проблемы.

Alukardd
Да. Рутовый. Но сеть желательно оставить в том виде в котором она сейчас. Тем более форвард "впрямую" на FTP форвАдится.
Автор: Alukardd
Дата сообщения: 15.08.2012 20:36
Small_green_yojik
nat за nat'ом это само по себе тяжело, а для FTP это вообще головная боль. Более того акивнй режим на сколько я понимаю еще более к этому чувствителен, попробуйте перевести FTP-сервер в пассиный режим.
Автор: Small_green_yojik
Дата сообщения: 15.08.2012 21:07
Alukardd
Сервер ("вертится" FileZilla - настройки пассив/актив на выбор там не видел), сам по себе, умеет как активный, так и пассивный.
Все зависит от клиента. На данный момент пытаюсь из браузера "подвеситься" (т.е. пассивный). Но толку, пока, мало...

Добавлено:
Причем до сервера проброс работает: свой ip на сервере вижу.
Но обратно: "could not send reply, disconnected".
Автор: Alukardd
Дата сообщения: 15.08.2012 21:14
Small_green_yojik
оО И давно это у нас режим ftp зависит от клиента?
Автор: Small_green_yojik
Дата сообщения: 15.08.2012 21:55
Alukardd

Поддержка пассивного режима
Пассивный режим FTP часто применяется в наши дни для доступа к серверу из-за файрволла на стороне клиента. Режим доступа определяется клиентом, сервер же может либо поддерживать оба режима (и активный, и пассивный), либо позволять работать только в одном из них.


Источник

Добавлено:
Т.е. клиент и сервер должны "договориться". Но в случае с FileZilla, если я, конечно, ничего не путаю. Актив/пассив определяется именно клиентом.
Автор: Alukardd
Дата сообщения: 15.08.2012 22:10
Small_green_yojik
Похоже на косяк в моих знаниях на счёт ftp. Дибильный протокол и я всю жизнь от него бегаю и нахожу чем пользоваться кроме него.

Как ни крути я не понимаю как у Вас при таких правилах iptables что-то работало даже по отдельности. Правила в цепочке FORWARD должны описывать хождение пакетов в обе стороны, а не только по пути установления соединения.
Автор: urodliv
Дата сообщения: 15.08.2012 22:16

Цитата:
Как ни крути я не понимаю как у Вас при таких правилах iptables что-то работало даже по отдельности.

Тама есть правило:

Код: #Оба офиса друг другу любые пакеты
iptables -A FORWARD -p ALL -j ACCEPT
Автор: Alukardd
Дата сообщения: 15.08.2012 22:18
urodliv
Понятно) Не заметил.

я спать)

Страницы: 123456789101112131415

Предыдущая тема: Как подключиться по RDP к 2000 серверу - к локальной сессии?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.