5.2.7.1. Az SMTP szolgáltatás
A levelezés SMTP részét megoldhatnánk Sendmail használatával, amely a FreeBSD alaprendszerének szerves része, de inkább egy rugalmasabb (és könnyebben konfigurálható) kiszolgálót fogunk használni: a postfix programot. Első dolgunk tehát, hogy feltelepítsük a postfix programot, LDAP támogatással (OPENLDAP legyen megjelölve, kell ezen túl még a DOVECOT, a SASL2 és a TLS, a Dovecot esetén válasszuk ki az LDAP és a MANAGESIEVE opciót):
Mint láthatjuk, a ports adatbázisban általában a verziószám nélküli csomagnév a legfrissebb stabil kiadás (vannak kivételek!), de ha szükségünk lenne egy régebbi kiadásra, akkor azt is fel tudjuk telepíteni. A postfix engedélyezéséhez módosítanunk kell a jail rc.conf állományát:
Mielőtt elindítanánk a postfix programot, szükséges az aliases adatbázisát rendbe tenni, a /etc/aliases.db friss dátummal kell szerepeljen a listában:
Ezek után újraindíthatjuk a jail-t, és kipróbálhatjuk, működik-e a postfix:
Mint látjuk, már a logserver jail-be loggol, mivel, ezt örökölte a template jail-től (figyeljünk oda, hogy a helyes DNS beállítást másoljuk át ebbe a jail-be is, mivel azt nem örökli a template fájlrendszerből).
5.2.7.1.1. Az aliases beállítása
A postfix beállítását az aliases adatbázisával kezdjük. Az aliases egy egyszerű listát kezel arról, hogy egy konkrét felhasználó milyen egyéb neveken kaphat levelet. Ha belenézünk a /etc/aliases fájlba, akkor láthatjuk, hogy a root kap meg szinte minden levelet, a root pedig a saját email címünk aliasa:
Mint láthatjuk, ha küldünk egy levelet a postmaster címre, akkor az aliases alapján a root kapja meg a levelet. Nem akarunk állandóan ebben az állományban turkálni, ezért ezt LDAP alá szervezzük. Kezdő lépésként meg kell adnunk az LDAP szerverünk címét és azt a domént, ahol keresni fogunk (ezen még módosítani fogunk):
Ezek után módosítanunk kell a postfix konfigurációt is, hogy tudjon az LDAP lehetőségről, egyszerűen írjuk a main.cf fájl végére:
|
A módosításainkat main.cf végére célszerű írnunk, mivel a minta állomány sok tippet és leírást tartalmaz, amit a végére írunk, az felülírja a fentebb található alapértelmezett értékeket, mellékesen pedig egy helyre kerülnek azok a dolgok, amiket mi írtunk bele. |
Majd indítsuk újra a postfix szolgáltatást
Közben nézzük a logserver jail-ben a postfix logját:
Látszólag minden tökéletes, próbáljunk meg levelet küldeni:
S nézzük meg, mit művelt közben a postfix:
Láthatjuk, hogy a levelet megkapta, próbálta kézbesíteni a root felhasználónak, de kiolvasta az aliases adatbázisból, hogy a levelet továbbítania kell a root@javaforum.hu címre, ezért megpróbál csatlakozni a gép publikus IP címére, ahol még nincs beállítva a 25-ös port, ezért egy "Connection refused" üzenet után elcsöndesedik, és később még megpróbálkozik a levél kézbesítésével.
A root felhasználót még a helyi aliases adatbázisból szedi a postfix, akkor fordul az LDAP felé, ha itt nem leli, tegyük próbára:
Nézzük a naplózbejegyzéseket:
Hát ezzel nem jutottunk több információhoz, állítsuk át más címre az ldap-aliases.cf fájlban az LDAP szerver címét, indítsuk újra a postfix szolgáltatást, majd nézzük meg ismét:
A postfix nem válaszol, várunk-várunk, de csak nem. Nézzük meg, írt-e valamit a logba:
Nocsak, azért látszik, hogy a postfix már használná az LDAP szolgáltatást, az előbb mindössze annyi volt a probléma, hogy az üres adatbázisban nem találta a hivatkozott felhasználót, ezért teljesen helyes választ adott. Állítsuk vissza az ldap-aliases.cf eredeti állapotát, és indítsuk újra a postfix szolgáltatást.
5.2.7.1.2. LDAP – levelezéshez
Mint mondottam volt, az LDAP alapvetően kevés dolgot támogat, fel kell vennünk különféle sémákat, amelyek az attribútumokat hordozzák, lépjünk be az LDAP jail-be, és fűzzük hozzá a slapd.conf fájl megfelelő helyére az alábbi pár sort, majd indítsuk újra a jail-t (a sorokat ne duplázzuk, ha már benne lenne a fájlban):
Adjunk hozzá pár dolgot az LDAP adatbázishoz, ezt megtehetjük a mail jail-en belülről is, hiszen telepítettünk fel openldap-client csomagot:
Vegyünk fel egy felhasználót is, mint alias:
Nosza, vegyük fel LDAP-ba a két LDIF állományt, majd indítsuk újra a postfix szolgáltatást és lássuk:
Nos, az aliases az adatokat már LDAP adatbázisból veszi... de a levelezés még mindig nem megy jól, mivel még mindig úgy gondolja a postfix, hogy a @javaforum.hu nem ő, tehát neki kézbesítenie kell a leveleket... ![]()
Vegyük fel a main.cf állományba a megfelelő domén értékeket:
A myhostname mondja meg, hogy mi a levelező szolgáltatást nyújtó szerver hosztneve, a mydomain mondja meg, hogy alapvetően melyik domén tartozik a levelezéshez, a myorigin kerül a levelek fejlécébe, a mydestination mondja meg, hogy milyen leveleket kell fogadni, illetve a mynetworks adja meg azokat a forrás címeket, amelyről a postfix el fog fogadni leveleket. A módosítás után indítsuk újra a postfix szolgáltatást.
5.2.7.1.3. A felhasználók levelei
Ha LDAP adatbázisból vesszük a felhasználóinkat, akkor nem kell őket felvennünk UNIX felhasználóként, azonban ez kissé megnehezíti a levelezést, főképp a levelek tárolását: ekkor jön jól a postfix virtuális-domén kezelése. Ennek a lényege, hogy a levelek a postfix tulajdonába alá kerülnek (uid és gid 125).
A tároláshoz hozzunk létre egy ZFS fájlrendszert, és csatoljuk a megfelelő helyre:
A tároláshoz egy /mails/domén/uid könyvtárszerkezetet hozunk majd létre, de ne szaladjunk előre, lássuk a postfix konfigurációt, s vegyük fel a main.cf állomány végére az alábbit:
Mint látjuk, kettő új LDAP konfigot kell felvennünk majd.
A virtual_mailbox_domains
Első körben fel kell vennünk egy root bejegyzést, illetve az alá virtuális doméneket:
Ezek után létre kell hoznunk a postfix számára az ldap-domains.cf állományt:
A virtual_mailbox_maps
|
A jelszót simán MD5 hash alapon generálhatjuk, amelyet aztán Base64-el újfent elkódolunk: Parancssor |
Hozzuk létre a második LDAP konfig állományt it:
Nos, minden kész, indítsuk újra a postfix szolgáltatást, és próbáljuk ki, mit dolgoztunk:
Szépen elfogadta a levelet, nézzük meg a naplóban, hogy mit csinált vele:
Hmm... valahova eltette, nézzük meg, hova:
Nos, a levelek szépen belekerülnek a nekik szánt fájlrendszerbe, készítsünk gyorsan egy új postafiókot, amely minden érkező email címet begyűjt (catchall cím, vagyis @javaforum.hu), illetve egy címet, amelyre a rendszer leveleit fogadjuk (system@javaforum.hu):
Az egész LDAP dolgot azért csináltuk, hogy ne kelljen a mail jail állományai között turkálni, ezért a változásnak azonnal mennie kell:
Ez is megjött. Az SMTP és LDAP integráció kipipálható... ![]()
5.2.7.1.4. A postfix könyvtára
Mivel a jail fájlrendszerébe becsatoltunk egy könnyen mozgatható fájlrendszert, célszerű úgy beállítani a postfix programot, hogy a saját átmeneti állományait a /mails/postfix könyvtárba tegye a /var/spool/postfix helyett. Ennek annyi előnye van, hogy ha át kell költöztetni a levelezést egy másik jail-be, akkor az átmeneti hiba okán még nem kézbesített levelek is költöznek.
Állítsuk le a postfix szolgáltatást, és mozgassuk át az átmeneti állományokat:
Módosítsuk a main.cf állományt:
Majd indítsuk el:
Észrevette a kis piszok, hogy áthelyeztük a könyvtárát... ![]()
Előző fejezet Tartalomjegyzék Következő fejezet
Auth Gábor auth.gabor@javaforum.hu

Add Comment