[Date Prev][Date Next] [Chronological] [Thread] [Top]

openbsd+ldap+qmail: a nightmare



Hi folks,

i have been walking around and now i need to get qmail+ldap+openbsd working.
I could configure  everything, as usual openbsd runs rock solid. But i believe openldap does not like openbsd somehow. That's what i want to figure it out.

The point is: i have just setted up obsd+oldap+qmail. I am trying to send a message for the only user i have in the tree: somehow, i don't know why is "eating" all my system memory. I am really curious why it happens on OBSD. I am running amd64 5.2, but i remenber to have given up some time ago when the obsd version was not 5.2. When i issue ldapsearch not memory increase is realized.

The problem remains even with the 5.2 version.
Some information is provided below :

sioux@gustav$ uname -a
OpenBSD gustav.cpd.ufv.br 5.2 GENERIC.MP#368 amd64
sioux@gustav$ pkg_info | grep openldap
openldap-client-2.4.31 Open source LDAP software (client)
openldap-server-2.4.31p0 Open source LDAP software (server)
sioux@gustav$

For the /etc/openldap/slapd.conf, here you have it:

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/qmail.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral       ldap://root.openldap.org

pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args

# Load dynamic backend modules:
# modulepath    /usr/local/libexec/openldap
# moduleload    back_bdb.la
# moduleload    back_hdb.la
# moduleload    back_ldap.la

# Sample security restrictions
#       Require integrity protection (prevent hijacking)
#       Require 112-bit (3DES or better) encryption for updates
#       Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#       Root DSE: allow anyone to read it
#       Subschema (sub)entry DSE: allow anyone to read it
#       Other DSEs:
#               Allow self write access
#               Allow authenticated users read access
#               Allow anonymous users to authenticate
#       Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
#       by self write
#       by users read
#       by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# BDB database definitions
#######################################################################

database        bdb
#suffix         "dc=my-domain,dc=com"
suffix          "dc=ufv,dc=br"
#rootdn         "cn=Manager,dc=my-domain,dc=com"
rootdn          "cn=oldap,dc=ufv,dc=br"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
#rootpw         secret
rootpw          {SSHA}HBjSmSCbiE8J26EuDg3ULnSj2SmN1x5g
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory       /var/openldap-data
# Indices to maintain
index   cn                                      eq
index   objectClass                             eq
index   mail,mailalternateaddress,uid           eq,sub
index   accountstatus,mailhost,deliverymode     eq
index   default                                 eq

cachesize       4096
checkpoint      128 15
dbnosync
dirtyread

sasl-host       gustav.cpd.ufv.br
sasl-realm      UFV.BR
sasl-regexp     uid=([^,]+),cn=UFV.BR,cn=gssapi,cn=auth
                uid=$1,ou=people,dc=ufv,dc=br

limits dn.base="cn=ypldap,ou=appsrv,dc=ufv,dc=br" time=2048 size=16384
limits dn.base="cn=mail,ou=appsrv,dc=ufv,dc=br" time=2048 size=16384
limits dn. time=4 size=16384

################################################################################
# access definition on ou=appsrv,dc=ufv,dc=br
################################################################################

access to dn. attrs=userPassword
        by self read
        by anonymous auth
#       by * none

access to dn.>        by dn. read

access to dn.base="ou=appsrv,dc=ufv,dc=br" attrs=entry
        by dn. read

################################################################################
# access definition on ou=group,dc=ufv,dc=br
################################################################################

access to dn.>        by dn.base="cn=ypldap,ou=appsrv,dc=ufv,dc=br" read
        by dn. read

access to dn.base="ou=group,dc=ufv,dc=br" attrs=entry
        by dn.base="cn=ypldap,ou=appsrv,dc=ufv,dc=br" read
        by dn. read

################################################################################
# access definition on ou=people,dc=ufv,dc=br
################################################################################

access to dn. attrs=userPassword
        by self read
        by dn.base="cn=mail,ou=appsrv,dc=ufv,dc=br" read
        by anonymous auth
        by * none

access to dn. attrs=uid,homeDirectory
        by self read
        by dn.base="cn=mail,ou=appsrv,dc=ufv,dc=br" read
        by dn.base="cn=ypldap,ou=appsrv,dc=ufv,dc=br" read

access to dn. attrs=cn,uidNumber,gidNumber,loginShell,gecos,description
        by self read
        by dn.base="cn=ypldap,ou=appsrv,dc=ufv,dc=br" read

access to dn. attrs=mail,mailMessageStore,mailAlternateAddress,qmailUID,qmailGID,mailHost,mailForwardingAddress,deliveryProgramPath,qmailDotMode,deliveryMode,mailReplyText,accountStatus,qmailAccountPurge,mailQuotaSize,mailQuotaCount,mailSizeMax
        by self read
        by dn.base="cn=mail,ou=appsrv,dc=ufv,dc=br" read

access to dn.>        by self read
        by dn.base="cn=ypldap,ou=appsrv,dc=ufv,dc=br" read
        by dn.base="cn=mail,ou=appsrv,dc=ufv,dc=br" read

access to dn.base="ou=people,dc=ufv,dc=br" attrs=entry
        by dn.base="cn=ypldap,ou=appsrv,dc=ufv,dc=br" read
        by dn.base="cn=mail,ou=appsrv,dc=ufv,dc=br" read
       
################################################################################
# access definition for the root (ufv.br)
################################################################################

access to dn.base="dc=ufv,dc=br" attrs=entry
        by dn.base="cn=ypldap,ou=appsrv,dc=ufv,dc=br" read
        by dn.base="cn=mail,ou=appsrv,dc=ufv,dc=br" read
       
#######################################################################
# Monitor database definitions
#######################################################################

database monitor

access to dn.subtree="cn=monitor"
        by dn.base="cn=oldap,dc=ufv,dc=br" read
#       by * none