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

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

Автор: shupike
Дата сообщения: 28.03.2012 18:44

Цитата:
Я так подозреваю что после DROP уже пофик что ты там разрешаешь. Попробуй переместить свои 2 строки с ACCEPT'ом выше чем правила DROP.

Не догоняю - а как поднять правило выше, чем DROP? В ipfw были номера под каждое правило... Ну или же как грохнуть все правила в FORWARD'e, а потом записать свои?

Добавлено:

Цитата:
Вы бы лучше вывод команды iptables -t filter -nvL выложили

iptables -t filter -nvL
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 LOG all -- !lo * 127.0.0.0/8 0.0.0.0/0 LOG flags 0 level 4
0 0 DROP all -- !lo * 127.0.0.0/8 0.0.0.0/0
54 17779 ACCEPT all -- eth0 * 0.0.0.0/0 255.255.255.255
1956 186K ACCEPT all -- eth0 * 192.168.1.0/24 0.0.0.0/0
0 0 ACCEPT !tcp -- eth0 * 0.0.0.0/0 224.0.0.0/4
0 0 LOG all -- eth1 * 192.168.1.0/24 0.0.0.0/0 LOG flags 0 level 4
0 0 DROP all -- eth1 * 192.168.1.0/24 0.0.0.0/0
0 0 ACCEPT all -- eth1 * 0.0.0.0/0 255.255.255.255
72 5343 ACCEPT all -- eth1 * 0.0.0.0/0 195.58.***.***
0 0 ACCEPT all -- eth1 * 0.0.0.0/0 195.58.***.255
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
10647 3033K ACCEPT all -- eth0 eth1 192.168.1.0/24 0.0.0.0/0
17339 22M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 LOG all -- * eth1 0.0.0.0/0 192.168.1.0/24 LOG flags 0 level 4
0 0 DROP all -- * eth1 0.0.0.0/0 192.168.1.0/24
6 304 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4
6 304 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- eth1 * 0.0.0.0/0 192.168.1.7 tcp dpt:3348

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * eth0 0.0.0.0/0 255.255.255.255
1626 149K ACCEPT all -- * eth0 0.0.0.0/0 192.168.1.0/24
0 0 ACCEPT !tcp -- * eth0 0.0.0.0/0 224.0.0.0/4
0 0 LOG all -- * eth1 0.0.0.0/0 192.168.1.0/24 LOG flags 0 level 4
0 0 DROP all -- * eth1 0.0.0.0/0 192.168.1.0/24
0 0 ACCEPT all -- * eth1 0.0.0.0/0 255.255.255.255
70 6253 ACCEPT all -- * eth1 195.58.***.*** 0.0.0.0/0
0 0 ACCEPT all -- * eth1 195.58.***.255 0.0.0.0/0
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Напомню - eth1 - внешний интерфейс, eth0- смотрит в локалку.
Автор: urodliv
Дата сообщения: 28.03.2012 19:17
Для цепочки OUTPUT:

Цитата:
72 5343 ACCEPT all -- eth1 * 0.0.0.0/0 195.58.***.***

Читать так: разрешить входящий трафик через интерфейс eth1 со всех адресов, по всем протоколам на адрес 195.58.х.х
Отсюда и доступность вашего сервака из инет по 22 порту.

Цитата:
0 0 ACCEPT all -- eth1 * 0.0.0.0/0 195.58.***.255

Подозреваю, что это правило бессмысленно.

Цитата:
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Это правило бессмысленно потому, что у вас и так запрещающая политика цепочки (policy DROP).

Цитата:
В ipfw были номера под каждое правило...

Здесь примерно так же:
iptables -D OUTPUT 2 - удаляем второе правило из цепочки OUTPUT (считать сверху)
iptables -I OUTPUT 2 - вставляем правило на второе место в цепочке OUTPUT
Автор: shupike
Дата сообщения: 29.03.2012 18:25
Ура, получилось Пробросил успешно Спасибо всем!
Автор: zepterman
Дата сообщения: 25.04.2012 15:27
Подскажите, есть маршрутизатор на wan интерфейсе - 10.10.10.121/24, на lan - 192.168.1.1/24

Задача, запретить доступ из 10.10.10.0/24 в 192.168.1.0/24 и из 192.168.1.0/24 в 10.10.10.0/24.

Создаю правила:
iptables -A INPUT -s 10.10.10.0/24 -d 192.168.1.0/24 -j REJECT
iptables -A INPUT -s 192.168.1.0/24 -d 10.10.10.0/24 -j REJECT

Но почему-то все равно доступ имеется.
Автор: Alukardd
Дата сообщения: 25.04.2012 16:23
zepterman
1 - правила вам надо создавать в цепочке FORWARD если вы хотите ограничить доступ внутренних клиентов к каким-либо внешним ресурсам.
2 - Эм... А в чём прикол поставить шлюз и полностью запретить маршрутизацию? Мб проще тогдпа вообще форвардинг пакетов не разрешать? (echo 0 > /proc/sys/net/ipv4/ip_forward)

И еще, если вам не надо что бы они общались то просто не прописывайте правила SNAT и пакеты из wan сети просто не смогут вернуться... А внутрь так они и вообще не попадут самопроизвольно.
Автор: zepterman
Дата сообщения: 25.04.2012 16:41
Alukardd, спасибо, но 192.168.1.0/24 должны иметь доступ в интернет через 10.10.10.1/24, но не должны иметь доступ к 10.10.10.1/24

http://imageshack.us/photo/my-images/821/netgb.png/
Автор: Alukardd
Дата сообщения: 25.04.2012 16:56
zepterman
Всё понял.
Ну описывайте нужные вам правила в цепочке FORWARD. В шапке есть ссылка на wikibooks там всё подробно с примерами об iptables.
Автор: yrkrus
Дата сообщения: 28.04.2012 08:56
Доброго дня!
Подскажите с такой проблемой решил мигрировать с ipfw на pf, для ipfw было собрано ядро с параметрами

Код: options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=5
options DUMMYNET
options IPDIVERT
Автор: Alukardd
Дата сообщения: 15.05.2012 11:57
Вопрос
RaX
А собственно зачем? Как вы хотите его использовать?
На сколько я понимаю такой функционал не предусмотрен. У каждого правила есть свой порядковый номер, возможность задать синоним не предусмотрен, думаю в силу того, что нету и функционала вроде GoTo(label). Для таких целей используются дополнительные цепочки.
Автор: Lennonenko
Дата сообщения: 16.05.2012 15:04
помогите, пожалуйста, с пробросом портов в OpenBSD 5.1
вот такой временный конфиг

Код: ext_if=re0
int_if=re1
set skip on lo
match in all scrub (no-df)
pass out on $ext_if proto { tcp udp icmp } all modulate state
pass in all
match out on egress inet from !(egress:network) to any nat-to (egress)
match in log on $ext_if proto tcp from any to any port 3389 rdr-to 192.168.0.200
Автор: bga83
Дата сообщения: 22.05.2012 09:00
yrkrus
у тебя в ядре остался ipfw. При этом с единственным правилом на запрет всего. Теперь по сути пакеты проходят у тебя 2 фаервола и ipfw и pf. И если второй все пропускает, то первый все блочит. ИМХО целесообразнее пересобрать ядро и выкинуть старый фаервол, добавив новый.

Но еще имей ввиду pf не умеет SMP, то есть обработка пакетов идет в один поток, в отличие от ipfw, который нормально парралелится. Как следствие у pf на многопроцессорных(точнее многопоточных) системах пропускная способность будет ниже. По этой причине мне как-то пришлось совершать обратную миграцию pf -> ipfw. Так как уперся в практический потолок порядка 150-180Мбит/сек для Pf.

Добавлено:
Lennonenko
проверь какие именно правила загрузились. Я OpenBSD не имел дело, но FreeBSD правила pf требуют определенного порядка следования правил: сначала нат(включая пробросы rdr), а потом разрешающие/запрещающие правила фильтрации.
Автор: OOD
Дата сообщения: 23.05.2012 13:43
Помогите пожалуйста с iptables
в линуксе я полный 0
стоит CenosOS 6.2
нужно добавить IP Для маршрутизации NAT.
просматриваю таблицу NAT:

Код: iptables -t nat -L -n -v
Автор: Alukardd
Дата сообщения: 23.05.2012 21:25
OOD
1 - маршрутизация и NAT это разные понятия.
2 - на кой х** вы замазали адреса локальных машин?)
(0 Вы не в Linux, а в сетях)
Если просто добавить правило, то оно не сохранится после перезагрузки...
Надо любым известным Вам способом отредактировать файл /etc/sysconig/iptables. В нём надо будет создать еще одно правило аналогичное имеющимся. Как они выглядят там и увидите. Все вопросы как редактировать и что такое GNU/Linux задавать в профильной теме - Новичок в GNU/Linux (там Вам разжуют самую страшную глупость, а здесь только поглумятся, в том числе и я) После редактирования правила надо будет применить - выполняете команду: /etc/init.d/iptables restart

Если у Вас уже пожар, а как редактировать файл вы не знаете тогда можете просто выполнить команду:
Код: iptables -t nat -I POSTROUTING -s 10.x.x.x -o eth1 -j MASQUERADE
Автор: kURONO
Дата сообщения: 31.05.2012 14:04
ubuntu 11.04 lts eth1 (WAN) eth2 (LAN) - оба адреса статические. Установлен прозрачный squid+squidgurad

http_port 3128 transparent

В чём может быть проблема, если я вписываю адрес прокси в IE, то всё работает и SquidGurad тоже, как только я дописываю правила для iptables и выключаю настройку прокси в IE, то инет прекращает работать.

iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.244.252:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

читал в инете, везде описывают такие же правила, но у меня не работает, в какую сторону смотреть?
Автор: Alukardd
Дата сообщения: 31.05.2012 16:39
kURONO
Удалите правило DNAT и оставьте только REDIRECT.
Также если у Вас на самом шлюзе тоже крутится сайт, то правило лучше изменить так:
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.244.252/32 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128
Автор: kURONO
Дата сообщения: 01.06.2012 11:22
Alukardd
Пробовал по Вашему совету, эффект тотже, может дело в том, что используются DNS провайдера в настройках хостов?
Как я понимаю форвардинг между интерфейсам включать не надо?
Имеет ли смысл пересобирать squid с ICMP и смотреть пингом?
Автор: kerevra
Дата сообщения: 01.06.2012 11:51
kURONO, покажите iptables -nvL

Добавлено:

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

Добавлено:

Цитата:
Имеет ли смысл пересобирать squid с ICMP и смотреть пингом?
если у вас отключен форвардинг и не поднят нат, то пинг будет только до самой машины, но не дальше
Автор: kURONO
Дата сообщения: 01.06.2012 15:14
kerevra

Раскомментировал net.ipv4.ip_forward=1 в /etc/sysctl.conf

Сбросил правила iptables (iptables -F, iptables -t nat -F), прописал правило написанное
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.244.252/32 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128

Выкладываю -nvL

Код:
Chain INPUT (policy ACCEPT 383 packets, 33630 bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 45 packets, 2625 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 195 packets, 22256 bytes)
pkts bytes target prot opt in out source destination
Автор: Mosl
Дата сообщения: 17.07.2012 16:03
В iptables есть строки типа:

-A FORWARD -i etho -s 10.10.0.90 -p tcp -m multiport --dports 80, 443 -j ACCEPT

Как мне отредактировать строчку так что бы добавить UDP порты, к примеру 4380?

OS: CentOS
Автор: kerevra
Дата сообщения: 17.07.2012 16:29
Mosl, как нетрудно догадаться, необходимо только заменить "-p tcp" на "-p udp". в случае, если надо разрешить форвардинг только одного порта, то "-p tcp -m multiport --dports ..." надо заменить на "-p udp --dport ..."
Автор: Alukardd
Дата сообщения: 17.07.2012 16:41
Mosl
Никак. Надо добавить еще одну строку с правилами для udp.
Автор: kerevra
Дата сообщения: 17.07.2012 16:46
Alukardd, я так понял что вопрос как раз в том, как должна выглядеть аналогичная строчка для udp... похоже неправильно понял вопрос
Автор: Alukardd
Дата сообщения: 17.07.2012 17:00
kerevra
omg, только с 3 прочтения понял, что Вы сказали. Ответ засчитан
Автор: Mosl
Дата сообщения: 17.07.2012 19:04
kerevra
Alukardd
Спасибо за ответы.
Еще пару вопрос.
Я так понимаю что так открываются исходщие парты. А как открыть входящие?
Если надо задать диапозон портов, то это как и в виндах задаеться через тире? Пример 27000-27040 или как-то иначе.
Автор: vlary
Дата сообщения: 17.07.2012 20:04
Mosl Ну так пролистнул бы тему на пару-тройку страниц назад. Там пример есть.
iptables -A INPUT -p tcp -m multiport --dports 49152:65534 -j ACCEPT
Или жара, лениво?
Автор: Alukardd
Дата сообщения: 17.07.2012 20:21
Mosl
я настоятельно рекомендую ссылки из шапки к ознакомлению.
Автор: syrus
Дата сообщения: 06.08.2012 07:28
Все привет.
Столкнулся с программой Polycom, которой для работы H.323 нужно ну ооочень много портов (http://www.polycom.su/support/faq/).

Прописал в iptables следующее:

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

iptables -I INPUT -p tcp -m multiport --dport 3230:3237 -j ACCEPT
iptables -I OUTPUT -p tcp -m multiport --sport 3230:3237 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dport 3220:3225 -j ACCEPT
iptables -I OUTPUT -p tcp -m multiport --sport 3220:3225 -j ACCEPT
iptables -I INPUT -p udp -m multiport --dport 3230:3247 -j ACCEPT
iptables -I OUTPUT -p udp -m multiport --sport 3230:3247 -j ACCEPT

iptables -I INPUT -p udp -m multiport --dport 1024:65535 -j ACCEPT
iptables -I OUTPUT -p udp -m multiport --sport 1024:65535 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dport 1024:65535 -j ACCEPT
iptables -I OUTPUT -p tcp -m multiport --sport 1024:65535 -j ACCEPT

iptables -A FORWARD -d $edds -p tcp --dport 389 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 1002 -j ACCEPT
iptables -A FORWARD -d $edds -p udp --dport 1002 -j ACCEPT
iptables -A FORWARD -d $edds -p udp -m multiport --dport 1718:1719 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 1720 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 1731 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 1503 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 3601 -j ACCEPT
iptables -A FORWARD -d $edds -p udp --dport 3601 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 3603 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 3604 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 5001 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 5060 -j ACCEPT
iptables -A FORWARD -d $edds -p udp --dport 5060 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp --dport 8080 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp -m multiport --dport 3230:3247 -j ACCEPT
iptables -A FORWARD -d $edds -p udp -m multiport --dport 3230:3247 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp -m multiport --dport 3220:3225 -j ACCEPT
iptables -A FORWARD -d $edds -p tcp -m multiport --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -d $edds -p udp -m multiport --dport 1024:65535 -j ACCEPT
Автор: Alukardd
Дата сообщения: 06.08.2012 08:51
syrus
Сурово, порты через запятую можно перечислять, что бы не было столько правил)
К тому же зачем вы их добавляли в цепочки INPUT OUTPUT, если эта железка у Вас стоит внутри локалки?.. Изучите еще раз диаграмму.

Цитата:
можно ли с конкретного компа из локальной сети ($edds) дать полный доступ в инет/из инета конкретной программе
нет. Откуда шлюз знает что там за софт крутится на некой машине в локалке... Со своей-то машины средствами iptables такое не решить не то, что с удалённой.

А собственно ошибка Ваша заключается в том, что правила FORWARD надо указывать в обе стороны, а Вы указали только в одну (ключи -s и -d).
Автор: syrus
Дата сообщения: 06.08.2012 12:23
Alukardd
Я только учусь)) Делал по примерам предыдущих правил)
Как объяснил предыдущий админ, необходимо именно прописывать и в Input, и в Output, таковы настройки фаервола, да и программа должна иметь возможность принимать и отправлять траффик.

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

Код:
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 -d $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 -d $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 -d $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 -d $edds -p udp -m multiport --sport 1718:1719,3230:3247,1024:65535 -j ACCEPT
Автор: Alukardd
Дата сообщения: 06.08.2012 12:49
syrus
нет

Цепочки INPUT и OUTPUT Вам вообще для данной задачи не нужны - удалите или закомментируйте правила в ней.
В FORWARD надо сделать правила для входящего и исходящего трафика, а вы опять нагородили везде -d, а надо в половине правил -s описать. Там где --sports там -s.

В шапке данной темы хорошие ссылки. Особенно та что на wikibooks.

Добавлено:
А у вас вообще клиент или сервер Ваш Polycom?

Страницы: 123456789101112131415

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


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