Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
damava
Posts: 12
Joined: 2003-12-19 11:04

Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by damava » 2005-03-29 03:11

Lösung:

Ã?hmm :oops:

Um ehrlich zu sein bin ich gerade hin- und hergerissen zwischen lachen und heulen. Denn nun ist das eingetreten was in meinen Augen noch viel schlimmer ist als ein Problem was nicht geht: ein Problem dass sich von jetzt auf gleich von alleine löst.
Ganz im Ernst, ich habe im Prinzip (siehe unten) nichts geändert, außer zum hunderttausendsten Mal Exim neu gestartet und was soll ich sagen... plötzlich gings.
Jaja, einige werden jetz lachen :wink: - normalerweise bin ich ja auch immer skeptisch wenn jemand sagt "das ging auf einmal" - aber genau so wars.

Naja... Happy End (?)

Zusammengefasst trotzdem nochmal die Dinge die ich gemacht habe:

- damit Exim läuft _muss_ suid gesetzt sein, es reicht nicht es einfach als root zu starten (es sei denn alle router & filter usw. laufen unter dem exim-user)
- exim_path (pfad zur Exim-Binary) muss zur Compile-Zeit oder in der Config richtig gesetzt sein;
überprüfen mit /pfad/zu/exim -bP exim_path

- Was bei mir auf jeden Fall am Anfang falsch war dass ich Letztens "versehentlich" die /usr Partition mit nosuid in die fstab eingetragen hab. - Hab ich heute früh geändert danach sollte eigentlich schon gehen.
- Ging aber net, also ganzen Tag am Problem verbracht ^^
- Am Abend dann drüber geärgert dass exim_path eigentlich stimmen sollte
- exim_path in der config gesetzt
- exim neu gestartet -> es lief!
- exim_path in der config testweise wieder auskommentiert -> lief trotzdem


------------------------------------

Hallo

Ich hab heute mal Exim4 + vexim nach dem Debianhowto eingerichtet und musst dann am Ende feststellen dass ich keine Mails empfangen kann.

Die Logs sagen mir:

Code: Select all

unable to set gid=99 or uid=99 (euid=103) ..... 
+ weitere daraus resultierende Fehler

Daraus hab ich jetz geschlossen dass exim nach dem Start auf User/Gruppe "Debian-exim" wechselt und dann natürlich keine Rechte mehr hat irgendwelche Ã?nderungen an uid/gid vorzunehmen.

Hab ich was übersehen, bzw. wo kann der Fehler liegen?
Last edited by damava on 2005-03-30 01:57, edited 5 times in total.

damava
Posts: 12
Joined: 2003-12-19 11:04

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by damava » 2005-03-29 11:54

Also laut ps wechselt exim tatsächlich nach dem Start auf den Debian-exim user, welcher natürlich keinen Schreibzugriff auf die vmail Verzeichnisse hat.
Nun ist allerdings die Frage was ich da an dem Howto übersehen / falsch verstanden habe?

http://www.debianhowto.de/howtos/de/exi ... sarge.html

Ich sollte vielleicht dazu sagen dass ich die Sache mit Spamassassin und AV ausgelassen habe (entsprechend die Config dann angepasst) und im Moment noch kein Courier läuft, sondern nur der MTA. Aber das hat ja auch nix damit zu tun dass er seine uid nich wechseln kann.

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by dodolin » 2005-03-29 13:56

Das ist nur der SMTP-Listener Prozess, der auf einen unprivilegierten User (Debian-exim) wechselt. Es sollte trotzdem noch einen Vaterprozess mit UID 0 geben. Ihr müsst in eurer exim4.conf die Router und Transports durchsehen. Dort wird der User eingetragen, unter dem die Deliveries stattfinden sollen. Eventuell hat sich an dem Debian-Exim4-Paket inzwischen etwas entscheidendes geändert, sodass unser Howto nicht mehr 1:1 passt. Müsste man bei Gelegenheit mal überprüfen. Ich habe dazu aber in absehbarer Zeit leider keine Zeit.

damava
Posts: 12
Joined: 2003-12-19 11:04

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by damava » 2005-03-29 14:38

dodolin wrote:Das ist nur der SMTP-Listener Prozess, der auf einen unprivilegierten User (Debian-exim) wechselt. Es sollte trotzdem noch einen Vaterprozess mit UID 0 geben.
Ja, das wäre allerdings nur logisch... bei mir gibt es aber nur einen einzigen Exim-Prozess und das ist der unprivilegierte...
Gestartet hab ich exim "ganz normal" über /etc/init.d/exim4. Und in der config hab ich auch nur das geändert was im Howto steht. (Habs auch grad nochmal mit der standard Debian-Config versucht - gleiches Problem)
Nu kanns ja sein dass ich irgendwas falsch gemacht habe oder was übersehn hab, nur hab ich grad keine Idee wo das sein könnte ^^
Ihr müsst in eurer exim4.conf die Router und Transports durchsehen. Dort wird der User eingetragen, unter dem die Deliveries stattfinden sollen.
Jo und gerade da hat der dann aus dem oben genannten Grund Probleme.
Ich werd mich mal weiter auf die Suche machen, vielleicht sollte ich mal ne Debian-ML fragen.

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by dodolin » 2005-03-29 15:41

Ich glaube immer noch, dass deine Schlussfolgerungen falsch sind. Ich habe gerade nochmal nachgeschaut: Ich habe auch nur einen einzigen Exim-Prozess laufen, unter dem User Debian-exim. Trotzdem ist dieser Prozess in der Lage, Mails unter dem User dominik (z.B.) abzulegen.

Ich gehe daher immer noch davon aus, dass ihr einfach irgendwelche falschen Einstellungen (user =, group =) in den Transports der exim4.conf habt.

Welche User entsprechen denn den UIDs 99 bzw. 103? Und wie lautet der komplette Logeintrag (plus eventuell der Eintrag vorher oder nachher)?

damava
Posts: 12
Joined: 2003-12-19 11:04

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by damava » 2005-03-29 18:08

Code: Select all

2005-03-29 15:41:42 1DGGyU-00054N-2S unable to set gid=99 or uid=99 (euid=103): local delivery to /var/opt/mail/... </var/opt/mail/...> transport=virtual_delivery
2005-03-29 15:41:42 1DGGyU-00054N-2S failed to read delivery status for /var/opt/mail/**/postmaster/Maildir:postmaster@** from delivery subprocess
2005-03-29 15:41:42 1DGGyU-00054N-2S appendfile transport process returned non-zero status 0x0100: exit code 1

transports sind wie im vexim standard-script belassen.

user 99 = vmail
user 103 = Debian-exim

(siehe auch das debian-howto)
Last edited by damava on 2005-03-29 23:29, edited 1 time in total.

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by dodolin » 2005-03-29 19:03

transports sind wie im vexim standard-script belassen.
Ich habe keine Ahnung, wie das aktuell aussieht. Könntest du mal deinen transport=virtual_delivery noch posten? Danke.

damava
Posts: 12
Joined: 2003-12-19 11:04

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by damava » 2005-03-29 23:09

aso ja klar

Code: Select all

virtual_delivery:
  driver = appendfile
  envelope_to_add
  return_path_add
  mode = 0600
  maildir_format = true
  create_directory = true
  directory = ${lookup mysql{select smtp from users,domains 
		where localpart = '${quote_mysql:$local_part}' 
		and domain = '${quote_mysql:$domain}' 
		and users.domain_id = domains.domain_id}}
  user = ${lookup mysql{select users.uid  from users,domains 
		where localpart = '${quote_mysql:$local_part}' 
		and domain = '${quote_mysql:$domain}' 
		and users.domain_id = domains.domain_id}}
  group = ${lookup mysql{select users.gid from users,domains 
		where localpart = '${quote_mysql:$local_part}' 
		and domain = '${quote_mysql:$domain}' 
		and users.domain_id = domains.domain_id}}
  quota = ${lookup mysql{select users.quota from users,domains 
  		where localpart = '${quote_mysql:$local_part}' 
		and domain = '${quote_mysql:$domain}' 
		and users.domain_id = domains.domain_id}{${value}M}}
  quota_is_inclusive = false
  #quota_size_regex = ,S=(d+):
  quota_warn_threshold = 75%
  maildir_use_size_file = false
  quota_warn_message = "To: $local_part@$domainn
  			Subject: Mailbox quota warningnn
			This message was automatically generated by the mail delivery software.nn
			You are now using over 75% of your allocated mail storage quota.nn
			If your mailbox fills completely, further incoming messages will be automaticallyn
			returned to their senders.nn
			Please take note of this and remove unwanted mail from your mailbox.n"
das ist der transport der da in frage kommt. da ich wie gesagt für den benutzer vmail (der benutzer der als home das verzeichnis hat wo am ende die mails reinkommen) die id 99 gewählt hab ist schon mal ersichtlich dass zumindest die mysql sache funktioniert. (er gibt ja schließlich im log diese id an)

was ich in der ML von exim gefunden habe (und was auch in der exim-faq steht) ist, dass das exim-binary das suid-bit gesetzt haben soll. davon abgesehn dass das der fall ist hab ich den server aber sowieso als root gestartet.

ich hab mal exim mit debug-ausgabe gestartet, kleiner auszug:

Code: Select all

changed uid/gid: forcing real = effective
  uid=0 gid=0 pid=19486
  auxiliary group list: <none>
configuration file is /etc/exim4/exim4.conf
log selectors = 00000ffc 00028800
trusted user
admin user
originator: uid=0 gid=0 login=root name=root
19486 listening on all interfaces (IPv6) port 25
19486 listening on all interfaces (IPv4) port 25
19486 pid written to /var/run/exim4/exim.pid
19486 changed uid/gid: running as a daemon
19486   uid=103 gid=103 pid=19486
19486   auxiliary group list: 103
19486 LOG: MAIN
19486   exim 4.50 daemon started: pid=19486, -q1m, listening for SMTP on port 25 (IPv6 and IPv4)
19486 set_process_info: 19486 daemon: -q1m, listening for SMTP on port 25 (IPv6 and IPv4)
19486 daemon running with uid=103 gid=103 euid=103 egid=103
[ dann folgen einige sachen zu eingehenden verbindungen, die router werden durchgegangen usw. und dann kommt irgendwann mitten in dem transport folgendes: ]

Code: Select all

19496 LOG: MAIN PANIC DIE
19496   unable to set gid=99 or uid=99 (euid=103): local delivery to /var/opt/mail/[domain]/postmaster/Maildir </var/opt/mail/[domain]/postmaster/Maildir> transport=virtual_delivery
19496 search_tidyup called
19496 close MYSQL connection: localhost:(/var/run/mysqld/mysqld.sock)/vexim/vexim
19496 >>>>>>>>>>>>>>>> Exim pid=19496 terminating with rc=1 >>>>>>>>>>>>>>>>
19493 LOG: MAIN PANIC
19493   failed to read delivery status for /var/opt/mail/[domain]/postmaster/Maildir:postmaster@[domain] from delivery subprocess
19493 LOG: MAIN PANIC
19493   appendfile transport process returned non-zero status 0x0100: exit code 1
19493 virtual_delivery transport returned DEFER for /var/opt/mail/[domain]/postmaster/Maildir
19493 added retry item for T:/var/opt/mail/[domain]/postmaster/Maildir:postmaster@[domain]: errno=-1 more_errno=0 flags=0
hab vorhin mal an die exim-ml geschrieben, mal sehn was die da so sagen. der nächste schritt wäre zum beispiel nochmal genau das debug-log durchzugehen und ausprobieren ob reinstall hilft. im moment glaub ich fast dass ich einfach zu doof bin 8O

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by dodolin » 2005-03-30 00:15

Ich bin langsam auch ratlos, ich kann nur sagen, bei mir (und scheinbar auch bei vielen anderen) funktioniert das ohne Probleme. Aber ich bin schon sehr gespannt, ob sich auf exim-users eine Lösung findet und wie diese aussieht.

damava
Posts: 12
Joined: 2003-12-19 11:04

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by damava » 2005-03-30 00:46

Ich habe gerade nochmal nachgeschaut: Ich habe auch nur einen einzigen Exim-Prozess laufen, unter dem User Debian-exim. Trotzdem ist dieser Prozess in der Lage, Mails unter dem User dominik (z.B.) abzulegen.
Ã?brigends hattest du Recht damit dass ich mit meiner ersten Annahme falsch gelegen hab. Aus dem exim-user Archiv:
> If not,
> does it just write any message requiring other priveledges to the queue so
> that its picked up by a process with real-uid of root?

Exim *always* writes incoming messages to the queue. In order to do a
delivery, it re-execs itself so as to regain the privilege.
Is natürlich interessant zu wissen, dann weiß ich wenigstens woran es nicht liegen kann :lol: (dachte am Anfang dass sich exim einen zurecht forkt)
Nun gugg ich mindestens schon zum zehnten Mal auf die Dateirechte und sehe zum zehnten Mal dass suid trotzdem gesetzt ist...

Oh Mann, ich glaub ich werd erstmal ins Bett gehen - ich werd euch mal nicht weiter nerven bevor ich keine Lösung gefunden hab. Wird wohl sowieso rauskommen dass es wie so oft am User lag ^^

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by dodolin » 2005-03-30 12:23

Warum, deine Lösung klingt doch eigentlich recht logisch, oder?
Wenn du /usr nosuid gemountet hattest, musst du nach dem remounten natürlich nochmal den Exim neu starten.

damava
Posts: 12
Joined: 2003-12-19 11:04

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by damava » 2005-03-30 18:27

nunja, ich hatte zwischendurch nochmal den ganzen server rebootet und trotzdem ging es nicht.
wer weiß...

umbroboy
Posts: 258
Joined: 2005-05-11 11:49

Re: Exim4 + vexim nach Debianhowto macht Problem [gelöst]

Post by umbroboy » 2006-03-30 10:23

Hallo,

gab es hier dann eine Lösung.

Habe das problem auch derzeit und warte auf eine antwort von der Mailingliste.
Nur das problem hab ich auch erst seit einer Woche aufeinmal.