logo Homepage Wolfgang Wilhelm :: v 0.9.1 21.02.2006 :: (v.0.9 __ 14.04.03)  
 
impressum :: feedback ::  Rubiks Magic ::  aktuelles   
Startseite
 LINKWEG ::: inhalt / sendmail als MTA / Software


sendmail als Mail Transport Agent

 

info  Software

arrow down Berkeley DB
arrow down SASL oder SASLv2
arrow down OpenSSL
arrow down sendmail

 

 Berkeley DB  
seitenanfang
 
openssl

Download extern BerkeleyDB 4.x
Die BerkeleyDB muss mindestens in der Version 3.x vorliegen, überprüfen Sie vor der Installation, ob auf Ihrem System nicht bereits eine ausreichend aktuelle BerkeleyDB installiert ist. Ist dies nicht der Fall, kann parallel* zu der alten Datenbank eine 4.x installiert werden:

*note: Im Hinblick auf weitere Softwarekomponenten, wie Cyrus IMAP, OpenLDAP, bogofilter etc., die eine BerkeleyDB 4.x erfordern,
kann sendmail auch direkt gegen diese Version gelinkt werden. Der Standardpfad /usr/local/BerkeleyDB.4.3 sollte dann noch in /etc/ld.so.conf mit aufgenommen werden.

Mit Distributionen die auf Paketmanagern basieren die entsprechenden devel und/oder lib Pakete einspielen.
Für eine Linux Mandrake Installation sind dies beispielsweise (für BDBV3):

	libdb3.2-devel-3.2.9-2mdk
	libdb3.2-3.2.9-2mdk
	db3-utils-3.2.9-2mdk
      

Ich empfehle eine Datenbank der Version 4

Ein simples ./configure && make && make install genügt und hinterlässt seine Spuren nur unter /usr/local/BerkeleyDB.4.x/
Zum Übersetzen der Programme gegen die neue DB4 muss den Linkern nur die richtigen Pfadangeben mitgegeben werden, manche Konfigurationsskript haben dazu eigene Parameter. Im Allgemeinen reicht es den Pfad zu den Bibliotheken /Includes zu setzen:

	echo "/usr/local/BerkeleyDB.4.3/" >> /etc/ld.so.conf
	ldconfig
      
und beim Übersetzen die Flags zu setzen
	LDFLAGS=-L/usr/local/BerkeleyDB.4.3/lib CPPFLAGS=-I/usr/local/BerkeleyDB.4.3/include ./configure ...
      

 

 SASL  
seitenanfang
 
sasl

sendmail und SASL müssen gegen dieselbe BerkeleyDB gebaut werden.


Download extern* SASL oder direkt von ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-1.5.28.tar.gz
Dieses Beispiel gilt für SASLv1 mit den BDBV3.

Das Archiv entpacken und SASL bauen:
	[mulder cyrus-sasl-1.5.28]# ./configure --prefix=/usr --enable-login --disable-krb4 --enable-pam
      

Die Methode LOGIN muss expliziet angegeben werden wenn M$ Ausblick Clienten eingesetzt werden sollen,
alle anderen sind als default gesetzt, aud diesem Grund wurde in diesem Beispiel auch KERBEROS deaktiviert.
Zu beachten ist das auf dem System die nötigen *-devel Pakete installiert sind, dies gilt bsp. für PAM.

	[...]
	checking DB library to use... berkeley
	checking PAM support... yes
	checking CRAM-MD5... enabled
	checking for openssl/des.h... yes
	checking DIGEST-MD5... enabled
	checking PLAIN... enabled
	checking LOGIN... enabled
	[...]
      
durch
	make && make install
      
werden in /usr/lib/sasl die nötigen Libaries installiert.
	[mulder cyrus-sasl-1.5.28]# ll /usr/lib/sasl/
	-rwxr-xr-x    1 root     root          699 Apr 14 15:25 libdigestmd5.la*
	lrwxrwxrwx    1 root     root           22 Apr 14 15:25 libdigestmd5.so -> libdigestmd5.so.0.0.19*
	lrwxrwxrwx    1 root     root           22 Apr 14 15:25 libdigestmd5.so.0 -> libdigestmd5.so.0.0.19*
	-rwxr-xr-x    1 root     root       104823 Apr 14 15:25 libdigestmd5.so.0.0.19*
	-rwxr-xr-x    1 root     root          681 Apr 14 15:25 liblogin.la*
	lrwxrwxrwx    1 root     root           17 Apr 14 15:25 liblogin.so -> liblogin.so.0.0.6*
	lrwxrwxrwx    1 root     root           17 Apr 14 15:25 liblogin.so.0 -> liblogin.so.0.0.6*
	-rwxr-xr-x    1 root     root        50394 Apr 14 15:25 liblogin.so.0.0.6*
	-rwxr-xr-x    1 root     root          683 Apr 14 15:25 libplain.la*
	lrwxrwxrwx    1 root     root           18 Apr 14 15:25 libplain.so -> libplain.so.1.0.15*
	lrwxrwxrwx    1 root     root           18 Apr 14 15:25 libplain.so.1 -> libplain.so.1.0.15*
	-rwxr-xr-x    1 root     root        49216 Apr 14 15:25 libplain.so.1.0.15*
      

 

SASLv2  
seitenanfang
 
saslv2

sendmail und SASL müssen gegen dieselbe BerkeleyDB gebaut werden.


hier wird die BerkeleyDB in der Version 4.x und SASLv2 eingesetzt:

Download extern* SASLv2 von ftp.andrew.cmu.edu/pub/cyrus-mail/
Durch die Migration zu Cyrus IMAP 2.1.15 verwende ich nun SASL in der Version 2.
Das Archiv entpacken und SASL bauen:

	[mulder cyrus-sasl-2.1.15]# LDFLAGS=-L/usr/local/BerkeleyDB.4.3/lib/ CPPFLAGS=-I/usr/local/BerkeleyDB.4.3/include/ ./configure --prefix=/usr --enable-login=yes --enable-krb4=no --sysconfdir=/etc --enable-pam
      

Die Methode LOGIN muss explizit angegeben werden wenn M$ Ausblick Clienten eingesetzt werden sollen,
alle anderen sind als default gesetzt, aus diesem Grund wurde in diesem Beispiel auch KERBEROS deaktiviert.
Zu beachten ist das auf dem System die nötigen *-devel Pakete installiert sind, dies gilt bsp. für PAM.

	[...]
	checking for PAM support... yes
	checking for db.h... yes
	checking for db_create in -ldb-4.1... yes
	checking DB library to use... berkeley
	checking CRAM-MD5... enabled
	checking DIGEST-MD5... enabled
	checking KERBEROS_V4... disabled
	checking PLAIN... enabled
	checking ANONYMOUS... enabled
	checking LOGIN... enabled
	checking NTLM... disabled
	[...]
      
durch
	make && make install
      
werden in /usr/lib/sasl2 die nötigen Libaries installiert.
	[mulder cyrus-sasl-1.5.28]# ll /usr/lib/sasl2/
	-rwxr-xr-x    1 root     root          736 Jun  2 09:32 libanonymous.la*
	lrwxrwxrwx    1 root     root           22 Jun  2 09:42 libanonymous.so -> libanonymous.so.2.0.13*
	lrwxrwxrwx    1 root     root           22 Jun  2 09:42 libanonymous.so.2 -> libanonymous.so.2.0.13*
	-rwxr-xr-x    1 root     root        83258 Jun  2 09:32 libanonymous.so.2.0.13*
	-rwxr-xr-x    1 root     root          724 Jun  2 09:31 libcrammd5.la*
	lrwxrwxrwx    1 root     root           20 Jun  2 09:42 libcrammd5.so -> libcrammd5.so.2.0.13*
	lrwxrwxrwx    1 root     root           20 Jun  2 09:42 libcrammd5.so.2 -> libcrammd5.so.2.0.13*
	-rwxr-xr-x    1 root     root        87366 Jun  2 09:31 libcrammd5.so.2.0.13*
	-rwxr-xr-x    1 root     root          754 Jun  2 09:31 libdigestmd5.la*
	lrwxrwxrwx    1 root     root           22 Jun  2 09:42 libdigestmd5.so -> libdigestmd5.so.2.0.13*
	lrwxrwxrwx    1 root     root           22 Jun  2 09:42 libdigestmd5.so.2 -> libdigestmd5.so.2.0.13*
	-rwxr-xr-x    1 root     root       134404 Jun  2 09:31 libdigestmd5.so.2.0.13*
	-rwxr-xr-x    1 root     root          727 Jun  2 09:31 libotp.la*
	lrwxrwxrwx    1 root     root           16 Jun  2 09:42 libotp.so -> libotp.so.2.0.13*
	lrwxrwxrwx    1 root     root           16 Jun  2 09:42 libotp.so.2 -> libotp.so.2.0.13*
	-rwxr-xr-x    1 root     root       209260 Jun  2 09:31 libotp.so.2.0.13*
	-rwxr-xr-x    1 root     root          720 Jun  2 09:32 libplain.la*
	lrwxrwxrwx    1 root     root           18 Jun  2 09:42 libplain.so -> libplain.so.2.0.13*
	lrwxrwxrwx    1 root     root           18 Jun  2 09:42 libplain.so.2 -> libplain.so.2.0.13*
	-rwxr-xr-x    1 root     root        82468 Jun  2 09:32 libplain.so.2.0.13*
	-rwxr-xr-x    1 root     root          736 Jun  2 09:31 libsasldb.la*
	lrwxrwxrwx    1 root     root           19 Jun  2 09:42 libsasldb.so -> libsasldb.so.2.0.13*
	lrwxrwxrwx    1 root     root           19 Jun  2 09:42 libsasldb.so.2 -> libsasldb.so.2.0.13*
	-rwxr-xr-x    1 root     root       138550 Jun  2 09:31 libsasldb.so.2.0.13*
      

 

 OpenSSL  
seitenanfang
 
openssl

Download

aktuelle extern OpenSSL Version von der Webseite laden,compilieren und installieren. Die momentan genutze Version kann mit

	[wwilhelm@mulder ~]# openssl version
	OpenSSL 0.9.6l 04 Nov 2003
      

gefunden werden. Mit Distributionen die auf Paketmanagern basieren die entsprechenden devel und/oder lib Pakete einspielen.
Die Hersteller bieten oft gepatchte Versionen, die nicht durch eine Erhöhung der Versionsnummer zu erkennen sind, am besten auf der Webseite nachschauen.

Ich habe aus den aktuellen Quellen selbst RPM Pakete gebaut, diese heissen (um Abgängigkeiten zu erfüllen) unter Linux Mandrake:

	libopenssl0-0.9.6l-1mdk
	libopenssl0-devel-0.9.6l-1mdk
	openssl-0.9.6l-1mdk
      

*Note: Im aktuellen Quellcode ist bereits eine .spec Datei enthalten mit der bequem RPM Pakete gebaut werden können. (Die Paketnamen sehen nach SuSE Linux aus). Mit einem Minorupdate musste ich nur OpenSSH neukompilieren, bei einem Major Upgrade müssen wohl alle Programme die die alten OpenSSL shared libaries nutzen neu übersetzt werden.

 

 Sendmail  
seitenanfang
 
openssl

Download

extern Sendmail 8.13.x
Vorbereitung:

1) Sendmail Benutzer und Gruppe anlegen

	groupadd smmsp
	useradd -g smmsp smmsp
	mkdir -p /var/spool/mqueue
	mkdir -p /var/spool/clientmqueue
	chown root.mail /var/spool/mqueue
	chown smmsp.smmsp /var/spool/clientmqueue
	chmod 750 /var/spool/mqueue
	chmod 770 /var/spool/clientmqueue
      

2) MILTER, STARTTLS und SASL Support konfigurieren:

Dazu eine Datei site.config.m4 im Verzeichnis {$sendmailsource}/devtools/Site anlegen:

download site.config.m4
	cd {$sendmailsource}
	touch devtools/Site/site.config.m4 anlegen
      
und in diese folgende Zeilen einfügen:
	# Stuff to use tls
	APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
	APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
	# Stuff to enable Milter
	APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
	APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER')
      
Für SASL
	# Stuff to use authentication
	APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL')
	APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
	
Für SASL in der Version 2:
	  APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
	  APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
	
Für BerkeleyDB 4.x:
	  APPENDDEF(`confLIBDIRS',`-L/usr/local/BerkeleyDB.4.3/lib/')
	  APPENDDEF(`confINCDIRS',`-I/usr/local/BerkeleyDB.4.3/include/')
	
* Für BerkeleyDB 3.x müssen keine extra Pfadangaben gesetzt werden.
3) sendmail bauen
	sh ./Build 
      
aufrufen. In der Ausgabe sollte gleich in einer der ersten Zeilen die eingebundene Datei auftauchen:
	"Including /usr/local/src/sendmail-8.13.4/devtools/Site/site.config.m4"
      

Ist dies nicht der Fall, wurde die Datei site.config.m4 nicht beachtet. Überprüfen Sie noch einmal Schritt 2 und lesen Sie ggf. die README Datein in devtools/Site/ und libmilter/.
Im Build Prozess sollten auch die Direktiven -DSASL(v2), -DSTARTTLS, -DMILTER auftauchen. Nach Abschluss sendmail mittels

	sh ./Build install
      
installieren,im Unterverzeichnis libmilter noch
	make && make install
      
ausführen um die MILTER Header Files zu installieren.Die einkompilieren Funktionen können per
	/usr/sbin/sendmail -d0.12 -bv root
      
überprüft werden. Es sollten mindestens die Werte MILTER, STARTTLS und SASL auftauchen.
	Version 8.13.4
	Compiled with: DNSMAP LOG MATCHGECOS MILTER MIME7TO8 MIME8TO7
                       NAMED_BIND NETINET NETUNIX NEWDB PIPELINING SASL SCANF STARTTLS
                       USERDB XDEBUG
      
Wurde sendmail mit SASL der Version 2 kompiliert sollte SASLv2 auftauchen.
	Version 8.13.4
	Compiled with: DNSMAP LOG MATCHGECOS MILTER MIME7TO8 MIME8TO7
                       NAMED_BIND NETINET NETUNIX NEWDB PIPELINING SASLv2 SCANF
                       STARTTLS USERDB XDEBUG
      
Gegen welche Bibliotheken die Binärdaten gelink wurden kann per
	/usr/bin/ldd /usr/sbin/sendmail
	libssl.so.0 => /usr/lib/libssl.so.0 (0x4001c000)
	libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4004d000)
	libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x40117000)
	libdb-4.3.so => /usr/local/BerkeleyDB.4.3/lib/libdb-4.3.so (0x40129000)
	libresolv.so.2 => /lib/libresolv.so.2 (0x401d1000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0x401e2000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x4020f000)
	libdl.so.2 => /lib/libdl.so.2 (0x40223000)
	libc.so.6 => /lib/i686/libc.so.6 (0x40227000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
      
angezeigt werden.

 

  
SMTP Authentifizierung  arrow right
 
Seitenanfang
           © 2003 by Wolfgang Wilhelm • mail:   wwilhelm at rz-online dot de handmade by xemacs   Valid XHTML 1.0!
Last modified: Tuesday, 11-Apr-2006 11:02:42 CEST
counter