[linux] Re: Sendmail geeft "service unavailable"

Kees Theunissen theuniss op rijnh.nl
Ma Apr 25 03:47:45 CEST 2005


On Sun, 24 Apr 2005, Johan Wevers wrote:

>Ik heb het probleem in eerste instantie opgelost door wat dieper in de logs
>te duiken: sendmail kon uux niet aanroepen, blijkbaar draait sendmail op
>Slackware 10 niet meer onder root. Als ik uux world executable maak is dat
>probleem opgelost, al weet ik niet wat daar de veiligheidsrisico's van zijn.
>Maar goed, achter de hardware firewall van een ADSL modem zal dat wel
>meevallen.

Er is een tijdje geleden (uit het hoofd: bij versie 8.12) het een en ander
veranderd in sendmail. De sendmail daemon, die op poort 25 staat te
luisteren, draait nog steeds met root rechten. De deamon heeft die root
rechten ook nodig om lokaal mail af te kunnen leveren met de rechten van
de gebruiker die de mail ontvangt.
Maar als een gebruiker sendmail opstart om mail te versturen dan krijgt
hij/zij geen suid root programma meer.

kees op lankhmar:~$ ls -l /usr/sbin/sendmail
-r-xr-sr-x    1 root     smmsp      553644 Sep 17  2003 /usr/sbin/sendmail*

Dat wordt dus: sgid smmsp.
Dat smmsp staat voor: sendmail mail submission program.
Omdat het submission program geen root rechten meer heeft kan het ook
niet schrijven in de mail queue (/var/spool/mqueue) en heeft het een eigen
queue (/var/spool/clientmqueue). Het submission program heeft ook een
eigen configuratie file (/etc/mail/submit.cf i.p.v. /etc/mail/sendmail.cf).
Met de default submit.cf doet het submission program niets anders dan
mailtjes met smtp doorsturen naar localhost:25. De daemon die achter
localhost:25 zit moet het dan verder verwerken. Ik kan zo snel geen
redenen verzinnen om van deze procedure af te wijken en de default
submit.cf te modificeren.
Ter illustratie van de hele procedure geef ik de log van het laatste
mailtje dat ik naar deze lijst stuurde:

1) Het submission program logt dat de mail ontvangen is.

Apr 23 03:43:10 pcict9 sendmail[24527]: j3N1hAuD024527:
   from=<kees op pcict9.rijnh.nl>, size=2865, class=0, nrcpts=1,
   msgid=<Pine.LNX.4.62.0504230140150.24192 op pcict9.rijnh.nl>,
   proto=ESMTP, relay=kees op localhost

2) De smtp daemon logt dat de mail is ontvangen van het submission
   program

Apr 23 03:43:10 pcict9 sm-mta[24530]: j3N1hAhX024530:
   from=<kees op pcict9.rijnh.nl>, size=3040, class=0, nrcpts=1,
   msgid=<Pine.LNX.4.62.0504230140150.24192 op pcict9.rijnh.nl>,
   proto=ESMTP, daemon=MTA, relay=IDENT:1000 op localhost [127.0.0.1]

3) (een child van) het submission program log dat de mail is doorgestuurd
   naar de smtp daemon op localhost (relay=[127.0.0.1] [127.0.0.1])

Apr 23 03:43:10 pcict9 sendmail[24529]: j3N1hAuD024527:
   to=<linux op lists.nllgg.nl>, ctladdr=<kees op pcict9.rijnh.nl> (1000/100),
   delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=122865,
   relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent
   (j3N1hAhX024530 Message accepted for delivery)

4) (een child van) de smtp daemon logt dat de mail is doorgestuurd
   naar lists.nllgg.nl (relay=lists.nllgg.nl. [213.136.17.26])

Apr 23 03:43:15 pcict9 sm-mta[24533]: j3N1hAhX024530:
   to=<linux op lists.nllgg.nl>, ctladdr=<kees op pcict9.rijnh.nl> (1000/100),
   delay=00:00:05, xdelay=00:00:05, mailer=esmtp, pri=123040,
   relay=lists.nllgg.nl. [213.136.17.26], dsn=2.0.0, stat=Sent
   (j3N1hEc5028576 Message accepted for delivery)

Merk op dat de submission programs gelogd zijn met process naam en nummer
sendmail[proc-id] en dat dat bij de daemon processen sm-mta[proc-id] was.

Tot zover de inleiding.
Je vroeg je af of sendmail nog met root rechten draait.
Het mail submission program doet dat dus niet meer, maar de daemon
nog wel. En die daemon moet er uiteindelijk voor zorgen dat het mailtje
naar buiten gaat.
Ik heb me nog even afgevraagd of je misschien dat hele uucp gedoe in
submit.cf hebt geprakt in plaats van in sendmail.cf, maar daar lijkt het
niet op. In je eerste mailtje gaf je de log regel:

Apr 20 20:39:23 vulcan sm-mta[989]: j3KIdNBe000986:
   to=<johanw op xs4all.nl>, ctladdr=<johanw op vulcan.xs4all.nl> (501/100),
   delay=00:00:00, xdelay=00:00:00, mailer=uucp-dom, pri=30675,
   relay=xs4all, dsn=5.0.0, stat=Service unavailable

Dat sm-mta[989] geeft aan dat het een daemon process was dat met root
rechten zou moeten draaien en niet het submission program.
Ik baseer me hierbij wel op mijn interpretatie van de logs van mijn
eigen machine en dat is een andere versie dan jij hebt (bij mij:
slackware 10.1 met sendmail 8.13.3).
Van slackware 10.0 heb ik geen logs meer beschikbaar, maar ik verwacht
geen veschillen met betrekking tot dit aspect.


Ik heb geen idee waarom je uux niet zou mogen starten.
Wat geeft "ps -ef|grep sendmail" bij jou?
Bij mij is dat:

kees op pcict9:/usr/share/sendmail$ ps -ef|grep sendmail
root   2305  1  0 Apr19 ?    00:00:00 sendmail: accepting connections
smmsp  2308  1  0 Apr19 ?    00:00:00 sendmail: Queue runner op 00:25:00
                                      for /var/spool/clientmqueue

Proces 2305 is de sendmail daemon en die draait met root rechten en die
zou als ik uucp zou gebruiken uux moeten opstarten.
Proces 2308 is alleen maar een programma dat periodiek de queu van het
submission program leeg maakt als daar nog iets in zou staan.

Heb je ook geprobeerd wat er gebeurt als je een (natuurlijk aangepaste)
configuratie file gebruikt uit de slackware distributie in plaats van
je eigen oude configuratie? Ik denk daarbij aan linux.uucp.mc of
desnoods uucpproto.mc beide uit de sendmail-cf package.

[...]

>>Ik vraag me wel een paar dingen af:
>>1) Wat let je om voor je uitgaande mail smtp te gebruiken? Heeft dat
>>   iets te maken met de manier waarop andere mail binnen komt?
>
>Ik krijg de mail zowiezo binnen als uucp feed. Of ik een uucp node kan
>combineren met een bSMTP node met hetzelfde subdomein weet ik niet,
>maar ik denk niet dat Xs4all dat doet. En als het al gaat gaat het me
>waarschijnlijk wel meer kosten.

De manier waarop jij je mail vestuurt staat helemaal los van de manier
waarop mail binnen komt. Als jij, een xs4all klant met een ip nummer in
het xs4all.nl domain, je uitgaande mail met smtp naar de smtp server
van xs4all stuurt dan ben ik er van overtuigd dat die mail daar wordt
geaccepteerd. En je kan eventueel ook zelf rechtstreeks je mail versturen
zonder gebruik te maken van een "smarthost" van xs4all.


Groeten,

Kees.

-- 
Kees Theunissen
F.O.M.-Instituut voor Plasmafysica "Rijnhuizen", Nieuwegein
E-mail: theuniss op rijnh.nl,     Tel: 030-6096724,     Fax: 030-6031204



More information about the Linux mailing list