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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: [РЕШЕНО] Таинственное исчезновение правил firewall  (Прочитано 3351 раз)

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

Оффлайн CanSee

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
    • Просмотр профиля
    • life-warrior.org
У меня на домашнем компьютере стоит Ubuntu 10.04. Работаю с версии 8.10. После установки системы всегда первым делом включал firewall. До 10 версии использовал ufw, и всё было хорошо. Версию 10.04 пришлось устанавливать с нуля, там тоже включил ufw. Через пару месяцев проверяю - ufw не работает. Ну, думаю, может забыл включить - включил снова. На следующей перезагрузке опять ufw неактивен! На команду "sudo ufw enable" пишет "активен и будет запущен при загрузке системы", а после перезагрузки "ufw status" выдаёт - "неактивен"  :- Ну, думаю, может это глюк ufw. Хотя вроде раньше за ним такого не наблюдалось. Решил разобраться с iptables. Разобрался. Настроил правила. Сделал скриптик для их добавления при перезагрузке. Заодно настроил и для ip v6, благо там всё то же самое. Запустил "update-rc.d my-script defaults" - пишет, что всё хорошо и скрипт добавлен. А на перезагрузке опять у фаерволла всё по умолчанию. Скрипт нормальный, при ручном запуске всё отрабатывает как надо. И - правила для ip6 добавляются, как надо. А для ip v4 - нет. А может, добавляются, а потом исчезают - непонятно. В общем, их нету. А без фаерволла как-то стрёмно. Хоть и не виндоус, но всё равно неприятно. Подумал - может, я как-то не так добавил в скрипты инициализации. Удалил через update-rc.d. Разобрался, как upstart работает. Сделал для него job, поставил на событие "networking". Вроде всё нормально, ip v6 опять прописывается. А вот для ip v4 - снова всё по умолчанию!  :o

Удалил job для upstart, добавил в rc.local. Наконец-то правила для v4 тоже добавились. Но почему они не добавляются при запуске скрипта другим способом? Вот загадка. Я уже всю голову сломал, но так и не додумался. По опыту работы с виндоусом, уже начинаю подозревать наличие какого-то виря или трояна, который удаляет правила на фаерволле, чтобы ему ничто не мешало в инет лазить  :(

Конфигурация системы такая. На компе две сетевых карты - в одну подключен провод от провайдера интернет, в другую иногда втыкаю ноутбук, чтобы обновления на него закачать или фильмы записать. Провайдер (Дом.ру) раздаёт интернет через PPPoE. Я к нему подлкючаюсь через NetworkManager. Соответственно, в NetworkManager есть три подключения. Одно - eth0, первая сетевая карта, через которую идёт пропод от провайдера. Второе - eth1, вторая карта для ноута. Третье - DSL для подключения PPPoE от дома.ру. Все подлкючения "доступны всем пользователям". У тех, которые от провайдера (eth0 и DSL) стоят галочки "подключать автоматически". У eth1 - не установлено, поскольку ноут подключаю редко.

Может, кто-нибудь посоветует, где искать причину загадочного исчезновения правил firewall? Куда они деваются? И почему только ip v4, а для ip v6 всё нормально? У меня уже идеи закончились...  :idiot2:

Пользователь решил продолжить мысль 28 Августа 2010, 23:23:06:
Только открыл тему - и уже разобрался, куда деваются правила. Их, оказывается, удаляет NetworkManager. После добавления загрузки правил в rc.local они есть при загрузке системы, но стоит в NetworkManager отключить подключение - все правила тут же пропадают.  Если добавить правила, а потом подлкючить соединение - то же самое. Похоже, при любых действиях с NM все правила сбрасываются в настройки по умолчанию.
Кто виноват - ясно. Неясно, что теперь делать. Я думаю - наверное, лучше добавить job для upstart. Но вот на какое бы событие его назначить?
Может быть, кто-нибудь ещё что-то посоветует?
« Последнее редактирование: 29 Августа 2010, 01:24:12 от CanSee »
StockNovice -программа, позволяющая попробовать биржевую торговлю без риска
Устают глаза? Скачай программу TakeBreak

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Таинственное исчезновение правил firewall
« Ответ #1 : 28 Августа 2010, 23:43:38 »
Оймама... вы разберитесь там уже, чем пользуетесь.
А то в дом он ходит через двери, мусор выкидывает в окна а кошку гоняет через чердак...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн CanSee

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
    • Просмотр профиля
    • life-warrior.org
Re: Таинственное исчезновение правил firewall
« Ответ #2 : 29 Августа 2010, 00:22:48 »
Оймама... вы разберитесь там уже, чем пользуетесь.
А то в дом он ходит через двери, мусор выкидывает в окна а кошку гоняет через чердак...

Мне, в общем-то, без разницы, чем пользоваться. Главное - чтобы работало. Задача - как сделать так, чтобы правила для фаерволла были. Или - чтобы они не удалялись, или - чтобы после удаления сразу добавлялись обратно. При этом желательно это сделать наиболее лёгкими средствами, без переделки всей системы. Конкретно - без удаления NetworkManager и перенастройки подключения соединений другим способом.
Upstart показался мне для этого наиболее перспективным. Сейчас я пытаюсь найти решение с использованием upstart. Конкретно - на какие события надо подвесить скрипт, чтобы он запускался при подключении или отключении любого сетевого интерфейса в системе, кроме lo. Но если кто-то подскажет, как сделать это другим способом - сделаю как подскажут.
Мне нужны не шашечки, мне нужно ехать :) Если удобней в дом заходить через дверь, а кошку гонять через чердак - так и буду делать :)
Поэтому, уважаемый AnrDaemon, если вы знаете, как решить указанную задачу хоть каким-нибудь способом - большая просьба об этом способе рассказать. Ну а если не знаете никакого способа - тогда к чему пафосные вопросы? :)

Пользователь решил продолжить мысль 29 Августа 2010, 01:23:37:
Ну вот, я наконец разобрался, как решить проблему. Сделал с помощью upstart.

1. Делается job для upstart, подвешиваемый на событие поднятия сетевого интерфейса, если интерфейс не loopback, и на событие отключения интерфейса, если он не loopback. Это сделать просто. Делаем какой-нибудь файл с расширением conf, например, firewall.conf. Туда пришем примерно следующее:
# firewall - configure netfilter firewall rules
#
# This task configures netfilter firewall rules.

description "configure netfilter firewall rules"

start on (net-device-up IFACE!=lo
  or net-device-down IFACE!=lo)

task

script
# configure IPv4
# Flush all user rules from filter table:
iptables -t filter -F
# Allow all incoming packets for established connections and related to established connections:
iptables -t filter -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Allow all incoming packets from localhost:
iptables -t filter -A INPUT -s 127.0.0.1 -j ACCEPT
# Allow incoming packets from my notebook connected on eth1:
iptables -t filter -A INPUT -i eth1 -j ACCEPT
# Deny all unlisted incoming connections:
iptables -t filter -P INPUT DROP
# Allow incoming packets for "Transmission" BitTorrent client:
iptables -t filter -A INPUT -p tcp --dport 51413 -j ACCEPT
# configure IPv6
# Flush all user rules from filter table:
ip6tables -t filter -F
# Allow all incoming packets for established connections and related to established connections:
ip6tables -t filter -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Allow all incoming packets from localhost:
ip6tables -t filter -A INPUT -s ::1 -j ACCEPT
# Allow incoming packet from my notebook connected on eth1:
ip6tables -t filter -A INPUT -i eth1 -j ACCEPT
# Deny all unlisted incoming connections:
ip6tables -t filter -P INPUT DROP
end script

Между "script" и "end script" вместо того, что есть у меня - вписываются свои настройки файрволла. Не забываем очищать таблицы перед добавлением правил, иначе правила могут добавиться по два раза :)

2. Копируем свежесозданный файл в "/etc/init". При следующей перезагрузке системы можно с радостью наблюдать наличие нужных правил :)

Кривоватый, конечно, путь. Лучше было бы один раз загружать правила при старте системы. Но, думаю, пока NetworkManager глючит и занимается всякой ерундой, по-другому не выйдет.
« Последнее редактирование: 29 Августа 2010, 01:23:37 от CanSee »
StockNovice -программа, позволяющая попробовать биржевую торговлю без риска
Устают глаза? Скачай программу TakeBreak

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Вы сначала определитесь, зачем вам "правила фиревала"...
По задачам уже будем искать решение.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
1. NetworkManager'у до барабана, что там в таблицах iptables
2. Твой ufw какраз и может гасить таблицы при передёргивании интерфейсов.
3. Есть такой каталог, как /etc/network/if-up.d. Из названия должно быть понятно, зачем он... Обрати внимание на то, какие там скрипты водятся, там может быть и тот скрипт, который мешает спокойно жить таблицам iptables.

Оффлайн CanSee

  • Автор темы
  • Любитель
  • *
  • Сообщений: 81
    • Просмотр профиля
    • life-warrior.org
Вы сначала определитесь, зачем вам "правила фиревала"...
По задачам уже будем искать решение.
Ну, думаю, по приведенному скрипту и содержащимся в нём правилам понятно, зачем они мне нужны.  Хочу просто запретить все входящие соединения кроме тех, которые нужны. Просто уютней себя чувствую, когда ко мне на комп снаружи никто не лезет.
Но проблема у меня была не в том, чтобы настроить firewall. С этим я справился - руководств по настройке iptables и в интернете тыщи. Проблема была в том, как сделать, чтобы его правила загружались при загрузке системы и потом никуда не исчезали. Не думаю, что для того, чтобы этого добиться, обязательно нужно знать, какую задачу должны выполнять правила :)
В общем-то, я и с этой задачей справился, как написал в предыдущем посте. Но, конечно, мне хотелось бы лучше понять, почему так происходит. Поэтому буду благодарен за разъсянения ситуации.

1. NetworkManager'у до барабана, что там в таблицах iptables
2. Твой ufw какраз и может гасить таблицы при передёргивании интерфейсов.
3. Есть такой каталог, как /etc/network/if-up.d. Из названия должно быть понятно, зачем он... Обрати внимание на то, какие там скрипты водятся, там может быть и тот скрипт, который мешает спокойно жить таблицам iptables.

1. Я понимаю, что NetworkManager'у до барабана. Но - факт остаётся фактом. Как только я отключал или подключал соединение через NetworkManager, все правила пропадали. Так было до того момента, пока я не сделал job для upstart. Поэтому я и решил, что виноват именно NM. Может, конечно, это не NetworkManager, а какой-нибудь скрипт в /etc/network/if-up.d, или ещё что-нибудь. Я этого точно не знаю - мои познания в линуксе вообще и Ubuntu в частности очень малы.
2. Вряд ли это ufw. Во-первых, потому, что ufw у меня тоже выключался при подключении/отключении соединения. Не будет же он отключать сам себя :) Во-вторых, разобравшись с iptables, я удалил ufw. Не просто выключил, а удалил через synaptic. Но правила всё равно пропадали. Думаю, вряд ли ufw даже после удаления будет мне мешать :)
3. Про это не знал. Посмотрел - в if-up.d и в if-down.d стоит задача по перезапуску firestarter (когда-то устанавливал и его тоже). Сейчас попробую его удалить - может, это из-за него. Больше вроде ничего подозрительного нет.

Пользователь решил продолжить мысль 29 Августа 2010, 15:54:29:
Ага, точно - проблема была в firestarter и его перезапуске при отключении/включении соединения. После удаления firestarter всё стало нормально. Переделал свой скрипт для upstart, поставил условие запуска на "started networking". Теперь всё работает, правила никуда не пропадают. Mam(O)n, спасибо за информацию про /etc/network/if-up.d :) Не знал про это :)
« Последнее редактирование: 29 Августа 2010, 15:54:29 от CanSee »
StockNovice -программа, позволяющая попробовать биржевую торговлю без риска
Устают глаза? Скачай программу TakeBreak

 

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