Difference between revisions of "Mailutils:HOWTO:Sendmail MU LDAP"
From Mailutils
Jump to navigationJump to searchLine 46: | Line 46: | ||
=== sendmail.mc === | === sendmail.mc === | ||
+ | <pre> | ||
+ | dnl * Sendmail configuration | ||
+ | divert(-1) | ||
+ | OSTYPE(freebsd6) | ||
+ | dnl * To eliminate 8->7 bit base64 enconding | ||
+ | define(`SMTP_MAILER_FLAGS',`8') | ||
+ | dnl * Do not reveal my version number | ||
+ | define(`confRECEIVED_HEADER',`$?sfrom $s $.$?_($?s$|from $.$_) $. | ||
+ | by $j$?r with $r$. id $i$?u | ||
+ | for $u$.; $b') | ||
+ | dnl * Also, disable VRFY,EXPN | ||
+ | define(`confPRIVACY_FLAGS',`authwarnings,novrfy,noexpn,noetrn,needmailhelo') | ||
+ | |||
+ | dnl * do STARTTLS | ||
+ | define(`confCACERT_PATH', `/etc/mail/certs')dnl | ||
+ | define(`confCACERT', `/etc/mail/certs/sendmail.pem')dnl | ||
+ | define(`localCERT', `/etc/mail/certs/sendmail.pem')dnl | ||
+ | define(`confSERVER_CERT', `localCERT')dnl | ||
+ | define(`confSERVER_KEY', `localCERT')dnl | ||
+ | define(`confCLIENT_CERT', `localCERT')dnl | ||
+ | define(`confCLIENT_KEY', `localCERT')dnl | ||
+ | |||
+ | dnl * do SMTPAUTH | ||
+ | define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl | ||
+ | TRUST_AUTH_MECH(`LOGIN PLAIN')dnl | ||
+ | |||
+ | dnl * look for AuthOptions @ op.ps | ||
+ | define(`confAUTH_OPTIONS', `A p y')dnl | ||
+ | |||
+ | |||
+ | define(`confSAVE_FROM_LINES', `True')dnl | ||
+ | define(`HELP_FILE',`none')dnl | ||
+ | define(`confDELIVERY_MODE', `background')dnl | ||
+ | |||
+ | dnl * define(`confMAX_MESSAGE_SIZE',`31457280') | ||
+ | define(`confERROR_MESSAGE',`/etc/mail/error-header')dnl | ||
+ | define(`confREJECT_MSG',`550 Access denied. For our users call IT dpt 911')dnl | ||
+ | define(`confRELAY_MSG', `550 Relaying denied. For our users call IT dpt 911')dnl | ||
+ | |||
+ | dnl define(`confSMTP_LOGIN_MSG',`$j server; $b') | ||
+ | define(`confSMTP_LOGIN_MSG',`$j server ready.\nWelcome to us.\nSending UBE is forbidden.\nViolators will be severely prosecuted.') | ||
+ | |||
+ | dnl * DAEMON_OPTIONS(`Name=MTA,Addr=0.0.0.0') | ||
+ | DAEMON_OPTIONS(`Name=MTA,Addr=X.X.X.X') | ||
+ | DAEMON_OPTIONS(`Name=MTA-local0,Addr=127.0.0.1') | ||
+ | DAEMON_OPTIONS(`Name=MTA-local3,Addr=Y.Y.Y.Y') | ||
+ | DAEMON_OPTIONS(`Family=inet,Name=MTA-SSL,Port=465,M=abs') | ||
+ | |||
+ | # Maps | ||
+ | define(`confLDAP_DEFAULT_SPEC', `-H ldaps://ldap.foo.bar -b ou=foo.bar,ou=Sendmail,dc=foo,dc=bar -w3 -d uid=bind@mail.foo,ou=people,dc=foo,dc=bar -P /etc/mail/ldappass')dnl | ||
+ | define(`confLDAP_CLUSTER', `fo01') | ||
+ | |||
+ | LOCAL_CONFIG | ||
+ | Klocal_alias hash -T<TMPF> -o /etc/mail/aliases | ||
+ | Kldap_alias ldap -k (&(objectClass=sendmailMTAAliasObject)(sendmailMTAAliasGrouping=aliases)(|(sendmailMTACluster=${sendmailMTACluster})(sendmailMTAHost=$j))(sendmailMTAKey=%0)) -v sendmailMTAAliasValue | ||
+ | define(`ALIAS_FILE',`sequence: local_alias ldap_alias') | ||
+ | |||
+ | FEATURE(`access_db', `LDAP') | ||
+ | FEATURE(`mailertable', `LDAP') | ||
+ | |||
+ | FEATURE(use_cw_file) | ||
+ | FEATURE(use_ct_file) | ||
+ | FEATURE(redirect) | ||
+ | FEATURE(always_add_domain) | ||
+ | FEATURE(blacklist_recipients) | ||
+ | FEATURE(relay_entire_domain) | ||
+ | |||
+ | # Milter | ||
+ | define(`confMILTER_LOG_LEVEL',4) | ||
+ | INPUT_MAIL_FILTER(`mailfrom', `S=unix:/var/run/mailfromd/mailfromd.sock, F=T, T=S:120s;R:360s') | ||
+ | |||
+ | # Mailers | ||
+ | MAILER_DEFINITIONS | ||
+ | Mlocal-ldap, P=/usr/local/sbin/maidag, F=lsDFMA5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, | ||
+ | T=DNS/RFC822/X-Unix, | ||
+ | A=maidag $u@$h | ||
+ | |||
+ | MAILER(smtp) | ||
+ | </pre> | ||
=== mailertable === | === mailertable === |
Revision as of 13:45, 29 August 2013
Task
- to get users database in accessible via LDAP
- to get multidomain (multi domains with separate (if needed) users for each domain) support in sendmail
LDAP
slapd.conf
LDIF
sendmail
we'll build sendmail with STARTTLS, SMTPAUTH, LDAP and db44 support
build config
site.config.m4
## # general APPENDDEF(`confINCDIRS', `-I/usr/local/include -I/usr/local/include/db44') APPENDDEF(`confLIBDIRS', `-L/usr/local/lib -L/usr/local/lib/db44') ## DB44 #APPENDDEF(`confENVDEF', `-I/usr/local/include -I/usr/local/include/db44') #APPENDDEF(`conf_sendmail_LIBS', `-L/usr/local/lib -L/usr/local/lib/db44') # SASL2 (smtp authentication) APPENDDEF(`confENVDEF', `-DSASL=2') APPENDDEF(`conf_sendmail_LIBS', `-lsasl2') # LDAP APPENDDEF(`confMAPDEF', `-DLDAPMAP') APPENDDEF(`confLIBS', `-lldap -llber') # STARTTLS (smtp + tls/ssl) APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -D_FFR_TLS_1') APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto') # rest APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER -DSOCKETMAP -DMAP_REGEX -DNEWDB')
sendmail.mc
dnl * Sendmail configuration divert(-1) OSTYPE(freebsd6) dnl * To eliminate 8->7 bit base64 enconding define(`SMTP_MAILER_FLAGS',`8') dnl * Do not reveal my version number define(`confRECEIVED_HEADER',`$?sfrom $s $.$?_($?s$|from $.$_) $. by $j$?r with $r$. id $i$?u for $u$.; $b') dnl * Also, disable VRFY,EXPN define(`confPRIVACY_FLAGS',`authwarnings,novrfy,noexpn,noetrn,needmailhelo') dnl * do STARTTLS define(`confCACERT_PATH', `/etc/mail/certs')dnl define(`confCACERT', `/etc/mail/certs/sendmail.pem')dnl define(`localCERT', `/etc/mail/certs/sendmail.pem')dnl define(`confSERVER_CERT', `localCERT')dnl define(`confSERVER_KEY', `localCERT')dnl define(`confCLIENT_CERT', `localCERT')dnl define(`confCLIENT_KEY', `localCERT')dnl dnl * do SMTPAUTH define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl TRUST_AUTH_MECH(`LOGIN PLAIN')dnl dnl * look for AuthOptions @ op.ps define(`confAUTH_OPTIONS', `A p y')dnl define(`confSAVE_FROM_LINES', `True')dnl define(`HELP_FILE',`none')dnl define(`confDELIVERY_MODE', `background')dnl dnl * define(`confMAX_MESSAGE_SIZE',`31457280') define(`confERROR_MESSAGE',`/etc/mail/error-header')dnl define(`confREJECT_MSG',`550 Access denied. For our users call IT dpt 911')dnl define(`confRELAY_MSG', `550 Relaying denied. For our users call IT dpt 911')dnl dnl define(`confSMTP_LOGIN_MSG',`$j server; $b') define(`confSMTP_LOGIN_MSG',`$j server ready.\nWelcome to us.\nSending UBE is forbidden.\nViolators will be severely prosecuted.') dnl * DAEMON_OPTIONS(`Name=MTA,Addr=0.0.0.0') DAEMON_OPTIONS(`Name=MTA,Addr=X.X.X.X') DAEMON_OPTIONS(`Name=MTA-local0,Addr=127.0.0.1') DAEMON_OPTIONS(`Name=MTA-local3,Addr=Y.Y.Y.Y') DAEMON_OPTIONS(`Family=inet,Name=MTA-SSL,Port=465,M=abs') # Maps define(`confLDAP_DEFAULT_SPEC', `-H ldaps://ldap.foo.bar -b ou=foo.bar,ou=Sendmail,dc=foo,dc=bar -w3 -d uid=bind@mail.foo,ou=people,dc=foo,dc=bar -P /etc/mail/ldappass')dnl define(`confLDAP_CLUSTER', `fo01') LOCAL_CONFIG Klocal_alias hash -T<TMPF> -o /etc/mail/aliases Kldap_alias ldap -k (&(objectClass=sendmailMTAAliasObject)(sendmailMTAAliasGrouping=aliases)(|(sendmailMTACluster=${sendmailMTACluster})(sendmailMTAHost=$j))(sendmailMTAKey=%0)) -v sendmailMTAAliasValue define(`ALIAS_FILE',`sequence: local_alias ldap_alias') FEATURE(`access_db', `LDAP') FEATURE(`mailertable', `LDAP') FEATURE(use_cw_file) FEATURE(use_ct_file) FEATURE(redirect) FEATURE(always_add_domain) FEATURE(blacklist_recipients) FEATURE(relay_entire_domain) # Milter define(`confMILTER_LOG_LEVEL',4) INPUT_MAIL_FILTER(`mailfrom', `S=unix:/var/run/mailfromd/mailfromd.sock, F=T, T=S:120s;R:360s') # Mailers MAILER_DEFINITIONS Mlocal-ldap, P=/usr/local/sbin/maidag, F=lsDFMA5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, T=DNS/RFC822/X-Unix, A=maidag $u@$h MAILER(smtp)
mailertable
test.foo.bar local-ldap:test.foo.bar