обновление правил iptables

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

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

Аватара пользователя
Ruik
Сообщения: 12
ОС: Kubuntu

обновление правил iptables

Сообщение Ruik »

Есть программа, которая в цикле создаёт и добавляет правила для iptables. Правила добавляются (во время работы программы выполнил iptables -L, новые правила есть в цепочках), но не применяются до следующего запуска программы. А надо, чтобы они вступали в силу сразу после создания. Существует ли у iptables какая-нибудь опция типа update?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: обновление правил iptables

Сообщение watashiwa_daredeska »

Вообще-то правила вступают в силу немедленно после создания. Что-то где-то Вы не так поняли.
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: обновление правил iptables

Сообщение DaemonTux »

Ruik писал(а):
28.02.2010 21:56
Есть программа, которая в цикле создаёт и добавляет правила для iptables. Правила добавляются (во время работы программы выполнил iptables -L, новые правила есть в цепочках), но не применяются до следующего запуска программы. А надо, чтобы они вступали в силу сразу после создания. Существует ли у iptables какая-нибудь опция типа update?

Как вариант у вас пакет обрабатывается вышестоящим правилом.

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

        $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
        $IPTABLES -A FORWARD -s 192.168.1.11 -j DROP # добавленное правило
        $IPTABLES -A FORWARD -s 192.168.1.0/24 -j DROP

Если соеденение было установленно до добавление правила, то второе правило не будет работать так как обрабатывается перым.
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
Ruik
Сообщения: 12
ОС: Kubuntu

Re: обновление правил iptables

Сообщение Ruik »

У меня вышестоящее правило
& iptables -A INPUT -p tcp --syn -j LOG "SYN-pack"

а добавляется правило
& iptables -A INPUT -s 192.168.13.13 -j DROP

Пробовал добавлять правило в начало цепочки с помощью -I INPUT 1, но результат тот же. Просто добавленное правило должно сбрасывать пакеты с заданного ай-пи, но этого не происходит, отсюда был сделан вывод, что оно не работает.
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: обновление правил iptables

Сообщение DaemonTux »

Чтобы не гадать на кофейной гуще ыложите содержание таблиц iptables до и после добовления правила.
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
Ruik
Сообщения: 12
ОС: Kubuntu

Re: обновление правил iptables

Сообщение Ruik »

Чтобы не гадать на кофейной гуще ыложите содержание таблиц iptables до и после добовления правила.Чтобы не гадать на кофейной гуще ыложите содержание таблиц iptables до и после добовления правила.


Это самое логичное. До запуска программы:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning prefix `SYN-pack'
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/ACK LOG level warning prefix `ACK-pack'

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain yoooo (0 references)
target prot opt source destination

Вовремя и после запуска программы:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 192.168.15.15 anywhere
DROP tcp -- 192.168.15.15 anywhere
DROP tcp -- 192.168.15.15 anywhere
DROP tcp -- 192.168.15.15 anywhere
DROP tcp -- 192.168.15.15 anywhere
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning prefix `SYN-pack'
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/ACK LOG level warning prefix `ACK-pack'

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain yoooo (0 references)
target prot opt source destination

Для добавление правила выполняется команда iptables -I INPUT 1 -p tcp -s 192.168.15.15 -j DROP. Так много одинаковых правил, потому что они не срабатывают, с ай-пи 192.168.15.15 продолжают идти пакеты, и программа генерирует новое блокирующее правило. А хочется, чтобы она один раз его заблокировала и с концами.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: обновление правил iptables

Сообщение watashiwa_daredeska »

Может быть, программа просто медленно работает? Скажем, пакеты уже прошли iptables (когда правил еще нет), но долго висят в какой-нибудь очереди на обработку в самой программе.
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: обновление правил iptables

Сообщение DaemonTux »

Попробуйте telnet`ом с внешнего адреса подключится.
Кстати надеюсь трафик не транзитный?
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
Ruik
Сообщения: 12
ОС: Kubuntu

Re: обновление правил iptables

Сообщение Ruik »

Может быть, программа просто медленно работает? Скажем, пакеты уже прошли iptables (когда правил еще нет), но долго висят в какой-нибудь очереди на обработку в самой программе.


Вот это очень даже возможно. Данные из iptables пишутся не в логи, а идут в FIFO-файл, и каждая строка обрабатывается программой. Существует какие-нибудь решения проблемы, не касающиеся программной реализации? То есть вполне можно в программе предусмотреть какие-то дополнительные методы, но это не очень хорошо. Можно замедлить поступления данных в FIFO-файл? Или ещё что-то, чтобы данные не зависали при обработке?
Спасибо сказали: