Kali ini saya akan membahas cara membackup data di windows secara remote menggunakan program rsnapshot.

Teruntuk pembaca yang belum faham apa itu rsnapshot dan bagaimana cara menginstal sekaligus mengkonfigurasikan server backup rsnapshot, ada baik nya mengunjungi tulisan saya sebelumnya disini https://agusprasetia.com/backup-server-file-system-menggunakan-rsnapshot/.

Spesifikasi Server Backup dan client backup.
Backup server:
OS : CentOS 7 64 bit minimal system
IP address : 192.168.88.172/24

Client Windows:
OS : Windows 10 32 bit
IP address : 192.168.88.200/24

INSTALASI RSYN MENGGUNAKAN CYGWIN

Dikarenakan banyaknya versi windows maka tutorial ini saya buat se-generik mungkin sehingga bisa bersifat universal bisa aplikasikan di semua versi windows, terutama untuk windows 10 dengan patch terakhir sudah mengadopsi WSL (Windows Subsystem fo Linux) sehingga untuk program rsync sudah dimasukan secara natif di windows.
Tutorial ini saya akan menggunakan paket rsync yang sudah di bundle dalam aplikasi cywin https://www.cygwin.com/ .

Buka halaman www.cygwin.com dan unduh installer setup-x86_64.exe atau setup-x86.exe sesuaikan dengan versi windows anda.
Klik berkas setup lakukan instalasi seperti biasa, kita hanya menginstall paket-paket yang di perlukan saja seperti rsync dan cygrunsrv.
Ikuti petunjuk dalam gambar di bawah.

KONFIGURASI RSYNC DAEMON DAN MEMBUAT WINDOWS SERVICE

Saat menjalankan rsync sebagai daemon/windows service, “modules” harus diset di client yang akan dipetakan ke direktori tertentu.
Kemudian, rsnapshot terhubung ke modul yang telah di set.
Bisa dibuatkan lebih dari satu modul pengaturan dalam satu rsync service. Untuk konsep “modul” itu sendiri agak mirip dengan konsep windows network share/samba share di jaringan Windows.

Buat 2 buah berkas baru rsyncd.conf dan rsyncd.secret di /etc/rsync/.

[windows10]$ nano /etc/rsync/rsyncd.conf
use chroot = false
strict modes = false

[windows10]
        auth users = rsnapshot
        path = /cygdrive/c/
        read only = false
        secrets file = /etc/rsync/rsyncd.secret
                port = 873
                log file = /var/log/rsync.log
                pid file = /var/run/rsync.pid

[windows10]$ nano /etc/rsync/rsyncd.secret
rsnapshot:agusprasetia

Keterangan berkas di atas adalah:
– Nama module adalah windows10
– Nama pengguna rsnapshot
– Lokasi berkas untuk password /etc/rsync/rsyncd.secret
– Password “agusprasetia

Jalankan rsync daemon di windows dengan cara masuk ke cygwin shell

[windows10]$ rsync --daemon --config=/etc/rsync/rsyncd.conf

Bisa juga dengan menjalankan melalui windows service dengan membuat service rsync menggunakan cygrunsrv.
Klik kanan cygwin Terminal lalu Run As Administrator

[windows10]$ cygrunsrv.exe -I "Rsyncd" -p /cygdrive/c/cygwin/bin/rsync.exe -a "--config=/cygdrive/c/cygwin/etc/rsync/rsyncd.conf --daemon --no-detach" -f "remote sync daemon service"
Perintah list windows service yang dibuat menggunakan utiliti cygrunsrv
# cygrunsrv --list
Rsyncd

Perintah query detail service yang dibuat menggunakan utiliti cygrunsrv
# cygrunsrv --query Rsyncd
Service             : Rsyncd
Display name        : Rsyncd
Description         : remote sync daemon service
Current State       : Running
Controls Accepted   : Stop
Command             : /cygdrive/c/cygwin64/bin/rsync.exe --config=/cygdrive/c/cygwin64/etc/rsyncd.conf --daemon --no-detach

Perintah delete windows service yang menggunakan utiliti cygrunsrv
# cygrunsrv --remove Rsyncd

KONFIGURASI SERVER BACKUP

Login ke terminal di server backup menggunakan user rsnapshot.
Jalankan perintah rsync secara manual terlebih dahulu untuk memastikan koneksi bagus dan otentikasi berhasil.

[rsnapshot]$ rsync -avv rsync://[email protected]/windows10/SOURCES/  ~/TEST-DIR/
opening tcp connection to 192.168.88.200 port 873
sending daemon args: --server --sender -vvlogDtpre.iLsfxC . windows10/SOURCES/  (5 args)
receiving incremental file list
created directory /media/BackupDisk/BACKUPS/TEST-DIR
delta-transmission enabled
./
cygwin-1.png
cygwin-2.png
cygwin-3.png
cygwin-4.png
cygwin-5.png
cygwin-6.png
cygwin-7.png
cygwin-terminal.png
setup-x86.exe
Camera Roll/
Camera Roll/desktop.ini
Saved Pictures/
Saved Pictures/desktop.ini

sent 248 bytes  received 1,652,030 bytes  157,359.81 bytes/sec
total size is 1,650,766  speedup is 1.00

Setelah hasil pengecekan sudah berjalan tanpa kendala, saatnya kita menambahkan konfigurasi di server dengan menambahkan baris di bawah ini kedalam /etc/rsnapshot.conf.

backup  rsync://[email protected]/windows10/SOURCES/   WINDOWS10/    rsync_long_args=--password-file=/etc/rsnapshot.sec

Buat berkas baru untuk menyimpan password /etc/rsnapshot.sec

[root]# echo 'agusprasetia' > /etc/rsnapshotsec
[root]# chown rsnapshot.rsnapshot /etc/rsnapshot.sec
[root]# chmod o-r /etc/rsnapshot.sec
Berkas log rsnapshot daily

[2019-08-01T00:53:29] /bin/rsnapshot daily: started
[2019-08-01T00:53:29] echo 30456 > /tmp/rsnapshot.pid
[2019-08-01T00:53:29] mkdir -m 0755 -p /media/BackupDisk/BACKUPS/daily.0/
[2019-08-01T00:53:29] /usr/bin/rsync -av --password-file=/etc/rsnapshot.sec rsync://[email protected]/windows10/SOURCES/ /media/BackupDisk/BACKUPS/daily.0/WINDOWS10/
[2019-08-01T00:53:34] touch /media/BackupDisk/BACKUPS/daily.0/
[2019-08-01T00:53:34] rm -f /tmp/rsnapshot.pid
[2019-08-01T00:53:34] /bin/rsnapshot daily: completed successfully

Jalankan perintah rsnapshot daily sebagai user rsnapshot, jika semuanya sesuai tutorial ini seharusnya proses sikronisasi berjalan dengan baik dan tanpa masalah yang berarti seperti isi dari berkas log diatas.

WINDOWS FIREWALL SETUP

Menjalankan rsync daemon tanpa tunneling menggunakan secure channel(ssh) tentunya membuka sedikit lubang keamanan di server kita, walaupun ketika proses login, otentikasi sudah menggunakan MD4-based challenge-response system.
Pertama kali menjalankan rsync daemon windows akan meminta kita meng-allow program rsync daemon melewati firewall sehingga server backup bisa terkoneksi ke rsync daemon di windows melalui port 873 namun siapa saja bisa melakukan koneksi ke port 873 ini dan melakukan brute force attack untuk mendapatkan akses ke server.
Tentu saja hal ini sangatlah tidak kita inginkan, oleh karenannya kita harus me-limit ip address mana saja yang bisa mengakses rsync daemon menggunakan standart windows firewall.

Pertama-tama kita hapus rules firewall rsync yang sudah ada

Search cmd.exe dan Run As Administrator kemudian ketikan perintah berikut yang berfungsi membuka port 873 hanya bisa di akses oleh backup server dengan ip address 192.168.88.172.

netsh advfirewall firewall add rule name="Rsync Port" dir=in action=allow protocol=TCP localport=873 remoteip=192.168.88.172

Sekarang rsync daemon sudah berfungsi dan aman.
Selamat mencoba, Salam

One thought on “Backup Windows File System Menggunakan Rsnapshot”

Leave a Reply

Your email address will not be published. Required fields are marked *