Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Автозагрузка правил iptables  (Прочитано 4086 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Romon

  • Автор темы
  • Участник
  • *
  • Сообщений: 216
  • destructive creation
    • Просмотр профиля
Автозагрузка правил iptables
« : 13 Сентября 2009, 16:14:19 »
Стоит Kubuntu 9.04 и установлен ulog-acctd deamon.
Проблема в том что правила c действием ulog из скрипта автозагрузки не применяются (все остальные правила применяются нормально, а если запустить скрипт вручную через терминал, то применяются все правила.). Два дня пытаюсь решить проблему не выходит. Может кто сталкивался и подскажет, в чем может быть проблема.

Пример скрипта:

IPTABLES в /etc/init.d:

#!/bin/bash
### BEGIN INIT INFO
# Provides:  
# Required-Start: $network $syslog $ulog-acctd
# Required-Stop:
# Default-Start: 5
# Default-Stop:  
### END INIT INFO



IPT="/sbin/iptables"
START="/bin/bash"
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
NAME="$0"
N="/etc/init.d/$NAME"

if [ ! -f /etc/rc.firewall ]; then
echo "/etc/rc.firewall does not exist"
exit 0
fi

case "$1" in
start|restart)
echo -n "Starting up iptables firewall..."
$START /etc/rc.firewall
echo "done."
;;
stop)
$IPT -t filter -F
$IPT -t filter -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
echo "done."
exit 0;
;;
*)
echo "Usage: $N {start|restart|stop}" >&2
exit 1
;;
esac

exit 0


rc.firewall в /etc/


#!bin/bash

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -t nat -F

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A INPUT -p tcp -s www.vkontakte.ru -j ULOG --ulog-nlgroup 1 --ulog-cprange 48 --ulog-qthreshold 50 --ulog-prefix "vkontakte"

После загрузки в iptables только:
Chain INPUT (policy ACCEPT)
target prot opt source    destination

Chain FORWARD (policy ACCEPT)
target prot opt source    destination

Chain OUTPUT (policy ACCEPT)
target prot opt source    destination


Но если запустить скрипт вручную(/etc/init.d/iptables restart), то правило прекрасно добавляется и отлично работает, значит в коде ошибки нет, а вот в чем причина никак не пойму.

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Автозагрузка правил iptables
« Ответ #1 : 13 Сентября 2009, 16:24:49 »
sudo update-rc.d [имя скрипта] defaults

??

Оффлайн Romon

  • Автор темы
  • Участник
  • *
  • Сообщений: 216
  • destructive creation
    • Просмотр профиля
Re: Автозагрузка правил iptables
« Ответ #2 : 13 Сентября 2009, 16:27:54 »
Побовал создавать ссылки на разных уровнях с помощью этой команды:

sudo update-rc.d iptables defaults
sudo update-rc.d iptables start 90 2 3 4 5 . stop 20 0 1 6 .

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: Автозагрузка правил iptables
« Ответ #3 : 13 Сентября 2009, 17:31:24 »
Там вписано доменное имя. Возможно ли в момент запуска этих скриптов "разрешить" доменное имя (сеть поднята или сетевые ещё и-фейсы отключены)? И если нет, то что произойдёт при попытке добавить такое правило, когда сеть отключена или невозможно определить ip адрес для доменного имени?
StarDict и Mueller помогут против английского мануала.

Оффлайн Romon

  • Автор темы
  • Участник
  • *
  • Сообщений: 216
  • destructive creation
    • Просмотр профиля
Re: Автозагрузка правил iptables
« Ответ #4 : 13 Сентября 2009, 17:56:08 »
Тоже думал об резольве, но правила типа -A FORWARD -p tcp -d www.vkontakte.ru -j DROP , вписанные в этот скрипт, работают великолепно.

Пользователь решил продолжить мысль 13 Сентября 2009, 19:53:26:
И все таки действительно проблема кроется в доменном имене в скрипте, если указывать IP-адрес, то правило добавляется. Но почему тогда правила с действием дроп работают через доменное имя, а с ulog нет????
И знает ли кто другой способ указать в правиле весь список адресов домена,  не используя тупое перечисление правил для каждого адреса?
« Последнее редактирование: 13 Сентября 2009, 19:53:26 от Romon »

Оффлайн mihmih

  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: Автозагрузка правил iptables
« Ответ #5 : 13 Сентября 2009, 22:42:47 »
Дело в том, что файрвол netfilter (управляемый с помощью команды iptables) работает на
пакетном(?) уровне, т.е. принимает решение о судьбе пакета основываясь только на "цифирках" (ip-адреса и номера портов)
если Вы на уже загрузенной системе даете команду:
iptables -A OUTPUT -t filter -d mail.ru -j DROP
то iptables "ресолвит" mail.ru в 4 айпишника  и создает 4 правила: iptables -L -n:
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  0.0.0.0/0            217.69.128.43
DROP       all  --  0.0.0.0/0            217.69.128.44
DROP       all  --  0.0.0.0/0            217.69.128.41
DROP       all  --  0.0.0.0/0            217.69.128.42

но при загрузке DNS-сервер может быть недоступен, поэтому правила могут и не создаться.


Оффлайн DALDON

  • Активист
  • *
  • Сообщений: 260
  • Ваша блондиночка в Linux
    • Просмотр профиля
Re: Автозагрузка правил iptables
« Ответ #6 : 14 Сентября 2009, 09:30:49 »
Romon, возможно глупый совет, но всёже:

Я подгружаю правила iptables через /etc/network/interfaces

Строка post-up кажется.

Вида: post-up iptables-restore < /etc/iptables-up-rules
После конфигурации Сетевого интерфейса.

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: Автозагрузка правил iptables
« Ответ #7 : 14 Сентября 2009, 14:54:20 »
Можно сделать обходной манёвр.
Любым способом организовать результат даваемый командами
sudo ufw default deny
sudo ufw deny all from any to any
sudo ufw enable
или что-то похожее, смотря что нужно и т.д.

И в последней строке /etc/rc.local очистить таблицы с примением политики по умолчанию DROP и следом задать свои правила. В результате сервер недоступен пока полностью не загрузится, но в момент задания своих правил сеть будет уже проинициализирована.
StarDict и Mueller помогут против английского мануала.

Оффлайн mihmih

  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: Автозагрузка правил iptables
« Ответ #8 : 14 Сентября 2009, 22:15:16 »
Цитировать
В результате сервер недоступен пока полностью не загрузится
Учтите, если сервер поднимает канал через pptp или pppoe - нужно таки разрешать пакеты через eth0 или eth1...

 

Страница сгенерирована за 0.021 секунд. Запросов: 20.