A magas rendelkezésre állás egyik pillére a szerverek biztonságossá tétele a külső támadásokkal szemben. A legfontosabb a megfelelő biztonsági beállítások használata és a biztonságos logolás kialakítása arra az esetre, ha mégis valami baj történne és feltörnék a rendszerünket.
A szerverek biztonságának növelését az alábbi módokon érhetjük el:
- szigorú tűzfal beállítások, támadások logolása (Iptables, Snort)
- daemonok rendszeres biztonsági frissítése (ezáltal csökkenthetjük a direkt buffer-overflow típusú támadások kockázatát)
- daemonok biztonságos beállítása (Apache config és php.ini, Postfix/Dovecot SSL használata)
- minden tevékenység naplózása
Cikksorozatunk első részében a logolással (naplózás) fogunk foglalkozni. Azon felül, hogy minden eseményt szeretnénk rögzíteni távoli szerveren is, arról is szeretnénk tájékoztatást kapni, ha valaki bejelentkezik a szerverünkre.
1. Loginok és shell exec-ek logolása /etc/profile és /etc/bash.bashrc módosításával:
echo ‘LOGIN ALERT – Shell Access on:’ `date` by `who am i` | mail -s „$(hostname) Shell Access Alert” a@b.com
2. Távoli logolás beállítása rsyslog-al
A távoli szerver config file-jába írjuk be a következőket, ezáltal beállítjuk, hogy az rsyslog szerver titkosított TCP streameket fogadjon az 514-es porton:
$ModLoad imtcp
$InputTCPServerRun 514
Majd a lokális, távolról naplózandó szerveren, állítsuk be a következőket a /etc/rsyslog.conf-ban:
# remote logging start
$WorkDirectory /var/tmp
$ActionQueueType LinkedList
$ActionQueueFileName srvrfwd
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
*.* @@REMOTE_IP:514
# remote logging ends
A daemonok újraindítása után, a szerverünk nem csak helyileg fogja naplózni az eseményeket, hanem a távoli rsyslog szerverre is elküldi azokat!