Rdiff-backup
(→Hátrányok) |
(→További beállítások) |
||
231. sor: | 231. sor: | ||
command="sudo /usr/bin/rdiff-backup --server",from="<BACKUPSZERVER IPCIME>" <RSA PUBLIKUS KULCS> |
command="sudo /usr/bin/rdiff-backup --server",from="<BACKUPSZERVER IPCIME>" <RSA PUBLIKUS KULCS> |
||
</pre> |
</pre> |
||
+ | |||
+ | Ezzel engedélyezzük a backup szervert, hogy csatlakozzon a klienshez és futtassa a "sudo /usr/bin/rdiff-backup --server" parancsot. |
A lap 2009. december 11., 22:30-kori változata
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
- A teljes backup, tükrözés formájában áll rendelkezésre, ezért nagyon gyorsan visszállítható belőle bármi.
- A különbségek mindig az előző mentéshez képest készülnek, így gyorsan megtörténik a biztonsági mentés
- Az különbségek tömörített formában vannak, így kis helyet foglalnak
- Rsync-re épül, így nincs egy teljesen új megoldás alapokról megvalósítva az összes gyermekbetegségével együtt
- Ssh-t használ a biztonságos kapcsolathoz, ami szintén nincs benne feleslegesen és hibásan újraimplementálva
- Már létezik natív windowsos kliens is hozzá
1.3.2 Hátrányok
- Nem folyamatos a backup, hanem eseti.
- A teljes mentés tömörítés nélkül, tükrözés formájában van jelen, így sok helyet foglal.
- Nem tudja kódolt formában tárolni a biztonsági mentést (mint pl. duplicity)
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.
2.4.1 Példa a backup scriptekre
gep01:
#!/bin/bash EXCLUDES="--exclude /dev --exclude /proc --exclude /tmp --exclude /sys" echo "Removing increments older than 30 days..." /bin/su <szervernév> -m -c "/usr/bin/rdiff-backup --force --remove-older-than 30D /home/<szervernév>/backup" echo "Backing up <szervernév>..." /bin/su <szervernév> -m -c "/usr/bin/rdiff-backup $EXCLUDES <szervernév>-backup::/ /home/<szervernév>/backup"
gep02:
#!/bin/bash EXCLUDES="--exclude /dev --exclude /proc --exclude /tmp --exclude /sys --exclude /opt" echo "Removing increments older than 30 days..." /bin/su <szervernév2> -m -c "/usr/bin/rdiff-backup --force --remove-older-than 30D /home/<szervernév2>/backup" echo "Backing up <szervernév2>..." /bin/su <szervernév2> -m -c "/usr/bin/rdiff-backup $EXCLUDES <szervernév2>-backup::/ /home/<szervernév2>/backup"
Ezt követően a cronból egy gyűjtőscriptet használhatunk:
#!/bin/bash date time /root/gep01 date time /root/gep02 date
A gyűjtőscript használata azért célszerű, mert így a gépeket sorban menthetjük, folyamatosan és egyenletesen van terhelve a backup szerver. A date és time parancsok segítségével láthatjuk az egyes backupok kezdési és befejezési idejét, valamint, hogy mennyi ideig tartott a procedúra.
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>
Ezzel engedélyezzük a backup szervert, hogy csatlakozzon a klienshez és futtassa a "sudo /usr/bin/rdiff-backup --server" parancsot.