[FreeBSD6.2] Postfix, courier, maildrop met mysql

Pagina: 1
Acties:
  • 157 views sinds 30-01-2008
  • Reageer

  • GrooV
  • Registratie: September 2004
  • Laatst online: 30-01 16:47
Hallo,

Ik ben op dit moment bezig met het opzetten van een postfix mailserver met virtuele users, deze worden via mysql geladen.

Ik heb hier voor deze guide aangehouden: http://www.phparchitecture.com/howto_show.php?id=2

Nu draait postfix samen met maildrop en courier-auth. In /usr/local/etc/authlib/authmysqlrc staan de juiste instellingen hier voor.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
MYSQL_USERNAME          xxx
MYSQL_PASSWORD          xxx
MYSQL_PORT              0
MYSQL_OPT               0
MYSQL_DATABASE          mail
MYSQL_USER_TABLE        postfix_users
MYSQL_LOGIN_FIELD       email
MYSQL_CRYPT_PWFIELD     crypt
MYSQL_CLEAR_PWFIELD     clear
MYSQL_UID_FIELD         uid
MYSQL_GID_FIELD         gid
MYSQL_HOME_FIELD        homedir
MYSQL_MAILDIR_FIELD     maildir
MYSQL_WHERE_CLAUSE      access='y'


In postfix master.cf staat de volgende regel voor maildrop:
code:
1
2
maildrop  unix  -       n       n       -       -       pipe
  flags=R user=vmail argv=/usr/local/bin/maildrop -d ${recipient}


Echter als nu een mail wordt verstuurd krijg ik de volgende melding:
code:
1
2
3
4
5
6
Sep 18 13:01:53 xx postfix/smtpd[45912]: connect from xxx
Sep 18 13:01:56 xx postfix/smtpd[45912]: 5FA8B2849A: client=xxx
Sep 18 13:01:56 xx postfix/cleanup[45915]: 5FA8B2849A: message-id=<20070918110156.5FA8B2849A@xxx>
Sep 18 13:01:56 xx postfix/qmgr[45815]: 5FA8B2849A: from=<test@test.com>, size=405, nrcpt=1 (queue active)
Sep 18 13:01:56 xx maildrop[45917]: Temporary authentication failure.
Sep 18 13:01:56 xx postfix/pipe[45916]: 5FA8B2849A: to=<test@test.com>, relay=maildrop, delay=0.07, delays=0.04/0.01/0/0.02, dsn=4.3.0, status=deferred (temporary failure. Command output: ERR: authdaemon: s_connect() failed: Permission denied /usr/local/bin/maildrop: Temporary authentication failure. )


Nu denk ik dat het probleem bij postfix -> maildrop zit. Als ik namelijk dit doe:
code:
1
2
3
4
5
6
7
8
# echo "test" | maildrop -V 9 -d test@test.com
maildrop: authlib: groupid=1008
maildrop: authlib: userid=1006
maildrop: authlib: logname=test@test.com, home=/home/vmail, mail=test.com/test/Maildir
maildrop: Changing to /home/vmail
Message start at 0 bytes, envelope sender=test@test.com
maildrop: Attempting .mailfilter
maildrop: Delivery complete.


werkt dat wel en wordt netjes afgeleverd.

Heeft iemand hier ervaring mee? Ik wil graag maildrop gebruiken om spam mail meteen in de juiste map te krijgen.

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Maildrop vind blijkbaar dat de mail niet verzonden mag worden, de vraag is nu dus, als welke gebruiker voerde jij het laatste commando uit? Ook als vmail?

Blog [Stackoverflow] [LinkedIn]


  • DemonTPx
  • Registratie: December 2002
  • Laatst online: 05-12-2025
Zo te zien voer je het commado zelf uit als root? Mag de postfix user het commando eigenlijk wel uitvoeren?

  • GrooV
  • Registratie: September 2004
  • Laatst online: 30-01 16:47
Ik voer het zelf uit als root, dat klopt. Maar maildrop kijkt via courier-auth als welke user hij het moet uitvoeren.

freebsd draait zelf postfix chrooted dus daar zal het aan liggen, dan is de vraag welke user dan wel gebruikt moet worden. In master.cf zeg ik dat maildrop niet chrooted gedraaid moet worden

  • smesjz
  • Registratie: Juli 2002
  • Niet online
GrooV schreef op dinsdag 18 september 2007 @ 17:19:
Ik voer het zelf uit als root, dat klopt. Maar maildrop kijkt via courier-auth als welke user hij het moet uitvoeren.
Dat is niet waar, via courier-auth zoekt ie op voor wie de mail bedoeld is en wat de maildir is.

Postfix roept maildrop aan als user vmail, dus als deze geen verbinding kan maken met de authdaemon via socket, dan krijg je ook deze melding.

Dus je moet de test herhalen als user vmail en kijken wat er dan uit komt.

  • GrooV
  • Registratie: September 2004
  • Laatst online: 30-01 16:47
Ok, kennelijk mag vmail niet bij auth-lib komen:
code:
1
2
3
%echo "test" | maildrop -V 9 -d test@test.com
ERR: authdaemon: s_connect() failed: Permission denied
maildrop: Temporary authentication failure.


Even verder gezocht en courier zegt zelf dit:
####################################
When using the standalone maildrop build with courier-authlib, one of
the following configurations must be used:


* Your mail server must invoke maildrop as the root user (the -d flag
reads the mail account's uid and gid, then drops root) .
* Manually change the permissions on the maildrop binary to be setuid root.
* Manually change the permissions on the courier-authlib's socket
directory (/usr/local/var/spool/authdaemon by default) to be globally
readable or executable.


The default permissions on courier-authlib's socket directory blocks
world-access to the filesystem socket connected to courier-authlib's
authentication daemon process. In order for maildrop to connect to the
authentication library, maildrop must either have root privileges
(which will be temporary, as soon as maildrop determines the account's
userid and groupid, it will drop root, before reading the maildroprc
file), or courier-authlib's socket directory must have world read and
execute permission.


Note that if the permissions on the socket directory are changed,
anyone on the system can connect and obtain any account's password!


It is the system administrator's responsibility to choose the
appropriate security policy when using the Courier Authentication
Library.
##############################
Alleen nu wil postfix dit niet als root draaien, en ik wil ook niet dat zomaar iedereen bij de authlib socket kan

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Voeg beiden gebruikers aan dezelfde groep toe en geef de groep rechten tot de authlib socket?

Dat lijkt mij tenminste de meest voor de hand liggende optie.

Blog [Stackoverflow] [LinkedIn]


  • GrooV
  • Registratie: September 2004
  • Laatst online: 30-01 16:47
Ik heb nog steeds problemen met maildrop!

Op dit moment wordt de spam netjes in de spam folder gezet door maildrop, echter heb ik ook een regel aangemaakt voor een aantal mailinglists. Toevallig komen deze allemaal freebsd.org dus heb ik dat gebruikt om de mail te identificeren. Maar nu wordt de spam wel gescheiden en de mailinglists niet, in de /var/log/maillog is hier niks over te vinden.

Ik heb dit opgesteld aan de hand van deze wiki:
http://gentoo-wiki.com/Ma...#Mailing_Lists_and_Forums

Gedeelte van mailinglist bron:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
X-Content-Filtered-By: Mailman/MimeDel 2.1.5
Subject: Test
X-BeenThere: freebsd-test@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Test posting area <freebsd-test.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-test>,
    <mailto:freebsd-test-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-test>
List-Post: <mailto:freebsd-test@freebsd.org>
List-Help: <mailto:freebsd-test-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-test>,
    <mailto:freebsd-test-request@freebsd.org?subject=subscribe>
Sender: owner-freebsd-test@freebsd.org
Errors-To: owner-freebsd-test@freebsd.org


/etc/maildroprc

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if ( $SIZE < 26144 )
{
    exception {
       xfilter "/usr/bin/spamassassin"
    }
}

if (/^X-Spam-Flag: *YES/)
{
    exception {
        to "$HOME/$DEFAULT/.Spam/"
    }
}

if (/^List-Post:.*freebsd*/ )
{
    exception {
        to "$HOME/$DEFAULT/.FreeBSD/"
    }
}

  • smesjz
  • Registratie: Juli 2002
  • Niet online
Maildrop heeft een eigen logging, die logt in de regel buiten niet naar de syslog maar naar een zelf op te geven file.

Probeer eens:

if (/^List-Post:.*freebsd.*/ )

Dus een puntje er bij na freebsd..anders moet je eens de maildroprc er op na slaan (man maildroprc)

  • GrooV
  • Registratie: September 2004
  • Laatst online: 30-01 16:47
Het werkt inmiddels, beetje zitten klooien met spaties en { } schijnt dat maildrop daar best kieskeurig mee is

  • smesjz
  • Registratie: Juli 2002
  • Niet online
Mooi, ik heb in bet begin ook een hoop ruzie gehad met (oude) maildrop versies die bijvoorbeeld een segfault gaf op het moment dat ie bijv. /etc/maildropmysql.config (pre-courier-authlib) of /etc/maildroprc niet kon openen.

Toch is het erg flexibel doordat je gemakkelijke externe apps kan aanroepen en de filters best wel krachtig zijn. Ik ben inmiddels over op clamsmtpd, maildrop, courier-{pop,imap} naar Amavisd-new en Dovecot. Maar dat was ook meer uit praktische overwegingen, doordat je spamassassin alleen aanroept bij lokale mail, scan je geen mail die je naar buiten aliased (bijv. blabla@jouwdomein.nl -> jij@gmail.com).

Het fijne van Dovecot vind ik dat het nog actief in ontwikkeling is en leuke dingen heeft zoals inotify etc.
Overigens de limiet van 24kb bij spamassassin vind ik laag
Pagina: 1