Задать вопрос

Что нужно сделать, что бы ipset после reboot сервера сохранял сеты?

Добрый день хабралюди.

Имею сервер на хетзнере
uname -r
2.6.32-5-amd64

cat /etc/debian_version
6.0.5

iptables --version
iptables v1.4.8

ipset --version
ipset v4.2, protocol version 4.
Kernel module protocol version 4.


Проблема в следующем после перезагрузки ipset не «узнаёт» созданные set'ы.

Что я делаю не так?

Заранее спасибо.
  • Вопрос задан
  • 22582 просмотра
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
@xbox
Простое и рабочее решение, развивая совет "Max_rip".

"Max_rip" дал отличный совет "/etc/init.d/iptables-persistent, Добавит туда ipset save / ipset restore ". Только из-за того, что в слове "добавит" пропущен мягкий знак смысл его при первом прочтении теряется и кажется, что /etc/init.d/iptables-persistent должен все автоматически делать. Я попробовал - автоматически не получается. iptables-persistent сохраняет настройки iptables, но без напильника не сохраняет сеты ipset.

Вот что имелось ввиду в совете и то, что мне помогло:

Для начала должен быть установлен пакет iptables-persistent. На Debian устанавливаем так
apt-get install iptables-persistent

Этот пакет нам позволит сохранять командой из консоли правила IPTABLES. После перезагрузки правила iptables сбрасываться перестанут.

Далее редактируем скрипт запуска /etc/init.d/iptables-persistent
Находим секуцию save_rules() и дописываем в нее вначале строку
ipset save > /etc/ipset.rules
Это будет сохранять сеты IPSET при каждом сохранении правил iptables с помощью iptables-persistent.

После этого находим секцию load_rules() и добавляем вначале строку
ipset restore < /etc/ipset.rules
Это будет загружать сеты IPSET при каждой загрузке правил iptables с помощью iptables-persistent.

Этот вариант на мой взгляд самый удобный. Одной командой из консоли cохраняются и правила iptables и сеты Ipset. После перезагрузки правила сохранятся.
service iptables-persistent save

Удачи.
Ответ написан
Комментировать
Alukardd
@Alukardd
Так и iptables правила не сохраняет)
Надо это делать вручную или автоматизировать процесс.
Ответ написан
@max_rip
/etc/init.d/iptables-persistent
Добавит туда ipset save / ipset restore
Ответ написан
Комментировать
@smartlight Автор вопроса
Каюсь. Сам мог догадаться, что set's ipset работает также как и таблицы/правила d iptables.
В итоге сделал такое:

touch /etc/default/ipsetrules

vi /etc/default/ipsetrules
# Generated by ipset 4.2 on Mon Sep  3 14:12:06 2012
-N blacklist iphash --hashsize 1024 --probes 8 --resize 50
-A blacklist 62.76.191.99
COMMIT
# Completed on Mon Sep  3 14:12:06 2012



в секцию стартинга iptables вставил следующее:

   ipset -X
   ipset --restore  </etc/default/ipsetrules


добавление ip делаю через редактирование /etc/default/ipsetrules
Ответ написан
Комментировать
censured
@censured
1) сохраняем правила ipset -S > /etc/ipset/ipset-save

2) nano /etc/rc.local в конец дописываем (до exit 0)
cat /etc/ipset/ipset-save | /usr/sbin/ipset -R
Ответ написан
Ваш ответ на вопрос

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

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