if-up скрипт при поднятии определенного интерфейса

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

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

nokogerra
Сообщения: 83

if-up скрипт при поднятии определенного интерфейса

Сообщение nokogerra »

Доброго времени суток. debian7.11.
Обычно использую if-up скрипт для настройки правил iptables. Сейчас в дампе правил фигурирует tun0 интерфейс, и по скольку на момент поднятия физических интерфейсов tun0 еще нет, то правила не применяются. Решил попробовать применять основные правила при поднятии физического интерфейса, а дополнительные (нужные для openvpn) при поднятии tun.
Пробовал такое:

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

#!/bin/sh

if [ "$IFACE" = eth0 ]; then
  echo "eth0 is up" >> /etc/test_file
fi

Но ничего не пишет. Как можно выполнить скрипт при поднятии определенного интерфейса?

update: странно, я пробовал отработку скрипта ifconfig eth0 down и ifconfig eth0 up, после этого в ifconfig eth0 отображается, но по факту не поднялся - на эхо не отвечает. После перезагрузки сетевой подсистемы, интерфейс поднялся и запись в файле появилась. Что за артефакт такой с ifconfig down/up.
update2: после ip link set dev eth0 down/up интерфейс фактически тоже не поднимается <_<.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: if-up скрипт при поднятии определенного интерфейса

Сообщение s.xbatob »

nokogerra писал(а):
16.06.2016 12:22
Доброго времени суток. debian7.11.
Обычно использую if-up скрипт для настройки правил iptables. Сейчас в дампе правил фигурирует tun0 интерфейс, и по скольку на момент поднятия физических интерфейсов tun0 еще нет, то правила не применяются. Решил попробовать применять основные правила при поднятии физического интерфейса, а дополнительные (нужные для openvpn) при поднятии tun.

У openvpn свои скрипты-хуки, их и используйте.
Спасибо сказали:
nokogerra
Сообщения: 83

Re: if-up скрипт при поднятии определенного интерфейса

Сообщение nokogerra »

s.xbatob писал(а):
16.06.2016 12:49
nokogerra писал(а):
16.06.2016 12:22
Доброго времени суток. debian7.11.
Обычно использую if-up скрипт для настройки правил iptables. Сейчас в дампе правил фигурирует tun0 интерфейс, и по скольку на момент поднятия физических интерфейсов tun0 еще нет, то правила не применяются. Решил попробовать применять основные правила при поднятии физического интерфейса, а дополнительные (нужные для openvpn) при поднятии tun.

У openvpn свои скрипты-хуки, их и используйте.

Я нашел --up cmd, но удобнее оказалось положить в rc.local.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: if-up скрипт при поднятии определенного интерфейса

Сообщение s.xbatob »

Вы с какой платформы? Забывайте понемногу про rc.local и вообще про rc. Изучайте systemd
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21253
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: if-up скрипт при поднятии определенного интерфейса

Сообщение Bizdelnick »

s.xbatob писал(а):
16.06.2016 16:24
Изучайте systemd

Нет его в 7 дебиане (то есть в репах есть, но по умолчанию не установлен).

nokogerra писал(а):
16.06.2016 12:22
Обычно использую if-up скрипт для настройки правил iptables.

Зря. Используйте штатные средства дистрибутива, в частности в Debian используйте iptables-persistent. Если же нужно добавлять правила при поднятии определённого интерфейса, пропишите соответствующий скрипт в interfaces, см. https://debian-handbook.info/browse/ru-RU/s...l-rules-at-boot
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
nokogerra
Сообщения: 83

Re: if-up скрипт при поднятии определенного интерфейса

Сообщение nokogerra »

Всем спасибо за ответы.
По поводу системд - я именно из-за него debian8 не использую. Не то чтобы я имел что-то против, но до изучения очередь не дошла. Да и мануал на 300 страниц, который я видел, меня испугал, кажется что для ознакомления с системой инициализации это слишком много.
про up в /etcnetwork/interfaces не знал, спасибо.
Спасибо сказали: