Debian Squeeze ntp, logrotate, rkhunter, rsync, cron, ssh

Most pár kisebb programot fogunk feltenni, amikre szükség van és lehet őket agyon konfigurálni is, de alapértelmezetten is jó szolgálatatot tudnak tenni.

A pontos idő fontos dolog egy szerveren, telepítsük fel az ntp-t erre a célra, hogy szinkronizálja az időt. Nem nagyon szoktunk semmit se konfigurálni rajta.
apt-get install ntp

A logok előfordul, hogy nagyon megugranak és képesek betelíteni a /var partíciónkat. Ennek a problémának a kiküszöbölésére hozták létre, logrotate csomagot, amivel lehet szabályozni, hogy milyen időközönként tömörítse be a logfájljainkat és meddig őrizze őket, mielőtt letörölné őket.
apt-get install logrotate

A logrotate.d mappában találhatóak a konfig fájlok. Nekünk az nscd szokott túl sok logot termelni. Hozzunk létre ebbe a mappába egy nscd nevű fájlt az alábbi tartalommal:

/var/log/nscd.log {
daily
compress
delaycompress
rotate 2
missingok
}

Ez a beállítás naponta rotálja a logokat, két szintet vagyis 2 fájlt csinál az aktuálison kívül, mielőtt törölné őket.

Ha bejutnának a rendszerünkbe a kevésbé kedves emberek, akkor van az a furcsa szokásuk, hogy módosítanak a rendszerünkben bizonyos fájlokat, futó szolgáltatásokat. Ezeket a módosításokat észleli az rkhunter nevű program.

apt-get install rkhunter

Ez minden nap küld nekünk egy emailt, hogy mi az aktuális tényállás a rendszerünkben. Az /etc/rkhunter.conf fájlban találhatóak a beállítások, mi nem módosítottunk rajtuk.

Szükséges a backup is a rendszerben. Mi azt az megoldást találtuk ki, hogy a backup egy másik szerverre készül egy másik épületben. Viszont a backup szerver tartalmát pedig a mi első szerverünkre tükrözzük. (sőt mi még egy harmadikra is backupolunk, de ez most lényegtelen)

Telepítsük fel minden gépre az rsync-et:
apt-get install rsync

Két féle lehetőség van. Az egyik az, hogy "magára" húzza a másik szerver tartalmát, vagy "áttolja" saját magát a másik szerverre.
Mi a következő parancsot állítottuk össze és azon a gépen adjuk ki amelyikre másolunk:

rsync -alptgEzv -e ssh --delete-after szerver:/root /home/backup
-------------------------------------- honnan ------ hova

A paraméterek jelentései megtalálhatóak ezen a linken:[link]

A cronba beütemeztünk egy fájlt aminek ez a tartalma egyszerűen:

#!/usr/bin/php <?php $c="parancs"; system($c); ?>
Persze a parancs helyére a fenti hosszú összeállított parancsot írjuk. (nem kötelező php-ben írni, csak nekem az volt legegyszerűbb :) )

Természetesen itt annyira bonyolítjuk meg a dolgokat amennyire csak szeretnénk. Csinálhatunk heti, havi, napi mentéseket többszörösen is, ahogy kedvünk tartja, csak győzzük tárhellyel.

A cron-ról még nem is beszéltünk. Ez az ütemező a linux-ban. Ha szeretnénk valamit rendszeres időközönként lefuttatni, akkor erre van szükségünk. Telepíteni nem szükséges, mert alapból fent van.
Ha változtatunk a beállításokon, akkor /etc/init.d/cron restart parancsot adjuk ki.

A config fájlt az /etc mappa gyökerében találjuk a crontab fájlban.

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
23 4 * * * root /usr/bin/sa-update --no-gpg &01>/dev/null
* * * * * root /root/_scriptek/cron/ping &01>/dev/null

perc, óra, nap, hónap, a hét hanyadik napja, kinek a jogában futhat, parancs vagy fájlelérési út

Újra indítani így lehet: /etc/init.d/cron restart

Ahhoz, hogy eltudjuk érni távolról a szerverünket és ne kelljen előtte ülni vagy, hogy a szervereink eltudják érni egymást biztonságos kapcsolaton nem árt, feltenni az ssh-t.

apt-get install ssh

Sok mindent lehet varázsolni vele, de mi csak annyit szoktunk csinálni, hogy az /etc/ssh/sshd_config fájlban átírjuk a port-ot másra. Majd a tűzfalban is lecseréljük az ssh portot. Utána már csak ezt az új portot kell a putty-ban megadni, ha csatlakozni szeretnénk. De ez elég ahhoz, hogy kevésbé zaklassanak minket a próbálkozók.

A szervereink között sose árt ha működik egy titkosított kapcsolat. Mi most azt csináljuk meg, hogy root-al áttudjanak jelentkezni a szerverek egymásra, ha szükséges valamelyik szolgáltatásnak.

1. Amivel csatlakozni akarsz azon a gépen kulcs generálása:
ssh-keygen -t rsa -b 1024
(ha csak entert ütsz mindig, akkor jelszó nélküli kapcsolatot tudsz csinálni)

2. /root/.ssh/id_rsa.pub publikus kulcs pendrive-ra/hálózatra másolása

3. amelyikre csatlakozni akarsz azon a gépen a /root/.ssh/authorized_keys fájl végére kell fűzni az új kulcsokat:

cat id_rsa.pub>>.ssh/authorized_keys

4. Ha már próbálkoztunk átjelentkezni vagy vannak régi kulcsaink, akkor amivel csatlakozni akarsz azon a gépen a /root/ssh/known_hosts -ból törölni kell a rossz kulcsokat. Azokat a sorokat amelyeket hibásnak ír átjelentkezéskor.

Ezután már simán mennie kell, természetesen az ellenkező irányban is meg kell ezt lépni ahhoz, hogy menjen onnan is az átjelentkezés.

ntp
logrotate
Rkhunter
Rsync wikipedia
rsync
cron

2013.02.25.