Linux backup системы. Linux-программы для резервного копирования

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое.


В этом сообщение я представлю вам , программный кросс-платформенный бэкап сервер, который через сеть может вытянуть резервное копирование клиентов Linux, Windows и MacOS. В BackupPC добавлено ряд функций, которые делают резервное копированиче чуть ли не приятной вещью.

Особенности BackupPC

BackupPC поставляется с надёжным веб-интерфейсом, который позволяет вам собирать и управлять централизованным образом резервными копированиями других удалённых хостов. Используя веб-интерфейс, вы можете изучить файлы журналов и конфигурационные файлы, запустить/отменить/настроить расписания резервных копирований удалённых хостов и визуализировать текущий статус задач резервного копирования. Вы также можете просматривать архивные файлы и очень просто восстанавливать отдельные файлы или всё полностью из архивов бэкапов. Для восстановления индивидуальных отдельных файлов, вы можете загружать их из предыдущих бэкапов прямо в веб-интерфейсе. Если этого недостаточно, не требуется специальной программы на стороне клиента для клиентских хостов. На Windows клиентах используется родной протокол SMB, в то время как на *nix клиентах вы будете использовать rsync или tar через SSH, RSH или NFS.

Установка BackupPC

На Debian, Ubuntu, Mint и их производных запустите следующую команду.

# aptitude install backuppc

На Fedora используйте команду yum command. Обратите внимание, что имя пакета регистрозависимое.

# yum install BackupPC

На CentOS/RHEL 6 сначала включите репозиторий EPEL. На CentOS/RHEL 7 включите вместо репозиторий Nux Dextop. Затем продолжайте с командой yum:

Как обычно, обе системы управления пакетами будут заботиться об автоматическом разрешении зависимостей. В дополнение как часть установочного процесса, вас могут спросить настроить почтовый сервер, настроить или перенастроить веб-сервер, который будет использован для графического пользовательского интерфейса. Я не стал ничего настраивать в почтовом сервере (чтобы не удлинять инструкцию). Следующие скриншоты из системы Debian:

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

Вам будет представлена следующий экран, информирующий вас, что администраторский пользовательский аккаунт ‘backuppc’ с соответствующим ему паролем (который, по желанию, может быть изменён), был создан для управления BackupPC. Обратите внимание, что пользовательский аккаунт HTTP и обычный Linux аккаунт с одинаковым именем ‘backuppc’ будут созданы с идентичным паролем. Первый нужен для получения доступа в защищённый веб-интерфейс BackupPC, в то время как второй нужен для выполнения резервного копирования используя rsync через SSH.

Вы можете изменить пароль по умолчанию для HTTP пользователя ‘backuppc’ следующей командой:

Htpasswd /etc/backuppc/htpasswd backuppc

Для изменения обычного ‘backuppc’ пользовательского аккаунта Linux, используйте команду passwd.

# passwd backuppc

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

Запуск BackupPC и настройка Backups

Чтобы начать, откройте окно браузера по адресу http://<доменное имя или IP адрес сервера>/backuppc/. Когда появится окно запроса, введите данные HTTP пользователя, которые были предоставлены вам ранее. Если авторизация успешна, вас перекинет на главную страницу веб-интерфейса.

Наиболее вероятно, первое, что вам нужно сделать, это добавить хосты клиентов для резервного копирования. Перейдите в “Edit Hosts” (редактирвоание хостов) в панеле задач. Мы добавим два клиентских хоста:

  • Host #1: CentOS 7
  • Host #2: Windows 7

Мы будем делать резервное копирование CentOS, используя rsync через SSH, и хоста Windows, используя SMB. До выполнения резервного копирования, нам нужно настроить на наш хост CentOS и сделать доступной по сети (расшарить) каталог на Windows машине.

Вот инструкция для настройки аутентификации, основанной на ключе, для удалённого хоста CentOS. Мы создаём пользователю ‘backuppc’ пару ключей RSA и переносим публичный ключ в аккаунт рута хоста CentOS.

# usermod -s /bin/bash backuppc # su - backuppc # ssh-keygen -t rsa # ssh-copy-id [email protected]

Когда спросят, напечатайте yes и введите пароль рута для 192.168.0.17.

Вам понадобиться рут доступ для удалённого хоста CentOS для получения доступа записи на всю файловую систему в случае восстановления бэкапа файлов или каталогов, собственником которых является рут.

Когда хосты CentOS и Windows готовы, добавьте их в BackupPC используя веб-интерфейс:

Следующий шаг состоит из изменения настроек резервного копирования каждого хоста:

Следующее изображение показывает настройку для резервного копирования на Windows машине:

А следующий скриншот показывает настройку резервного копирования для CentOS:

Запуск резервного копирования

Для запуска каждого резервного копирования, перейдите к настройкам каждого хоста, а затем кликните “Start Full Backup”:

В любое время, вы можете просмотреть статус процесса, кликнув на home хоста, как показано в изображении выше. Если это по каким-либо причинам не получилось, также появится ссылка на страницу с сообщением ошибки (ошибок) в меню хоста. Когда резервное копирвоание завершено успешно, на сервере создаётся каталог с названием хоста или IP адресом в /var/lib/backuppc/pc:

Вы можете переходить по каталогам в поисках файлов, используя командную строку, но есть и более простой способ обозревать эти файлы и восстанавливать их.

Восстановление резервных копий

Для просмотра сохранённых файлов, переходите в раздел “Browse backups”, что находится в главном меню хоста. Вы можете визуализировать каталоги и файлы с первого взгляда и выбрать те, которые вы хотите восстановить. Как вариант, вы можете кликнуть по файлу и открыть его, используя программу по умолчанию, или кликните правой кнопкой и выберете Сохранить ссылку, для его загрузки на машину, где вы работаете в данный момент:

Если хотите, то можете загрузить файлы zip или tar, заключающие содержание резеврных копий или просто восстановите файл (файлы) на прежнее место:

Заключение

Говорят «Чем проще - тем лучше», и именно это предлагает BackupPC. В BackupPC вы найдёте не только инструмент для резервного копирования, но также разносторонний интерфейс для управления вашими резервными копиями нескольких операционных систем без необходимости приложения на стороне клиента. Я уверен, что более чем достаточная причина, чтобы хотя бы попробовать.

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

Гарант является доверенным посредником между Участниками при проведении сделки.


Резервное копирование на домашнем компьютере или сервере очень важно для обеспечения постоянной работы системы и защиты от потери данных. Если на домашнем компьютере это не так актуально, то для серверов актуальность возрастает в разы, поскольку даже несколько часов простоя могут принести серьезные финансовые потери и уж точно недовольство пользователей. Поэтому знание и понимание инструментов резервного копирования очень важно для системных администраторов, которые работают с большим количеством данных, а также на предприятиях.

Всегда держать резервную копию данных - это отличная практика, которая в будущем может сэкономить вам много времени. Резервное копирование Linux может выполняться вручную или автоматически. У многих утилит резервного копирования есть много дополнительных функций, которые позволяют настроить тип, время, файлы для выполнения копирования, протоколирование операций и многое другое.

В этой статье мы рассмотрим лучшие программы резервного копирования Linux, которые можно использовать как на серверах, так и на персональных компьютерах.

Это очень популярная среди опытных пользователей Linux утилита командной строки для резервного копирования linux. У нее очень много функций, включая инкрементное резервное копирование, обновление дерева каталогов и файловой системы, сохранение прав доступа для файлов, владельца, ссылок, а также работа с резервными копиями как на локальной машине, так и на удаленной.

В утилиты также есть графический интерфейс под названием Grsync. Но главное преимущество в том, что все работы по резервному копированию могут быть автоматизированы с помощью скриптов и cron.

Это бесплатный инструмент с открытым исходным кодом, который можно запускать как в Windows, так и в Linux. У программы простой и интуитивно понятный интерфейс, поэтому пользователи могут очень просто настроить и делать резервные копии.

Основные преимущества:

  • Простой в использовании интерфейс
  • Гибкость в настройке резервного копирования
  • Уделенное резервное копирование
  • Резервное копирование всей файловой системы
  • Исключение файлов и каталогов из копирования и многое другое.

3. Bacula

Это набор средств с открытым исходным кодом для резервного копирования, восстановления и проверки программного обеспечения. Он разработан для использования в условиях предприятий. Здесь есть такие функции, как удаленное резервное копирование, тонкая настройка и многое другое.

Программа имеет архитектуру сети и состоит из таких компонентов:

  • director - программа, которая управляет процессом резервного копирования.
  • console - инструмент, позволяющий пользователю взаимодействовать с director.
  • file - программа, которая устанавливается на компьютер и выполняет резервное копирование linux.
  • repostiry - используется для чтения и записи на диск.
  • directory - отвечает за используемые базы данных.
  • monitor - отслеживает все события, происходящие в других частях программы.

4. Backupninja

Эта мощная программа для резервного копирования позволяет создавать резервные копии файлов конфигурации и сохранять их в каталоге /etc/backup.d/.

Особенности программы:

  • Удобная настройка с помощью файлов ini
  • Использование сценариев для обработки новых типов резервных копий.
  • Отправка сообщений по электронной почте.
  • Легко выполняется создание резервных копий через терминал.
  • Интеграция с Linux-Vservers.

5. Simple Backup Suite (sbackup)

Это программа резервного копирования linux для рабочего стола Gnome. Пользователи могут выполнить всю настройку через графический интерфейс, для выбора файлов, которые нужно архивировать можно использовать регулярные выражения.

Особенности программы:

  • Создание сжатых и несжатых копий.
  • Поддержка нескольких профилей резервного копирования.
  • Поддержка регистрации, уведомлений по новой почте.
  • Планирование резервного копирования и копирование вручную.
  • Разделение несжатых копий на несколько частей.
  • Поддержка локального и удаленного резервного копирования linux.

6. Kbackup

Это простой инструмент резервного копирования для Unix и Linux. Он может создавать архивы и сжимать их с помощью gzip.

Преимущества программы резервного копирования linux:

  • Удобный интерфейс на основе меню
  • Поддержка сжатия, шифрования, двойной буферизации
  • Автоматическое не обслуживаемое резервное копирование
  • Высокая надежность
  • Поддержка полного и инкрементного резервного копирования
  • Резервное копирование linux по сети
  • Обширная документация

7. BackupPC

Это кроссплатформенное программное обеспечение для резервного копирования, которое может работать на Unix, Linux, Windows и MacOS. Оно разработано в первую очередь для предприятий с большой нагрузкой, но может использоваться не только на серверах, но и на персональных компьютерах.

Возможности программы:

  • Сжатие файлов для уменьшения размера
  • Нет необходимости в клиентской части программы
  • Гибкость резервного копирования
  • Гибкость настройки параметров
  • Уведомление пользователей о необходимости резервного копирования.

8. Amanda

Amanda - это программное обеспечение с открытым исходным кодом, которое работает на Unix, Linux и Windows. Здесь поддерживается использование системных утилит для выполнения резервного копирования, например, GNU tar в Linux. На компьютере с Windows используется собственная утилита. Пользователи могут настроить сервер для хранения копий на одной из машин сети.

9. Back Time

Это простое и легкое средство для резервного копирования операционной системы Linux. Работает с помощью создания снимков указанных директорий.

Поддерживаются такие функции:

  • Установка места хранения для создания снимков
  • Ручные и автоматические резервные копии
  • Словари для резервного копирования.

10. Mondorescue

Это бесплатное программное обеспечение для резервного копирования и восстановления системы, в котором есть все что нужно. Вы можете выполнять резервное копирование персонального компьютера, рабочих станций или сервреов, жестких дисков, NFS шар, CD, DVD и многое другое.

У программы также есть возможность восстановления данных из резервной копии после возникновения каких-либо проблем.

11. Box Backup Tool

Это инструмент с открытым исходным кодом для резервного копирования. Операции можно выполнять вручную, а можно настроить автоматическое выполнение. Возможности:

  • Резервное копирование онлайн
  • Демон для автоматического резервного копирования
  • Хранение резервных копий в файлах
  • Сжатие данных и шифрование
  • Выбор файлов и папок для копирования.

Это бесплатный, мощный, быстрый, надежный и простой в использовании инструмент для резервного копирования и синхронизации на основе rsync.

Функциональность:

  • Сохранение прав собственности файлов
  • Создание нескольких резервных копий файлов
  • Продвинутые опции для файлов и каталогов
  • Позволяет использовать опции rsync.

13. Areca

Это программа для резервного копирования с открытым исходным кодом, ориентированная на использование обычными пользователями. Она позволяет выбрать нужные файлы для копирования, выбрать метод и место хранения.

Программа поддерживает такие функции:

  • Уведомления по электронной почте о процессе резервного копирования
  • Простота в использовании и настройке
  • Просмотр содержимого архивов.

14. Bareos Data Protection

Bareos Data Protection - это набор программ, который позволяет пользователям создавать резервные копии, а также восстанавливать и защищать данные в операционных системах семейства Linux. Программа реализована на основе Bacula и работает как сеть клиент - сервер.

Основные функциональные возможности доступны бесплатно, но для использования профессиональных функций требуется платить.

Выводы

Всегда помните, что резервное копирование данных linux очень важно, оно помогает предотвратить потерю данных. Для Linux есть огромное количество программ резервного копирования Linux, которые помогут регулярно копировать ваши данные.

Вы можете выбрать один из выше рассмотренных инструментов, просто выберите что для вас подходит лучше. Если вы используете другую программу, не описанную здесь, напишите в комментариях!

При правильном использовании, инструменты резервного копирования помогут защитить ваши данные от сбоя диска или любого вида повреждения или атаки. На следующих страницах мы протестируем ряд наиболее популярных программ для резервного копирования Linux, пригодных для создания бекапа всех ваших важных папок и файлов настройки. Правильный инструмент не только сделает копию ваших данных - он сделает это безопасно. Ради экономии места на диске некоторые из инструментов предлагают инкрементные резервные копии. Хотя имеется богатый выбор таких инструментов, мы решили сосредоточиться исключительно на графических.

В последний раз мы рассказывали об инструментах резервного копирования, и многие популярные на тот момент программы приказали долго жить. Более того, два инструмента в нашем обзоре хотя и поддерживаются до сих пор, но их активная разработка уже не ведется. Именно по этой причине мы не слишком охотно включили в наше сравнение fwbackup и Iuckybackup. Правда, у обоих имеются преданные сообщества пользователей и богатая функциональность.

Если вас всё же не пугают текстовые инструменты и командная строка, мы обсудим соответствующие альтернативные варианты в конце в главе «Рассмотрите также».

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

Помимо этого, мы протестируем наши инструменты по поводу поддержки удаленных размещений и алчности до ресурсов - ведь создание резервной копии требует ресурсов. Как всегда, мы также протестируем их на предмет предлагаемой документации и поддержки. Не менее важным является интерфейс, потому что нам не нужен инструмент, набитый функциями, но при этом пользователь вязнет в захламленном меню.

Идеальная программа резервного копирования Linux не должна быть сложной в изучении и работе, именно поэтому для нашего сравнения мы выбрали исключительно графические инструменты. Дело в том, что, к сожалению, многие новички по-прежнему считают, что командная строка нуждается в освоении, не рассматривая ее как альтернативное и интересное средство выполнения задач.

Back ln Time

Кабы не его ограниченная документация, вы были бы поражены этим инструментом. Он устанавливает две версии. Версия root работает с разрешениями root, необходимыми для доступа и резервного копирования определенных системных файлов. Версия non-root предназначена для резервного копирования личных файлов.

Интерфейс разделен на три панели. Слева находится список текущей системы под названием «Now», вместе с моментальными снимками.


Программа резервного копирования Back ln Time

Вы можете просматривать моментальные снимки для выбранного профиля, который выбирается в выпадающем меню в правой верхней части экрана. Папки в каждом моментальном снимке перечислены во второй панели, а третья панель - для просмотра содержимого каждой папки в моментальном снимке.

Программа резервного копирования Back ln Time

Вкладка Auto remove (Автоудаление) в диалоговом окне Settings (Настройки) предлагает множество опций точного управления удалением старых резервных копий для экономии места на диске.

Deja Dup

По сравнению с другими, Deja Dup намного проще в использовании. И объясняется это не простой структурой, а скорее недостатком функций. Возьмите, например, его встроенный планировщик, который позволяет выбрать создание резервных копий только каждый день или каждую неделю.


Вы также можете указать, хранить ли копии вечно, или только полгода либо год


Бэкап Linux с помощью программы Deja Dup

Пользователям не предоставляется возможности выбрать собственную схему резервного копирования, и вам нельзя указать, что копирование должно осуществляться, скажем, 21-го числа каждого месяца в полночь.

Интерфейс прост и хорошо интегрирован в рабочий стол . Вы можете указать папки для копирования через соответствующий пункт в левой боковой панели. Вы также можете указать, какие папки игнорировать, и местоположение резервных копий.


Бэкап Linux с помощью программы Deja Dup

Здесь нет опции настроить шифрование по умолчанию или задать дополнительные параметры, что предлагается в других инструментах.

Fwbackups

Вкладка по умолчанию Overview выдает приветственное сообщение, предлагающее для начала работы с инструментом использовать кнопки вверху. Вы можете нажать Help > Help или Ctrl+H для запуска онлайн-документации проекта.

Программа резервного копирования Fwbackups поддерживает создание нескольких наборов, и в каждый набор можно поместить файлы и папки из разных мест. Инструмент позволяет указать пункт назначения для ваших резервных копий - локальную папку или удаленную. Если вы выбираете второе, проект будет использовать SSH для передачи данных по сети. На вкладке Options (Simple) (Опции (Простые)) вы также можете решить включать в набор скрытые файлы.

Инструмент не создает инкрементных резервных копий по умолчанию. Выберите кнопку-переключатель Direct copy of the files and folders (Прямая копия файлов и папок) в заголовке Backup Format (Формат резервной копии), а затем нажмите Backups are incremental (Резервные копии инкрементные), чтобы включить инкрементные резервные копии.

Grsync

Интерфейс Grsync содержит панель инструментов и несколько кнопок. C помощью Grsync можно создать несколько сессий, и для каждой сессии надо указать источник и папку назначения во вкладке Basic options (Базовые опции). Внизу экрана есть несколько кнопок, таких как Preserve time (Сохранить время). Delete on destination (Удалить после доставки) и Skip newer (Пропустить более новые).

Хотя у проекта нет достойной упоминания документации, он предлагает удобные подсказки по инструменту при наведении мыши на любую кнопку или опцию.

Более глубокие настройки вы найдете во вкладке Advanced options (Расширенные опции). Отсюда можно контролировать включение в резервную копию подпапок исходной папки, приказать Grsync вычислить контрольную сумму файлов для сравнения содержимого вместо времени изменения, и многое другое.

Программа резервного копирования Grsync

Как и с инструментами на базе Rsync, можно также предоставить дополнительные командные опции для парсинга в Rsync.

LuckyBackup

Как и в других инструментах, предлагающих эту функцию, в IuckyBackup можно создавать профили нажатием на кнопку Плюс (новый) на панели инструментов. Помимо этой панели, проект предлагает ряд кнопок - но никакого текста под ними. Хотя значки на кнопках намекают на их функции, вы можете навести на каждую из них мышь, чтобы узнать, что они делают: позволяют ли они сохранить, создать или удалить профиль.

Программа резервного копирования

Профиль можно выбрать из выпадающего списка в верхней левой части окна. У каждого профиля должна быть как минимум одна задача резервного копирования. Файлы и папки для включения в резервную копию указываются с помощью кнопки Advanced (Расширенное) в нижней левой части диалогового окна Create new task properties (Создать свойства новой задачи).

Программа резервного копирования LuckyBackup

К счастью, проект может похвастаться подробной документацией, где обсуждается его уникальная номенклатура, и вы даже можете получить доступ к справочнику пользователя, нажав Help > IiickyBackup Handbook или F1.

Выполнение резервных копий

При первом запуске Back In Time инструмент дает вам возможность импортировать файл настроек, если вы создавали таковой раньше, или продолжить с настройкой по умолчанию. Вы должны очень
аккуратно пройтись по разным вкладкам и указать все положенные детали, такие как файлы и папки для включения в резервное копирование и местоположение моментальных снимков. Инструмент также позволяет определить файлы/папки для исключения из резервного копирования. Когда это будет сделано, нажмите OK, чтобы сохранить настройки, и вас переведут в основной интерфейс Back ln Time.

Deja Dup (Déjà Dup) не выполняет резервного копирования файлов и работает только с папками. Более того, в качестве пункта назначения для ваших резервных копий он по умолчанию настроен на NextCIoud. Вы должны указать информацию о своей учетной записи, чтобы сохранить свои копии на этом сервисе, или задать альтернативный пункт назначения. По сравнению с другими инструментами в обзоре, Deja Dup выглядит довольно скудным, но именно благодаря своей простоте он и стал инструментом резервного копирования по умолчанию во многих настольных дистрибутивах. Все резервные копии по умолчанию защищены паролем, в отличие от Back In Time, где можно сделать базовую резервную копию, доступную для восстановления данных любому.

По умолчанию fwbackup хранит копии в tar-архиве и дает опцию выбора для резервного копирования файлов/папок, включать ли подпапки и скрытые файлы, и т.д.

Grsync и IuckyBackup взяли за основу Rsync и весьма похожи, но у IuckyBackup больше инструментов по умолчанию. Главное различие между ними в том, что в Grsync можно делать резервную копию только определенных файлов или одной папки. Невозможно создать резервную копию, объединяющую несколько папок. То есть, вы не можете скопировать ~∕Docuπτents∕Bills и ~∕Documents∕work-files а одну резервную копию. Хотя и Grsync, и IuckyBackup позволят вам сделать холостой прогон для имитации резервного копирования, второй также умеет сохранять со своими резервными копиями дополнительные детали, например, владельца, разрешения и время изменения.

Кроме Deja Dup, все инструменты позволяют задать профили или наборы резервных копий. Для каждого такого профиля, который также может иметь индивидуальную настройку, можно отвести разные файлы/папки для резервного копирования. В итоге у вас, например, могут быть разные политики для резервного копирования музыкальных файлов и системного журнала.

Взаимодействие с пользователем

Все инструменты администрирования должны соблюдать баланс, обеспечивая функции без ущерба удобству в работе. Даже самый примитивный инструмент, просто копирующий файлы в указанную папку, будет выбран, если он дает возможность легко запланировать резервное копирование, не отнимая много времени.

Большинство инструментов в нашем обзоре основаны на мощных и многофункциональных инструментах командной строки, таких как Rsync и Duplicity. Это довольно продвинутые инструменты, и многие из них позволяют при создании резервных копий указать дополнительные операции для выполнения.

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

Установка и документация

Поскольку некоторые из этих инструментов - продукты разработчика-одиночки или небольшой команды разработчиков, всё, что они предлагают - это tar-архив исходника или репозиторий . Так что включение этих инструментов в пакеты для дистрибутивов дается на откуп разработчикам и энтузиастам, работающим с популярными дистрибутивами типа Fedora, Debian и Ubuntu. Увы, самые свежие версии большинства этих инструментов отсутствуют в программных репозиториях большинства дистрибутивов. Однако https://pkqs.org - хороший ресурс, если вы ищете устанавливаемые бинарники для этих инструментов.

Deja Dup имеется в репозиториях большинства дистрибутивов, но, за исключением Fedora, все остальные держат в репозиториях более старую версию. Репозитории Fedora также приютили самые последние версии всех остальных инструментов. Единственное исключение - Iwbackups, но вы легко найдете для него устанавливаемые бинарники на https://pkqs.org.

В других дистрибутивах вам придется устанавливать эти инструменты вручную. Учтите, что у них у всех имеется ряд зависимостей - и не все они есть в репозиториях.

Как и fwbackups, LuckyBackup и Back in Time предлагают очень подробную документацию. Wiki Gnome предлагает краткое введение в восстановление резервных копий с помощью Deja Dup, и встроенная подсказка тоже не слишком подробна, но охватывает создание и восстановление резервных копий. Хотя на странице Sourceforge для Grsync имеется wiki, но своей документации нет: однако руководства no Rsync помогают разобраться в его функциях.

Ни у одного из этих инструментов нет своего форума, но вы можете использовать официальные страницы GitHub и Sourceforge для связи с разработчиками и другими пользователями.

Функции безопасности

Решение об использовании шифрования в вашей резервной копии во многом зависит от типа копируемых данных. Точно так же использование сжатия зависит от ряда факторов, в том числе пункта назначения ваших резервных копий. Вам надо будет использовать сжатие, если вы планируете размешать резервные копии на удаленном местоположении в сети или в облаке.

С того момента, когда мы его рассматривали, IuckyBackup прекратил активную разработку, т.е. последний релиз по-прежнему поддерживается, но разработчик не занимается добавлением новых функций. Хотя проект планировал добавить поддержку создания сжатых и шифрованных резервных копий, этого не произошло.

Back In Time не поддерживает сжатия, но с его помощью можно создавать локальные шифрованные резервные копии. Для защиты ваших данных используется EncFS. но программа предупреждает вас о недавних векторах атаки для EncFS и о присущем риске безопасности.

Deja Dup - графический интерфейс Duplicity, и для обеспечения основных функций безопасности использует этот мощный инструмент. Для шифрования ваших резервных копий применяется GPG , и это означает, что все ваши резервные копии защищены паролем. Хотя более старые версии давали опцию не шифровать резервные копии, сейчас это уже не работает. Инструмент настаивает на вводе пользователем пароля для каждой резервной копии, и по-другому не согласен.

В противоположность Deja Dup, Iwbackups не поддерживает шифрования, но позволяет обратиться к gzip или bzip2 для сжатия резервных копий. Все резервные копии хранятся в виде tar-архивов. В отличие от других инструментов, Grsync и IuckyBackup не поддерживают ни сжатия, ни шифрования, и резервные копии, просто создавая копии исходных файлов/папок.

Дополнительные функции

Инструменты резервного копирования предназначены вам в помощь, чтобы сохранить ваши данные и сделать возврат как можно проще. Но некоторые инструменты идут намного дальше этих базовых функций и стремятся расширить взаимодействие с пользователем.

Желая клонировать исходную папку в пункт назначения, вы можете настроить IuckyBackup, чтобы он не создавал дополнительной папки.

Также поддерживаются более продвинутые функции, например, не сохранять владельца файла и разрешения, если пункт назначения - раздел с NTFS. При создании резервных копий также можно выбрать поддержку символических ссылок. Вдобавок имеется опция Synchronise, обеспечивающая идентичность исходной и целевой папки. Настроив резервную копию по своему усмотрению, можете нажать на кнопку Validate, чтобы увидеть соответствующую команду Rsync, которая выполнится для создания резервной копии.

По умолчанию Grsync создает рекурсивные резервные копии данных, т.е. автоматически делает резервные копии всех подпапок, обнаруженных в исходной папке; но вы можете изменить это из вкладки Advanced Options (Расширенные опции). Как и в IuckyBackup, можно просмотреть соответствующую команду Rsync, нажав File > Rsync command line. Интерфейсы Rsync. Back In Time, IuckyBackup и Grsync позволяют определить дополнительные команды, которые вы хотите исполнить перед резервным копированием или по его завершении. Все три также дают опцию проверки контрольной суммы, чтобы узнать, произошли ли в файлах какие-то изменения перед созданием резервной копии.

Deja Dup в плане дополнительных функций не предлагает ничего особенного. Он позволяет вам указать срок хранения ваших резервных копий, например, месяц, перед тем, как удалить их.

Восстановление

По части восстановления, Grsync и IuckyBackup - полярные противоположности. Поскольку Grsync просто создает копию исходной папки в месте назначения, для восстановления надо всего лишь
скопировать обратно требуемые файлы.

А вот у IuckyBackup процесс восстановления очень громоздкий. По умолчанию копируется содержимое исходной папки в место назначения. А значит, если вы случайно удалите файл в исходном местоположении и снова запустите резервное копирование, удаленный файл исчезнет и из резервной копии. Чтобы предотвратить подобную неприятность, вы можете попросить инструмент сохранять несколько версий резервной копии, и затем вы сможете вернуться к любой из них или, в порядке альтернативы, можно отменить выбор этой опции. Вместо кнопки восстановления инструмент предлагает создать задачу восстановления для каждой задачи в вашем профиле, и вы можете уточнить настройки для каждой задачи восстановления. Хотя это довольно сложно, справочник описывает данный процесс во всех подробностях.

Содержимое разных моментальных снимков, созданных с помощью Back In Time, можно просмотреть из Timeline. Вы можете выбрать восстановление файлов и папок из резервной копии в их исходное местоположение или указать для них новый путь, и инструмент восстановит их с разрешениями; при создании резервной копии сохраняются ACL и все дополнительные атрибуты.

Deja Dup тоже позволяет восстанавливать в исходную папку или в указанное местоположение. Поскольку инструмент не дает создавать копии без паролей, при восстановлении папок из резервной копии вам предложат ввести пароль.

В fwbackups вам надо указать набор, который вы хотите восстановить, задать назначение для восстановленных файлов, а инструмент потом доделает всё остальное. Поскольку fwbackups работает с простыми сжатыми архивами, можно также использовать его для восстановления файлов из любого архива. а не только из наборов, созданных самим fwbackups.

Кроме IuckyBackup и Back In Time, прочие инструменты не дают возможности выбрать определенные файлы для восстановления, и восстанавливают всё содержимое резервной копии.

Вердикт

Мы загнали себя в очень сложную ситуацию, решив в нашем обзоре сосредоточиться только на графических инструментах. Если бы мы представили здесь смесь инструментов графических и CLI, Сравнение было бы совсем другим.

Для начала, большинство инструментов в нашем обзоре лучших программ резервного копирования Linux дышат на ладан. За исключением Deja Dup, являющегося утилитой резервного копирования по умолчанию в нескольких популярных дистрибутивах, остальные уже не могут похвастаться активной разработкой. Справедливости ради, отметим, что IuckyBackup до сих пор поддерживается, и его последний релиз вышел в октябре 2017 г. Но с учетом того факта, что он не поддерживает сжатия и шифрования, IuckyBackup — несмотря на его превосходный набор функций - на пьедестале победителей может занять только последнее место.

Grsync выпустил последний релиз в 2016 г., но проект пока не объявил о прекращении разработки. Его резервные копии - это просто копии исходных файлов, но тот факт, что вы можете задействовать любую операцию Rsync при создании резервных копий, делает его довольно полезным. Он прост в использовании, но недостаток функций и документации вытесняют его с подиума.

При использовании Deja Dup нельзя выбрать для резервного копирования отдельные файлы или создать наборы профилей, как в других инструментах. Ему также не хватает поддержки хранения сжатых архивов; но зато он использует GPG для защиты ваших резервных копий паролем. Хуже того, вы не можете задавать резервным копиям имена при их создании, что затрудняет распознавание той копии, которую вы хотите восстановить. Тот факт, что Deja Dup еще разрабатывается, и что он входит по умолчанию в такие дистрибутивы, как Fedora, вполне резонная причина присудить ему второе место.

Обновлено: 4.05.2014 - 06:41

Резервное копирование системы (Backup) является одной из важных профилактических мер по поддержание стабильности работы сервера. Хотя данная инструкция подойдёт и для desktop систем, получится своего рода "точка восстановления". Для резервного копирования нам понадобится всего-лишь утилита по работе с архивами в linux системах – tar .

Делаем резервную копию работающей системы:

1. Для Ubuntu – выполняем sudo su , для Debian – выполняем su -l root

2. Смотрим, сколько у нас системой использовано, сколько места свободно (backup будем сжимать в архив, так-что размер будет меньше, чем текущее использование системой).

root@server:~# df -h

Файловая система Размер Использовано Дост Использовано% Cмонтировано в

/dev/sda2 73G 2,1G 67G 3% /

Tmpfs 5,0M 0 5,0M 0% /lib/init/rw

Tmpfs 152M 1,4M 151M 1% /run

Udev 753M 0 753M 0% /dev

Tmpfs 303M 0 303M 0% /run/shm

/dev/sdb1 147G 26G 114G 19% /web

В данном примере вся система установлена на раздел /dev/sda2 и занимает 2.1G, в корень этого раздела мы и будем копировать дамп, т.к. доступно ещё 67G.

3. Переходим в корень системы cd /

4. Выполняем копирование работающей системы (Внимание!!! Исключаем из копирования разделы /proc /lost+found /sys и сам архив /backup.tgz, + в данном примере исключаем раздел /web). Для чистоты бэкапа рекомендую вам почистить логи в /var/log , и удалить кеш архивов apt-get clean.

tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys –exclude=/web /

5. Смотрим ls -alh

теперь можно спрятать куда-нибудь в надежное место архив backup.tgz на случай сбоев работы сервера, а потом с лёгкостью восстановить систему в короткие сроки.

Восстановление системы Debian/Ubuntu (да и любого дистрибутива Linux) из созданного бэкапа:

Если вы делаете восстановление системы на то-же оборудование, с теми-же разделами жестких дисков, то процесс займёт буквально несколько минут.

1. Загружаемся с Live CD Linux (например Ubuntu, хотя можно и по легче выбрать образ, без графического интерфейса). Копируем backup системы в корень.

2. Распаковываем архив в корень раздела

tar xvpfz backup.tgz /

3. Теперь прописываем загрузочную область (Из личного опыта, если вы делали разметку GParted утилитой, то в начале диска обязательно оставьте несколько не задействованных мегабайт, иначе grub2 не установится).

grub-install –root-directory=/mnt/ /dev/sda2

(–root-directory=/mnt/ в данном случае указывает, что для корня считать точку /mnt , т.к. туда у нас временно смонтирован раздел sda2)

4. Создаем пустые каталоги /proc /sys . Перезагружаемся и внимательно смотрим на логи, которые выводит система при загрузке.

Если же вы переносите систему на другое устройство, то здесь будет немного сложнее. Подробно по памяти описать не смогу, но в общих чертах примерно так:

1. Распаковываем архив.

2. Смотрим, как в системе Live CD определилось оборудование, в частности разделы жёстких дисков.

3. При старте компьютера (до загрузки ОС) заходим в редактор grub2 и правим конфиг в соответствии с менами разделов жёстких дисков.

4. Если система не может запуститься из-за "отсутствие файловой системы", значит нужно пересобирать initrd загрузчик (это загрузчик, который определяет всё оборудование, а потом далее передаёт ядру ОС управление и дальнейшую загрузку системы) с необходимыми модулями, выполнять это можно загрузившись с Live CD, примонтировав разделы /proc и /sys к системе, в которую мы будем компилировать /mnt/proc /mnt/sys , а далее авторизоваться, как будто бы работает система chroot /mnt

В принципе это самый простой способ для резервного копирования рабочей системы, никакие акронисов, никакик утилит для работы с клонированием разделов не надо, всё достаточно просто и быстро. При желании, можно сделать правило, на запуск скрипта в 01:00 ночи, который бы делал дамп системы к примеру 1 раз в неделю.


Автор статьи - сайт

Никаких отговорок: безопасное распределенное сетевое резервное копирование своими руками

Если вы - пользователь Linux, то в вашем распоряжении уже имеются исключительно мощные инструменты для создания специализированных решений резервного копирования. Решения, описанные в данной статье, позволяют выполнять как простое, так и более продвинутое сетевое резервное копирование, используя инструменты с открытыми исходными кодами, входящие в состав практически любого дистрибутива Linux.

Простая схема резервного копирования

Чтобы упростить освоение материала, в данной статье используется пошаговый подход.

Мы начнем с простого, но эффективного механизма архивирования, а затем перейдем к расширенному решению для распределенного резервного копирования. Взгляните на удобный скрипт arc, позволяющий создавать резервные копии из командной строки Linux.

Листинг 1. Shell-скрипт arc
#!/bin/sh tar czvf $1.$(date +%Y%m%d-%H%M%S).tgz $1 exit $?

Скрипт arc принимает в качестве параметра путь к файлу или каталогу, после чего создает архивный файл, имя которого содержит текущую дату. Например, для архивирования каталога beoserver скрипту arc необходимо передать путь к нему, после чего будет сформирован сжатый архив, имеющий имя приблизительно следующего вида: beoserver.20040321-014844.tgz

Упорядочить архивные файлы поможет включение в их имена даты и времени с помощью команды date . Дата имеет следующий формат: год, месяц, день, час, минуты, секунды - секунды, вероятно, в нашем случае уже лишние. О параметрах команды date можно узнать из ее руководства, просмотреть которое можно командой man date . Кроме того, в листинге 1 мы используем параметр -v (verbose, подробно) команды tar . Команда tar , запущенная с данным параметром, отображает имена всех архивируемых файлов. Если этого не требуется, параметр -v можно убрать.

Листинг 2. Архивирование каталога beoserver
$ ls arc beoserver $ ./arc beoserver beoserver/ beoserver/bookl.dat beoserver/beoserver_ab_off beoserver/beoserver_ab_on $ ls arc beoserver beoserver.20040321-014844.tgz

Сложные схемы резервного копирования

Простая схема резервного копирования весьма полезна, но она требует ручного выполнения операций. Лучшие отраслевые методики рекомендуют регулярно выполнять резервное копирование, хранить резервные копии на разных носителях и в разных местах. Базовый принцип заключается в том, чтобы избегать зависимости от единственного носителя или места хранения носителей.

Мы будем решать эту проблему в следующем примере, основанном на некоторой распределенной сети, схема которой, приведенная на рисунке 1, включает системного администратора, имеющего доступ к двум удаленным серверам и внешнему хранилищу данных.

Резервные копии файлов, находящихся на Сервере №1 и Сервере №2, будут безопасным образом передаваться во внешнее хранилище; весь процесс распределенного резервного копирования будет выполняться полностью автоматически на регулярной основе. Мы воспользуемся стандартным набором инструментов, в который входят программы из пакета Open Secure Shell (OpenSSH), ленточный архиватор (tar) и служба планирования задач cron. В общем виде наш план заключается в использовании cron для планирования задач резервного копирования, реализованных с помощью shell-скриптов и ленточного архиватора tar. Защищенная оболочка (ssh) будет обеспечивать шифрование трафика и аутентификацию пользователей, а программа защищенного копирования (scp) - автоматизацию передачи файлов. Предварительно рекомендую ознакомиться с руководствами по использованию всех перечисленных инструментов.

Защищенный удаленный доступ с использованием открытых/закрытых ключей

В контексте информационной безопасности ключ представляет собой данные, используемые для шифрования и расшифровывания других данных. Принцип работы открытого и закрытого ключей интересен тем, что данные, зашифрованные открытым ключом, могут быть расшифрованы только с помощью соответствующего закрытого ключа. Открытый ключ можно свободно распространять чтобы другие люди могли шифровать им сообщения, адресованные вам. Одной из причин, по которым схемы с открытым ключом произвели революцию в информационной безопасности, является отсутствие у отправителя и получателя сообщения необходимости в общем ключе или пароле. Помимо прочих полезных вещей, криптография с открытым ключом сделала возможной электронную торговлю и другие виды защищенных транзакций. В этой статье мы создадим открытый и секретный ключи, которые будем использовать для создания защищенного решения для распределенного резервного копирования.

На каждом компьютере, задействованном в процессе резервного копирования, должна быть запущена служба защищенной оболочки OpenSSH (sshd). Используемый службой порт 22 должен быть открыт для данных машин на всех промежуточных сетевых экранах. Если вы работаете с удаленными серверами, велика вероятность, что вы делаете это с помощью защищенной оболочки.

Мы постараемся обеспечить удаленный доступ к компьютерам, избежав необходимости указывать пароли вручную. Существует мнение, что самым легким способом решения данной задачи является отказ от использования паролей: так делать не нужно. Это небезопасно. Подход, который мы рассмотрим в данной статье, позволит за час настроить систему, обеспечивающую высокий уровень информационной безопасности, и при этом сохраняющую все преимущества "беспарольного" доступа.

Для начала проверим, установлен ли пакет OpenSSH, и выясним номер его версии. На момент написания этой статьи последним выпуском OpenSSH была версия 3.8, увидевшая свет 24 февраля 2004 г. Рекомендуется использовать наиболее свежий и стабильный выпуск, по крайней мере более поздний, чем версия 2.x. Для получения подробной информации о уязвимостях, обнаруженных в ранних версиях OpenSSH, посетите страницу OpenSSH Security (ссылка приведена ниже в разделе ). В настоящий момент OpenSSH является вполне стабильной программой, не имеющей уязвимостей, обнаруженных в других SSH-инструментах.

Для отображения версии программы выполните команду ssh с параметром V (прописная буква):

$ ssh -V
OpenSSH_3.5p1, SSH protocols 1.5/2.0, OpenSSL 0x0090701f

Если команда ssh отобразила версию выше 2.x, данный компьютер находится в относительно неплохой форме. Рекомендуется тем не менее использовать последние стабильные выпуски всего установленного программного обеспечения - в особенности это важно для средств информационной безопасности.

Нашим первым шагом будет вход на сервер внешнего хранилища под учетной записью, которая будет иметь доступ к серверам 1 и 2 (рисунок 1).

$ ssh [email protected]

После входа на сервер внешнего хранилища создайте пару из открытого и секретного ключей, запустив программу ssh-keygen с параметром -t dsa . Параметр -t является обязательным и используется для указания типа ключа шифрования, который требуется сгенерировать. Мы воспользуемся алгоритмом Digital Signature Algorithm (DSA), позволяющим применять новый протокол SSH2. Дополнительную информацию по данному вопросу можно получить, ознакомившись с руководством к программе ssh-keygen.

После запуска ssh-keygen вам будет предложено указать каталог, в котором будут созданы файлы ssh-ключей, после чего будет запрошен пароль. Если на вопрос о каталоге для сохранения ключей ответить простым нажатием Enter, программа создаст скрытый каталог.ssh (если он не был создан ранее), в котором будут находиться два файла, содержащие открытый и секретный ключи.

Интересной возможностью ssh-keygen является то, что программа позволяет пользователю отказаться от ввода парольной фразы, нажав Enter в ответ на соответствующий запрос. Если парольная фраза не указана, ssh-keygen сгенерирует незашифрованные ключи. Нетрудно догадаться, что это - не самая лучшая идея. В ответ на запрос парольной фразы следует ввести текстовое сообщение разумной длины, состоящее из алфавитно-цифровых символов, а не ограничиваться обыкновенным односложным паролем.

Листинг 3. Старайтесь выбрать хорошую парольную фразу
:$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/accountname/.ssh/id_dsa): Enter passphrase (empty for no passphrase): (enter passphrase) Enter same passphrase again: (enter passphrase) Your identification has been saved in /home/accountname/.ssh/id_dsa. Your public key has been saved in /home/accountname/.ssh/id_dsa.pub. The key fingerprint is: 7e:5e:b2:f2:d4:54:58:6a:fa:6b:52:9c:da:a8:53:1b accountname@offsite

Поскольку каталог.ssh, создаваемый ssh-keygen, является скрытым, чтобы его увидеть, необходимо выполнить команду ls с параметром -a .

$ ls -a
. .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .ssh

Перейдите в скрытый каталог.ssh и выведите его содержимое:

$ cd .ssh
$ ls -lrt
id_dsa id_dsa.pub

Видно, что в скрытом каталоге.ssh находятся файлы секретного (id_dsa) и открытого (id_dsa.pub) ключей. Просмотреть содержимое этих файлов можно с помощью текстового редактора, например, vi или emacs, или воспользовавшись командами less или cat. При просмотре содержимого файлов вы увидите, что оно состоит из алфавитно-цифровых символов кодировки base64.

Листинг 4. Установка открытых ключей на удаленные серверы
$ scp .ssh/id_dsa.pub [email protected]:offsite.pub [email protected]"s password: (enter password, not new passphrase!) id_dsa.pub 100% |*****************************| 614 00:00 $ scp .ssh/id_dsa.pub [email protected]:offsite.pub [email protected]"s password: (enter password, not new passphrase!) id_dsa.pub 100% |*****************************| 614 00:00

После установки новых открытых ключей мы сможем заходить на каждый из серверов, используя парольную фразу, указанную при создании открытого и секретного ключей. А пока войдите на каждый из серверов и добавьте содержимое файла offsite.pub в конец файла authorized_keys, находящегося в каталоге.ssh. Это можно сделать с помощью текстового редактора или команды cat:

Листинг 5. Добавление offsite.pub к списку авторизованных ключей
[email protected]"s password: (enter password, not new passphrase!) $ cat offsite.pub >> ./ssh/authorized_keys

На следующем шаге мы примем дополнительные меры безопасности. Сначала мы изменим права доступа к.ssh таким образом, чтобы доступ к данному каталогу на чтение, запись и выполнение имел только его владелец. Затем мы убедимся, что доступ к файлу authorized_keys имеет только его владелец. И наконец, мы удалим за ненадобностью ранее загруженный файл открытого ключа offsite.pub. Очень важно правильно назначить права доступа, поскольку сервер OpenSSH может отказать в использовании ключей, для файлов которых заданы небезопасные права доступа.

Листинг 6. Изменение прав доступа командой chmod
$ chmod 700 .ssh $ chmod 600 ./ssh/authorized_keys $ rm offsite.pub $ exit

После выполнения этого процесса на сервере 2 мы перейдем на сервер внешнего хранилища для проверки работы нового способа доступа, основанного на парольной фразе. Сделать это можно, выполнив следующую команду на сервере внешнего хранилища:

$ ssh -v [email protected]

Параметр -v , включающий режим вывода подробных сообщений, позволяет отображать отладочную информацию в ходе проверки доступа вашей учетной записи к удаленному серверу с использованием новой парольной фразы вместо первоначального пароля. В отладочную информацию входят сведения, недоступные пользователю в иных условиях, в том числе высокоуровневая информация о работе процесса аутентификации. В ходе обычной работы указывать параметр -v нет необходимости, но при проверке соединения это очень полезно.

Автоматизация доступа к компьютеру с помощью ssh-агента

ssh-агент играет роль шлюза, по требованию предоставляющего безопасный доступ к ключам. После запуска ssh-агент работает в фоновом режиме и может использоваться такими программами пакета OpenSSH как, например, ssh или scp. С его помощью программа ssh может использовать заранее расшифрованный ключ вместо того, чтобы запрашивать парольную фразу при каждой необходимости.

Давайте взглянем на программу ssh-agent поближе. Ssh-agent выводит команды:

Листинг 7. ssh-agent в действии
$ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-XX1O24LS/agent.14179; export SSH_AUTH_SOCK; SSH_AGENT_PID=14180; export SSH_AGENT_PID; echo Agent pid 14180;

Мы можем указать оболочке выполнять команды, выводимые программой ssh-agent, с помощью встроенной команды eval:

$ eval `ssh-agent`
Agent pid 14198

Команда eval вычисляет (выполняет) команды, генерируемые программой ssh-agent. Убедитесь, что используются именно обратные (`), а не одинарные кавычки! Команда eval `ssh-agent` возвращает идентификатор процесса агента. Незаметно для нас были экспортированы переменные оболочки SSH_AUTH_SOCK и SSH_AGENT_PID . Их значения можно просмотреть путем вывода в консоль следующей командой:

$ echo $SSH_AUTH_SOCK
/tmp/ssh-XX7bhIwq/agent.14197

Переменная $SSH_AUTH_SOCK (сокращение от SSH Authentication Socket) содержит путь к локальному сокету, предназначенному для связи приложений с программой ssh-agent. Чтобы убедиться в том, что переменные SSH_AUTH_SOCK и SSH_AGENT_PID всегда заданы, добавьте команду eval `ssh-agent` в файл ~/.bash_profile.

После этого ssh-agent становится фоновым процессом, увидеть который можно с помощью команд top и ps .

Теперь мы можем организовать с его помощью совместный доступ к парольной фразе. Для того, чтобы это сделать, нам потребуется программа ssh-add, добавляющая (отправляющая) парольную фразу программе ssh-agent.

Листинг 8. Использование ssh-add для входа на сервер без лишних трудностей
$ ssh-add Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase) Identity added: /home/accountname/.ssh/id_dsa (/home/accountname/.ssh/id_dsa)

Теперь при получении доступа к server1 парольная фраза запрашиваться не будет:

$ ssh [email protected]
$ exit

Если приведенный пример кажется вам неубедительным, попробуйте выгрузить (kill -9) процесс ssh-agent и повторно подключиться к server1. В этом случае вы заметите, что server1 запросит парольную фразу секретного ключа, хранящегося в файле id_dsa, который находится в каталоге.ssh.

$ kill -9 $SSH_AGENT_PID
$ ssh [email protected]
Enter passphrase for key "/home/accountname/.ssh/id_dsa":

Упрощенный доступ к ключам с помощью скрипта keychain

К данному моменту мы узнали, как работают некоторые программы пакета OpenSSH (ssh, scp, ssh-agent и ssh-add), а также создали и установили секретный и открытый ключи для того, чтобы обеспечить безопасный автоматический процесс входа на сервер. Вы, вероятно, уже поняли, что большую часть работы по настройке требуется выполнить только единожды. Например, процесс создания и установки ключей, а также настройка запуска ssh-agent из.bash_profile выполняются только один раз для каждого сервера. Это хорошо.

Плохо то, что программа ssh-add должна запускаться каждый раз, когда мы входим на сервер внешнего хранилища и, помимо этого, в том, что обеспечение совместимости программы ssh-agent с планировщиком с, который потребуется нам для организации резервного копирования, требует дополнительных усилий. Причина неспособности cron взаимодействовать с ssh-agent заключается в том, что задачи cron выполняются как дочерние процессы планировщика и поэтому не получают копию переменной $SSH_AUTH_SOCK .

К счастью, данная проблема имеет решение, позволяющее не только снять ограничения, связанные с использованием ssh-agent и ssh-add, но и использовать cron для автоматизации всех видов задач, требующих безопасного беспарольного доступа к удаленным машинам. В своем цикле OpenSSH key management (ссылка приведена в разделе ), состоящем из трех статей, опубликованных developerWorks в 2001 году, Дэниел Роббинс (Daniel Robbins) представил скрипт keychain, представляющий собой интерфейс к программам ssh-agent и ssh-add, облегчающий процесс беспарольного доступа. Со временем был сделан ряд улучшений данного скрипта, который теперь поддерживается Ароном Гриффисом (Aron Griffis). Последний выпуск, датированный 17 июня 2004 г., имеет номер 2.3.2-1.

Текст скрипта keychain слишком велик для того, чтобы его можно было привести в данной статье, поскольку он, как и любой качественно написанный скрипт, включает большое количество проверок возникновения ошибок, подробную документацию и внушительный объем кроссплатформенного кода. Несмотря на обширные возможности, скрипт keychain можно быстро загрузить с web-сайта проекта (ссылка приведена в разделе ).

Работать со скриптом, после того как вы его загрузите и установите, очень просто. Просто зайдите на каждый из серверов и добавьте следующие две строки в конец файлов.bash_profile:

keychain id_dsa
. ~/.keychain/$HOSTNAME-sh

Когда вы зайдете на серверы в следующий раз, keychain запросит парольную фразу. При последующих входах, однако, ввод парольной фразы не будет запрашиваться до момента перезагрузки сервера. И, что самое главное, задачи cron смогут осуществлять безопасный доступ к удаленным машинам без ввода пароля. Теперь наше решение совмещает преимущества повышенной безопасности и простоты использования.

Листинг 9. Инициализация keychain на каждом сервере
KeyChain 2.3.2; http://www.gentoo.org/projects/keychain Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL * Initializing /home/accountname/.keychain/localhost.localdomain-sh file... * Initializing /home/accountname/.keychain/localhost.localdomain-csh file... * Starting ssh-agent * Adding 1 key(s)... Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase)

Автоматизация процесса резервного копирования

Нашей следующей задачей является написание скриптов, выполняющих операции, необходимые для резервного копирования. Целью работы данных скриптов будет создание полной резервной копии баз данных, находящихся на серверах server1 и server2. На каждом из серверов в рассматриваемом примере установлена СУБД MySQL. Соответственно для экспорта нескольких таблиц в виде SQL-скрипта мы будем использовать утилиту mysqldump, работающую в командной строке.

Листинг 10. Скрипт dbbackup.sh для сервера 1
#!/bin/sh # переходим в каталог backup_agent, в котором хранятся файлы данных. cd /home/backup_agent # экспортируем таблицы баз данных с помощью утилиты mysqldump mysqldump -u sitedb -pG0oDP@sswrd --add-drop-table sitedb -- tables tbl_ccode tbl_machine tbl_session tbl_stats > userdb.sql # архивируем и сжимаем файлы tar czf userdb.tgz userdb.sql

На сервере 2 мы разместим аналогичный скрипт, осуществляющий резервное копирование уникальных таблиц установленной на нем БД. Для каждого из скриптов необходимо задать признак исполняемого файла, выполнив команду:

:$ chmod +x dbbackup.sh

Разместив копии файла dbbackup.sh на серверах 1 и 2, мы возвращаемся на сервер внешнего хранилища, где создаем скрипт, выполняющий их перед запуском процесса удаленного копирования сжатых архивов (.tgz).

Листинг 11. Скрипт backup_remote_servers.sh для размещения на сервере внешнего хранилища
#!/bin/sh # используем ssh для удаленного выполнения скрипта dbbackup.sh на сервере 1 /usr/bin/ssh [email protected] "/home/backup_agent/dbbackup.sh" # используем scp для безопасного копирования созданного архивного файла userdb.tgz # с сервера 1. Обратите внимание на использование команды date для формирования временной отметки # при размещении файла на сервере внешнего хранилища. /usr/bin/scp [email protected]:/home/backup_agent/userdb.tgz / home/backups/userdb-$(date +%Y%m%d-%H%M%S).tgz # выполняем скрипт dbbackup.sh на сервере 2 /usr/bin/ssh [email protected] "/home/backup_agent/dbbackup.sh" # используем scp для копирования transdb.tgz на сервер внешнего хранилища. /usr/bin/scp [email protected]:/home/backup_agent/transdb.tgz / home/backups/transdb-$(date +%Y%m%d-%H%M%S).tgz

Скрипт backup_remote_servers.sh использует ssh для удаленного выполнения скриптов на серверах. Поскольку доступ, организованный нами, не требует ввода пароля, программа ssh может удаленно выполнять команды на серверах 1 и 2 с сервера внешнего хранилища. Благодаря keychain процесс аутентификации происходит полностью автоматически.

Планирование задач

Наша следующая и последняя задача заключается в планировании выполнения скрипта backup_remote_servers.sh на сервере внешнего хранилища. Для этого мы добавим в конфигурационный файл планировщика cron две новые записи, согласно которым скрипт резервного копирования будет запускаться дважды в день - в 3:34 и в 20:34. Чтобы добавить записи, запустите на сервере внешнего хранилища программу crontab с параметром -e .

:$ crontab -e

Программа crontab запустит используемый по умолчанию текстовый редактор, указанный в переменных среды VISUAL или EDITOR . Теперь введите две новые записи, после чего сохраните и закройте файл.

Листинг 12. Записи crontab на сервере внешнего хранилища
34 3 * * * /home/backups/remote_db_backup.sh 34 20 * * * /home/backups/remote_db_backup.sh

Запись файла crontab состоит из двух основных частей: спецификации времени выполнения и команды, подлежащей выполнению. Спецификация времени выполнения включает следующие поля:

Листинг 13. Формат записи crontab
+---- минута | +----- час | | +------ день | | | +------ месяц | | | | +---- день недели | | | | | +-- команда, подлежащая выполнению | | | | | | 34 3 * * * /home/backups/remote_db_backup.sh

Верификация резервных копий

Рекомендуется регулярно проводить проверку резервных копий чтобы убедиться в правильной работе процесса. Автоматизация процессов помогает избавиться от ненужной рутины, но заменить добросовестного отношения к делу она не может. Если ваши данные заслуживают резервного копирования, то время от времени имеет смысл проводить выборочную проверку качества его выполнения.

Возможно, стоит создать задачу планировщика cron, которая по меньшей мере раз в месяц напоминала бы вам о необходимости проверки резервных копий. Кроме того, неплохо было бы менять ключевую пару по истечении определенного периода; напомнить вам об этом может также задача планировщика cron.

Дополнительные меры обеспечения информационной безопасности

Для повышения уровня информационной безопасности можно установить и настроить на каждом сервере систему обнаружения вторжений (Intrusion Detection System, IDS), например, Snort. Система обнаружения вторжений предназначена для оповещения о попытках взлома системы, происходящих в данный момент или имевших место недавно. Наличие такой системы позволит наращивать уровень информационной безопасности за счет применения таких технологий как цифровая подпись и шифрование резервных копий.

Архивные файлы можно защитить с помощью распространенных инструментов с открытым исходным кодом, например GNU Privacy Guard (GnuPG), OpenSSL и ncrypt, однако, применять их без дополнительного уровня защиты, предоставляемого системой обнаружения вторжений, не рекомендуется (ссылки на дополнительную информацию по Snort приведены в разделе ).

Заключение

В статье было продемонстрировано удаленное выполнение скриптов на серверах и осуществление безопасного автоматического копирования файлов. Я надеюсь, что ее прочтение дало вам информацию для размышлений о том, как защитить ваши ценные данные с помощью таких инструментов с открытыми исходными кодами, как OpenSSH и Snort.