Rdiff-backup

A Unix/Linux szerverek üzemeltetése wikiből
A lap korábbi változatát látod, amilyen Alcatras (vitalap | szerkesztései) 2009. december 11., 21:35-kor történt szerkesztése után volt.

Tartalomjegyzék

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

Személyes eszközök