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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Автозагрузка правил iptables (Lazymode)  (Прочитано 72409 раз)

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

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #45 : 20 Января 2011, 23:47:45 »
Опять же - по поводу сохранения - это вопрос крайне спорный и чисто субъективный - кому как удобней. Best practice в этом вопросе нет и быть не может, всё зависит от связки админ-специфика сервера. Остальное аргументировал в посте выше: не стоит забывать, что этот форум в первую очередь для новичков, и надо немного головой думать в этом контексте. Мне очень жаль новичка, который начнёт своё знакомство с сохранением правил iptables с этой инструкции. Уж лучше rc.local, хотя бы стандарт запуска пользовательских действий при загрузке.
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн AnrDaemon

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #46 : 20 Января 2011, 23:50:13 »
Ну, если уж на то пошло, я предпочитаю вообще не пользоваться связкой iptables-save - iptables-restore, поскольку когда в системе много правил, то вывод iptables-save просто нечитаем.
Либо не умеешь писать правила так, чтобы они были читаемыми, либо не умеешь читать.
Мне всегда проще просмотреть полный дамп правил, пусть их там больше сотни, чем по замудренному скрипту гадать, будет ли он работать вообще, и если да - где ошибка.

Цитировать
Я просто пишу свой скрипт, который вешаю на поднятие интерфейса, а в него - вручную правила с нужными комментариями. Но в контексте оперирования с iptables-save/restore использование каталогов if-up.d и if-down.d кажется гораздо более запутанным.
Тебе кажется. Мне нет. (Креститься не будем?)

Цитировать
И в прикреплённой теме в разделе сети, которую конечно читает куча новичков, писать такое, не упоминая про классический прозрачный способ - это немного не айс.
Прости, ты сказал, что ты пробовал и у тебя не получилось.
Предполагая, что ты всё сделал по инструкции, я делаю вывод, что у меня в инструкции ошибка. Если ты опишешь свою последовательность действий, и укажешь, где именно у тебя пошли проблемы, я, наверное, смогу внести необходимые исправления?

Цитировать
Я не против, что моё исправление AnrDaemon отредактирует, если он таки оставит в начале топика простой способ, а потом уже перейдёт к описанию своих махинаций.
Я не вижу никаких "махинаций" в инструкции из трёх простых шагов.
Может, объяснишь свою позицию для меня? Да и для других, думаю, профессиональное мнение, изложенное не лексиконом Эллочки-людоедочки, а нормальным русским языком будет интересным.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #47 : 21 Января 2011, 00:04:04 »
Извини, во-первых далеко не три. Во-вторых, вот это:

echo -e "#! /sbin/iptables-restore
 `iptables-save`" > /etc/network/if-up.d/iptables-rules

далеко не простой шаг. Откуда, блин, нормальный пользователь знает что:

1. echo -e заставляет
 интерпретироваться как перенос строки (ок, это можно почитать в мане и в принципе факт не сложный)
2. Указание в качестве интерпретатора для исполнения команды /sbin/iptables-restore с помощью #! заставит bash скормить содержимое этой самой команде (это оочень нетривиально)
3. Ну и наконец что подстановка вывода с помощью `` (о которой тоже надо знать) работает внутри "" - большинство не-гуру bash об этом могут даже не подумать, хотя читать скрипты умеют.

В итоге - шаманство, вместо совершенно прозрачной команды

iptables-restore -c < /etc/network/firewall.conf
Мне пришлось включать мозг, чтобы не выполняя реально инструкцию понять, что она делает. Новичку же придётся несладко. А плодить болванчиков, которые выполняют инструкции, не понимая, что они делают, я лично не хочу и всячески буду пресекать потуги к таким действиям.

Почему не работает? Потому что не сохраняет правила и нигде толком не сказано, что это надо делать вручную.Я пока не начал разбираться в командах прочитал текст - и был в полной уверенности, что оно таки сохранится автоматом. Особенно после этого:

Цитировать
Редактировать правила можно двумя способами:
1. Внося изменения в активные таблицы любым удобным Вам способом (из командной строки либо пользуясь удобным Вам междумордием).
....
В обоих случаях, запустите скрипт iptsave.sh после того, как вы добились желаемого эффекта.
Это создаст резервную копию вашего файла.

Не, я люблю шаманство. Я не люблю, когда шаманство выдают новичкам в качестве инструкции к исполнению, не объясняя, как шаманство работает, и не упоминая, что есть простые способы шаманства избежать.

Пользователь решил продолжить мысль 21 Января 2011, 00:06:04:
Так что будь добр, оставь нормальный (ок, скажем так: общепринятый классический) способ в начале статьи, чтобы не пугать общественность. А мой немного жёсткий текст можешь заменить своим по вкусу.

Пользователь решил продолжить мысль 21 Января 2011, 00:09:01:
А, и по поводу:
Цитировать
Либо не умеешь писать правила так, чтобы они были читаемыми, либо не умеешь читать.
Я умею и писать, и читать. Я не умею догадываться, нафига то или иное правило добавлено на тот или иной роутер в сети.
« Последнее редактирование: 21 Января 2011, 00:09:01 от Malamut »
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн AnrDaemon

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #48 : 21 Января 2011, 00:14:48 »
В твоей совершенно прозрачной команде "-c" и "<" совершенно лишние.
Редактировать не буду, просто уберу. Если ты редактируешь чужой пост - будь добр редактировать его от своего имени.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #49 : 21 Января 2011, 00:20:27 »
-с - возможно, пережиток непойми чего, сейчас вроде iptables-save и restore статистику по пакетам сохраняют по умолчанию, а man просто не поменяли. Без < просто не заработает. И остальные аргументы, как посмотрю, таки остались без ответа :coolsmiley: Задолбало меня спорить ни о чём. Я в общем написал что к чему, и вроде свою позицию по данному вопросу озвучил совершенно чётко. Не я прикреплял эту тему, но поскольку она прикреплена, то содержание должно быть качественным, то есть понятным и пригодным для новичков. Соответственно либо сначала общепринятый метод, а потом возня со скриптами, либо просто откреплю тему.
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #50 : 21 Января 2011, 06:18:36 »
(Нажмите, чтобы показать/скрыть)
Откуда, блин, нормальный пользователь знает что: - а зачем нормальному пользователю лезть в консоль? не проще ли нормальному пользователю поставить графическую тулзу?
Мне пришлось включать мозг - пожалуй стоит оставить без комментария иначе боюсь забанят. мозг должен работать всегда (за исключением сна)
Новичку же придётся несладко - а на что новичок рассчитывает залезая в консоль и тем более в iptables?
Не, я люблю шаманство - на вкус и цвет все фломастеры разные, способ приведенный в данной теме мне нравится больше чем то что Вы предложили.

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #51 : 21 Января 2011, 09:18:26 »
censor,
Субъективно. Одни и те же команды, только в стандартном применении они используются напрямую, а в этом предложенном - завёрнуты в странные скрипты. Нужно создавать скрипт сохранения, для восстановления - нужно всё равно вызывать скрипт по полному пути. Не проще ли использовать две стандартные команды? Если лень писать - можно добавить алиасы ip-save ip-restore. Суть в том, что команды всё равно 2, но в нормальном способе они стандартны, а в этом - нет. Файл с правилами всё равно один. Но для этого способа ещё нужен доп. скрипт сохранения. Короче технически результат и используемые для его достижения утилиты идентичны. И вы меня никогда не убедите, что доп. скрипты в нестандартных местах - это проще, удобней и понятней, чем две стандартные команды. Я бы ещё понял, если бы надо было вводить несколько команд для сохранения, или одну длинную. Так ведь нет, всё уже есть - утилиты iptables-save и iptables-restore. Не нужно ничего дополнительного придумывать. В итоге всё описанное в первом посте - классически вредный совет для новичков. Кому-то это может и удобно, но менее вредной инструкция от этого не становится.
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн AnrDaemon

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #52 : 22 Января 2011, 00:53:27 »
Прежде чем говорить "не заработает" стоит попробовать.
А то сел в лужу - и сидишь, улыбаешься...

Создание скрипта загрузки поправил, учтя твои предложения.
(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 22 Января 2011, 01:52:57:
Одни и те же команды, только в стандартном применении они используются напрямую, а в этом предложенном - завёрнуты в странные скрипты.
Кто может сказать, какое применение стандартно?...
Цитировать
Нужно создавать скрипт сохранения
Я редактирую правила напрямую.

Цитировать
для восстановления - нужно всё равно вызывать скрипт по полному пути.
sudo service networking restart

Цитировать
Не проще ли использовать две стандартные команды?
Я использую одну. Стандартную. Стандартным образом... (Именно, описанным в документации.)
Вторую использую один раз для создания начальной конфигурации. Мне хватает.

Цитировать
Если лень писать - можно добавить алиасы ip-save ip-restore.
Зачем вообще писать? bash-completion отменили? (При том, что я ни одной из этих команд не ввожу, разве что надо визуально убедиться в наличии загруженных правил...)

Цитировать
Суть в том, что команды всё равно 2, но в нормальном способе они стандартны, а в этом - нет.
Ты всё время оперируешь словами "нормальный" и "стандартный", при этом, похоже, не понимая их значения.
Если с "ненормальностью" моего способа я могу с некоторой натяжкой согласиться (поскольку "норма" - общепринятый способ делать что-либо), то запуск скриптов по событию поднятия интерфейсов - это СТАНДАРТНАЯ возможность операционной системы, так же как загрузка правил командой iptables-restore из файла, указанного первым параметром в командной строке.

Цитировать
Файл с правилами всё равно один. Но для этого способа ещё нужен доп. скрипт сохранения.
Не-а... НЕ нужен. Редактируй прявила прямо в скрипте, если надо.
« Последнее редактирование: 22 Января 2011, 01:52:57 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Viktor1802

  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #53 : 10 Марта 2011, 18:38:17 »
А я скажу следующее: Большое спасибо автору за информацию. Мне очень помогло это описание автоподнятия правил. Работает на сервере несколько месяцев.

Оффлайн _set_

  • Участник
  • *
  • Сообщений: 227
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #54 : 08 Мая 2011, 18:28:49 »
Такая ситуация: на vmware есть сервер 2.6.35-22-server, там же 2 клиента Ubuntu и XP. Есть простенький скрипт iptables, немного переделаный из туториала
(Нажмите, чтобы показать/скрыть)
Делал все как в первом посте, команды копировал, ошибок не выдавало, всё вроде бы работает вот сохранённая версия:
(Нажмите, чтобы показать/скрыть)
Но после перезагрузки сервера нет интернета на клиентских машинах, если вручную запустить иначальный скрипт всё снова работает. В чём может быть дело?


pre-up iptables-restore -c < /etc/network/firewall.conf
pre-down iptables-save -c > /etc/network/firewall.conf

После этого файл оказался нечетабельным и интерфейсы вообще не поднялись
« Последнее редактирование: 10 Мая 2011, 19:18:12 от _set_ »

Оффлайн flant

  • Любитель
  • *
  • Сообщений: 66
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #55 : 09 Мая 2011, 11:53:16 »
я использую iptables-restore из любого файла

Оффлайн _set_

  • Участник
  • *
  • Сообщений: 227
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #56 : 09 Мая 2011, 12:29:24 »
я использую iptables-restore из любого файла
Не понял.

Оффлайн AnrDaemon

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #57 : 09 Мая 2011, 22:39:25 »
Такая ситуация: на vmware есть сервер 2.6.35-22-server, там же 2 клиента Ubuntu и XP. Есть простенький скрипт iptables, немного переделаный из туториала
Я понятия не имею, из какого туториала "переделан" этот скрипт, и совершенно не горю желанием выступать в роли онлайн-интепретатора, выясняя, будет ли он вообще работать, и если да, то что получится в итоге.
Если вы про скрипт, предложенный в топике "iptables для новичков", то я был изначально против его разработки - такого монстра новичку осилить не под силу, и задачи решаются в получающейся конфигурации отнюдь не детские.
Это не значит, что скрипт сам по себе плох - отнюдь, просто он непригоден в качестве обучающего материала. Вот топик, который привёл этот скрипт к окончательному виду, может служить таким материалом.

Цитировать
Делал все как в первом посте, команды копировал, ошибок не выдавало, всё вроде бы работает вот сохранённая версия:
(Нажмите, чтобы показать/скрыть)
Но после перезагрузки сервера нет интернета на клиентских машинах, если вручную запустить иначальный скрипт всё снова работает. В чём может быть дело?

Поймите, настройка брандмауэра запуском iptables из скрипта и загрузка конфигурации через iptables-save/restore это два ПРИНЦИПИАЛЬНО различных подхода к выполнению задачи.
Оба дают необходимый (и идентичный) результат, но средства используют разные.
Если после запуска начального скрипта, как вы говорите, у вас появляется интернет, проделайте ещё раз шаги с первого по четвёртый и перезагрузитесь.
Если(!) после перезагрузки у вас интернета не будет - сделайте Шаг #1 и сравните вывод с тем, что у вас находится в файле /etc/network/if-up.d/iptables-rules

Цитировать

pre-up iptables-restore -c < /etc/network/firewall.conf
pre-down iptables-save -c > /etc/network/firewall.conf

После этого файл оказался нечетабельным и интерфейсы вообще не поднялись
Не знаю, какой файл вы имели в виду, но мы уже раньше обсуждали этот момент (не помню, в каком топике) - автоматическая перезапись конфигурационных файлов - верный путь к самоубийству системы. (Как в каждом правиле, в этом тоже встречаются исключения, но "это не наш случай".)
Лишь ещё раз замечу, что для правильной подгрузки правил через if-up.d в interfaces не должно быть ничего, кроме собственно настройки интерфейсов.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн _set_

  • Участник
  • *
  • Сообщений: 227
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #58 : 10 Мая 2011, 19:23:51 »
Имелся в виду скрипт rc.firewall из туторила для iptables 1.1.19 на оупэннэт.ру.

Если после запуска начального скрипта, как вы говорите, у вас появляется интернет, проделайте ещё раз шаги с первого по четвёртый и перезагрузитесь.
Если(!) после перезагрузки у вас интернета не будет - сделайте Шаг #1 и сравните вывод с тем, что у вас находится в файле /etc/network/if-up.d/iptables-rules
Сами правила из файла /etc/network/if-up.d/iptables-rules и вывода iptables-save сопадают. Отличия есть в порядке вывода таблиц, т.е. в сохраненном файле идет: mangle, nat, filter, а в выводе команды filter, nat,, mangle и датах генерации.

Оффлайн AnrDaemon

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Автозагрузка правил iptables (Lazymode)
« Ответ #59 : 10 Мая 2011, 19:41:34 »
grep ip_forward /etc/sysctl.conf
Ы?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

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