Backuppc установка и настройка centos
Установка 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:
Сделайте ваш выбор нажав на пробел и затем перейдите к Ок, используя кнопку [Tab], и нажмите [Enter].
Обратите внимание, что установочный процесс автоматически создаст веб и программный конфигурационные файлы.
Запуск BackupPC и настройка Backups
Мы будем делать резервное копирование CentOS, используя rsync через SSH, и хоста Windows, используя SMB. До выполнения резервного копирования, нам нужно настроить основанную на ключе аутентификацию на наш хост CentOS и сделать доступной по сети (расшарить) каталог на Windows машине.
Когда спросят, напечатайте yes и введите пароль рута для 192.168.0.17.
Вам понадобиться рут доступ для удалённого хоста CentOS для получения доступа записи на всю файловую систему в случае восстановления бэкапа файлов или каталогов, собственником которых является рут.
Когда хосты CentOS и Windows готовы, добавьте их в BackupPC используя веб-интерфейс:
Следующий шаг состоит из изменения настроек резервного копирования каждого хоста:
Следующее изображение показывает настройку для резервного копирования на Windows машине:
А следующий скриншот показывает настройку резервного копирования для CentOS:
Запуск резервного копирования
Вы можете переходить по каталогам в поисках файлов, используя командную строку, но есть и более простой способ обозревать эти файлы и восстанавливать их.
Восстановление резервных копий
Если хотите, то можете загрузить файлы zip или tar, заключающие содержание резеврных копий или просто восстановите файл (файлы) на прежнее место:
Заключение
Говорят «Чем проще — тем лучше», и именно это предлагает 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
Просмотр файлов, созданных пакетом 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.
Это позволит также восстанавливать файлы/каталоги с бекапа на удаленные клиенты
В качестве клиентов будет выступать пару серверов под 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.853.Настройка бекапа клиента в WEB-интерфейсе
Добавляем клиентов, с которых будем снимать бекап
Если необходимо отключить проверку клиентов с 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
4.Восстановленипе из бекапа
Восстановим,например, файл /etc/hosts
Предварительно, переместив его на клиенте
В логах сервера для клиента 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 наследовалось/применялось с глобальных настроек расписания
А именно:
Раз в неделю создается полный бекап, а ежедневно – инкрементальный
Кол-во хранений копий полного бекапа – 1 шт, инкрементального – 6 шт
Бекап НЕ запускается с 7 до 19:30 с понедельника по пятницу т.е в бизнес-тайм бекап не снимается,чтобы не нагружать сервера.
5.Настройка бекапа клиента Centos7
Бекапим все каталоги,за исключением указанных:
/dev, /media, /mnt, /proc, /sys
В статье рассматривается создание образов дисков/разделов, создание резервной копии MBR с помощью утилиты низкоуровневого копирования dd, а также утилиту, создающую резервные копии инкрементно rdiff-backup.
Сократить образ можно сжав архиватором.
Восстановление образа жесткого диска.
Создание образа раздела /dev/sda1 без сжатия:
Также, можно предварительно сжать образ, например, gzip:
С помощью утилиты dd можно также создать iso образ диска
Создать образ MBR (находится в первых 512 байтах жесткого диска):
Rdiff-backup – утилита, позволяющая создавать инкрементные бэкапы (т.е. выполняется копирование только тех файлов, которые были изменены с момента последнего резервного копирования)
Установка утилиты выполняется командой:
Бэкапы локальных директорий
Бэкапы удаленной машины
На удаленной машине должен быть установлен rdiff-backup. Чтобы процесс был более удобен настроим авторизацию по ssh.
Для этого нужно выполнить команду:
Создать резервную копию каталога на локальной машине, переместить на другой сервер с просмотром статистики:
Создать резервную копию каталога, расположенного на другом сервере и поместить на локальной машине можно поменяв местами источник и назначение:
Бэкапы будут иметь несколько версий т.к утилита создает резервные копии инкрементно.
Отобразить имеющиеся инкременты можно командой:
rdiff-backup --list-increments /etc_backups/asterisk
Где /etc_backups/asterisk
– каталог назначения (куда копировались бэкапы)
Отобразить, содержавшихся в бэкапе 1 версию назад, (включая файлы, которые были в последующем удалены):
Отобразить список содержимого бэкапа 1 день назад, (включая файлы, которые были в последующем удалены)
Читайте также: