Суть проблемы: в Debian Lenny arptables-save генерирует данные, синтаксически и семантически некорректные
с точки зрения arptables-restore.Например, если в чистую таблицу filter добавить правило
# arptables -A INPUT -s 10.128.0.100 -j DROP
а затем вызвать arptables-save, получим
# arptables-save
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
:FORWARD ACCEPT
-A INPUT -j DROP -i any -o any -s 10.128.0.100Попытавшись скормить это arptables-restore, увидим
arptables v0.0.3.3: Can't use -o with INPUT
Try 'arptables -h' or 'arptables --help' for more information.
ERROR(line 5):Но даже удаление -o any не сильно исправит дело. Потому что останется -i any. С точки зрения arptables-restore,
да и arptables, any ни разу не ключевое слово, а просто имя интерфейса.
Почему arptables-save считает иначе - непонятно.Подводя итог: вывод arptables-save нужно фильтровать примерно таким образом:
# arptables-save | sed -e 's/\(-[io]\) any *//g'
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
:FORWARD ACCEPT
-A INPUT -j DROP -s 10.128.0.100
URL:
Обсуждается: http://www.opennet.me/tips/info/2089.shtml
правильное место этому - http://bugs.debian.org/
Если я им все подобные баги начну постить, у них сервер ляжет :)Кроме того, не жду ничего хорошего от людей, которые грохнули init-скрипт для iptables и гордо считают это фичей.
что значит грохнули?
у меня он очень даже работает. лижит в /etc/init.d/iptables
>что значит грохнули?
>у меня он очень даже работает. лижит в /etc/init.d/iptablesПоделитесь травой плз!
А то я тут понимаешь мучаюсь, с редхата его портирую...Вроде в Этче или Сарже он еще лежал в виде /usr/share/doc/iptables/examples/oldinitscript.gz, а потом его выпилили. В Ленни я не нашел.
Кто мешает поместить скрипт в /etc/network/if-pre-up.d/ следующего содержания:iptables-restore < ${YOUR_RULES_FILE}
или вообще юзать что-то наподобие shorewall?
>Кто мешает поместить скрипт в /etc/network/if-pre-up.d/ следующего содержания:
>iptables-restore < ${YOUR_RULES_FILE}Мне удобнее хороший init-скрипт. Гораздо удобнее. Так как он может выгружать/загружать модули, менять параметры sysctl, сохранять конфигурацию в любой момент (invoke-rc.d iptables save), закрывать (iptables panic) и открывать фаервол (iptables stop) по желанию. И все это через один простой интерфейс.
В /etc/network/if-pre-up.d/ разумно поместить разве что
invoke-rc.d iptables start>или вообще юзать что-то наподобие shorewall?
Не люблю когда машина умничает :)
>Кто мешает поместить скрипт вНекоторым пользователям оно же ж надо http:/openforum/vsluhforumID3/42161.html#9 так, как надо _им_, и ни ментейнеры пакета в дисрибутиве, ни апстрим не могут этому помешать. Даже несмотря на то, что всё вокруг меняется, сменилось три-четыре релиза Debian -- но _надо_ именно http:/openforum/vsluhforumID1/79587.html#8 так, как оно надо и как оно было.
И кто мы такие в конце концов, чтобы мешать счастью http:/openforum/vsluhforumID3/42161.html#6 людей?
:-]
Некоторые, правда уже "не ждут ничего хорошего от людей"... :-/ А "счастье"-то где рядом. Ссылка выше.
2PavelR: Выложил? Где? В дистрибутиве - когда? [Поддерживать там - будет кто?..] Пользователи по несчастью -- страдают.
Меж прочим человек правильно мыслит...Насчет проблем с тем что было в дебиане раньше - не знаю, не видел.
Однако ж портировал аналогичный скрипт с RHEL, потестировал и остался доволен.
Если еще кому-то, кроме меня, это нужно - могу выложить в виде пакетов.Аналогичным образом поступил с arptables. Только зря наверное. В отличие от RHEL'а в дебиане arptables кривой и страшный как моя смерть (что наглядно иллюстрируется сией заметкой).
Насчет "не ждать от людей хорошего" - я уже неоднократно видел последствия употребления сильнодействующих веществ мейнтейнерами ключевых пакетов дебиана. Думаю, если запостить этот баг на их багтрекер, в лучшем случае они его проигнорируют, в худшем - грохнут весь пакет. И пофигу, что он кому-то нужен.
Чож ждать, вот оно, забирайте, портированный редхат "service iptables":
>Чож ждать, вот оно, забирайте, портированный редхат "service iptables":
>
>http://debian.nikolas.ru/debian/Спс. На досуге посмотрю.
>Чож ждать, вот оно, забирайте, портированный редхат "service iptables":
>http://debian.nikolas.ru/debian/Посмотрел.
Есть маленькое замечание, можно сказать стилистическое.В postinst скрипте вы суете ссылку на инит-скрипт с rcS.d с приоритетом 38. Однако в том же rcS.d инит-скрипт networking, поднимающий сеть, числится с приоритетом 14. Что в принципе может создать очень неприятный момент при загрузке, когда интерфейсы подняты, а фаервол еще не сконфигурирован. Мелочь, конечно... Но большая проблема обычно как раз и складывается из мелких.
Совет: забить на update-rc.d, и сунуть в /etc/network/if-pre-up.d/ скриптик вида
#!/bin/sh
/etc/init.d/iptables startи не нужно будет никаких update-rc.d в postinst/postrm :)
>Насчет "не ждать от людей хорошего" - я уже неоднократно видел последствия
>употребления сильнодействующих веществ мейнтейнерами ключевых пакетов дебиана.И продолжаете пользоваться. "Мыши плакали, кололись, но продолжали есть кактус" или плюём в колодец?
>запостить этот баг на их багтрекер, в лучшем случае они его
Вы полагаете, что OpenNET место получше для "выкладывания" пакетов-патчиков для?
>И продолжаете пользоваться. "Мыши плакали, кололись, но продолжали есть кактус" или плюём в колодец?Ну, в дебиане ведь и много хорошего есть :)
>Вы полагаете, что OpenNET место получше для "выкладывания" пакетов-патчиков для?
Это не патч. Это debian way. Да, местами он проходит через задницу. Ну то тут поделать, если мейнтейнер - ...?
>или плюём в колодец?
>Ну, в дебиане ведь и много хорошего есть :)Значит, в колодец... :(
>Это debian way. Да, местами он проходит через задницу.
Гм, извините, я "пешком постою": это _Ваш_ way.
>Ну то тут поделать, если мейнтейнер - ...?
Может, не плевать в колодец -- глядишь, и он [когда-нибудь] перестанет плевать в ответ.
>Гм, извините, я "пешком постою": это _Ваш_ way.Единственно верный путь не подскажете?
>>Ну то тут поделать, если мейнтейнер - ...?
>
>Может, не плевать в колодец -- глядишь, и он [когда-нибудь] перестанет плевать
>в ответ.Не суди по словам, суди по делам. Учтя результаты деятельности мейнтейнера iptables, я к нему даже соваться не стал. Не буди зверя... А то еще чего-нибудь нужное грохнет.
Вот пока вы тут с 09:57 до 17:45 флудили, какой Дебиан ху...ый,
можно было столько скриптов написать, на полноценный брандмауэр хватило бы!!! :)
Ога. Тонкое наблюдение.Вот представь: каждому десятому (или даже двадцатому) пользователю дебиана нужен инит-скрипт для iptables. И он его пишет. Итого: несколько тысяч инит-скриптов. Может лучше сразу идти пустыню подметать? Или хотя бы фонтаны стричь?
>Ога. Тонкое наблюдение.
>
>Вот представь: каждому десятому (или даже двадцатому) пользователю дебиана нужен инит-скрипт для
>iptables. И он его пишет. Итого: несколько тысяч инит-скриптов. Может лучше
>сразу идти пустыню подметать? Или хотя бы фонтаны стричь?А зачем Вам Linux?
>А зачем Вам Linux?Работать в нем.
Нет, работать в моем понимании - это не стричь фонтаны.
>>А зачем Вам Linux?
>
>Работать в нем.В нём нельзя работать, он работает за Вас, только надо один раз настроить.
>В нём нельзя работать, он работает за Вас, только надо один раз
>настроить.Ага, и сам пирожки ест.
>В нём нельзя работатьНеужели?
>он работает за Вас, только надо один раз настроить.
А как бы его так настроить, чтобы он сам писал инит-скрипты, грохнутые неадекватными мейнтейнерами?
>>В нём нельзя работать
>
>Неужели?
>
>>он работает за Вас, только надо один раз настроить.
>
>А как бы его так настроить, чтобы он сам писал инит-скрипты, грохнутые
>неадекватными мейнтейнерами?Нейронная сеть и искусственный интеллект вам в помощь... :)
> Если я им все подобные баги начну постить, у них сервер ляжет :)ну так сделай это. Вот потому что все забивают на написание багов мы имеем то что имеем. Я никогда не стеснялся багрепорты писать. Даже если не уверен что это баг всё равно пишу, разрабы разберуться что к чему.
Делай-не делай - толку никакого. Мейнтейнер arptables впал в нирвану в две тыщи лохматом году. С тех пор он ни на что не реагирует и ничем не занимается.Это конечно лучше, чем в случае с iptables - там мейнтейнер просто-таки профессиональный вредитель, принципиально уничтожающий все хорошее. Один libipt_psd.so чего стоит :(
> Если я им все подобные баги начну постить, у них сервер ляжет :)Ничего страшного, поднимут и сделают выводы :).Подходов есть два - да, можно мыкаться с тем что есть, молча в тряпочку, а о том что у вас проблемы никто кроме вас возможно и не узнает.А можно багов понаписать.Что явно увеличивает шансы на то что проблема бузет изучена причастными и даже возможно, починена.
Если вам нравится самопальное костылестроение - вам первый подход.А если нужна нормальная система которая работает без подстановки левых костылей и подпорочек, тогда второй.
>Ничего страшного, поднимут и сделают выводы :).Подходов есть два - да, можно
>мыкаться с тем что есть, молча в тряпочку, а о том
>что у вас проблемы никто кроме вас возможно и не узнает.А
>можно багов понаписать.Что явно увеличивает шансы на то что проблема бузет
>изучена причастными и даже возможно, починена.
>
>Если вам нравится самопальное костылестроение - вам первый подход.А если нужна нормальная
>система которая работает без подстановки левых костылей и подпорочек, тогда второй.Я уже четко и внятно объяснил, что мейнтейнер arptables в нирване. И вообще официальное сообщество положило на этот пакет большой-большой прибор.
Так станьте сами мейнтрейнером
> Если я им все подобные баги начну постить, у них сервер ляжет :)не ляжет, я проверял.
> Кроме того, не жду ничего хорошего от людей, которые грохнули init-скрипт для iptables и гордо считают это фичей.
видите ли в чём дело... в хорошем дистрибутиве все части системы должны быть совместимы между собой. если есть скрипт загружающий конфигурацию файрвола, то он должен быть совместим с hotplug, hal и udev. добится этой совместимости простым init скриптом который выполняется один раз при старте системы и никак не реагирует на подключение/отключение в процессе работы сетевых интерфейсов - невозможно. поэтому то что этот несовместимый с другими частями ОС скрипт грохнули - это правильно.
>не ляжет, я проверял.Знаете ли вы столько багов дебиана, сколько знаю я? Вряд ли. Так что проверить не могли :)
>видите ли в чём дело... в хорошем дистрибутиве все части системы должны
>быть совместимы между собой. если есть скрипт загружающий конфигурацию файрвола, то
>он должен быть совместим с hotplug, hal и udev. добится этой
>совместимости простым init скриптом который выполняется один раз при старте системы
>и никак не реагирует на подключение/отключение в процессе работы сетевых интерфейсов
>- невозможно. поэтому то что этот несовместимый с другими частями ОС
>скрипт грохнули - это правильно.Простите, но ваши аргументы - детский лепет.
Во-первых, сейчас в линуксе нет метода конфигурирования фаервола, учитывающего "hotplug, hal и udev". Сломать все и ничего не построить - пять баллов.
Во-вторых, iptables глубоко наплевать, существует или нет интерфейс, описанный в его правилах. Нет интерфейса - значит правило для него просто не будет срабатывать.
В-третьих, динамическое переконфигурирование при подъеме/опускании отдельных интерфейсов можно делать через pre-up и post-down в /etc/network/interfaces, но необходимости загружать базовую конфигурацию это ни разу не отменяет.
Почему arp-то?
>Почему arp-то?Помимо IP-фаервола iptables, в линухе есть ARP-фаервол arptables.
И с ним тоже иногда надо работать :)
кто не вкурсе, еще есть ebtables :-)