This is a complete guide to install BackupPC on your CentOS 7 server.

#Install BackupPC and prerequsities

yum upgrade -y
yum install epel-release
yum install backuppc nfs-utils nfs-utils-lib bzip2
systemctl restart backuppc.service

#Set permissions

cd /usr/share/BackupPC/
chown backuppc:apache sbin/*

cd /usr/share/BackupPC/sbin
chmod u+s BackupPC_Admin

usermod -s /bin/bash backuppc

#Set firewall rule for HTTP port.

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

#Edit BackupPC config

vi /etc/BackupPC/config.pl

Edit

$Conf{CgiAdminUserGroup} = '';
 $Conf{CgiAdminUsers} = '';

TO

$Conf{CgiAdminUserGroup} = '';
 $Conf{CgiAdminUsers} = 'backuppc';

THEN

Edit

$Conf{PingPath} = '';

TO

$Conf{PingPath} = '/bin/ping';

#Edit your apache configuration

vi /etc/httpd/conf.d/BackupPC.conf
<Directory /usr/share/BackupPC/>
 # BackupPC requires valid authentication in order for the web interface to
 # function properly. One can view the web interface without authentication
 # though all functionality is disabled.
 #
 # htpasswd -c /etc/BackupPC/apache.users yourusername
 #
AuthType Basic
 AuthUserFile /etc/BackupPC/apache.users
 AuthName "BackupPC"
<IfModule mod_authz_core.c>
 # Apache 2.4
 <RequireAll>
 Require valid-user
 <RequireAny>
 Require local
 # --> In order to access only this specific IP
 Require ip 192.168.16
 # --> Uncomment for access everywhere
 # Require all granted
 </RequireAny>
 </RequireAll>
 </IfModule>
 <IfModule !mod_authz_core.c>
 AllowOverride All
 Order allow,deny
 Deny from all
 </IfModule>
</Directory>
Alias /BackupPC/images /usr/share/BackupPC/html/
 ScriptAlias /BackupPC /usr/share/BackupPC/sbin/BackupPC_Admin
 ScriptAlias /backuppc /usr/share/BackupPC/sbin/BackupPC_Admin

#Create username and password for BackupPC GUI

htpasswd -c /etc/BackupPC/apache.users backuppc

New password:
Re-type new password:
Adding password for user backuppc

#Restart your services

systemctl restart backuppc.service
systemctl restart httpd.service

#Then add your ssh key to your remote server.

su - backuppc
ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/BackupPC/.ssh/id_rsa):
Created directory ‘/var/lib/BackupPC/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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.

ssh-copy-id root@your-remote-ip

#Test it.

ssh root@your-remote-ip

#Then go

http://your-ip/BackupPC

#Enter your username and password that you created before #htpasswd -c /etc/BackupPC/apache.users backuppc

#Go “Edit Hosts”

#Click Add

#Then write an hostname or IP of your remote server

#Then click SAVE

#Refresh your page and select your host.

!!! DO NOT FORGET INSTALL RSYNC TO YOUR REMOTE SERVER !!!

#Click “Edit Config” for your selected host

#Select Xfer

#Add “*” value for “BackupFilesOnly” Box

#Write down your path name that you want to create backup in RsyncShareName Box

#Then Click Save.!

#Click Start FULL BACKUP

You are ready to go!

Windows SMB Backup

You can also take backup of your Windows clients using BackupPC

The basic steps are

  • Create a backuppc user in your domain/client with backup operator privileges
  • Create a share on client server and give read and list folder permissions to backuppc user
  • Create inbound firewall rule for BackupPC server
  • Test your configuration by typing from BackupPC Server
    • smbclient -U “Domain\backuppc” //CLIENTIP/ShareName
    • You will see smb prompt, try to list the files by typing “dir”
  • Add the client to backuppc and edit the credentials:
    • change Xfer method to SMB
    • enter username as DOMAIN\user
    • enter password
    • change share name from C$ to Share Name given