gremlintv2
@gremlintv2

К чему привязыватся при допущении ошибки в IPTABLES?

Каждый рано или поздно сталкивается с человеческим фактором (проще говоря "когда руки не из того места растут")
При допущении ошибки в конфиге ее можно легко пофиксить поправив конфиг повторно.
Но в случае с iptables все не так просто, потому что, при копировании конфига можно легко потерять доступ (элементарная ошибка в названии интерфейса или ip сервера итд итп)

К чему я веду:
Есть вариант написать bash скрипт который позволит привязываться к какому, то тригеру при потери связи с сервером.

Логика такая:
Запускаеться bash скрипт с правилами iptables
1) сразу после запуска бэкапиться предыдущий конфиг:
iptables-save>iptables-rules-old
2) применяется новая цепочка правил и выполняется тригер
3) проверяется тригер.
Варианты тригера пока вижу следующие:
а)
создать файл и
если он не удален на протяжении 1минуты:
iptables-restore<iptables-rules-old
если удален:
iptables-save>iptables-rules-old
б)
проверять существует ли подключение к серверу по ssh порту (но это не надежно)
в)
оставлять себе любимому лазейку на ssh порт через дополнительный скрипт и по истечении 5ти минут удалять ее

Какие еще есть варианты?
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
@Karpion
Допустим, у нас есть заведомо годный рабочий_конфиг и экспериментальный_конфиг сомнительной работоспособности. Дальше делаем примерно так:

( sleep 5 минут ; применить рабочий_конфиг ) & # в асинхронном режиме (через амперсенд) запустить резидентную программу (форк шелла), которая поспит 5 минут и применит рабочий конфиг
применить экспериментальный_конфиг

У Вас есть пять минут на тестирование.

Но надо убедиться, что при отваливании терминала резидент не помрёт от сигхапа. Так что надо бы применить программу nohup.

Почитайте доки по ipfw - там эта тема разобрана. Собственно, я свой ответ строил на том, что запомнил именно оттуда.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы