Sendmail MTA (Mail Transfer Agent) has support for different kinds of database maps (e.g. LDAP, Berkeley DB). It also supports socketmap "databases" that use a simple socketmap protocol. In other words, we can freely create our own custom programs that:
Socketmaps can provide:
or indeed any custom databases you might have in your sendmail.cf
configuration. The communication between Sendmail and programs providing socketmap databases happens using a Netstring based protocol.
We can implement almost any kind of logic for key-value lookups in our programs.
I had to write ldapsockmapd
because the existing alternatives could not handle my needs. ldapsockmapd
serves as a kind of a proxy to an LDAP service provided by OpenLDAP servers.
So ldapsockmapd
stands for words "LDAP Socketmap Daemon". It is a real-world program that can serve as an example of a Unix daemon providing socketmap service. ldapsockmapd
source code is available for you to study, use and modify as free software under GNU GPLv2 license.
You can download ldapsockmapd-1.0.1.tar.xz.
This program has been tested on Red Hat Enterprise Linux 7 and it also contains its own custom Security-Enhanced Linux policy module. I run ldapsockmapd
confined in an ldapsockmapd_t
SELinux security domain.
I do not want to duplicate program documentation here. After unpacking the tar.xz
archive, please read:
doc/README
doc/latex/ldapsockmapd.html
or doc/latex/ldapsockmapd.8
Unfortunately the classic Sendmail O'Reilly "Batbook" (4th edition), as great as it is, contains very little information about the socketmaps. I use ldapsockmapd
for providing Sendmail's aliasesdb database. For that purpose, my /etc/mail/sendmail.mc
has the following m4 configuration line:
It is very unlikely that ldapsockmapd
would be useful to you as it is. But I hope its source code could serve as an example of how to:
If you find any bugs, or have ideas for enhancements, please send me email. Have fun!