4. IP routera GW-1 przydzielany z DHCP (Zmienny)
Opisze tu tylko zmiany w stosunku do konfiguracji z punktu AD1 bez specjalnego opisywania tego, co już zostało omówione powyżej.
Któryś z routerów GW-1 lub GW-2 musi mieć stały adres IP. W innym wypadku nie wiadomo gdzie wysłać backup. Oczywiście można sobie z tym poradzić korzystając z DDNS, ale ja zakładam w tym scenariuszu sytuację, w której GW-1 ma adres dynamiczny, natomiast GW-2 stały publiczny adres IP.
W tym wariancie dane będą wypychane z komputera, który nazwaliśmy serwerem i będą „lądowały” na kliencie z tą różnicą, że klient będzie rozpoczynał cały proces (odwrotnie, niż w poprzednim przypadku, gdzie serwer był inicjatorem). Odwróci się więc rola i konfiguracja serwerów, ale aby nie zmieniać już teraz nazw maszyn pozostanę przy dotychczasowej nomenklaturze.
4.1. Konfiguracja klienta
W tym scenariuszu klient udostępnia katalog, do którego będzie wgrywany backup z serwera, który chcemy backup’ować.
Na kliencie instalujemy xinetd
# yum install xinetd
Tworzymy i edytujemy plik /etc/rsyncd.conf
#vi /etc/rsyncd.conf
max connections = 2
log file = /var/log/rsync.log
timeout = 300
[SyncIN]
comment = Backup Folder
path = /sciezka/do/katalogu/backupu
read only = no
list = yes
uid = nobody
gid = nobody
hosts allow = 1.2.3.4/32
auth users = Backup123456
secrets file = /etc/rsyncd.secrets
- read only – Tym razem będziemy „wpychać” backup na klienta, musimy więc mieć możliwość zapisu
Tworzymy plik z hasłem i zabezpieczamy go przed dostępem osób niepowołanych
# echo Backup123456:moje_hasło > /etc/rsyncd.secrets
# chown root:root /etc/rsyncd.secrets
# chmod 600 /etc/rsyncd.secrets
Edytujemy plik „/etc/xinetd.d/rsync” i zmieniamy linię „disable = yes” na „disable = no”
# cat /etc/xinetd.d/rsync
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
Sprawdzamy czy w pliku „/etc/services” jest następująca linia. Jeżeli nie – dodajemy ją.
rsync 873/tcp
Restartujemy demona xinetd
# /etc/init.d/xinetd restart
Sprawdzamy czy rsync nasłuchuje na swoim porcie
# netstat -nlp | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 22338/xinetd
4.2. Konfiguracja serwera
Na Serwerze tworzymy skrypt wykonujący backup
#mkdir /Scripts
#vi /Scripts/sync_servers
#PUSH
/usr/bin/rsync -avz --delete /scieżka/do/danych/które/mają/być/backupowane/ Backup123456@4.3.2.1::SyncIN --password-file /Scripts/rsyncd.secret
Tworzymy i zabezpieczamy plik z hasłem:
# echo moje_hasło > /Scripts/rsyncd.secret
# chown root:root /Scripts/rsyncd.secret
# chmod 600 /Scripts/rsyncd.secret
Ustawiamy zadanie w cron’ie
0 22 * * * /Scripts/sync_servers >> /Scripts/sync_`/bin/date +\%Y\%m\%d-\%H\%M`.log
4.3. Konfiguracja routera GW-2
Identyczna jak w poprzednim przypadku routera GW-1. Zmienią się oczywiście numery IP
(config)# ip nat inside source static tcp 10.10.1.1 873 4.3.2.1 873 extendable
- 10.10.1.1– IP Serwera w sieci wewnętrznej
- 4.3.2.1 – Zewnętrzny adres IP routera GW-2
5. Podsumowanie
Backup będzie wykonywał się od tej chwili automatycznie. W którymś z kolejnych odcinków opiszemy jak automatycznie powiadamiać mailem o tym, że któryś z serwerów był niedostępny lub że backup z którejś maszyny nie wykonuje się poprawnie.
Aby sprawdzić czy skrypty działają poprawnie, warto uruchomić je najpierw z konsoli. Pozwoli to wychwycić błędy w konfiguracji (złe hasła, ścieżki, czy nazwy użytkowników).
Ave Lama
