запуск iptables

mango
Ошибка там, где используется параметр INT_DEV
Так что смотрите сколько у вас строк с этим параметром. На них и стоит обратить пристальное внимание.
С этим параметром только одна строка:
$IPTF -i ! $INT_DEV -j DROP
Volldemar
С этим параметром только одна строка:
$IPTF -i ! $INT_DEV -j DROP
Ну вот вам и ответ: восклицательный знак отрицания в правилах iptables надо писать ПЕРЕД ключом, а не между ключом и параметром. То есть
$IPTF ! -i $INT_DEV -j DROP
А вообще неплохо проверять (сомнительные) команды в консоли, прежде чем писать их в скрипт.
P.S.
Разумеется, в отличии от скрипта, в консоли восклицательный знак надо экранировать вот так \! , иначе bash примет на свой счёт и обидится :)
О, большое спасибо за помощь!!!!!!!!!
Вопрос тогда, почему в слеке апитаблес не ругался на эту строку?
Сейчас всё нормально, арч нравится всё больше и больше :)
Volldemar
Вопрос тогда, почему в слеке апитаблес не ругался на эту строку?
скорей всего разные версии. Изменены требования к синтаксису.
Хе-хе.. я тоже как то именно на этом спотыкался.. =) С воскл. знаком.
Кстати, это похоже на истину. Открыл сейчас руководство по iptables 2003 бородатого года:
http://www.opennet.ru/docs/RUS/iptables/
И там везде чёрным по белому восклицательный знак идёт после ключа, а не перед, как теперь.
Исключение было только для ключей без параметров – для них он и тогда шел перед ними.
Natrio
Кстати, это похоже не истину.

похоже не истина или похоже на истину?
Это таки правда.
Изменил положение в строке восклицательного знака, и iptables “схавал” :) правила без ошибок.
И ещё, попутный вопрос, как в арче заставить загружать правила при ребуте?
Файл с правилами лежит в положенном месте, имеет права на выполнение, iptables прописан в демонсах (rc.conf).
Но при ребуте правила не загружаются.
https://wiki.archlinux.org/index.php/Iptables
Можно и так:
1) Кормим скрипт
2) /etc/rc.d/iptables save

Естественно до этого iptables д.б. запущен, то есть либо демоном при старте, либо /etc/rc.d/iptables start.
 
Зарегистрироваться или войдите чтобы оставить сообщение.