Bug 21834 - firewall rules and postup/postdown scripts do not start for etcnet configs
Summary: firewall rules and postup/postdown scripts do not start for etcnet configs
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: NetworkManager (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Mikhail Efremov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-10-05 11:14 MSD by ildar
Modified: 2014-06-04 08:11 MSK (History)
1 user (show)

See Also:


Attachments
90-etcnet-hooks (142 bytes, text/plain)
2011-04-14 07:42 MSK, ildar
no flags Details
VPN fix for 80-etcnet-post (478 bytes, patch)
2013-09-25 08:25 MSK, ildar
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description ildar 2009-10-05 11:14:01 MSD
интерфейс настроен в etcnet. В случае, если он запускается через ifup, то правило iptables, прописанное в /etc/net/ifaces/eth0/fw/iptables/nat, благополучно запускается. Если интерфейс поднимается NM, то правила нет.
Comment 1 Mikhail Efremov 2009-10-05 21:21:17 MSD
Я не уверен, что это стоит делать. Подумаю.
Comment 2 Mikhail Efremov 2011-04-13 18:18:29 MSK
Я уже не помню, какие у меня были по этому поводу сомнения. Думаю, сделаю вместе с ручкой для отключения в /etc/sysconfig/NetworkManager.
Comment 3 ildar 2011-04-14 07:42:14 MSK
Created attachment 4887 [details]
90-etcnet-hooks

Возможно добавит вдохновения такой хук. Класть его нужно, конечно, в /etc/NetworkManager/dispatcher.d/

Думаю, неплохая идея доложить этот хук в пакет.
Comment 4 Mikhail Efremov 2011-04-14 17:45:43 MSK
Спасибо, я добавлю, но тоже с ручкой и выключенным по умолчанию.
Проблема в том, что в NM нет возможности использовать скрипты pre, включать же по умолчанию выполнение скриптов post без pre вряд ли стоит, мало ли что там может быть написано, и вполне возможна ситуация, когда скрипт post рассчитывает, что ранее был выполнен pre, чего в случае NM не будет.
Кстати, efw stop при опускании интерфейса тоже будет выполняться по сути в post, но в этом случае это не так страшно, думаю.
Кажется в NM-0.9 что-то сделано для возможности запускать pre скрипты, но я еще это в нем не смотрел.
Comment 5 Mikhail Efremov 2011-04-14 18:04:14 MSK
A, и я кажется вспомнил, почему не сделал этого раньше. Все это, с запуском efw и post-скриптов имеет смысл только в случае, если соединение прочитано из /etc/net. Иначе использовать что-то etcnet-специфичное будет странно.
Определить же в dispatcher скрипте из etcnet ли это соединение довольно сложно.
Так что скрипты добавить можно, но оба будут по умолчанию выключены.
Comment 6 ildar 2011-04-15 08:18:45 MSK
Со всем согласен, кроме этого:

(В ответ на комментарий №4)
> Кстати, efw stop при опускании интерфейса тоже будет выполняться по сути в
> post, но в этом случае это не так страшно, думаю.

Это не то, что нестрашно: так и должно быть. Тот же iptables опускается после сервиса network.
Наоборот, плохо, если файрвол стартует после интерфейса. iptables стартует _до_ сервиса network.
Comment 7 Repository Robot 2011-04-18 18:37:57 MSK
NetworkManager-0.8.3.999-alt1.git20110415 -> sisyphus:

* Fri Apr 15 2011 Mikhail Efremov <sem@altlinux> 0.8.3.999-alt1.git20110415
- etcnet-alt:
    + Added more tests.
    + Handle MAC from iplink file.
    + Handle route metric.
    + Honor current etcnet network profile (closes: #18435).
    + Various fixes.
    + Allow tab as tokens delimiter.
- Add 80-etcnet-post dispatcher script.
- Add 30-efw dispatcher script (closes: #21834).
- Suppress annoying messages.
- init script: Use the new Sleep() method.
- init script: Disconnect all ifaces on stop.
- ntpd hook: Don't create garbage in /tmp.
- Set cp1251 as prefered encoding for Cyrillic langs (closes: #25404).
- upstream git snapshot (NM_0_8 branch).
Comment 8 ildar 2011-06-07 10:57:59 MSK
работа хука поломалась на 0.9-beta.
Теперь оно пускается так:

/etc/NetworkManager/dispatcher.d/80-etcnet-post down
DEVICE_IP_IFACE=usb0
Comment 9 Mikhail Efremov 2011-06-07 16:50:40 MSK
Похоже сломалась передача имени интерфейса скриптам параметром.
Comment 10 Repository Robot 2011-06-08 03:52:42 MSK
NetworkManager09-0.8.9997-alt1.git20110607 -> sisyphus:

* Tue Jun 07 2011 Mikhail Efremov <sem@altlinux> 0.8.9997-alt1.git20110607
- etcnet-alt: Fix adding/removal devices handling.
- Drop fix for env path in python scripts (fixed in upstream).
- upstream git snapshot (master branch) (closes: #21834).
Comment 11 ildar 2013-09-20 14:13:40 MSK
Скрипт надо исправить, т.к. в новых версиях кроме действия up/down появилось ещё vpn-up/down
Comment 12 Mikhail Efremov 2013-09-24 19:27:08 MSK
И что по этому поводу предлагается делать?
Comment 13 ildar 2013-09-25 08:25:45 MSK
Created attachment 5944 [details]
VPN fix for 80-etcnet-post

Поскольку etcnet не видит различия между VPN и не-VPN интерфейсами, то предлагаю такой патч.
Comment 14 ildar 2014-04-04 10:28:36 MSK
ping
Comment 15 Mikhail Efremov 2014-04-22 19:36:29 MSK
Я не очень понял почему эти скрипты должен запускаться при vpn-up/vpn-down. В etcnet нет таких понятий, там только up/down интерфейса. Смысл dispatcher-скриптов etcnet-post и efw в том, чтобы попытаться максимально приблизиться к поведению etcnet, если соединение прочитано оттуда. Читать же какие-либо vpn-соединения из etcnet плагин не умеет.
Поясните, пожалуйста, какому именно поведению etcnet должна соответствовать реакция на vpn-up/vpn-down в этих dispatcher-скриптах.
Comment 16 ildar 2014-04-28 10:46:45 MSK
(In reply to comment #15)
> Я не очень понял почему эти скрипты должен запускаться при vpn-up/vpn-down. В
> etcnet нет таких понятий, там только up/down интерфейса.
Рассмотрим vpn-интерфейсы в etcnet, например, ppp0.
Для etcnet это такой же интерфейс, как и все остальные. И для него есть возможность использовать такие же if{up,down}-post.
В NM эти понятия разделены, но для интерфейса ppp0 всё так же хочется запускать if{up,down}-post.

Чтобы добиться этого, нужно поправить скрипт согласно предложенному патчу.
Comment 17 Mikhail Efremov 2014-05-31 02:07:58 MSK
> Рассмотрим vpn-интерфейсы в etcnet, например, ppp0.
> Для etcnet это такой же интерфейс, как и все остальные. И для него есть
> возможность использовать такие же if{up,down}-post.

Плагин не умеет читать такие соединения из etcnet (можно научить, но возни много, а я не вижу чтобы это кому-то было реально нужно). Он умеет читать только обычные ethernet и wifi соединения. Нельзя запускать скрипты из etcnet для соединений, созданных в самом NM, а не прочитанных из etcnet.
Comment 18 ildar 2014-06-04 08:11:02 MSK
Теперь до меня дошло! прошу прощения, что так не сразу!