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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Проблема с запуском скриптов из /etc/network/if-up.d  (Прочитано 3797 раз)

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

Оффлайн bakulenko

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Доброе время суток!

Система Ubuntu 10.10.

Проблема: есть два сетевых интерфейса: eth0 - смотрящий в домашнюю сеть  и eth1 - в сеть провайдера интернета.
Есть потребность быть шлюзом для домашней сети, для чего в программе fwbuilder создан фаер, который при каждой доработке сохраняется программой в домашний каталог, допустим, /home/max/iptables.sh.
Гружу этот фаер из скрипта в сабжевой директории /etc/network/if-up.d/routing

#!/bin/bash
date=`date '+%Y-%m-%d %H:%M:%S'`
LOG="/var/log/iptables.$IFACE"
echo 'IPTABLES ' ${date} > ${LOG}
/home/max/.firewall/bakulenko.ru.fw 2>&1 >> ${LOG}
echo 'ADDING MULTICAST'
ip route add multicast 224.0.0.0/4 table main dev eth1 metric 1

/etc/interfaces
auto lo eth0 eth1
iface lo inet loopback

iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0

iface eth1 inet dhcp

Если запускать ifup eth1 или ifup eth0 руками, то все срабатывает. Но не работает при загрузке системы, в результате чего не НАТятся запросы из домашней сети со всеми вытекающими. И что при этом остается вообще не понятным, так это то, что вторая половина скрипта routing отрабатывает и маршрут для мультикаста добавляется в таблицу маршрутизации. А вот правила iptables не грузятся.

В чем может быть дело? В файле routing специально добавил пару ECHO и перенаправил в /var/log весь вывод для детализации процесса исполнения, но лог-файл появляется только если запустить с руки, опять же, при загрузке он не создается. Куда копать?

В процессе решения задачи удалил скрипт из каталога if-up.d и создал каталог /etc/network/scripts, а в /etc/network/interfaces добавил к интерфейсу eth1 опцию post-up /etc/network/scripts/routing.
Права на скрипт выставлены 0755, владелец root.

Допускал мысль, что что то не так в самом скрипте фаера, что не дает ему запуститься при старте системы, может по каким то причинам не может в /home/ попасть, допустим, не смонтировался /home, но все равно вывод echo должен был произойти и в /var/log появилась бы запись.
Что интересно, если в файл routing указать интерпретатор /bin/sh, то скрипт и вовсе не срабатывает, не добавляя даже мультикастовский маршрут. Пришлось заменить на /bin/bash.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
/home/max/.firewall/bakulenko.ru.fw 2>&1 >> ${LOG} &
Wars ~.o

Оффлайн bakulenko

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
недопонял. но если это намек на неверные пути, то на самом деле, скрипт /home/max/iptables.sh и есть этот самый /home/max/.firewall/bakulenko.ru.fw
Хотел упростить описание проблемы более короткими путями. В реале, конечно, все пути прописаны верно, все работает при запуске вручную, но не работает при старте системы.


Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Да, это прибавиться проблема, а очистить нет, ну придумать как начало очистить.
Wars ~.o

 

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