Rdiff-backup
Tartalomjegyzék[elrejtés] |
1 Bevezető
1.1 Biztonsági mentés fogalma, célja
- A backup-megoldás elsődleges célja biztonsági mentés készítése a rendszer adott állapotáról
- A biztonsági mentés alapvető védelmet jelent bizonyos hardver- és szoftverhibák ellen
- Emberi hibák ellen is véd (pl. a RAID-el ellentétben)!
- Célja az adatok tárolása, naplózása és helyreállítás lehetőségének biztosítása
(Forrás: https://unixlinux.tmit.bme.hu/Backup)
1.2 Backup megoldások
- Teljes mentés
- Inkrementális mentés
- Kumulatív mentés
- Differenciális mentés
(Forrás: https://unixlinux.tmit.bme.hu/Backup#Backup_megold.C3.A1sok)
1.3 Rdiff-backup
Az rdiff-backup differenciális mentést hajt végre, a hagyományostól kissé eltérő formában. Hagyományosan, egy "régen" készült teljes mentéshez képest lennének a különbségi mentések, ahol csak az előző különbséghez képesti változásokat tartalmazza a következő mentés. Jelen esetben ez kicsit máshogy történik, mert a teljes mentés, mindig egy tükrözése az aktuális állapotnak, és a korábbi állapotok visszaállíthatósága az azokhoz képesti különbségek tárolásával biztosított. Ennek a megoldásnak az az előnye, hogy a legutolsó mentés nagyon gyorsan visszaállítható, gyakorlatilag egy visszamásolással. Minél régebbi mentést szeretnék visszaállítani, annál tovább fog tartani a különbségek összefűzése, így a backupból való visszaállítás. Az első mentés egy teljes mentés, ez hosszú ideig tart, de az differenciák ettől kezdve nagyjából azonos idő alatt készülnek el és jelentősen gyorsabban, mint a teljes mentés.
1.3.1 Előnyök
1.3.2 Hátrányok
2 A backup szerver telepítése
Ez a leírás alapértelmezett beállításokkal telepített Debian Lenny 5.0 rendszert feltételez, úgy szerver, mint kliens oldalon.
Csomagok telepítése:
# apt-get update # apt-get install rdiff-backup sudo openssh-server fail2ban # apt-get install hddtemp smartmontools munin-node munin-plugins-extra
- rdiff-backup
- A backup program.
- sudo
- Ahhoz szükséges, hogy az rdiff-backup-ot szerver módban futtathassuk a célrendszeren. Mivel a backup szerverről önmagáról is akarunk biztonsági másolatot készíteni, ezért ezen a rendszeren is szükség van erre.
- openssh-server
- A távoli bejelentkezéshez.
- fail2ban
- A bejelentkezési próbálkozások letiltására.
- hddtemp, smartmontools, munin-node, munin-plugins-extra
- A rendszer állapotának megfigyelésére.
2.1 SSH szerver beállítása
# nano /etc/ssh/sshd_config
PermitRootLogin no TCPKeepAlive yes AllowUsers <saját felhasználó> lhbackup
- PermitRootLogin
- Letiltjuk a root bejelentkezést SSH-n keresztül
- TCPKeepAlive
- Megbízhatóbban felismerjük a TCP kapcsolat hibáját
- AllowUsers
- Ezzel a direktívával korlátozzuk az SSH-n keresztül csatlakozó felhasználókat. Itt csak a saját felhasználónkat - amivel a szerver irányítását távolról végezzük - és a backupgép saját mentésének felhasználóját engedélyezzük!
2.2 iptables alapkonfig
# nano /etc/init.d/iptablesbuild
#!/bin/bash # SETUP DEFAULT POLICIES iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P POSTROUTING ACCEPT iptables -t mangle -P OUTPUT ACCEPT # FLUSH TABLES iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # ALLOW LOOPBACK INTERFACE iptables -I INPUT -i lo -j ACCEPT iptables -I OUTPUT -o lo -j ACCEPT # ALLOW SSH iptables -I INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT # ALLOW OUTGOING CONNECTIONS iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -I OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # LOG TRIALS iptables -I INPUT -m limit --limit 1/s -j LOG # RESTART FAIL2BAN /etc/init.d/fail2ban restart
Létrehozzuk a symlinket az Init részére:
# ln -s /etc/init.d/iptablesbuild /etc/rc2.d/S20iptablesbuild
2.3 Egy gép felvétele a backupolandó kliensek közé
Felhasználó felvétele:
# adduser --gid 65534 --disabled-password <szervernév>
RSA kulcspár generálása (4096 bites, RSA kulcspár):
# su <szervernév> $ cd ~ $ ssh-keygen -t rsa -b 4096
Backup felhasználó profiljának szerkesztése
nano /home/<szervernév>/.ssh/config
host <szervernév>-backup hostname <szerverelérés, domain vagy IP> user lhbackup identityfile /home/<szervernév>/.ssh/id_rsa compression yes cipher blowfish protocol 2 port 22
- hostname
- Ezzel a beállítással adhatjuk meg a távoli szerver elérhetőségét. Amivel megcímezhetjük.
- user
- A távoli szerveren lévő backup felhasználó neve. Lásd: A kliens telepítése
- compression
- Ezt a helyi gép backup beállításánál kikapcsolhatjuk. Hálózaton keresztül hasznos lehet.
2.4 Backup scriptek
A backup scriptek az rdiff-backup paraméterezésének megfelelően egyszerűen elkészíthetőek. Ezeket aztán cronból futtathatjuk.
3 A kliensek telepítése
Ez a leírás alapértelmezett beállításokkal telepített Debian Lenny 5.0 rendszert feltételez, úgy szerver, mint kliens oldalon.
Csomagok telepítése:
# apt-get update # apt-get install rdiff-backup sudo openssh-server
Backup felhasználó felvétele:
# adduser --gid 65534 --disabled-password lhbackup # chmod 0700 /home/lhbackup
Ha a backupoldandó gépen van AllowUsers direktíva használva az openssh-server beállításánál, akkor ott fel kell tüntetni az lhbackup felhasználót. Ha más módon korlátozva van a felhasználók bejelentkezése, akkor ott engedélyezni kell az SSH logint ennek a felhasználónak.
3.1 Sudo beállítása
nano /etc/sudoers
lhbackup ALL=NOPASSWD:/usr/bin/rdiff-backup --server
3.2 További beállítások
A backup szerveren elkészített kulcspár nyilvános kulcsát át kell hozni a backupolandó szerverre. Ez a backup szerveren a jelenlegi leírás szerint a/home/<szervernév>/.ssh/id_rsa.pubhelyen és néven található. Az áthozott nyilvános kulcsot a backupolandó kliensen a
/home/lhbackup/.ssh/authorized_keys2fileba kell helyezni. Ennek a filenak lhbackup tulajdonában kell lennie.
Ez után a filet a következő módon kell szerkeszteni:
# nano /home/lhbackup/.ssh/authorized_keys2
command="sudo /usr/bin/rdiff-backup --server",from="<BACKUPSZERVER IPCIME>" <RSA PUBLIKUS KULCS>