original in en John E. Gotts
en to nl Tom Uijldert
$ patch -p0 <../../common/March1998/sendmail.diffGa naar de directory src en voer het volgende uit:
./makesendmailsendmail zou nu zonder problemen moeten bouwen.
Ik ga er hier vanuit dat je alleen gebruik maakt van elektronische post via TCP/IP. UUCP valt buiten dit artikel.
Ga naar de directory cf/cf en maak een nieuw bestand aan, genaamd generic-linux.mc met de volgende inhoud:
divert(-1) divert(0)dnl VERSIONID(`@(#)generic-linux2.mc 8.8 (Local) 11/22/97') OSTYPE(linux)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnlAls je ook nog netwerk adressen wilt vertalen (Masquerading), voeg dan de volgende twee regels toe:
MASQUERADE_AS(<hostname>)dnl EXPOSED_USER(root)dnlDit betekent dat het lijkt alsof alle elektronische post die wordt verstuurd vanuit jouw machine (behalve die van gebruiker root), wordt verstuurd vanaf de hostname (machine) die jij opgeeft. Dit is handig voor gebruikers die slechts af en toe een verbinding met het netwerk maken (oftewel gebruikers van SLIP en PPP) en voor machines met IP-adressen die dynamisch worden toegewezen (via BOOTP of DHCP). De EXPOSED_USER(root) kan vervallen voor sendmail 8.8.8 en hoger, vanaf dan is dit standaard ingebakken.
Indien je procmail wilt gebruiken als standaard afhandelaar voor je post (standaard op RedHat Linux), voeg dan de volgende regel toe:
FEATURE(local_procmail)dnlZet nu generic-linux.mc om in een sendmail.cf bestand:
$ m4 ../m4/cf.m4 generic-linux.mc >obj/sendmail.cfWellicht moet je het volgende (maak er commentaar van):
Cwlocalhostuit obj/sendmail.cf halen met het # teken, daar het inkomende post lijkt te verstoren op nieuwere distributies van Linux.
Bewaar je oude /etc/sendmail.cf bestand en installeer obj/sendmail.cf:
$ install -m 644 -o 0 obj/sendmail.cf /etc/sendmail.cfWanneer je deze hebt geïnstalleerd kun je de sendmail daemon stoppen (kill), teruggaan naar de src directory en het volgende uitvoeren:
$ cd obj.Linux.*.*; make installDit zal het sendmail programma installeren en de symbolische links. De help pagina's moeten met de hand worden geïnstalleerd.
Als je ervoor hebt gekozen om procmail niet te gebruiken, ga dan naar de hoofddirectory van sendmail en tik het volgende in:
$ uudecode contrib/mail.local.linux $ mv mail.local mail.local.old $ tar zxvf mail.local.linux.tar.Z $ cd mail.local $ gcc -O3 -o mail.local mail.local.c $ strip mail.local $ install -m 2711 -o 0 -g mail mail.local /bin $ install -m 644 -o 0 -g 0 mail.local.8 /usr/man/man8Je /var/spool/mail directory moet de protectie 775 hebben en van eigenaar root zijn, in de groep mail. Mail programma's moeten een SGID protectie krijgen voor de mail groep (mode 2711, eigenaar root, groep mail).
Je kunt nu je sendmail daemon herstarten. Die van mij start als volgt:
$ /usr/sbin/sendmail -bd -q1hLet op: RedHat start sendmail zonder volledige padnaam. Dit kan problemen geven zoals het geen HUP-signaal kunnen geven om z'n configuratie bestand opnieuw in te laten lezen. Verzeker je ervan dat het bestand /etc/rc/init.d/sendmail.init sendmail start met het volledige pad (/usr/sbin/sendmail) om dit te voorkomen.
Als je slechts af en toe verbinding hebt is het wellicht aan te raden om sendmail in deferred mode te starten:
/usr/sbin/sendmail -bd -o DeliveryMode=dtijdens opstarten en vervolgens te activeren met:
/usr/sbin/sendmail -qvoor het afleveren van alle opgehouden (deferred) mail na het maken van de verbinding met het netwerk en verdere periodieke afleveringen terwijl je een verbinding hebt (wellicht via een cron job).
Hier aangekomen moet je je nieuwe sendmail installatie testen. Hier is een mogelijkheid om dit te doen:
$ telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 <hostname> ESMTP Sendmail 8.8.8/8.8.8; Fri, 22 Nov 1997 03:21:18 -0500 helo localhost 250 <hostname> Hello jgotts@localhost [127.0.0.1], pleased to meet you mail from: jgotts 250 jgotts... Sender ok rcpt to: jgotts 250 jgotts... Recipient ok data 354 Enter mail, end with "." on a line by itself This is a test. . 250 DAA23297 Message accepted for deliveryVerzeker je er ook van dat andere mail programma's nog steeds werken en je nog steeds e-mail kan ontvangen van buiten.
Voetnoten:
1Ondersteuning voor TCP wrapper werkt niet onder 8.8.8. Voor een patch, zie:
http://www-personal.engin.umich.edu/~jgotts/linux/sendmail-8.8.8-tcp-wrappers-patch
Als je dan toch bezig bent kun je net zo goed meteen het volgende installeren:
http://www-personal.engin.umich.edu/~jgotts/linux/sendmail-8.8.8-core-dump-patch