avatar FreeBSD Установка BackupPC на FreeBSD

Я тоже внесу свои 5 копеек, материалы этого сайта и расскажу про настройку BackupPC на FreeBSD 10.
Особых сложностей установка не вызывает, а вот в настройке есть некоторые нюансы, которые отняли у меня целый день, а об их решении мне ничего найти не удалось, вот я и решил поделиться.
Установку 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 комментария

avatar
Немного подправил статью, чтобы она лучше смотрелась
avatar
Класс, спасибо.
Есть что добавить? Регистрируйся и оставляй комментарии!