обновление правил iptables
Модераторы: SLEDopit, Модераторы разделов
-
Ruik
- Сообщения: 12
- ОС: Kubuntu
обновление правил iptables
Есть программа, которая в цикле создаёт и добавляет правила для iptables. Правила добавляются (во время работы программы выполнил iptables -L, новые правила есть в цепочках), но не применяются до следующего запуска программы. А надо, чтобы они вступали в силу сразу после создания. Существует ли у iptables какая-нибудь опция типа update?
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: обновление правил iptables
Вообще-то правила вступают в силу немедленно после создания. Что-то где-то Вы не так поняли.
Мои розовые очки
-
DaemonTux
- Сообщения: 1480
- Статус: Юный падаван
- ОС: Gentoo
Re: обновление правил iptables
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
У меня вышестоящее правило
& iptables -A INPUT -p tcp --syn -j LOG "SYN-pack"
а добавляется правило
& iptables -A INPUT -s 192.168.13.13 -j DROP
Пробовал добавлять правило в начало цепочки с помощью -I INPUT 1, но результат тот же. Просто добавленное правило должно сбрасывать пакеты с заданного ай-пи, но этого не происходит, отсюда был сделан вывод, что оно не работает.
& 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
Чтобы не гадать на кофейной гуще ыложите содержание таблиц iptables до и после добовления правила.
Vladivostok Linux User Group
-
Ruik
- Сообщения: 12
- ОС: Kubuntu
Re: обновление правил iptables
Чтобы не гадать на кофейной гуще ыложите содержание таблиц 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
Может быть, программа просто медленно работает? Скажем, пакеты уже прошли iptables (когда правил еще нет), но долго висят в какой-нибудь очереди на обработку в самой программе.
Мои розовые очки
-
DaemonTux
- Сообщения: 1480
- Статус: Юный падаван
- ОС: Gentoo
Re: обновление правил iptables
Попробуйте telnet`ом с внешнего адреса подключится.
Кстати надеюсь трафик не транзитный?
Кстати надеюсь трафик не транзитный?
Vladivostok Linux User Group
-
Ruik
- Сообщения: 12
- ОС: Kubuntu
Re: обновление правил iptables
Может быть, программа просто медленно работает? Скажем, пакеты уже прошли iptables (когда правил еще нет), но долго висят в какой-нибудь очереди на обработку в самой программе.
Вот это очень даже возможно. Данные из iptables пишутся не в логи, а идут в FIFO-файл, и каждая строка обрабатывается программой. Существует какие-нибудь решения проблемы, не касающиеся программной реализации? То есть вполне можно в программе предусмотреть какие-то дополнительные методы, но это не очень хорошо. Можно замедлить поступления данных в FIFO-файл? Или ещё что-то, чтобы данные не зависали при обработке?