FreeBSD → Установка BackupPC на FreeBSD
Я тоже внесу свои 5 копеек, материалы этого сайта и расскажу про настройку BackupPC на FreeBSD 10.
Особых сложностей установка не вызывает, а вот в настройке есть некоторые нюансы, которые отняли у меня целый день, а об их решении мне ничего найти не удалось, вот я и решил поделиться.
Установку FreeBSD я рассматривать не буду, это отдельная песня, изначально «фря» была установлена с целью использования ZFS.
Сначала установим пакет Apache22
Да во FreeBSD можно устанавливать софт из пакетов, а не только из портов.
конфигурационные файлы находятся в /usr/local/etc
Установим rsync
Для работы web интерфейса нам нужен mod_perl, которого нет в виде бинарного пакета, поставим его из портов:
соберем и установим:
Настраиваем Apache22
Отключим модуль который нам не нужен, чтобы выглядело:
нужно разрешить загрузку mod_perl, находим строку и снимаем с нее комментарий:
Чтобы выглядело:
Также нам требуется чтобы Apache22 работал от имени пользователя backuppc, находим пункт
и меняем его на:
Нам остается создать виртуальный хост, чтобы подключаться к админ панели.
Я решил сделать так, что не важно какое имя сервера, в админку мы попадем набрав после слеша /backupadmin
Создадим конфигурационный файл для хоста:
с содержимым:
Для тех кто не очень понял что тут написано, вход в админ панель осуществляется по логину и паролю, если вы ходите разрешить доступ без пароля, но при этом ограничить доступ определенной подъсетью, то снимите комментарий со строки #Allow from 192.168.1. и добавьте свою подсеть, ну а если ограничить с одного IP то #Allow from 192.168.1.3, тогда вы можете получить доступ с IP 192.168.1.3, при этом запись Allow from all нужно закомментировать.
Создадим файл .htpasswd, чтобы можно было зайти в админ панель, я не стал ничего выдумывать, а взял заготовку из примера для Linux
Создадим файл
Добавим туда:
Логин: backuppc
Пароль: backuppc
Теперь установим backuppc
Чтобы запустить сервис нам нужно создать конфигурационный файл, вообще-то он уже создан, но его нужно переименовать
Чтобы разрешить запуск Apache22 и backuppc нам нужно добавить разрешение для запуска служб:
добавим
запускаем Apache
Все должно запуститься, если возникли ошибки, то исправляем в конфигах, если не понятно что случилось, то идем смотреть лог ошибок который находится в /var/log/httpd-error.log
пробуем зайти в админ панель
httр://IP-адрес-сервера/backupadmin
И видим интерфейс управления

Проблема в том что в интерфейса управления нет нужных кнопок, для выполнения задач резервного копирования, т.е. в меню не хватает многих (важных пунктов) исправляем это.
Идем и редактируем файл
нам нужно найти пункты (находятся в строке №2021)
И привести их к виду
Сохраняем изменения и обновляем страницу, в системе сразу появилось много всего:

за то куда сохраняются бэкапы, отвечает переменная, по умолчантю это путь:
как на скриншоте.

web интерфейс можно русифицировать, русский язык уже есть в комплекте, его нужно только включить в config.pl
Находим переменную $Conf{Language} = 'en' и меняем на
Можно просто выполнить поиск по 'en' сохранить изменения и обновить страницу.
Русифицированный интерфейс выглядит

На остальных пунктах я останавливаться не буду, с ними разберетесь по мере необходимости, единственное, если меняете путь куда будут складываться бэкапы, то необходимо перезапустить backuppc т.к. он еще там создает необходимые, для его работы, директории.
Перезапуск выполняется командой:
Теперь нам осталось поправить настройки пользователя Backuppc, т.к. у него нет домашней директории, где система может создать файл known_hosts
Для начала создадим директорию home -если система только что установлена, то ее не существует
потом директорию для пользователя
Нам осталось создать для него директорию с именем .ssh и положить в нее закрытый ключ и предоставить необходимые права
Установим права доступа:
Предоставим пользователю backuppc права доступа на директорию
Теперь перенастроим пользователя backuppc, нам нужно прописать домашнюю директорию и shell, а для этого воспользуемся chpass
Осторожно vi!!!
настройки окружения пользователя backuppc, следующие:
нам нужно прописать ему домашнюю директорию и shell, чтобы выглядело:
Создаем ключи ssh, мы будем создавать их на сервере бэкапов, а открытый ключ переносить на остальные сервера чтобы подключаться к ним по SSH.
При создании ключа, пароль не задаем
там появилось 2 файла key и key.pub
Переименовываем key.pub в authorized_keys
Установим права на файл ключа:
Файл authorized_keys мы распространим по серверам, бэкап которых будем выполнять.
Ну и последнне что нам нужно сделать, автоматизировать создание файла known_hosts
С содержимым:
Все дальнейшие действия по настройке клиентской машины мы можем перенести из статьи, конкретно, из пункта Настройка резервного копирования клиентской машины Linux (Ubuntu) ну и далее до конца
Особых сложностей установка не вызывает, а вот в настройке есть некоторые нюансы, которые отняли у меня целый день, а об их решении мне ничего найти не удалось, вот я и решил поделиться.
Установку FreeBSD я рассматривать не буду, это отдельная песня, изначально «фря» была установлена с целью использования ZFS.
Сначала установим пакет Apache22
pkg install apache22
Да во FreeBSD можно устанавливать софт из пакетов, а не только из портов.
конфигурационные файлы находятся в /usr/local/etc
Установим rsync
pkg install rsync
Для работы web интерфейса нам нужен mod_perl, которого нет в виде бинарного пакета, поставим его из портов:
cd /usr/ports/www/mod_perl2
соберем и установим:
make install clean
Настраиваем Apache22
ee /usr/local/etc/apache22/httpd.conf
Отключим модуль который нам не нужен, чтобы выглядело:
#LoadModule unique_id_module libexec/apache22/mod_unique_id.so
нужно разрешить загрузку mod_perl, находим строку и снимаем с нее комментарий:
#LoadModule perl_module libexec/apache22/mod_perl.so
Чтобы выглядело:
LoadModule perl_module libexec/apache22/mod_perl.so
Также нам требуется чтобы Apache22 работал от имени пользователя backuppc, находим пункт
User www
Group www
и меняем его на:
User backuppc
Group backuppc
Нам остается создать виртуальный хост, чтобы подключаться к админ панели.
Я решил сделать так, что не важно какое имя сервера, в админку мы попадем набрав после слеша /backupadmin
Создадим конфигурационный файл для хоста:
ee /usr/local/etc/apache22/Includes/backuppc.conf
с содержимым:
Alias /backuppc /usr/local/www/backuppc
ScriptAlias /backupadmin /usr/local/www/cgi-bin/BackupPC_Admin
<Directory "/usr/local/www/cgi-bin">
#SSLRequireSSL
Options +ExecCGI -Indexes
AllowOverride AuthConfig
Order allow,deny
#Allow from 192.168.1.
Allow from all
AuthName "BackupPC Admin"
AuthType Basic
AuthUserFile /usr/local/etc/apache22/.htpasswd
Require valid-user
</Directory>
<Directory "/usr/local/www/backuppc">
Options -Indexes
Order allow,deny
Allow from all
</Directory>
Для тех кто не очень понял что тут написано, вход в админ панель осуществляется по логину и паролю, если вы ходите разрешить доступ без пароля, но при этом ограничить доступ определенной подъсетью, то снимите комментарий со строки #Allow from 192.168.1. и добавьте свою подсеть, ну а если ограничить с одного IP то #Allow from 192.168.1.3, тогда вы можете получить доступ с IP 192.168.1.3, при этом запись Allow from all нужно закомментировать.
Создадим файл .htpasswd, чтобы можно было зайти в админ панель, я не стал ничего выдумывать, а взял заготовку из примера для Linux
Создадим файл
ee /usr/local/etc/apache22/.htpasswd
Добавим туда:
backuppc:$apr1$a2aUIjKF$QAqbbGUmLVXT0sD/5XcP21
Логин: backuppc
Пароль: backuppc
Теперь установим backuppc
pkg install backuppc
Чтобы запустить сервис нам нужно создать конфигурационный файл, вообще-то он уже создан, но его нужно переименовать
mv /usr/local/etc/backuppc/config.pl.sample /usr/local/etc/backuppc/config.pl
Чтобы разрешить запуск Apache22 и backuppc нам нужно добавить разрешение для запуска служб:
ee /etc/rc.conf
добавим
apache22_enable="YES"
backuppc_enable="YES"
запускаем Apache
service apache22 start
service backuppc start
Все должно запуститься, если возникли ошибки, то исправляем в конфигах, если не понятно что случилось, то идем смотреть лог ошибок который находится в /var/log/httpd-error.log
пробуем зайти в админ панель
httр://IP-адрес-сервера/backupadmin
И видим интерфейс управления

Проблема в том что в интерфейса управления нет нужных кнопок, для выполнения задач резервного копирования, т.е. в меню не хватает многих (важных пунктов) исправляем это.
Идем и редактируем файл
ee /usr/local/etc/backuppc/config.pl
нам нужно найти пункты (находятся в строке №2021)
$Conf{CgiAdminUserGroup} = '';
$Conf{CgiAdminUsers} = '';
И привести их к виду
$Conf{CgiAdminUserGroup} = 'backuppc';
$Conf{CgiAdminUsers} = 'backuppc';
Сохраняем изменения и обновляем страницу, в системе сразу появилось много всего:

за то куда сохраняются бэкапы, отвечает переменная, по умолчантю это путь:
$Conf{TopDir} = '/var/db/BackupPC';
как на скриншоте.

web интерфейс можно русифицировать, русский язык уже есть в комплекте, его нужно только включить в config.pl
Находим переменную $Conf{Language} = 'en' и меняем на
$Conf{Language} = 'ru'
Можно просто выполнить поиск по 'en' сохранить изменения и обновить страницу.
Русифицированный интерфейс выглядит

На остальных пунктах я останавливаться не буду, с ними разберетесь по мере необходимости, единственное, если меняете путь куда будут складываться бэкапы, то необходимо перезапустить backuppc т.к. он еще там создает необходимые, для его работы, директории.
Перезапуск выполняется командой:
service backuppc restart
Теперь нам осталось поправить настройки пользователя Backuppc, т.к. у него нет домашней директории, где система может создать файл known_hosts
Для начала создадим директорию home -если система только что установлена, то ее не существует
mkdir /home
потом директорию для пользователя
mkdir /home/backuppc
Нам осталось создать для него директорию с именем .ssh и положить в нее закрытый ключ и предоставить необходимые права
mkdir /home/backuppc/.ssh
Установим права доступа:
chmod 700 /home/backuppc/.ssh
Предоставим пользователю backuppc права доступа на директорию
chown -R backuppc:backuppc /home/backuppc/.ssh/
Теперь перенастроим пользователя backuppc, нам нужно прописать домашнюю директорию и shell, а для этого воспользуемся chpass
Осторожно vi!!!
chpass backuppc
настройки окружения пользователя backuppc, следующие:
#Changing user information for backuppc.
Login: backuppc
Password: *
Uid [#]: 300
Gid [# or name]: 300
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /nonexistent
Shell: /usr/sbin/nologin
Full Name: BackupPC pseudo-user
Office Location:
Office Phone:
Home Phone:
Other information:
нам нужно прописать ему домашнюю директорию и shell, чтобы выглядело:
#Changing user information for backuppc.
Login: backuppc
Password: *
Uid [#]: 300
Gid [# or name]: 300
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/backuppc
Shell: /bin/csh
Full Name: BackupPC pseudo-user
Office Location:
Office Phone:
Home Phone:
Other information:
Создаем ключи ssh, мы будем создавать их на сервере бэкапов, а открытый ключ переносить на остальные сервера чтобы подключаться к ним по SSH.
ssh-keygen -t dsa -b 1024 -f /home/backuppc/.ssh/key
При создании ключа, пароль не задаем
там появилось 2 файла key и key.pub
Переименовываем key.pub в authorized_keys
mv /home/backuppc/.ssh/key.pub /home/backuppc/.ssh/authorized_keys
Установим права на файл ключа:
chmod 600 /home/backuppc/.ssh/key
Файл authorized_keys мы распространим по серверам, бэкап которых будем выполнять.
Ну и последнне что нам нужно сделать, автоматизировать создание файла known_hosts
ee /home/backuppc/.ssh/config
С содержимым:
Host *
StrictHostKeyChecking no
Все дальнейшие действия по настройке клиентской машины мы можем перенести из статьи, конкретно, из пункта Настройка резервного копирования клиентской машины Linux (Ubuntu) ну и далее до конца
2 комментария