How to enable the SpamAssassin LDAP self-test --------------------------------------------- - install openldap server, using apt-get etc. On Debian (unstable), that's done as follows: sudo apt-get install slapd ldap-utils Then enter an admin password. - Patch the 'inetorgperson.schema' file, found in the following locations: Fedora Core 1: /etc/openldap/schema/inetorgperson.schema Debian: /etc/ldap/schema/inetorgperson.schema as follows: --- /etc/openldap/schema/inetorgperson.schema.default 2003-10-23 07:26:01.000000000 -0700 +++ /etc/openldap/schema/inetorgperson.schema 2004-02-05 22:07:01.000000000 -0800 @@ -121,6 +121,13 @@ DESC 'RFC2798: personal identity information, a PKCS #12 PFX' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 ) +# spamassassin +# see http://SpamAssassin.org/ . +attributetype ( 2.16.840.1.113730.3.1.220 + NAME 'spamassassin' + DESC 'SpamAssassin user preferences settings' + EQUALITY caseExactMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) # inetOrgPerson # The inetOrgPerson represents people who are associated with an @@ -138,5 +145,5 @@ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo $ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIdentifier $ preferredLanguage $ - userSMIMECertificate $ userPKCS12 ) + userSMIMECertificate $ userPKCS12 $ spamassassin ) ) - set up according to http://yolinux.com/TUTORIALS/LinuxTutorialLDAP.html#TUTORIAL . To go into some detail, here's what you need to do... - Edit the slapd.conf file, and add the "o=stooges" suffix, so that the LDIF file we'll be using will be valid. On Debian, this means changing the existing /etc/ldap/slapd.conf file according to these substitutions: s/"dc=jmason,dc=org"/"o=stooges"/g s/"cn=admin,dc=jmason,dc=org"/"cn=StoogeAdmin,o=stooges"/g Also, add these two lines to set the "root" password so the LDIF file can be loaded (ONLY FOR TESTING! DO NOT DO THIS ON A LIVE SERVER!): rootdn "cn=StoogeAdmin,o=stooges" rootpw secret1 On Fedora Core 1, you can use the file from http://yolinux.com/TUTORIALS/OpenLDAP2.0-stooges-slapd.conf-sample.txt pretty much as-is. - Next, create the storage directories: sudo mkdir /var/lib/ldap/stooges /var/lib/ldap/fraternity sudo chown ldap.ldap /var/lib/ldap/stooges [Fedora Core only] sudo chown ldap.ldap /var/lib/ldap/fraternity [Fedora Core only] - And start the server: sudo /etc/rc.d/init.d/ldap start [Fedora Core only] sudo /etc/init.d/slapd start [Debian only] - Now load the LDIF data for our testing: (this LDIF file adds a "spamassassin" line to the "curley" user.) ldapadd -f ldap/sa_test.ldif -xv -D "cn=StoogeAdmin,o=stooges" \ -h 127.0.0.1 -w secret1 - install Net::LDAP using CPAN: perl -MCPAN -e shell install Convert::ASN1 install Net::LDAP quit - create the test flag file: touch t/do_ldap - now "make test" will test against the LDAP server as well. You can also run "cd t; ./spamd_ldap.t" to run just that test directly.