Backuppc установка и настройка centos

Обновлено: 06.07.2024

Установка BackupPC: Open Source Backup to disk на CentOS 5.6 x86-64 (если i386 то просто используем пакеты для i386)

Устанавливаем CentOS на Wmware используем два жестких диска, на 1-м будет ОС на втором Хранилище для бэкапа (монтируем его как /bkp)

Добавляем пользователя backuppc c паролем backuppc:

обязательно отключить selinux

Проверим состояние selinux:

(Enforcing – включено | Permissive – выключено)

поставим =disabled (иначе не пустит на сайт)

и настраиваем IPTABLES для доступа к web сайту

я просто отключу iptables, чтобы не писать много

устанавливаем модули Perl:

устанавливаем Appache

Установим Samba-client

yum install samba-client

(yum install samba-client libsmbclient samba-common perl-Convert-ASN1)

установим Par2

yum install gcc gcc-c++

Качаем исходник BackupPC

Устанавливаем BackupPC-3.2.1

tar zxvf BackupPC-3.2.1.tar.gz

Копируем файлы и настраиваем BackupPC-3.2.1

копируем скрипт запуска:

Даем права на выполнение скрипта:

Добавляем службу в автозапуск:

Проверяем работу скрипта:

Запускаем backuppc:

create the user and password that you are going to allow access to the web interface.

Настраиваем основной конфиг:

Рабочий вариант лежит ТУТ!

Config.pl состоит из четырех групп настроечных значений, содержащих:

основные параметры сервера;

описание тех машин, информацию с которых нужно архивировать;

указания как часто это надо делать;

параметры CGI-интерфейса.

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

$Conf - максимальное число одновременных процессов архивирования.

$Conf - при заполнении указанного в процентах объема диска, заданного для хранения данных, архивирование не производится. По умолчанию 95%.

$Conf - имя расшаренного ресурса на Windows-машине. По умолчанию - это диск C:\, который в Win2000/XP доступен через SMB по имени "С$".

$Conf - имя пользователя на Windows-машине, которому даны права на ресурс общего доступа .

$Conf - его пароль. В настоящее время он приводится в открытом виде. В следующих версиях планируется хранение в зашифрованном виде.

$Conf - период в днях между полными резервными копиями.

$Conf - период в днях между инкрементальными резервными копиями.

$Conf - максимальное число сохраняемых полных резервными копиями.

$Conf - список директорий которые необходимо архивировать. По умолчанию - не определено.

$Conf - тоже самое, но для директорий-исключений.

$Conf - при использовании par2cmdline процент избыточных данных в архиве. По умолчанию - 0.

$Conf и $Conf - пользователи и группы, которым доступен CGI-интерфейс.

Обратите внимание, что параметры, относящиеся к конкретной машине, могут быть переопределены машинно-зависимым файлом Config.pl, который храниться в поддиректории каталога с данными /BackupPC/pc/<имя_компьютера>/. Действительно, на каждой машине могут быть свои конкретные папки общего доступа, списки исключений, свой локальный пользователь с паролем, для которого установлены свои разрешения.

Настроим Apache:

скопируем файл BackupPC.conf из папки BackupPC-3.2.1

В файле разрешим доступ к серверу и укажем путь к файлу паролей BackupPC.conf, который создали ранее

BackupPC Sudo Setup

The backuppc user needs to have sudo access to run the gtar and tar commands. Otherwise, BackupPC won't run correctly. Sudo should already be installed on your system, so you can change what you need using the visudo command.

Depending upon your OpenSSH installation, many of these steps can be replaced by running the scripts ssh-user-config and ssh-host-config included with OpenSSH. You still need to manually exchange the public keys.

As root on the client machine, use ssh-keygen to generate a public/private key pair:

This will save the public key in

/.ssh/id_rsa.pub and the private key in

/.ssh/id_rsa , if you don't specify another location. As a password, you would type nothing (just enter) if you wish BackupPC to start automatically; alternatively, you could set a password on the private key as stored in the file system, and use an agent as described below to store the private key without password only in memory.

Repeat the above steps for the BackupPC user (__BACKUPPCUSER__) on the server. Make a copy of the public key to make it recognizable, eg:

See the ssh and sshd manual pages for extra configuration information.

To allow BackupPC to ssh to the client as root, you need to place BackupPC's public key into root's authorized list on the client. Append BackupPC's public key ( BackupPC_id_rsa.pub ) to root's

/.ssh/authorized_keys2 file on the client:

You should edit

/.ssh/authorized_keys2 that looks like:

Also, you need to place the client's public key into backuppc's

/.ssh/known_hosts file, otherwise you will get a

error, and backuppc will not be able to log into the client. To place the client key into the

/.ssh/known_hosts file, you need to do this (make sure

/.ssh/client_id_rsa.pub is the client's public key, which needs to be copied from the client):

Repeat this step for every client.

You will probably need to make sure that all the files in

/.ssh have no group or other read/write permission:

You should do the same thing for the BackupPC user on the server.

As the BackupPC user on the server, verify that this command:

You might be prompted the first time to accept the client's host key and you might be prompted for root's password on the client. Make sure that this command runs cleanly with no prompts after the first time. You might need to check /etc/hosts.equiv on the client. Look at the man pages for more information. The -v option to ssh is a good way to get detailed information about what fails.

BackupPC SSH Keys

Since concentrating on rsync backups, you'll want to create passwordless keys used for the backuppc process to connect remotely to your hosts being backed up. As root create the hidden SSH directory under /var/lib/backuppc and change the permissions accordingly.

Next, drop in as the backuppc user. You'll have to specify a shell because by default the backuppc user has no shell assigned to it. Then create the passwordless SSH keys using ssh-keygen.

Server Key to Client

For each client you're going to configure backups for, you'll need to copy the key you created from the server over to the client. To do so, continue from the last step, and run the ssh-copy-id command while still logged in as the backuppc user on the server.

It should have copied the key over to the host, and then also logged you into the host with SSH.

Настраиваем сервер на использование пользователя backuppc вместо root

на веб интерфейсе сервера заходим в меню

Edit Config → Xfer → в RsyncClientCmd и RsyncClientRestoreCmd меняем root на backuppc

Troubleshooting

Now that I have the key with no password in place and configured, I need to test it out before putting it in a cron job (which has its own small set of baggage). I exit from the ssh session to remotehost and try [9]:

$ rsync -avz -e "ssh -i /home/backuppc/.ssh/id_dsa" remoteuser@remotehost:/remote/dir /this/dir/

If this doesn't work, I will take off the "command" restriction on the key and try again. If it asks for a password, I will check permissions on the private key file (on thishost, should be 600), on 'authorized_keys' and (on remotehost, should be 600), on the '

/.ssh/' directory (on both hosts, should be 700), and on the home directory ('

/') itself (on both hosts, should not be writeable by anyone but the user). If some cryptic 'rsync' protocol error occurs mentioning the 'validate-rsync' script, I will make sure the permissions on 'validate-rsync' (on remotehost, may be 755 if every remotehost user is trusted) allow remoteuser to read and execute it.

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

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

3 января стартует курс «SQL-injection Master» © от команды The Codeby

За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

Запись на курс до 10 января. Подробнее .

Установка BackupPC

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

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

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

Далее команды на разных дистрибутивах Linux идентичны, пользователи Debian, Ubuntu, Mint и их производных не забывайте ставить sudo перед каждой командой.

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

01

02

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

03

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

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

15543330314_70321f76ac_o

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

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

16164929932_3ee89974e3_o

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

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

15979622709_d4cd1dbd34_o

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

16163781611_c939673373_o

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

16139884676_8a42b8f619_o

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

16139884666_6d8234bab3_o

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

15978247428_5c66c062af_o

16165680115_461c1e2150_o

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

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

16165680105_04d0b568cb_o

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

15978247398_e798c969b5_o

Заключение

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

1 декабря стартует зимний поток курса " Тестирование Веб-Приложений на проникновение " от команды codeby . Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. На курс можно записаться до 10 декабря включительно. Подробнее .

Добавление сервисов в автозагрузку

Проверка состояния backuppc

Last login : Tue Nov 29 23 : 02 : 55 EET 2016 on pts / 2 - bash - 4.2 $ / usr / share / BackupPC / bin / BackupPC_serverMesg status info Got reply : % Info = ( "ConfigLTime" = > "1480455544" , "DUlastValueTime" = > "1480455544" , "ConfigModTime" = > "1480454814" , "nextWakeup" = > "1480460400" , "DUDailyMax" = > 68 , "DUDailyMaxTime" = > "1480454859" , "Version" = > "3.3.1" , "pid" = > 1210 , "DUlastValue" = > 68 , "HostsModTime" = > "1480454814" , "startTime" = > "1480455544" ) ;

Доступ к WEB-интерфейсу BackupPC

backup-setup

Просмотр файлов, созданных пакетом backuppc при установке

2016 - 11 - 29 23 : 16 : 14 Running BackupPC_trashClean ( pid = 915 ) 2016 - 11 - 29 23 : 16 : 14 Next wakeup is 2016 - 11 - 30 01 : 00 : 00

Серверы и клиенты могут взаимодействовать несколькими различными способами. В этом примере для того будет использоваться протокол rsync через SSH.
Для начала нужно создать пару ключей SSH для пользователя backuppc и передать открытый ключ на клиентские машины для удаленного пользователя root.
Это позволит также восстанавливать файлы/каталоги с бекапа на удаленные клиенты

backuppc : x : 997 : 995 :: / var / lib / BackupPC : / sbin / nologin Enter file in which to save the key ( / var / lib / BackupPC / . ssh / id_rsa ) : Your identification has been saved in / var / lib / BackupPC / . ssh / id_rsa . Your public key has been saved in / var / lib / BackupPC / . ssh / id_rsa . pub .

В качестве клиентов будет выступать пару серверов под Centos7(192.168.1.34) и Debian8 (192.168.1.35)

Проверяем аутентификацию по SSH-ключу без пароля при подключении с BackupPC-сервера на клиентов

Last login : Tue Nov 29 00 : 01 : 56 2016 from 192.168.1.85 Last login : Tue Nov 29 22 : 21 : 18 2016 from 192.168.1.85

3.Настройка бекапа клиента в WEB-интерфейсе
Добавляем клиентов, с которых будем снимать бекап

backup-add-hosts

backup-debian-1

backup-debian-2

Если необходимо отключить проверку клиентов с BackupPC сервера через утилиту ping

Запустим создание полного бекапа для этого клиента в WEB-интерфейсе

В логах клиентского хоста на Backuppc-сервере

2016 - 11 - 30 00 : 28 : 14 full backup started for directory / 2016 - 11 - 30 00 : 35 : 53 full backup 0 complete , 19218 files , 894155368 bytes , 0 xferErrs ( 0 bad files , 0 bad shares , 0 other )

В основном лог-файле Backuppc-сервера

2016 - 11 - 30 00 : 28 : 14 User backuppc requested backup of 192.168.1.35 ( 192.168.1.35 ) 2016 - 11 - 30 00 : 28 : 14 Started full backup on 192.168.1.35 ( pid = 1500 , share = / ) 2016 - 11 - 30 00 : 35 : 53 Finished full backup on 192.168.1.35 2016 - 11 - 30 00 : 35 : 53 Running BackupPC _ link 192.168.1.35 ( pid = 1511 ) 2016 - 11 - 30 00 : 35 : 57 Finished 192.168.1.35 ( BackupPC _ link 192.168.1.35 )

Бекапы сохраняются в каталоге /var/lib/BackupPC/pc/

4.0K / var / lib / BackupPC / pc / 192.168.1.35 / backups . old 4.0K / var / lib / BackupPC / pc / 192.168.1.35 / LOG . 112016 228K / var / lib / BackupPC / pc / 192.168.1.35 / XferLOG . 0.z

Проверяем, что сработали корректно исключения
Например, отсутствие фалов/каталогов в каталоге /var/log

backup-debian-3

4.Восстановленипе из бекапа

Восстановим,например, файл /etc/hosts
Предварительно, переместив его на клиенте

- rw - r -- r -- 1 root root 411 Jul 18 00 : 13 hosts . allow - rw - r -- r -- 1 root root 711 Jul 18 00 : 13 hosts . deny

backup-restore-debian-1

backup-restore-debian-2

В логах сервера для клиента 192.168.1.35

2016 - 11 - 30 00 : 48 : 04 restore started below directory / etc to host 192.168.1.35 2016 - 11 - 30 00 : 48 : 05 restore 0 complete ( 1 files , 152 bytes , 0 dirs , 0 xferErrs )

В глобальном логе сервера

2016 - 11 - 30 00 : 48 : 04 User backuppc requested restore to 192.168.1.35 ( 192.168.1.35 ) 2016 - 11 - 30 00 : 48 : 04 Started restore on 192.168.1.35 ( pid = 1568 ) 2016 - 11 - 30 00 : 48 : 05 Finished restore on 192.168.1.35

Проверяем наличие файла на клиенте

- rw - r -- r -- 1 root root 411 Jul 18 00 : 13 hosts . allow - rw - r -- r -- 1 root root 711 Jul 18 00 : 13 hosts . deny

Расписание создания бекапов для клиента 192.168.1.35 наследовалось/применялось с глобальных настроек расписания

backup-schedule-debian

А именно:
Раз в неделю создается полный бекап, а ежедневно – инкрементальный
Кол-во хранений копий полного бекапа – 1 шт, инкрементального – 6 шт
Бекап НЕ запускается с 7 до 19:30 с понедельника по пятницу т.е в бизнес-тайм бекап не снимается,чтобы не нагружать сервера.

5.Настройка бекапа клиента Centos7

Бекапим все каталоги,за исключением указанных:
/dev, /media, /mnt, /proc, /sys

В статье рассматривается создание образов дисков/разделов, создание резервной копии MBR с помощью утилиты низкоуровневого копирования dd, а также утилиту, создающую резервные копии инкрементно rdiff-backup.

Сократить образ можно сжав архиватором.

Восстановление образа жесткого диска.

Файл несжатого и сжатого образа раздела /dev/sda1

Файл несжатого и сжатого образа раздела /dev/sda1

Создание образа раздела /dev/sda1 без сжатия:

Создание образа раздела boot

Создание образа раздела boot

Также, можно предварительно сжать образ, например, gzip:

Создание бэкапа сжатого с помощью gzip с меткой времени

Создание бэкапа сжатого с помощью gzip с меткой времени

С помощью утилиты dd можно также создать iso образ диска

Создать образ MBR (находится в первых 512 байтах жесткого диска):

Бэкап MBR с помощью dd

Бэкап MBR с помощью dd

Rdiff-backup – утилита, позволяющая создавать инкрементные бэкапы (т.е. выполняется копирование только тех файлов, которые были изменены с момента последнего резервного копирования)

Установка утилиты выполняется командой:

Установка rdiff-backup

Установка rdiff-backup

Бэкапы локальных директорий

Создание бэкапа с помощью утилиты rdiff-backup

Создание бэкапа с помощью утилиты rdiff-backup

Бэкапы удаленной машины

На удаленной машине должен быть установлен rdiff-backup. Чтобы процесс был более удобен настроим авторизацию по ssh.

Для этого нужно выполнить команду:

Генерация ssh-ключа на первом сервере

Генерация ssh-ключа на первом сервере

Копирование ключа на второй сервер

Копирование ключа на второй сервер

Создать резервную копию каталога на локальной машине, переместить на другой сервер с просмотром статистики:

Создание бэкапа локального каталога, в качестве назначения – удаленный сервер

Создание бэкапа локального каталога, в качестве назначения – удаленный сервер

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

Бэкапы будут иметь несколько версий т.к утилита создает резервные копии инкрементно.

Отобразить имеющиеся инкременты можно командой:

rdiff-backup --list-increments /etc_backups/asterisk
Где /etc_backups/asterisk

– каталог назначения (куда копировались бэкапы)


Список имеющихся инкрементов

Отобразить, содержавшихся в бэкапе 1 версию назад, (включая файлы, которые были в последующем удалены):

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

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

Отобразить список содержимого бэкапа 1 день назад, (включая файлы, которые были в последующем удалены)

Читайте также: