Child pages
  • SMTP service
Skip to end of metadata
Go to start of metadata

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):

Parancssor
[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:

/etc/rc.conf
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:

Parancssor
[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:

Parancssor
[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:

/etc/aliases
[...]
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):

/usr/local/etc/postfix/ldap-aliases.cf
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:

/usr/local/etc/postfix/main.cf
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

Parancssor
[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:

Parancssor
[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:

Parancssor
[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:

/bpool/jails/v7.1.0/logserver/data/192.168.2.4-2009-01/mail.2009-01-18
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:

Parancssor
[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:

/bpool/jails/v7.1.0/logserver/data/192.168.2.4-2009-01/mail.2009-01-18
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:

Parancssor
[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:

/bpool/jails/v7.1.0/logserver/data/192.168.2.4-2009-01/mail.2009-01-18
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):

/usr/local/etc/openldap/slapd.conf
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:

mail.ldif
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:

webmaster.ldif
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:

Parancssor
[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... (smile)

Vegyük fel a main.cf állományba a megfelelő domén értékeket:

/usr/local/etc/postfix/main.cf
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:

Parancssor
[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:

/usr/local/etc/postfix/main.cf
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:

virtualDomains.ldif
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:

/usr/local/etc/postfix/ldap-domains.cf
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

virtualMailbox.ldif
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:

Parancssor
[root@freebsd:~]$ echo -n "jelszoka" | md5 | base64
YmRjNzgyNDViYTNiM2MxODYzMjgzYzAyMzczMjA0NTgK

Hozzuk létre a második LDAP konfig állományt it:

/usr/local/etc/postfix/ldap-mailbox.cf
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:

Parancssor
[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:

/bpool/jails/v7.1.0/logserver/data/192.168.2.4-2009-01/mail.2009-01-18
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:

Parancssor
[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):

systemAndInfo.ldif
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:

Parancssor
[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ó... (smile)

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:

Parancssor
[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:

/usr/local/etc/main.cf
queue_directory = /mails/postfix

Majd indítsuk el:

Parancssor
[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... (smile)

      
      
Page viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels