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):
[root@mail:~]$ portinstall -i postfix ---> Session started at: Sun, 18 Jan 2009 12:45:52 +0100 ---> Found 6 ports matching 'postfix': mail/postfix1 mail/postfix21 mail/postfix22 mail/postfix23 mail/postfix24 mail/postfix [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 71 packages found (-1 +1) (...). done] Install 'mail/postfix1'? [yes] n Install 'mail/postfix21'? [yes] n Install 'mail/postfix22'? [yes] n Install 'mail/postfix23'? [yes] n Install 'mail/postfix24'? [yes] n Install 'mail/postfix'? [yes] [Gathering depends for mail/postfix .. done] ---> Fresh installation of mail/postfix started at: Sun, 18 Jan 2009 12:46:07 +0100 [...] Added group "postfix". Added group "maildrop". Added user "postfix". You need user "postfix" added to group "mail". Would you like me to add it [y]? y Done. [...] Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y [...] Added group "postfix". Added group "maildrop". Added user "postfix". You need user "postfix" added to group "mail". Would you like me to add it [y]? y [...] Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y [...] + mail/postfix ---> Packages processed: 1 done, 0 ignored, 0 skipped and 0 failed ---> Session ended at: Sun, 18 Jan 2009 12:57:23 +0100 (consumed 00:11:31)
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:
postfix_enable="YES"
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:
[root@mail:~]$ newaliases [root@mail:~]$ ls -l /etc/aliases* lrwxr-xr-x 1 root wheel 12 Jan 14 14:42 /etc/aliases -> mail/aliases -rw-r--r-- 1 root wheel 16384 Jan 18 12:58 /etc/aliases.db
Ezek után újraindíthatjuk a jail-t, és kipróbálhatjuk, működik-e a postfix:
[root@freebsd:/]$ /etc/rc.d/jail restart mail Stopping jails: mail.jails.javaforum.hu. Configuring jails:. Starting jails: mail.jails.javaforum.hu. [root@freebsd:~]$ tail -f /bpool/jails/v7.1.0/logserver/data/192.168.2.4-2009-01/mail.2009-01-18 Jan 18 12:59:29 mail postfix/postfix-script[74056]: fatal: the Postfix mail system is not running Jan 18 12:59:31 mail postfix/postfix-script[74315]: starting the Postfix mail system Jan 18 12:59:31 mail postfix/master[74316]: daemon started -- version 2.5.5, configuration /usr/local/etc/postfix [root@freebsd:/]$ telnet mail.jails.javaforum.hu 25 Trying 192.168.2.4... Connected to mail.jails.javaforum.hu. Escape character is '^]'. 220 mail.jails.javaforum.hu ESMTP Postfix quit 221 2.0.0 Bye Connection closed by foreign host. [root@freebsd:~]$ tail -2 /bpool/jails/v7.1.0/logserver/data/192.168.2.4-2009-01/mail.2009-01-18 Jan 18 13:01:57 mail postfix/smtpd[75119]: connect from mail.jails.javaforum.hu[192.168.2.4] Jan 18 13:02:08 mail postfix/smtpd[75119]: disconnect from mail.jails.javaforum.hu[192.168.2.4]
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).
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:
[...] root: root@javaforum.hu # Basic system aliases -- these MUST be present MAILER-DAEMON: postmaster postmaster: root # General redirections for pseudo accounts _dhcp: root _pflogd: root bin: root bind: root [...]
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):
server_host = ldap.jails.javaforum.hu search_base = ou=Aliases,ou=Mail,dc=javaforum, dc=hu query_filter = (mailLocalAddress=%s) result_attribute = mailRoutingAddress
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:
alias_maps = hash:/etc/aliases virtual_alias_maps = ldap:/usr/local/etc/postfix/ldap-aliases.cf
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
[root@mail:~]$ /usr/local/etc/rc.d/postfix restart postfix/postfix-script: stopping the Postfix mail system postfix/postfix-script: starting the Postfix mail system
Közben nézzük a logserver jail-ben a postfix logját:
[root@freebsd:~]$ tail -4 /bpool/jails/v7.1.0/logserver/data/192.168.2.4-2009-01/mail.2009-01-18 Jan 18 13:39:07 mail postfix/postfix-script[80377]: stopping the Postfix mail system Jan 18 13:39:07 mail postfix/master[74316]: terminating on signal 15 Jan 18 13:39:07 mail postfix/postfix-script[80433]: starting the Postfix mail system Jan 18 13:39:07 mail postfix/master[80434]: daemon started -- version 2.5.5, configuration /usr/local/etc/postfix
Látszólag minden tökéletes, próbáljunk meg levelet küldeni:
[root@mail:~]$ telnet 192.168.2.4 25 Trying 192.168.2.4... Connected to mail.jails.javaforum.hu. Escape character is '^]'. 220 mail.jails.javaforum.hu ESMTP Postfix HELO 192.168.2.4 250 mail.jails.javaforum.hu Mail from: root 250 2.1.0 Ok Rcpt to: root 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: Test message Test message . 250 2.0.0 Ok: queued as 4BB7813BF8 quit 221 2.0.0 Bye Connection closed by foreign host.
S nézzük meg, mit művelt közben a postfix:
Jan 18 13:40:17 mail postfix/smtpd[80937]: connect from mail.jails.javaforum.hu[192.168.2.4] Jan 18 13:40:32 mail postfix/smtpd[80937]: 4BB7813BF8: client=mail.jails.javaforum.hu[192.168.2.4] Jan 18 13:40:42 mail postfix/cleanup[80946]: 4BB7813BF8: message-id=<20090118124032.4BB7813BF8@mail.jails.javaforum.hu> Jan 18 13:40:42 mail postfix/qmgr[80436]: 4BB7813BF8: from=<root@mail.jails.javaforum.hu>, size=398, nrcpt=1 (queue active) Jan 18 13:40:42 mail postfix/cleanup[80946]: AF7B013BFA: message-id=<20090118124032.4BB7813BF8@mail.jails.javaforum.hu> Jan 18 13:40:42 mail postfix/local[80950]: 4BB7813BF8: to=<root@mail.jails.javaforum.hu>, orig_to=<root>, relay=local, delay=16, delays=15/0.02/0/0.01, dsn=2.0.0, status=sent (forwarded as AF7B013BFA) Jan 18 13:40:42 mail postfix/qmgr[80436]: AF7B013BFA: from=<root@mail.jails.javaforum.hu>, size=545, nrcpt=1 (queue active) Jan 18 13:40:42 mail postfix/qmgr[80436]: 4BB7813BF8: removed Jan 18 13:40:42 mail postfix/smtp[80951]: connect to mail.javaforum.hu[91.83.48.130]:25: Connection refused Jan 18 13:40:42 mail postfix/smtp[80951]: AF7B013BFA: to=<root@javaforum.hu>, orig_to=<root>, relay=none, delay=0.07, delays=0.01/0.02/0.04/0, dsn=4.4.1, status=deferred (connect to mail.javaforum.hu[91.83.48.130]:25: Connection refused) Jan 18 13:40:43 mail postfix/smtpd[80937]: disconnect from mail.jails.javaforum.hu[192.168.2.4]
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:
[root@mail:~]$ telnet 192.168.2.4 25 Trying 192.168.2.4... Connected to mail.jails.javaforum.hu. Escape character is '^]'. 220 mail.jails.javaforum.hu ESMTP Postfix HELO 192.168.2.4 250 mail.jails.javaforum.hu Mail from: root 250 2.1.0 Ok Rcpt to: webmaster 550 5.1.1 <webmaster>: Recipient address rejected: User unknown in local recipient table quit 221 2.0.0 Bye Connection closed by foreign host.
Nézzük a naplózbejegyzéseket:
Jan 18 14:19:15 mail postfix/qmgr[80436]: AF7B013BFA: from=<root@mail.jails.javaforum.hu>, size=545, nrcpt=1 (queue active) Jan 18 14:19:15 mail postfix/smtp[86226]: connect to mail.javaforum.hu[91.83.48.130]:25: Connection refused Jan 18 14:19:15 mail postfix/smtp[86226]: AF7B013BFA: to=<root@javaforum.hu>, orig_to=<root>, relay=none, delay=2313, delays=2313/0.02/0.02/0, dsn=4.4.1, status=deferred (connect to mail.javaforum.hu[91.83.48.130]:25: Connection refused) Jan 18 14:31:05 mail postfix/smtpd[88135]: connect from mail.jails.javaforum.hu[192.168.2.4] Jan 18 14:31:18 mail postfix/smtpd[88135]: NOQUEUE: reject: RCPT from mail.jails.javaforum.hu[192.168.2.4]: 550 5.1.1 <webmaster>: Recipient address rejected: User unknown in local recipient table; from=<root> to=<webmaster> proto=SMTP helo=<192.168.2.4> Jan 18 14:31:40 mail postfix/smtpd[88135]: disconnect from mail.jails.javaforum.hu[192.168.2.4]
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:
[root@mail:~]$ telnet 192.168.2.4 25 Trying 192.168.2.4... Connected to mail.jails.javaforum.hu. Escape character is '^]'. 220 mail.jails.javaforum.hu ESMTP Postfix HELO 192.168.2.4 250 mail.jails.javaforum.hu Mail from: root _
A postfix nem válaszol, várunk-várunk, de csak nem. Nézzük meg, írt-e valamit a logba:
Jan 18 14:41:04 mail postfix/smtpd[89766]: connect from mail.jails.javaforum.hu[192.168.2.4] Jan 18 14:41:11 mail postfix/trivial-rewrite[89770]: warning: dict_ldap_connect: Unable to bind to server ldap://192.168.2.4:389 as : -1 (Can't contact LDAP server) Jan 18 14:41:11 mail postfix/trivial-rewrite[89770]: fatal: ldap:/usr/local/etc/postfix/ldap-aliases.cf(0,lock|fold_fix): table lookup problem Jan 18 14:41:12 mail postfix/master[89758]: warning: process /usr/local/libexec/postfix/trivial-rewrite pid 89770 exit status 1
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.
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):
include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema include /usr/local/etc/openldap/schema/nis.schema include /usr/local/etc/openldap/schema/misc.schema
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:
dn: ou=Mail,dc=javaforum,dc=hu objectClass: organizationalUnit ou: Mail dn: ou=Users,ou=Mail,dc=javaforum,dc=hu objectClass: organizationalUnit ou: Users dn: ou=Groups,ou=Mail,dc=javaforum,dc=hu objectClass: organizationalUnit ou: Groups dn: ou=Aliases,ou=Mail,dc=javaforum,dc=hu objectClass: organizationalUnit ou: Aliases
Vegyünk fel egy felhasználót is, mint alias:
dn: uid=webmaster,ou=Aliases,ou=Mail,dc=javaforum,dc=hu objectClass: inetOrgPerson objectClass: inetLocalMailRecipient uid: webmaster mailLocalAddress: webmaster mailRoutingAddress: root sn: webmaster cn: webmaster
Nosza, vegyük fel LDAP-ba a két LDIF állományt, majd indítsuk újra a postfix szolgáltatást és lássuk:
[root@mail:~]$ /usr/local/etc/rc.d/postfix restart postfix/postfix-script: stopping the Postfix mail system postfix/postfix-script: starting the Postfix mail system [root@mail:~]$ telnet 192.168.2.4 25 Trying 192.168.2.4... Connected to mail.jails.javaforum.hu. Escape character is '^]'. 220 mail.jails.javaforum.hu ESMTP Postfix HELO 192.168.2.4 250 mail.jails.javaforum.hu Mail from: root 250 2.1.0 Ok Rcpt to: webmaster 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: Test message Test message . 250 2.0.0 Ok: queued as 751C213C6F quit 221 2.0.0 Bye Connection closed by foreign host.
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:
myhostname = mail.javaforum.hu mydomain = javaforum.hu myorigin = mail.jails.javaforum.hu mydestination = mail.jails.javaforum.hu mynetworks = 127.0.0.1/32, 91.83.48.130/32, 192.168.1.0/24, 192.168.2.0/24
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.
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:
[root@freebsd:~]$ zfs create bpool/jails/data/mail [root@freebsd:~]$ zfs set compression=gzip-9 bpool/jails/data/mail [root@freebsd:~]$ zfs set mountpoint=/bpool/jails/v7.1.0/mail/mails bpool/jails/data/mail [root@freebsd:~]$ chown 125:125 /bpool/jails/v7.1.0/mail/mails
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:
virtual_mailbox_domains = ldap:/usr/local/etc/postfix/ldap-domains.cf virtual_mailbox_base = / virtual_mailbox_maps = ldap:/usr/local/etc/postfix/ldap-mailbox.cf virtual_minimum_uid = 125 virtual_uid_maps = static:125 virtual_gid_maps = static:125
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:
dn: ou=VirtualUsers,ou=Mail,dc=javaforum,dc=hu objectClass: top objectClass: organizationalUnit ou: VirtualUsers dn: ou=javaforum.hu,ou=VirtualUsers,ou=Mail,dc=javaforum,dc=hu objectClass: top objectClass: organizationalUnit ou: javaforum.hu dn: ou=javakocsma.hu,ou=VirtualUsers,ou=Mail,dc=javaforum,dc=hu objectClass: top objectClass: organizationalUnit ou: javakocsma.hu
Ezek után létre kell hoznunk a postfix számára az ldap-domains.cf állományt:
server_host = ldap.jails.javaforum.hu search_base = ou=VirtualUsers,ou=Mail,dc=javaforum,dc=hu query_filter = (ou=%s) result_attribute = ou
A virtual_mailbox_maps
dn: uid=auth.gabor@javaforum.hu,ou=javaforum.hu,ou=VirtualUsers,ou=Mail,dc=javaforum,dc=hu objectClass: account objectClass: top objectClass: inetLocalMailRecipient objectClass: posixAccount uid: auth.gabor@javaforum.hu uidNumber: 0 gidNumber: 0 mailRoutingAddress: maildir:/mails/javaforum.hu/auth.gabor/ homeDirectory: /mails/javaforum.hu/auth.gabor/ mailHost: javaforum.hu cn: Gabor Auth userPassword:: YmRjNzgyNDViYTNiM2MxODYzMjgzYzAyMzczMjA0NTgK mailLocalAddress: auth.gabor@javaforum.hu mailLocalAddress: franko@javaforum.hu
A jelszót simán MD5 hash alapon generálhatjuk, amelyet aztán Base64-el újfent elkódolunk:
[root@freebsd:~]$ echo -n "jelszoka" | md5 | base64 YmRjNzgyNDViYTNiM2MxODYzMjgzYzAyMzczMjA0NTgK
Hozzuk létre a második LDAP konfig állományt it:
server_host = ldap.jails.javaforum.hu search_base = ou=VirtualUsers,ou=Mail,dc=javaforum,dc=hu query_filter = (mailLocalAddress=%s) result_attribute = homeDirectory
Nos, minden kész, indítsuk újra a postfix szolgáltatást, és próbáljuk ki, mit dolgoztunk:
[root@mail:~]$ /usr/local/etc/rc.d/postfix restart postfix/postfix-script: stopping the Postfix mail system postfix/postfix-script: starting the Postfix mail system [root@mail:~]$ telnet 192.168.2.4 25 Trying 192.168.2.4... Connected to mail.jails.javaforum.hu. Escape character is '^]'. 220 mail.javaforum.hu ESMTP Postfix HELO 192.168.2.4 250 mail.javaforum.hu Mail from: root 250 2.1.0 Ok Rcpt to: auth.gabor@javaforum.hu 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: Test message Test message . 250 2.0.0 Ok: queued as 6AF8A13CB5 quit 221 2.0.0 Bye Connection closed by foreign host.
Szépen elfogadta a levelet, nézzük meg a naplóban, hogy mit csinált vele:
Jan 18 15:17:30 mail postfix/smtpd[95480]: connect from mail.jails.javaforum.hu[192.168.2.4] Jan 18 15:17:48 mail postfix/smtpd[95480]: 6AF8A13CB5: client=mail.jails.javaforum.hu[192.168.2.4] Jan 18 15:17:59 mail postfix/cleanup[95496]: 6AF8A13CB5: message-id=<20090118141748.6AF8A13CB5@mail.javaforum.hu> Jan 18 15:17:59 mail postfix/qmgr[95472]: 6AF8A13CB5: from=<root@mail.jails.javaforum.hu>, size=405, nrcpt=1 (queue active) Jan 18 15:17:59 mail postfix/virtual[95499]: 6AF8A13CB5: to=<auth.gabor@javaforum.hu>, relay=virtual, delay=21, delays=21/0.03/0/0.18, dsn=2.0.0, status=sent (delivered to maildir) Jan 18 15:17:59 mail postfix/qmgr[95472]: 6AF8A13CB5: removed
Hmm... valahova eltette, nézzük meg, hova:
[root@mail:~]$ cat /mails/javaforum.hu/auth.gabor/new/1232288279.Vde5f3a0fI7M779613.mail.jails.javaforum.hu Return-Path: <root@mail.jails.javaforum.hu> X-Original-To: auth.gabor@javaforum.hu Delivered-To: auth.gabor@javaforum.hu Received: from 192.168.2.4 (mail.jails.javaforum.hu [192.168.2.4]) by mail.javaforum.hu (Postfix) with SMTP id 6AF8A13CB5 for <auth.gabor@javaforum.hu>; Sun, 18 Jan 2009 15:17:38 +0100 (CET) Subject: Test message Message-Id: <20090118141748.6AF8A13CB5@mail.javaforum.hu> Date: Sun, 18 Jan 2009 15:17:38 +0100 (CET) From: root@mail.jails.javaforum.hu To: undisclosed-recipients:; Test message
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):
dn: uid=info@javaforum.hu,ou=javaforum.hu,ou=VirtualUsers,ou=Mail,dc=javaforum,dc=hu objectClass: account objectClass: top objectClass: inetLocalMailRecipient objectClass: posixAccount uid: info@javaforum.hu cn: Info uidNumber: 0 gidNumber: 0 mailLocalAddress: info@javaforum.hu mailLocalAddress: @javaforum.hu mailRoutingAddress: maildir:/mails/javaforum.hu/info/ homeDirectory: /mails/javaforum.hu/info/ mailHost: javaforum.hu userPassword:: e01ENX1MU0Nta1FMMHRmc25VYmhsVTgzcUJBPT0= dn: uid=system@javaforum.hu,ou=javaforum.hu,ou=VirtualUsers,ou=Mail,dc=javaforum,dc=hu objectClass: account objectClass: top objectClass: inetLocalMailRecipient objectClass: posixAccount uid: system@javaforum.hu cn: System uidNumber: 0 gidNumber: 0 mailRoutingAddress: maildir:/mails/javaforum.hu/system/ homeDirectory: /mails/javaforum.hu/system/ mailHost: javaforum.hu mailLocalAddress: system@javaforum.hu mailLocalAddress: root@javaforum.hu userPassword:: e01ENX1ETGtGODZMOW92ejhFNmUyd2pnQlRRPT0=
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:
[root@mail:~]$ telnet 192.168.2.4 25 Trying 192.168.2.4... Connected to mail.jails.javaforum.hu. Escape character is '^]'. 220 mail.javaforum.hu ESMTP Postfix HELO 192.168.2.4 250 mail.javaforum.hu Mail from: root 250 2.1.0 Ok Rcpt to: mindegymi@javaforum.hu 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: Test message Test message . 250 2.0.0 Ok: queued as 1DB0C13CB8 quit 221 2.0.0 Bye Connection closed by foreign host. [root@mail:~]$ less /mails/javaforum.hu/info/new/1232288891.Vde5f3a0fI11M842315.mail.jails.javaforum.hu Return-Path: <root@mail.jails.javaforum.hu> X-Original-To: mindegymi@javaforum.hu Delivered-To: mindegymi@javaforum.hu Received: from 192.168.2.4 (mail.jails.javaforum.hu [192.168.2.4]) by mail.javaforum.hu (Postfix) with SMTP id 1DB0C13CB8 for <mindegymi@javaforum.hu>; Sun, 18 Jan 2009 15:27:46 +0100 (CET) Subject: Test message Message-Id: <20090118142757.1DB0C13CB8@mail.javaforum.hu> Date: Sun, 18 Jan 2009 15:27:46 +0100 (CET) From: root@mail.jails.javaforum.hu To: undisclosed-recipients:; Test message
Ez is megjött. Az SMTP és LDAP integráció kipipálható...
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:
[root@mail:/usr/local/etc]$ /usr/local/etc/rc.d/postfix stop postfix/postfix-script: stopping the Postfix mail system [root@mail:~]$ mv /var/spool/postfix/ /mails/ mv: /var/spool/postfix/public/cleanup is a socket (not copied). mv: /var/spool/postfix/public/flush is a socket (not copied). mv: /var/spool/postfix/public/showq is a socket (not copied). mv: /var/spool/postfix/private/tlsmgr is a socket (not copied). mv: /var/spool/postfix/private/bounce is a socket (not copied). mv: /var/spool/postfix/private/error is a socket (not copied). mv: /var/spool/postfix/private/verify is a socket (not copied). mv: /var/spool/postfix/private/rewrite is a socket (not copied). mv: /var/spool/postfix/private/retry is a socket (not copied). mv: /var/spool/postfix/private/smtp is a socket (not copied). mv: /var/spool/postfix/private/local is a socket (not copied). mv: /var/spool/postfix/private/discard is a socket (not copied). mv: /var/spool/postfix/private/relay is a socket (not copied). mv: /var/spool/postfix/private/proxymap is a socket (not copied). mv: /var/spool/postfix/private/anvil is a socket (not copied). mv: /var/spool/postfix/private/virtual is a socket (not copied). mv: /var/spool/postfix/private/lmtp is a socket (not copied). mv: /var/spool/postfix/private/defer is a socket (not copied). mv: /var/spool/postfix/private/trace is a socket (not copied). mv: /var/spool/postfix/private/scache is a socket (not copied). mv: /var/spool/postfix/private/proxywrite is a socket (not copied).
Módosítsuk a main.cf állományt:
queue_directory = /mails/postfix
Majd indítsuk el:
[root@mail:~]$ /usr/local/etc/rc.d/postfix start postsuper: Renamed to match inode number: 1 message postsuper: warning: QUEUE FILE NAMES WERE CHANGED TO MATCH INODE NUMBERS postfix/postfix-script: starting the Postfix mail system
Észrevette a kis piszok, hogy áthelyeztük a könyvtárát...