Instal dan Setup Server BackupPC di Ubuntu 20.04

 BackupPC  adalah rangkaian perangkat lunak pencadangan lintas platform tingkat perusahaan berkinerja tinggi dengan interface berbasis web. Ini dapat digunakan untuk mencadangkan PC dan laptop Linux, Windows dan Mac OSX ke disk server. Dalam panduan ini, kita akan belajar cara menginstal dan mengatur Server BackupPC di Ubuntu 20.04.

BackupPC menyediakan cukup banyak fitur;

  • Menyediakan sebuah web interface yang memungkinkan administrator untuk melihat file log, konfigurasi, status saat ini dan memungkinkan user untuk memulai dan membatalkan pencadangan serta menelusuri dan memulihkan file dari cadangan.
  • Ini mendukung Data deduplication: File identik di beberapa cadangan dari PC yang sama atau berbeda disimpan hanya sekali sehingga menghasilkan penghematan besar dalam penyimpanan disk dan I/O disk.
  • Ini mendukung data Compression: Karena hanya file baru (belum dikumpulkan) yang perlu dikompresi, hanya ada sedikit pengaruh pada waktu CPU.
  • Dia Open-source: BackupPC di-host di  Github, dan didistribusikan di bawah lisensi GPL.
  • Tidak diperlukan perangkat lunak sisi client.
  • Set lengkap opsi pemulihan didukung, termasuk pemulihan langsung (melalui smbclient, tar, atau rsync/rsyncd) atau mengdownload file zip atau tar.

Baca lebih lanjut tentang  halaman Tentang BackupPC.

Instal dan Setup Server BackupPC di Ubuntu 20.04

Perbarui paket Sistem

Untuk memulainya, pastikan bahwa paket sistem Anda mutakhir.

apt update
apt upgrade

Instal BackupPC di Ubuntu 20.04

Pada tulisan ini, BackupPC 4.3.2 adalah versi rilis stabil terbaru. Sayangnya, repo default Ubuntu 20.04 menyediakan BackupPC 3.3.2;

apt show backuppc
Package: backuppc Version: 3.3.2-3 Priority: optional Section: utils Origin: Ubuntu Maintainer: Ubuntu Developers <[email protected]> Original-Maintainer: Debian BackupPC Team <[email protected]> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 2,314 kB... Homepage: https://backuppc.github.io/backuppc/ Download-Size: 460 kB APT-Sources: http://ke.archive.ubuntu.com/ubuntu focal/main amd64 Packages

Dengan demikian, kita akan membangun BackupPC 4 di Ubuntu 20.04 dari sumber.

Instal Dependensi yang Diperlukan

apt install apache2 apache2-utils libapache2-mod-perl2 par2 perl smbclient rsync tar gcc zlib1g zlib1g-dev rrdtool git make perl-doc libnss-winbind winbind libarchive-zip-perl libfile-listing-perl libxml-rss-perl libcgi-session-perl libacl1-dev curl -y

Buat Pengguna BackupPC

BackupPC biasanya dijalankan oleh backuppcuser dengan hak istimewa rendah /var/lib/backuppcsebagai direktori kerja. Dengan demikian, buat user sistem backuppc dengan menjalankan perintah di bawah ini;

useradd -r -m -d /var/lib/backuppc -s /bin/bash -c "BackupPC user" backuppc

Bangun dan Instal BackupPC XS

BackupPC V4+ memerlukan BackupPC XS, modul perl yang mengimplementasikan berbagai fungsi BackupPC dalam modul perl-callable.

Download kode sumber BackupPC XS;

git clone https://github.com/backuppc/backuppc-xs.git

Bangun dan instal BackupPC XS;

cd backuppc-xs/

Untuk menginstal modul ini, jalankan perintah berikut:

perl Makefile.PL
make

Jalankan make testuntuk memverifikasi kebenaran kompilasi modul;

make test

Jika semuanya beres, hasilnya harus lulus;

t/BackupPC_XS.t.. ok All tests successful. Files=1, Tests=1, 0 wallclock secs ( 0.00 usr 0.04 sys + 0.07 cusr 0.03 csys = 0.14 CPU) Result: PASS

Instal modul BackupPC XS;

make install

Ada modul opsional lain tetapi sangat DIREKOMENDASIKAN yang telah diinstal pada bagian persyaratan di atas.

Instal BackupPC rsync_bpc

Agar dapat membuat cadangan client menggunakan rsyncperintah, Anda perlu rsync_bpcmenginstal modul. Rsync-bpc adalah versi rsync yang disesuaikan yang digunakan sebagai bagian dari BackupPC.

Download kode sumber rsync_bpc;

cd ~
git clone https://github.com/backuppc/rsync-bpc.git

Kompilasi dan instal modul rsync_bpc;

cd rsync-bpc
./configure

Ini mengkonfigurasi rsync_bpc dengan opsi default. Anda dapat memeriksa opsi konfigurasi lainnya dengan perintah,./configure –help.

Kompilasi dan instal rsync_bpc;

make
make install

Instal BackupPC di Ubuntu 20.04

Setelah semua hal di atas selesai, Anda sekarang dapat menginstal BackupPC itu sendiri. Download kode sumber yang mengkloning repositori Github;

cd ~
git clone https://github.com/backuppc/backuppc.git

Arahkan ke direktori sumber cadangan;

cd backuppc

Hasilkan tarball BackupPC rilis terbaru dari file sumber dan alat pembuatan BackupPC;

VER=`curl --silent "https://api.github.com/repos/backuppc/backuppc/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/1/'`
./makeDist --nosyntaxCheck --releasedate 'date -u "+%d %b %Y"' --version $VER

Ini membuat tarball BackupPC dan menyimpannya di bawah direktori distr di direktori kerja saat ini sebagai, misalnya, dist/BackupPC-4.3.2.tar.gz, untuk rilis stabil saat ini (pada tulisan ini).

Ekstrak kode sumber;

tar zxf dist/BackupPC-*.tar.gz

Bangun dan instal dan atur server BackupPC di Ubuntu 20.04;

cd BackupPC-*
perl configure.pl

Script ketika dijalankan dengan cara ini, akan berjalan secara interaktif. Jawab perintahnya sesuai. tekanENTER untuk menerima default.

Is this a new installation or upgrade for BackupPC? If this is an upgrade please tell me the full path of the existing BackupPC configuration file (eg: /etc/BackupPC/config.pl). Otherwise, just hit return. --> Full path to existing main config.pl []? I found the following locations for these programs: bzip2 => /usr/bin/bzip2 cat => /usr/bin/cat df => /usr/bin/df gtar/tar => /usr/bin/tar gzip => /usr/bin/gzip hostname => /usr/bin/hostname nmblookup => /usr/bin/nmblookup par2 => /usr/bin/par2 perl => /usr/bin/perl ping => /usr/bin/ping ping6 => /usr/bin/ping6 rrdtool => /usr/bin/rrdtool rsync => /usr/bin/rsync rsync_bpc => /usr/local/bin/rsync_bpc sendmail => smbclient => /usr/bin/smbclient split => /usr/bin/split ssh/ssh2 => /usr/bin/ssh --> Are these paths correct? [y]? y Please tell me the hostname of the machine that BackupPC will run on. --> BackupPC will run on host [ubuntu20]? BackupPC should run as a dedicated user with limited privileges. You need to create a user. This user will need read/write permission on the main data directory and read/execute permission on the install directory (these directories will be setup shortly). primary group for this user should also be chosen carefully. data directories and files will have group read permission, so group members can access backup files. --> BackupPC should run as user [backuppc]? Please specify an install directory for BackupPC. This is where the BackupPC scripts, library and documentation will be installed. --> Install directory (full path) [/usr/local/BackupPC]? Please specify a data directory for BackupPC. This is where all the PC backup data is stored. This file system needs to be big enough to accommodate all the PCs you expect to backup (eg: at least several GB per machine). --> Data directory (full path) [/data/BackupPC]?
 /var/lib/backuppc BackupPC has SCGI and CGI perl interfaces that run under Apache. You need to pick which one to run.... traditional alternative is to use CGI. In this case, an executable needs to be installed Apache's cgi-bin directory. This executable needs to run as set-uid backuppc, or it can be run under mod_perl with Apache running as user backuppc. --> SCGI port (-1 to disable) [-1]? --> CGI bin directory (full path, or empty for no CGI) []? /var/www/cgi-bin/BackupPC BackupPC's CGI and SCGI script need to display various PNG/GIF images that should be stored where Apache can serve them. They should be placed somewhere under Apache's DocumentRoot. BackupPC also needs to know the URL to access these images. Example: Apache image directory: /var/www/htdocs/BackupPC URL for image directory: /BackupPC URL for the image directory should start with a slash. --> Apache image directory (full path, or empty for no S/CGI) []? /var/www/html/BackupPC --> URL for image directory (omit http://host; starts with '/', or empty for no S/CGI) []? /BackupPC Ok, we're about to: - install the binaries, lib and docs in /usr/local/BackupPC - create the data directory /var/lib/backuppc - optionally install the cgi-bin interface - create/update the config.pl file /etc/BackupPC/config.pl --> Do you want to continue? [y]?y... Ok, it looks like we are finished. There are several more things you will need to do: - Browse through the config file, /etc/BackupPC/config.pl, and make sure all the settings are correct. In particular, you will need to set $Conf{CgiAdminUsers} so you have administration privileges in the CGI interface. - Edit the list of hosts to backup in /etc/BackupPC/hosts. - Read the documentation in /usr/local/BackupPC/doc/BackupPC.html. Please pay special attention to the security section. - Verify that the CGI script BackupPC_Admin runs correctly. You might need to change the permissions or group ownership of BackupPC_Admin. If this is an upgrade and you are using mod_perl, you will need to restart Apache. Otherwise it will have stale code. - BackupPC should be ready to start. Don't forget to run it as user backuppc! installation also contains a systemd/backuppc.service script that can be installed so that BackupPC can auto-start on boot. This will also enable administrative users to start the server from the CGI interface. See systemd/README. Enjoy!

Jika Anda ingin menjalankan instalasi non-interaktif;

./configure.pl --batch --cgi-dir /var/www/cgi-bin/BackupPC --data-dir /var/lib/backuppc --hostname ubuntu20 --html-dir /var/www/html/BackupPC --html-dir-url /BackupPC --install-dir /usr/local/BackupPC

Konfigurasi Apache Web Server untuk BackupPC

Copy contoh file konfigurasi Apache BackupPC ke direktori konfigurasi yang diaktifkan Apache;

cp ~/backuppc/BackupPC-*/httpd/BackupPC.conf /etc/apache2/conf-available/

Selanjutnya, konfigurasikan Apache untuk mengizinkan akses eksternal ke BackupPC;

sed -i 's/Require local/Require all granted/' /etc/apache2/conf-available/BackupPC.conf

Konfigurasikan Apache untuk dijalankan sebagai user BackupPC, backuppc.

sed -i 's/www-data/backuppc/g' /etc/apache2/envvars

Hapus set-uid dari file CGI admin BackupPC;

chmod u-s /var/www/cgi-bin/BackupPC/BackupPC_Admin

Konfigurasikan BackupPC Apache Basic Authentication

Ubah file otentikasi Dasar jika Anda menginginkannya;

sed -i 's#^AuthUserFile.*$#AuthUserFile /etc/BackupPC/.allowed#' /etc/apache2/conf-available/BackupPC.conf

Ubah pesan otentikasi dasar;

sed -i 's/^AuthName.*$/AuthName "Kifarunix-demo BackupPC Restricted Access"/' /etc/apache2/conf-available/BackupPC.conf

Buat user dan password otentikasi dasar BackupPC. Informasi ini harus disimpan pada file yang ditentukan oleh nilai  AuthUserFile parameter di atas. Misalnya, untuk membuat autentikasi web, user disebut  kifarunixadmin;

htpasswd -c /etc/BackupPC/.allowed kifarunixadmin

Anda dapat menambahkan user lain, misalnya  kifarunixuser.

htpasswd /etc/BackupPC/.allowed kifarunixuser

Sesuaikan kepemilikan dan izin file user auth;

chmod 666 /etc/BackupPC/.allowed
chown backuppc:backuppc /etc/BackupPC/.allowed

Konfigurasikan Pengguna Administratif BackupPC

Pengguna Administratif default untuk BackupPC ditentukan di bawah bagian pengaturan konfigurasi interface user CGI. Pengguna normal hanya dapat mengakses informasi khusus untuk host mereka. Mereka juga dapat memulai/menghentikan/menelusuri/memulihkan cadangan. Pengguna administratif memiliki akses penuh ke semua host, ditambah status keseluruhan dan informasi log. Dalam demo ini, kami menetapkan  kifarunixadmin user sebagai admin BackupPC.

vim /etc/BackupPC/config.pl
$Conf{CgiAdminUserGroup} = 'kifarunixadmin'; $Conf{CgiAdminUsers} = 'kifarunixadmin';

Tentukan Pengguna Cadangan Client BackupPC

Secara default, BackupPC menggunakan user root pada client pencadangan untuk tujuan pencadangan.

$Conf{RsyncSshArgs} = [ '-e', '$sshPath -l root', ];

Lebih aman untuk mengizinkan pencadangan melalui user dengan hak istimewa rendah. Dalam demo ini, kami akan membuat user yang tidak memiliki hak istimewa,  backuppc, pada setiap client untuk dicadangkan  which is only allowed to run rsync command with sudo rights untuk tujuan pencadangan. Oleh karena itu, ubah user ini sesuai.

$Conf{RsyncSshArgs} = [ '-e', '$sshPath -l backuppc', ];

Kami akan membiarkan pengaturan Rsync lainnya dengan opsi default.

Note that all these configurations are overwritable via the per-client configuration.

Aktifkan konfigurasi Apache dan modul CGI BackupPC;

Jalankan perintah di bawah ini untuk mengaktifkan konfigurasi Apache BackupPC dan modul CGI;

a2enconf BackupPC
a2enmod cgid

Nonaktifkan situs default Apache dan Nonaktifkan daftar direktori;

a2dissite 000-default.conf
mv /var/www/html/index.html /var/www/html/index.html.old
sed -i 's/Options Indexes FollowSymLinks/Options -Indexes +FollowSymLinks/' /etc/apache2/apache2.conf

Sembunyikan versi server web pada halaman error;

echo -e 'ServerSignature OffnServerTokens Prod' >> /etc/apache2/apache2.conf

Periksa Apache untuk error apa pun;

apachectl -t
Syntax OK

Mulai dan aktifkan Apache untuk berjalan pada boot sistem;

systemctl enable --now apache2

Restart Apache jika sudah berjalan;

systemctl restart apache2

Menjalankan Layanan BackupPC

Copy contoh file service systemd BackupPC dari direktori sumber;

cp ~/backuppc/BackupPC-*/systemd/backuppc.service /etc/systemd/system/

Edit grup service;

sed -i 's/^#Group/Group/' /etc/systemd/system/backuppc.service
sed -i 's#PIDFile=/var/run/#PIDFile=/run/#' /etc/systemd/system/backuppc.service

Reload konfigurasi service systemd;

systemctl daemon-reload

Mulai dan aktifkan service BackupPC;

systemctl enable --now backuppc

Untuk memeriksa statusnya;

systemctl status backuppc
● backuppc.service - BackupPC server Loaded: loaded (/etc/systemd/system/backuppc.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-05-17 19:29:38 UTC; 7s ago Main PID: 3772 (BackupPC) Tasks: 1 (limit: 2283) M
emory: 8.6M CGroup: /system.slice/backuppc.service └─3772 /usr/bin/perl /usr/local/BackupPC/bin/BackupPC May 17 19:29:38 ubuntu20 systemd[1]: Started BackupPC server.

Mengakses Interface Pengguna Web BackupPC

Jika firewall sedang berjalan, izinkan akses eksternal ke Apache.

ufw allow 80/tcp

Anda sekarang dapat mengakses BackupPC melalui URL http://server_IP_OR_hostname/BackupPC_Admin.

Otentikasi dan lanjutkan ke dasbor web BackupPC.

Saat Anda mengautentikasi sebagai user admin, ini adalah interface yang Anda dapatkan;

Saat Anda mengautentikasi sebagai user non admin, ini adalah interface yang Anda dapatkan;

BackupPC sekarang diinstal pada Ubuntu 20.04. Anda sekarang dapat melanjutkan dan menambahkan host untuk dicadangkan;

Cadangkan sistem Linux dengan BackupPC menggunakan Rsync Protocol

Backup Sistem Windows melalui SMB Menggunakan BackupPC

Backup Sistem Windows dengan BackupPC Menggunakan Rsyncd

Itu menandai akhir dari panduan kami tentang cara menginstal dan mengatur server BackupPC di Ubuntu 20.04. Menikmati!

Referensi

Menginstal BackupPC 4 dari tarball atau git di Ubuntu

Dokumentasi BackupPC: Menginstal BackupPC

Tutorial Terkait Lainnya

Instal dan Konfigurasi BackupPC di Debian 10

Cara Menginstal dan Mengonfigurasi BackupPC sebagai Server Cadangan di Ubuntu 18.04

Instal dan Konfigurasi BackupPC di CentOS 8