Содержание
1. DejaDup
Простое и понятное приложение, которое предустановлено во многих популярных дистрибутивах. К примеру, оно присутствует в той же Ubuntu, только называется «Резервные копии». DejaDup не смутит даже самых неопытных пользователей. В главном окне программы всего две кнопки: «Восстановление» и «Создать резервную копию».
На боковой панели в разделе «Папки для сохранения» выберите, что именно хотите копировать. По умолчанию делается бэкап вашей пользовательской папки. В следующем разделе — «Исключённые папки» — отметьте те данные, которые сохранять не следует.
DejaDup умеет отправлять копии на локальные диски, ваши личные серверы в локальной сети, а также в облака Google и Nextcloud. Планировщик тут тоже в наличии, хотя настройки довольно скудные. Приложение может делать копии каждый день или неделю и — при необходимости — удалять старые данные (раз в полгода или год).
Чтобы установить DejaDup, просто введите в терминал команду, подходящую для вашего дистрибутива:
- Ubuntu:
sudo apt‑get install deja‑dup
- Fedora:
sudo dnf install deja‑dup
- openSUSE:
sudo zypper install deja‑dup
- Arch:
sudo pacman -S deja‑dup
2. Cronopete
Создатель Cronopete прямо заявляет на своём сайте, что при разработке своего приложения вдохновлялся Time Machine на Mac. А потому настроек тут минимум. При первом запуске Chronopete спросит вас, где хранить копии — в какой‑то папке или на внешнем жёстком диске, — и предложит выбрать файлы, которые следует копировать.
После этого приложение поселится в вашем трее и будет периодически делать бэкапы. А ещё Chronopete станет автоматически удалять старые файлы, когда ваш диск начнёт переполняться.
Установить Cronopete можно, загрузив пакет с сайта автора.
Загрузить Chronopete →
3. Back in Time
Продвинутое приложение с достаточно разнообразными настройками. При первом запуске оно предложит вам создать профиль и выбрать, где размещать резервные копии, какие файлы и папки сохранять, а какие нет, как часто выполнять бэкапы и когда удалять старые, залежавшиеся данные, чтобы освободить место на диске.
Поначалу может показаться, что настроек у Back in Time слишком много. Но, в принципе, разобраться в нём не так сложно.
Отдельная приятная особенность Back in Time в том, что оно умеет создавать резервные копии не только по расписанию, но и каждый раз, когда подключается подходящий внешний носитель. Вы подсоединяете жёсткий диск, и через несколько минут на нём появляется резервная копия.
Установить Back in Time можно так:
- Ubuntu:
sudo add‑apt‑repository ppa:bit‑team/stable; sudo apt update; sudo apt install backintime‑gnome
- Fedora:
sudo dnf install backintime‑qt4
- openSUSE:
sudo zypper install backintime‑qt4
- Другие дистрибутивы: загрузить Back in Time →
4. Timeshift
Чрезвычайно мощное приложение для защиты всей вашей системы от нежелательных изменений. Помните точки восстановления в Windows? Timeshift делает то же самое, но в Linux.
При первом запуске программа спросит у вас, какой из двух типов резервного копирования следует использовать. Режим Rsync работает во всех системах Linux, но он довольно медленный. Btrfs быстрее, но его можно применить только для вариантов, установленных на разделы Btrfs (тип файловой системы указывается при инсталляции Linux).
Затем вам нужно будет выбрать, какие разделы копировать (по умолчанию включён только системный) и как часто это делать. Обычно Timeshift выполняет бэкапы ежедневно. После установки Timeshift вы можете вытворять со своей системой что хотите: если вы что‑то повредите, всегда можно будет откатиться на стабильный «снимок».
Даже если ваша ОС перестала запускаться совсем, ничего страшного. Возьмите флешку или диск с Linux, загрузитесь в live‑режиме. Затем введите команду на инсталляцию Timeshift (не переживайте, установка произойдёт только в оперативной памяти). Укажите, где вы храните резервные «снимки», и выберите нужный. Через пять минут система будет восстановлена.
Но учтите, что разработчик Timeshift не рекомендует программу для резервного копирования документов и личных файлов. Она заточена под сохранение настроек и состояния самой системы.
Установить Timeshift можно вот так:
- Ubuntu:
sudo sudo apt‑add‑repository -y ppa:teejee2008/ppa; apt update; apt install timeshift
- Fedora:
sudo dnf install timeshift
- Arch:
sudo yaourt timeshift
- Другие дистрибутивы: загрузить Timeshift →
Рабочую копию правил Netfilter хранит в пространстве ядра linux. Ядро по умолчанию разрешает все подключения, что мы видим при выполнении команды iptables с опцией -L При этом все изменения правил, сделанные нами во время работы операционной системы, автоматически обычно никуда не сохраняются при выключении компьютера. Поэтому после очередного включения вы обнаруживаете, что настроенных правил опять нет и везде установлены политики по умолчанию — ACCEPT.
Примечание: На практике это значит, что ваш компьютер по умолчанию открыт к любому доступу извне для любой машины, для этого только необходима работающая программа, которая будет отвечать по порту, к которому захочет подключиться любой удаленный компьютер. В этой статье мы рассмотрим как сохранить правила iptables.
Конечно, заново настраивать каждый раз после перезагрузки компьютера набор правил межсетевого экрана не выгодно, поэтому нам необходимы средства сохранения и восстановления параметров брандмауэра после включения нашей машины. Наиболее распространенных вариантов решения этой проблемы два:
- С помощью утилиты iptables-save и загружать их с помощью iptables-restore;
- С помощью утилиты iptables-persistent (данный вариант возможен в операционных системах Debian и Ubuntu).
Сохранить правила можно в любую доступную директорию, но лучше, конечно, использовать для этого системную директорию, например, директорию для конфигурационных файлов /etc/ или под-папку в ней, например, /etc/iptables-conf/
Как сохранить правила iptables
Для сохранения правил межсетевого экрана Netfilter в linux можно использовать пакет iptables-save. Данный пакет записывает текущую конфигурацию в файл с указанным именем. Существуют две версии данного пакета:
- iptables-save для протокола IPv4;
- ip6tables-save для протокола IPv6.
Синтаксис команд одинаковый, поэтому мы рассмотрим вариант ipv4.
iptables-save [-mmodprobe] [-c] [-tтаблица] [-fимя файла]
Возможные опции:
- -m modprobe: Указывает путь к программе modprobe. По умолчанию iptables-save проверяет /proc/sys/kernel/modprobe для определения пути к исполняемому файлу. modprobe — утилита управления модулями ядра. Существует несколько вариантов данной утилиты. Данный параметр можно проигнорировать;
- -c: включает в поток вывода программы все счетчики количества переданных байтов и пакетов;
- -t таблица: выводит в поток вывода только одну таблицу, которая была явно указана. При отсутствии флага выводит все таблицы настроек firewall;
- -f имя файла: Указывает имя файла записи настроек. Если файл не указан, то вывод происходит в поток вывода на экран STDOUT.
В самом простом варианте команда будет выглядеть, например, следующим образом:
Вы можете использовать свою папку, имя файла и расширение. Возможно использование другого синтаксиса данной команды:
В данном варианте команды iptables-save выводит оформленные правила в поток вывода на экран STDOUT, который мы перенаправляем в указанный нами файл. Предварительно необходимо создать директорию /etc/iptables-conf/:
Просмотреть содержимое каталога можно с помощью команды:
Как загрузить правила iptables
Для ручного восстановления настроек можно использовать вызов утилиты iptables-restore. Она восстанавливает настройки брандмауэра Netfilter с указанного файла или из потока ввода STDIN, если файл не задан явно. Рассмотрим синтаксис iptables-restore:
iptables-restore [-chntvV] [-wсекунды] [-Wмиллисекунды] [-Mmodprobe] [-Tтаблица] [имя файла]
Основные опции:
- -c: восстанавливает значения всех счетчиков пакетов и байтов;
- -n: позволяет не сбрасывать содержимое правил обновляемой таблицы правил iptables. Если не указан — все текущие правила обновляемой таблицы сбрасываются. Получается, что правила из файла дописываются в конец таблиц рабочей конфигурации, если указан этот параметр;
- -t: происходит только сборка и тестирование набора правил из файла, без обновление рабочей таблицы правил iptables;
- -v: выводит дополнительную отладочную информацию в течении восстановления набора правил;
- -V: выводит номер версии программы;
- -w секунды: дождаться монопольной блокировки фильтра пакетов ядра linux xtables. Применяется, чтобы предотвратить одновременное выполнение нескольких экземпляров утилиты. Опция заставляет ждать программу в течении некоторого времени возможности монопольной блокировки xtables;
- -W миллисекунды: интервал ожидания для каждой попытки запуска пакета в монопольном режиме. Часто многие приложения системы критичны к времени запуска и выполнения, поэтому длительное ожидания для монопольной блокировки xtables часто является неприемлемым. Данный параметр в миллисекундах задает максимальное время такого ожидания. По умолчанию равно 1 секунде. Применяется только совместно с ключом -w;
- -M modprobe: Указывает путь к программе modprobe. По умолчанию iptables-restore проверяет /proc/sys/kernel/modprobe для определения пути к исполняемому файлу. modprobe — утилита управления модулями ядра. Существует несколько вариантов данной утилиты. Данный параметр можно проигнорировать;
- -T таблица: Восстанавливает только таблицу правил с указанным именем, даже если поток данных содержит другие таблицы;
- имя файла: путь до файла с восстанавливаемыми таблицами правил в файловой системе
Вот пример команды iptables-restore:
Или вариант восстановления правил из файла без сброса содержимого текущих таблиц Netfilter:
Автозагрузка правил iptables
1. Загрузка правил с помощью скрипта
Сохраненные правила с помощью утилиты iptables-save можно восстанавливать с помощью скрипта, запускаемого при каждом запуске операционной системы. Для этого необходимо выполнить следующие действия:
Сохранить набор правил межсетевого экрана с помощью команды:
Для запуска набора правил при старте операционной системы перед включением сетевого интерфейса мы создаем новый файл с помощью команды:
Заметим — в сети есть много вариантов места размещения скрипта на локальной машине, но я считаю именно размещение в папке if-pre-up.d наиболее верным, так как при этом скрипт будет выполнятся перед включением сетевого интерфейса. Добавляем в данный файл следующий скрипт:
Сохраняем файл iptables Ctrl+O. Выходим из editor Ctrl+X. Устанавливаем необходимые права для созданного файла:
Перезагружаем компьютер и проверяем результат для таблицы filter с помощью команды:
Для обеспечения безопасности необходимо, чтобы конфигурация iptables применялась до запуска сетевых интерфейсов, сетевых служб и маршрутизации. Если данные условия не будут соблюдены — появляется окно уязвимости между загрузкой операционной системы и правил защиты межсетевого экрана. Для реализации такого варианта защиты можно использовать пакет iptables-persistent.
2. Автозагрузка правил iptables-persistent
По умолчанию данный пакет не установлен в операционной системе. Данный вариант реализации автозапуска конфигурации возможен в операционных системах Debian, Ubuntu. Для установки пакета требуется выполнить команду:
Этот пакет впервые стал доступен в Debian (Squeeze) и Ubuntu (Lucid). Используемые этим пакетом правила iptables хранятся в следующих директориях:
- /etc/iptables/rules.v4 для набора правил протокола IPv4;
- /etc/iptables/rules.v6 для набора правил протокола IPv6.
Но они должны быть сохранены в понятном утилите iptables-persistent виде.
Требования к формату данных файлах не задокументированны, что создает некоторые сложности для создания этих файлов вручную. Их можно создать с помощью dpkg-reconfigure:
Или можно использовать iptables-save и ip6tables-save:
Если мы были внимательны при установке пакета, то мы должны были заметить в Debian 10 и последних версиях Ubuntu пакет-зависимость для iptables-persistent: netfilter-persistent, устанавливаемых с нужным нам пакетом. Можно по адресу https://packages.ubuntu.com посмотреть содержимое пакета iptables-persistent, и мы заметим, что на текущий момент пакет называется iptables-persistent, а основные файлы уже относятся к пакету netfilter-persistent.
Утилита netfilter-persistent тоже позволяет управлять автозагрузкой правил. Вот её синтаксис:
sudonetfilter-persistent [действие]
Где [действие] может принимать следующие значения:
- start — вызывает все плагины с параметром start, для загрузки правил в netfilter;
- stop — если настроена конфигурация сброса настроек Netfilter при остановке плагина, сбрасывает все настройки firewall на значения по умолчанию. Иначе просто выдает предупреждение;
- flush — плагины вызываются с параметром flush, что приводит к сбросу правил межсетевого экрана на значения по умолчанию;
- save — вызывает плагины с параметром save, позволяя сохранить значения правил брандмауэра в файлы на диске;
- reload — не задокументированный параметр, возникали случаи когда параметр start не срабатывал, помогал вызов этого параметра для загрузки правил из файла на диске;
Значит, чтобы сохранить правила мы можем вызвать следующую команду:
Для загрузки же сохраненных правил мы можем использовать команду:
Замечание: После установки netfilter-persistent система при использовании iptables и формата хранения файлов, связанного с ним, начинает при работе выдавать предупреждение
# Warning: iptables-legacy tables present, use iptables-legacy to see them.
Это связано с наличием новой утилиты настройки и редактирования правил Netfilter — nftables, для миграцию на эту утилиту старых правил iptables можно использовать автоматический транслятор правил iptables-translate. Но это уже тема для отдельной статьи.
Выводы
Итак, в этой статье мы рассмотрели где хранятся правила iptables а также как сохранить правила iptables после перезагрузки, разобрались с настройкой скрипта автозагрузки и пакета iptables-persistent.
Используемые источники:
- https://lifehacker.ru/linux-backup-applications/
- https://losst.ru/kak-sohranit-pravila-iptables