Hirdetés

Debian szünetmentes apcupsd

Ez a bejegyzés nem fért bele a többibe sehogyan se csak ezért került külön bejegyzésbe. Ha van szünetmentesünk és esetleg APC, akkor az apcupsd szolgáltatás fogja nekünk a szervereket leállítani. Ha elmegy az áram, akkor a szünetmentes usb porton keresztül összekötve "jelez" a rá rákötött szervernek, hogy elment az áram. Majd az apcupsd a többi szervernek is szól, hogy mi legyen a teendő (lekapcsolás, várakozás).

Természetesen a szünetmentesekben is be kell állítani a megfelelő értékeket, hogy mennyi ideig húzhatja az időt a szünetmentes a leállítás előtt és az apcupsd-ben is. Hogy mi a megfelelő mindenki maga tudja, mi azt találtuk ki, hogy kb 50%-ig merítjük csak le a szünetmenteseket. Azért, mert ha visszajön az áram, eltelik a bekapcsolásig történő várakozás, a szünetmentes áramot ad a szerverek alá, amit a szerverek egy bekapcsolással díjaznak (a szerverek bios-ában beállítható, hogy áram alá helyezés után, induljanak el), majd ha boot közben megint elmegy az áram, akkor legyen annyi tartalék, hogy újra letudja kapcsolni a szünetmentes a gépeket, jobb esetben ez eljátszható 2-3x-or, mielőtt teljesen elfogyna a töltés az akkumulátorból. Persze ahol van generátor pl egy szerverparkban, ott lehet engedni, had merüljenek az aksik úgyis hamarabb lesz áram :)

Debian phpldapadmin, adminer, munin, roundcube

Azért szükség van a kényelemre is, főleg a felhasználók körében, de azért nem baj az, ha a rendszergazdák se egész nap a konzolban pötyögnek. Így hát, pár webes grafikus felületű programot tegyünk telepítsünk fel, ha már van webszerverünk, használjuk is.

phpLDAPadmin

Kezdjük a felhasználók kezelésével a phpldapadmin-al. Telepítsük fel:
# apt-get install phpldapadmin

Az apache conf.d mappájába beállítja a megfelelő beállításokat. Nekünk egyedül az /etc/phpldapadmin mappában a config.php fájlt kell csak beállítanunk. A következő beállításokat kell csak megtennünk, ha egy szerverünket szeretnénk adminisztrálni. Ha többet szeretnénk, akkor értelemszerűen több ilyen bejegyzés blokkot kell csinálunk a fájlban:

$servers->newServer('ldap_pla');
$servers->setValue('server','name','Szerver neve');
$servers->setValue('server','host','10.0.0.1');
$servers->setValue('server','base',array('dc=ceg,dc=hu'));

Debian apache, php, mysql

A webszervereknek elég nagy százaléka fut ebben az összeállításban és van pár ezer leírás is már, hogyan kell beállítani őket, így nagyon nem mennék bele a részletekbe. Csak gyorsan a lényeget nézzük meg.

Tegyük fel az apache2-t:

apt-get install apache2

A ports.conf fájlban lehet beállítani, hogy milyen portokat használjon. Mi két portot használtunk egyet belső hálózatra használunk.

Listen 80
Listen 81

Az apache2.conf-ban vannak a beállítások. Sajnos pontos információm nincsenek, de ha jól rémlik, akkor alapértelmezetten is megfelelő beállításokkal fut.
A mods-available mappákban a különböző modulok találhatóak. Ezekből az aktuálisan használhatóak a mods-enable mappába át vannak linkelve.
A sites-available mappákban a virtuális host-ok találhatóak. Ezekből az aktuálisan használhatóak a sites-enable mappába át vannak linkelve. Egy ilyen fájl tartalma kb ilyesmi, de ettől lehet sokkal bővebben(vagy kevésbé) paraméterezve is:

Debian levelezés2 amavis, clamav, spamassasin és ami kimaradt

A mailq az átmeneti tároló ahol vannak a várakozó levelek, amik vagy postázásra fognak kerülni vagy csak pár darab próbálkozás után sikertelen lesz az elküldésük. Megnézni, hogy mennyi levél ragadt be, a mailq paranccsal lehet. Kiüríteni: postsuper -d ALL újra küldeni: postqueue -f parancsal lehet.

A leveleket mi a /home mappában tároljuk és azon belül egy Maildir nevezetű mappában. A maildirmake parancsot kiadva a mappában létrejön a könyvtár szerkezet, de a levelező kliensek általában létrehozzák maguknak.
Ami viszont a legfontosabb, hogy mindig is legyen megfelelő jogosultsága a felhasználóknak a saját mappájukra, lehetőleg legyen a saját tulajdonukban. Különben a nemfognak a leveleik se beérkezni és látni se fogják őket.

Ha nem muszáj ne indítsuk újra a konfigurálás során a postfix-et, elég lehet csak a beállításokat újra tölteni:

/etc/init.d/postfix reload

Debian levelezés Postfix, Courier, SSL

A levelezés egy kicsit összetett probléma ezért kezdjük egy szép (na jó lehet nem szép, de talán érthető) ábrával:

A postfix kezeli a szerverre bejövő és kimenő leveleket. A bejövő leveleket átadja az amavisd-new-nak, hogy ellenőrizze őket egy kicsit át. Az amavis előbb elküldi vírusellenőrzésre a clamav-nak, majd a spamassasin-nak, hogy megvizsgálja, hogy spam-ot tartalmaz-e a levél. Értelemszerűen az amavis karanténba rakja a nem megfelelő leveleket, a többit visszaadja a postfixnak. A postfix pedig a megfelelő felhasználó maildir mappájába fogja belerakni. A felhasználó pedig a courier szolgáltatáson keresztül tudja elérni a maildirből a leveleit. Levelet küldeni pedig a postfixen keresztül küldi ki. Röviden ennyi a levelezés, gyakorlatilag viszont kicsit bonyolultabb, de nem akartam nagyon bonyolult ábrát rajzolni így is eléggé zsúfolt :) Azt még hozzáteszem, hogy mi belső hálón nem használunk titkosítás, viszont kívülről csakis ssl-es kulcsal lehet a levelezéshez hozzáférni. Kezdjünk hozzá :)

Debian 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
}

Debian Proxy squid

Miután túl vagyunk a tűzfal konfiguráláson és az útvonal választáson állítsuk be a proxy-t, hogy legyen netünk is. Telepítsük fel:

apt-get install squid3

Az /etc/init.d/squid3/squid.conf fájlban találjuk a konfigurációs lehetőségeinket.

Az squid az összes hálókártyán figyel alapértelmezetten. Vegyük fel milyen portokat használjon:
http_port 3128 transparent
http_port 8080 transparent

Mi ezt a kettőt választottuk lehetett volna többet vagy kevesebbet is. Ugye a tűzfalban mi a 80-as portról érkező csomagokat a 3128-ra irányítottuk át, de a 8080-asra lehet lehet.

Ezután következnek a log fájlok elérési útja, majd a cache méretek és mappák helyei. Alapértelmezetten szoktuk használni őket, nem nagyon állítunk rajtuk, mert alapból megfelelőek. A domain neveket azért írjuk át.

access_log /var/log/squid3/access.log squid
buffered_logs on
cache_mem 100 MB
cache_mgr admin@mail.ceg.hu
cache_dir ufs /var/spool/squid3 200 16 256
coredump_dir /var/spool/squid3
error_directory /usr/share/squid3/errors/Hungarian
hosts_file /etc/hosts
icp_port 0
ie_refresh on
log_icp_queries off
redirect_rewrites_host_header off
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
visible_hostname proxy.ceg.hu

Debian Route táblák útvonalválasztás

Ha egyetlen internet vonalunk van, akkor teljesen egyszerű dolgunk van. Viszont ha 2 vagy több internet vonallal rendelkezünk máris ránk szakad egy csomó probléma. Lehet terhelés elosztást csinálni(load balancing), de ez igazán csak két fix ip-s internet vonal esetén jó. Mi abban a szerencsétlen esetben járunk, hogy a két internet vonalunkból csak az egyik fix ip-s. A kliensek nagy részének nincs szüksége a fix-ip-re. Azt szeretnénk elérni, hogy megmondhassuk a klienseknek, hogy melyik mehetnek az egyik vonalon és melyek a másik vonalon. Persze így bukjuk a dinamikus terhelés elosztást, de kalkuláljunk ügyesen, hogy melyik netre mennyi gépet szánunk.

Amikor bekötöttük a két internet vonalat szerverbe, a nagy öröm gyorsan elfog fogyni, amikor rájövünk, hogy nincs is internetünk gyakorlatilag a szerveren. A probléma az útvonalválasztásnál keresendő. Ha kiadjuk a route -n parancsot akkor furcsa dolgot fogunk találni. A flags oszlopban ha figyeljük két olyan sorunk van amiben UG paraméter szerepel. Ez azt takarja csak, hogy két átjárónk van a szerverben, magyarul a két internet vonal átjárója. A szerencsétlen kliensek és a szerver se tudja, így eldönteni, hogy merre is menjenek a csomagok.

Debian Tűzfal iptables

A rendszergazdákat rémálmaikban sokszor kísérti az a gondolat, hogy miért is ilyen bonyolult ez az iptables? Annyira nem bonyolult, csak nem érthető meg pár nap alatt :)

Az iptables debian-ban alapból fel van telepítve és alapértelmezetten fut is, így nem nagyon kell vele törődni. Ha mégse hisszük el, akkor az iptables -L paranccsal látni fogunk pár sort, de hogy miket?

Az iptables-ban táblák vannak amikben különböző láncok mentén definiálhatunk szabályokat. Ezekre a szabályokra illeszkedő adatcsomagokkal pedig az fog történni amit szeretnénk.

A következő táblák léteznek: raw,mangle,nat,filter.

- raw tábla: PREROUTING és OUTPUT láncot tartalmaz és megjelölhetjük benne azokat a csomagokat, amelyekre nem kérünk kapcsolatkövetést. Ettől többet viszont nem tudok erről írni, nem volt rá még szükség semmilyen formában.

- mangle tábla: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING láncot tartalmat és csomag módosításokat lehet végezni vele. Csomagok megjelölésére is lehet használni. Az internet vonal kiválasztásához fogjuk használni.

Debian Samba fájlmegosztás, tartomány

Ideje megvalósítani a fájlmegosztást és a tartományt. Telepítsük fel a samba-t:

apt-get install samba samba-doc smbclient smbldap-tools

Az /etc/samba/smb.conf fájlban találjuk a konfigurációs beállításainkat. Mi az ldap-ból fogjuk az adatokat kinyerni, de lehetne más megoldást is választani, de mi most azzal nem foglalkozunk.

Nagyon sok beállítási lehetőség van, csak a számunkra lényegesebbeket sorolom fel. A global szekcióban a mindenre érvényes beállításokat találjuk. Állítsuk be a logolási szintet majd, hogy hova mentse a logfájlokat és a méretüket. Általában ezekkel nem kell törődni, mert alapból megfelelőek.
[global]

; include = /home/samba/etc/smb.conf.%m

log level = 3 passdb:5 auth:10

log file = /var/log/samba/log.%m
max log size = 1000
max mux = 200
; syslog only = no
syslog = 0
panic action = /usr/share/samba/panic-action %d