<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.frotmail.nl/index.php?action=history&amp;feed=atom&amp;title=Cyrus_SASL</id>
	<title>Cyrus SASL - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.frotmail.nl/index.php?action=history&amp;feed=atom&amp;title=Cyrus_SASL"/>
	<link rel="alternate" type="text/html" href="https://wiki.frotmail.nl/index.php?title=Cyrus_SASL&amp;action=history"/>
	<updated>2026-08-06T03:37:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.frotmail.nl/index.php?title=Cyrus_SASL&amp;diff=56&amp;oldid=prev</id>
		<title>Eric: Created page with &quot;Op deze pagina ga ik proberen uit te leggen hoe ik Postfix (2.2.10) aan de praat heb gekregen met Cyrus SASL (de Cyrus SASL versie komt uit het default slackware package. Deze heeft standaard geen ondersteuning voor MySQL en dit is ook niet het doel van deze howto)  =Postfix opnieuw Compilen= Om TLS en SASL ondersteuning in Postfix te krijgen moeten we deze opnieuw compilen. Omdat mijn postfix configuratie gebruik maakt van MySQL voor de user accounts ga ik ook mysql sup...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.frotmail.nl/index.php?title=Cyrus_SASL&amp;diff=56&amp;oldid=prev"/>
		<updated>2022-04-05T09:16:12Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Op deze pagina ga ik proberen uit te leggen hoe ik Postfix (2.2.10) aan de praat heb gekregen met Cyrus SASL (de Cyrus SASL versie komt uit het default slackware package. Deze heeft standaard geen ondersteuning voor MySQL en dit is ook niet het doel van deze howto)  =Postfix opnieuw Compilen= Om TLS en SASL ondersteuning in Postfix te krijgen moeten we deze opnieuw compilen. Omdat mijn postfix configuratie gebruik maakt van MySQL voor de user accounts ga ik ook mysql sup...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Op deze pagina ga ik proberen uit te leggen hoe ik Postfix (2.2.10) aan de praat heb gekregen met Cyrus SASL (de Cyrus SASL versie komt uit het default slackware package. Deze heeft standaard geen ondersteuning voor MySQL en dit is ook niet het doel van deze howto)&lt;br /&gt;
&lt;br /&gt;
=Postfix opnieuw Compilen=&lt;br /&gt;
Om TLS en SASL ondersteuning in Postfix te krijgen moeten we deze opnieuw compilen.&lt;br /&gt;
Omdat mijn postfix configuratie gebruik maakt van MySQL voor de user accounts ga ik ook mysql support inbakken:&lt;br /&gt;
 make clean&lt;br /&gt;
 make -f Makefile.init makefiles \&lt;br /&gt;
     &amp;#039;CCARGS=-DUSE_TLS -DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_CYRUS_SASL&amp;#039; \&lt;br /&gt;
     &amp;#039;AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto&amp;#039;&lt;br /&gt;
 make install&lt;br /&gt;
Ik ga er vanuit dat je reeds een werkende postfix installatie hebt en dus ga ik niet in op de verdere details van de postfix installatie&lt;br /&gt;
&lt;br /&gt;
=Configuratie Postfix=&lt;br /&gt;
Ook hier ga ik ervanuit dat je reeds een werkende config hebt en dus alleen de aanvulling voor TLS en SASL nodig hebt.&lt;br /&gt;
&lt;br /&gt;
De aanvulling van main.cf voor SASL:&lt;br /&gt;
 smtpd_sasl_auth_enable = yes&lt;br /&gt;
 smtpd_sasl2_auth_enable = yes&lt;br /&gt;
 smtpd_sasl_security_options = noanonymous&lt;br /&gt;
 broken_sasl_auth_clients = yes&lt;br /&gt;
 smtpd_sasl_local_domain =&lt;br /&gt;
 smtpd_recipient_restrictions =&lt;br /&gt;
       permit_sasl_authenticated,&lt;br /&gt;
       permit_mynetworks,&lt;br /&gt;
       reject_unauth_destination&lt;br /&gt;
&lt;br /&gt;
Het is belangrijk dat de smtpd_sasl_local_domain leeg is!  We zullen straks in moeten loggen met username@servername. Ik heb getest om dan servername als local_domain op te geven maar dit werkte niet. Als iemand hier een antwoord op heeft dan hoor ik het graag!&lt;br /&gt;
&lt;br /&gt;
SASL zonder TLS heeft weinig nut en dus moet je ook onderstaand stuk toevoegen aan je config (doe je dat niet dan kan je toch SASL gebruiken maar dan zonder de encryptie).&lt;br /&gt;
&lt;br /&gt;
De aanvulling voor main.cf voor TLS:&lt;br /&gt;
 smtpd_use_tls = yes&lt;br /&gt;
 #smtpd_tls_auth_only = yes&lt;br /&gt;
 smtpd_tls_key_file = /etc/postfix/server.key&lt;br /&gt;
 smtpd_tls_cert_file = /etc/postfix/server.crt&lt;br /&gt;
 smtpd_tls_CAfile = /etc/postfix/cacert.pem&lt;br /&gt;
 smtpd_tls_loglevel = 3&lt;br /&gt;
 smtpd_tls_received_header = yes&lt;br /&gt;
 smtpd_tls_session_cache_timeout = 3600s&lt;br /&gt;
 tls_random_source = dev:/dev/urandom&lt;br /&gt;
&lt;br /&gt;
De certificaten moeten dan uiteraard wel in orde zijn. Deze kunnen we kopieren van de apache certificaten.&lt;br /&gt;
&lt;br /&gt;
=Config van SASL2=&lt;br /&gt;
SASL moet ook geconfigureerd worden, in de configfile moet worden aangegeven waar de authorisatie gecontroleerd kan worden. In dit geval kiezen we voor saslauth-daemon.&lt;br /&gt;
&lt;br /&gt;
Config /usr/local/lib/sasl2/smtpd.conf:&lt;br /&gt;
 pwcheck_method: saslauthd&lt;br /&gt;
 mech_list: LOGIN PLAIN&lt;br /&gt;
&lt;br /&gt;
Deze daemon moeten we dan starten met:&lt;br /&gt;
 chmod +x /etc/rc.d/rc.saslauthd&lt;br /&gt;
 /etc/rc.d/rc.saslauthd start&lt;br /&gt;
&lt;br /&gt;
Pas op: Op sommige installaties staat de sasl2 map in /usr/lib ipv /usr/local/lib, maak in dat geval een link aan:&lt;br /&gt;
 ln -s /usr/lib/sasl2 /usr/local/lib/sasl2&lt;br /&gt;
&lt;br /&gt;
=Configuratie testen=&lt;br /&gt;
Nu moeten we met telnet kunnen zien dat TLS en AUTH enabled zijn:&lt;br /&gt;
&lt;br /&gt;
 root@testbak:/# Telnet testserver 25&lt;br /&gt;
&lt;br /&gt;
 220 testserver ESMTP Postfix on testserver&lt;br /&gt;
 EHLO test&lt;br /&gt;
 250-testserver &lt;br /&gt;
 250-PIPELINING&lt;br /&gt;
 250-SIZE 51200000&lt;br /&gt;
 250-VRFY&lt;br /&gt;
 250-ETRN&lt;br /&gt;
 250-STARTTLS&lt;br /&gt;
 250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN OTP&lt;br /&gt;
 250-AUTH=CRAM-MD5 DIGEST-MD5 LOGIN PLAIN OTP&lt;br /&gt;
 250 8BITMIME&lt;br /&gt;
&lt;br /&gt;
=Aanmaken users=&lt;br /&gt;
Omdat we geen mysql kunnen gebruiken bij de standaard SASL moeten we even een aparte sasl user file maken, de commando&amp;#039;s hiervoor zijn:&lt;br /&gt;
&lt;br /&gt;
- saslpasswd2&lt;br /&gt;
&lt;br /&gt;
- sasldblistusers2&lt;br /&gt;
&lt;br /&gt;
Aanmaken testuser:&lt;br /&gt;
 root@testserver:/# saslpasswd2 -c test&lt;br /&gt;
 Password:&lt;br /&gt;
 Again (for verification):&lt;br /&gt;
&lt;br /&gt;
Zorgen dat postfix ook de db file kan lezen:&lt;br /&gt;
 root@testserver:/# chmod 666 /etc/sasldb2&lt;br /&gt;
&lt;br /&gt;
En tenslotte kunnen we kijken welke user er nu is aangemaakt:&lt;br /&gt;
 root@testserver:/# sasldblistusers2&lt;br /&gt;
 test@testserver: userPassword&lt;br /&gt;
 test@testserver: cmusaslsecretOTP&lt;br /&gt;
&lt;br /&gt;
We moeten nu dus ook test@testserver als username gebruiken!!&lt;br /&gt;
&lt;br /&gt;
=Testen=&lt;br /&gt;
&lt;br /&gt;
TLS is een beetje lastig om na te bootsen dus zullen we dit niet gebruiken bij de telnet test. De AUTH PLAIN functie is wel vrij gemakkelijk na te bootsen door de username en password samen met base64 te encoderen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php echo base64_encode(&amp;quot;test@testserver\0test@testserver\0testpass&amp;quot;); ?&amp;gt;&lt;br /&gt;
leert ons dat de login string&lt;br /&gt;
 dGVzdEB0ZXN0c2VydmVyAHRlc3RAdGVzdHNlcnZlcgB0ZXN0cGFzcw==&lt;br /&gt;
is&lt;br /&gt;
&lt;br /&gt;
Het bash-commando:&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php=base64_encode(\&amp;quot;test@testserver\\0test@testserver\\0testpass\&amp;quot;); ?&amp;gt;&amp;quot; | php&lt;br /&gt;
&lt;br /&gt;
Test mail:&lt;br /&gt;
&lt;br /&gt;
 220 testserver ESMTP Postfix on testserver&lt;br /&gt;
 EHLO LOCALHOST&lt;br /&gt;
 250-testserver&lt;br /&gt;
 250-PIPELINING&lt;br /&gt;
 250-SIZE 51200000&lt;br /&gt;
 250-VRFY&lt;br /&gt;
 250-ETRN&lt;br /&gt;
 250-STARTTLS&lt;br /&gt;
 250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN OTP&lt;br /&gt;
 250-AUTH=CRAM-MD5 DIGEST-MD5 LOGIN PLAIN OTP&lt;br /&gt;
 250 8BITMIME&lt;br /&gt;
 AUTH PLAIN dGVzdEB0ZXN0c2VydmVyAHRlc3RAdGVzdHNlcnZlcgB0ZXN0cGFzcw==&lt;br /&gt;
 235 Authentication successful&lt;br /&gt;
 MAIL FROM: &amp;lt;test@testserver&amp;gt;&lt;br /&gt;
 250 Ok&lt;br /&gt;
 RCPT TO: &amp;lt;test@otherdomain.tld&amp;gt;&lt;br /&gt;
 250 Ok&lt;br /&gt;
 DATA&lt;br /&gt;
 354 End data with &amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;.&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;br /&gt;
 Test&lt;br /&gt;
 .&lt;br /&gt;
 250 Ok: queued as 7A984BD635&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.gentoo.org/doc/nl/virt-mail-howto.xml&lt;br /&gt;
&lt;br /&gt;
http://ben.franske.com/blogs/bensbits.php/2005/09/06/postfix_smtp_auth_support_for_relayhost&lt;br /&gt;
&lt;br /&gt;
[[Category:Mail Related]]&lt;/div&gt;</summary>
		<author><name>Eric</name></author>
	</entry>
</feed>