LINUX.ORG.RU
ФорумAdmin

iptables. Блокировать все, кроме...


0

0

Возникла следующая задача: Есть сеть с айпи из пула 10.* В ней есть несколько айпи, которым нужно разрешить доступ к 411 порту. Всем остальным-запретить.

Пробовал вот как в надежде что более общее правило будет перекрыто более частным:

iptables -A INPUT -i eth1 --protocol tcp --dport 411 -j DROP iptables -A INPUT -s <доверенный айпи> --protocol tcp --dport 411 -j ACCEPT

Но нет, первое правило наглухо режет все остальные. Какие есть варианты реализации? Думал над указанием диапазнов айпишников, но больно это геморно выходит, особенно когда "доверенных" более 5 человек.


в обратном порядке узазывайте :-)
сначало то что разрешить, потом всем запретить, очевидно

hizel ★★★★★
()

правила применяются в той последовательности, в которой они добавлены в цепочку.
почитайте, наконец уж, хотя бы на Википедии.
синтаксис - это далеко не всё, что следует знать, чтобы не быть дилетантом-ламером.

xydo ★★
()

iptables -N tcp411
iptables -I INPUT -i eth1 -p tcp --dport 411 -j tcp411
iptables -A tcp411 -s адрес1 -j ACCEPT
iptables -A tcp411 -s адрес2 -j ACCEPT
...
iptables -A tcp411 -s адресn -j ACCEPT
iptables -A tcp411 -j DROP

В дальнейшем адреса добавлять через
iptables -I tcp411 -s адрес -j ACCEPT

nnz ★★★★
()

А в последних iptables вроде можно несколько адресов за раз добавлять в правило. Правда, сам еще не воспользовался этой вкусностью :) Все правильно вам подсказывают аналитики ЛОРа

azure ★★
()
Ответ на: комментарий от azure

>А в последних iptables вроде можно несколько адресов за раз добавлять в правило.

В правило — нельзя. Можно указать несколько адресов в одной команде, и она добавит по правилу на каждый адрес.

nnz ★★★★
()
Ответ на: комментарий от IR0N

Поспешил однако с выводами...
$IPTABLES -A INPUT -i eth1 --protocol tcp --dport 411 -j DROP
$IPTABLES -A INPUT -s 10.231.23.210 --protocol tcp --dport 411 -j ACCEPT
$IPTABLES -A INPUT -s 10.231.10.183 --protocol tcp --dport 411 -j ACCEPT
$IPTABLES -A INPUT -s 10.171.71.247 --protocol tcp --dport 411 -j ACCEPT
Если правила применяются по мере добавления в цепочку, то почему оказывается что 411 порт заблокирован для всех из eth1?

Правила записаны в скрипте, который добавлен в автозагрузку.

IR0N
() автор топика
Ответ на: комментарий от IR0N

:'( с начала ACCEPT потом DROP

$IPTABLES -A INPUT -s 10.231.23.210 --protocol tcp --dport 411 -j ACCEPT
$IPTABLES -A INPUT -s 10.231.10.183 --protocol tcp --dport 411 -j ACCEPT
$IPTABLES -A INPUT -s 10.171.71.247 --protocol tcp --dport 411 -j ACCEPT
$IPTABLES -A INPUT -i eth1 --protocol tcp --dport 411 -j DROP

hizel ★★★★★
()
Ответ на: комментарий от hizel

Но ведь если верить посту выше


правила применяются в той последовательности, в которой они добавлены в цепочку.
почитайте, наконец уж, хотя бы на Википедии.

Ведь насколько я понимаю в этом случае последнее правило перекрывает предыдущие? Или нет?

P.S: вроде работает...

IR0N
() автор топика
Ответ на: комментарий от IR0N

пакет последовательно сверяется с правилами
как итолько встречается ACCEPT оно пропускается дальше и больше по правилам в этой таблице не проходит

hizel ★★★★★
()
Ответ на: комментарий от IR0N

> Ведь насколько я понимаю в этом случае последнее правило перекрывает предыдущие? Или нет?

iptables -L -v -n --line-numbers

Посмотрите, в каком порядке стоят правила. Вот в таком порядке они и работают. Добавлять можно как угодно (хоть в начало, хоть в конец, хоть посредине вставляй), главное - какая последовательность окажется в результате.

azure ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.