Qmail LDAP Configuration for Kortek Electronics: Difference between revisions
Created page with "= qmail LDAP Configuration. = == Qmail Downloads == '''wget '''[http://www.qmailrocks.org/downloads/qmailrocks.tar.gz http://www.qmailrocks.org/downloads/qmailrocks.tar.gz] ..." |
No edit summary |
||
| Line 1: | Line 1: | ||
[[category:Kortek Electronics]] | |||
= qmail LDAP Configuration. = | = qmail LDAP Configuration. = | ||
== Qmail Downloads == | == Qmail Downloads == | ||
Latest revision as of 14:28, 14 January 2013
qmail LDAP Configuration.[edit]
Qmail Downloads[edit]
wget http://www.qmailrocks.org/downloads/qmailrocks.tar.gz
wget http://www.nrg4u.com/qmail/qmail-ldap-1.03-20060201.patch.gz
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum install gcc*
yum install openldap*
yum install zlib*
yum install glib
yum install gdbm*
yum install openssl-devel
yum install php*
Qmail Users / groups[edit]
mkdir -p /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias -s /sbin/nologin -p'*' alias
useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmaild
useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmaill
useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmailp
groupadd qmail
useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmailq
useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmailr
useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmails
groupadd vmail
useradd -g vmail -s /bin/true vmail
Qmail Compilation[edit]
mkdir -p /var/qmail
mkdir /usr/src/qmail
cd /usr/src/qmail
tar xvzf /downloads/qmailrocks/qmail-1.03.tar.gz
cd qmail-1.03
cd /downloads
gzip -d qmail-ldap-1.03-20060201.patch.gz
cd /usr/src/qmail/qmail-1.03
patch -p1 < /downloads/qmail-ldap-1.03-20060201.patch
vim Makefile
-------------------------------------------------------------------------------------------
LDAPFLAGS=-DQLDAP_CLUSTER -DEXTERNAL_TODO -DDASH_EXT -DDATA_COMPRESS -DQMQP_COMPRESS -DSMTPEXECCHECK -DALTQUEUE
ZLIB=-lz
MDIRMAKE=-DAUTOMAILDIRMAKE
HDIRMAKE=-DAUTOHOMEDIRMAKE
SHADOWLIBS=-lcrypt
DEBUG=-DDEBUG
-----------------------------------------------------------------------------------------
vi extra.h
----------------
#ifndef EXTRA_H
#define EXTRA_H
#define QUEUE_EXTRA "Tarch\0"
#define QUEUE_EXTRALEN 6
#endif
----------------
make setup check
Qmail Configration and LDAP controls files[edit]
mkdir /var/qmail/supervise
cd /var/qmail/supervise
mkdir -p qmail-smtpd/log qmail-send/log qmail-pop3d/log
chmod +t qmail-smtpd qmail-send qmail-pop3d
mkdir /var/log/qmail
cd /var/log/qmail
mkdir qmail-send qmail-smtpd qmail-pop3d
chown -R qmaill:root /var/log/qmail
chmod -R 750 /var/log/qmail
cd /var/qmail/control
echo 100 > concurrencyincoming
echo 255 > concurrencyremote
echo ./Maildir/ > defaultdelivery
echo kortekelectronics.com > defaultdomain
echo 10000 > defaultquotacount
echo 10000000 > defaultquotasize
echo /var/qmail/bin/dirmaker > dirmaker
echo dc=kortekelectronics,dc=com > ldapbasedn
echo 0 > ldapcluster
id -g vmail > ldapgid
echo cn=manager,dc=kortekelectronics,dc=com > ldaplogin
echo /home/vmail > ldapmessagestore
echo qmailUser > ldapobjectclass
echo p4mail1server > ldappassword
echo 127.0.0.1 > ldapserver
id -u vmail > ldapuid
echo mail1.kortekelectronics.com > me
echo 127.:allow,NOPBS="" :deny > qmail-pop3d.rules
echo 800000000 > qmail-smtpd-softlimit
echo 3 > qmail-start-loglevel
echo 3 > qmail-pop3d-loglevel
echo 800000000 > qmail-pop3d-softlimit
echo " Your mail quota is overflowing, check it out" > quotawarning
echo kortekelectronics.com >> rcpthosts
echo mail1.kortekelectronics.com >> rcpthosts
ln -s rcpthosts locals
echo admin@kortekelectronics.com > /var/qmail/alias/.qmail-root
echo admin@kortekelectronics.com > /var/qmail/alias/.qmail-postmaster
echo admin@kortekelectronics.com > /var/qmail/alias/.qmail-mailer-daemon
ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
chmod 644 /var/qmail/alias/.qmail*
cd /var/qmail
vi bin/dirmaker
-------------------------------------------------------------------------------------
#!/bin/sh
echo '----------------------------------------------' >> /tmp/dirmaker
date >> /tmp/dirmaker
echo $1 >> /tmp/dirmaker
id >> /tmp/dirmaker
mkdir --parents -m 700 -p $1/Maildir
mkdir --parents -m 700 -p $1/Maildir/tmp
mkdir --parents -m 700 -p $1/Maildir/cur
mkdir --parents -m 700 -p $1/Maildir/new
chown -R vmail:vmail $1
---------------------------------------------------------------------------------------
vi rc
---------------------------------------------------------------------------------------
#!/bin/sh
QLOG="`cat /var/qmail/control/qmail-start-loglevel`"
DEFD="`cat /var/qmail/control/defaultdelivery`"
exec env - PATH="/var/qmail/bin:$PATH" LOGLEVEL="$QLOG" qmail-start "$DEFD"
--------------------------------------------------------------------------------------------
chmod 755 rc bin/dirmaker
UCSPI-TCP / Daemontools Install[edit]
cd /usr/src/qmail
tar zxvf /downloads/qmailrocks/ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch
make && make setup check
mkdir -p /package
chmod 1755 /package
cd /package
tar zxvf /downloads/qmailrocks/daemontools-0.76.tar.gz
cd /package/admin/daemontools-0.76/src
patch < /downloads/qmailrocks/patches/daemontools-0.76.errno.patch
cd /package/admin/daemontools-0.76
package/install
Qmail Run Files[edit]
cd /var/qmail/supervise
vi qmail-smtpd/run
------------------------------------------------------------------------------------------
#!/bin/sh
QUID=`id -u qmaild`
QGID=`id -g qmaild`
MAXD=`head -1 /var/qmail/control/concurrencyincoming`
HOST=`head -1 /var/qmail/control/me`
SOFT=`head -1 /var/qmail/control/qmail-smtpd-softlimit`
CDBF="/etc/tcp.smtp.cdb"
if [ -z "$QUID" -o -z "$QGID" -o -z "$MAXD" -o -z "$HOST" ]; then
echo QUID, QGID, MAXD, or HOST is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
exec /usr/local/bin/softlimit -m $SOFT \
/usr/local/bin/tcpserver -v \
-H \
-R \
-l $HOST \
-x $CDBF \
-c $MAXD \
-u $QUID \
-g $QGID \
0 \
smtp \
/var/qmail/bin/qmail-smtpd \
/var/qmail/bin/auth_smtp /usr/bin/true 2>&1
---------------------------------------------------------------------------------------------
vi qmail-smtpd/log/run
---------------------------------------------------------------------------------------------
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s10000000 n20 /var/log/qmail/qmail-smtpd 2>&1
---------------------------------------------------------------------------------------------
vi qmail-send/run
---------------------------------------------------------------------------------------------
#!/bin/sh
exec /var/qmail/rc
---------------------------------------------------------------------------------------------
vi qmail-send/log/run
---------------------------------------------------------------------------------------------
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s10000000 n20 /var/log/qmail/qmail-send 2>&1
----------------------------------------------------------------------------------------------
vi qmail-pop3d/run
----------------------------------------------------------------------------------------------
#!/bin/sh
IP=`head -1 /var/qmail/control/me`
LL=`head -1 /var/qmail/control/qmail-pop3d-loglevel`
SL=`head -1 /var/qmail/control/qmail-pop3d-softlimit`
exec \
env LOGLEVEL=$LL \
softlimit -m $SL \
/usr/local/bin/tcpserver -v -R -H -l 0 0 pop3 \
/var/qmail/bin/qmail-popup $IP \
/var/qmail/bin/tcp-env \
/var/qmail/bin/auth_pop \
/var/qmail/bin/qmail-pop3d Maildir 2>&1
vi qmail-pop3d/log/run
--------------------------------------------------------------
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
exec setuidgid qmaill multilog t s10000000 n20 /var/log/qmail/qmail-pop3d 2>&1 --------------------------------------------------------------
vi /etc/tcp.smtp
---------------------------------------------------------------------------------------------------
127.:allow,RELAYCLIENT="",MAXRCPTCOUNT="25"
10.:allow,RELAYCLIENT="",MAXRCPTCOUNT="25"
- deny
#10.:allow,RELAYCLIENT="",SMTPAUTH="",AUTHREQUIRED="",SENDERCHECK="",LOGLEVEL="3",RCPTCHECK="",NOPBS="",SANITYCHECK="",BLCKRELAYPRBE=""
---------------------------------------------------------------------------------------------------
cd /var/qmail
rsync -avur /downloads/qmailrocks/scripts/finalize/qmailctl bin/.
ln -s /var/qmail/bin/qmailctl /usr/bin
Qmail others configuration[edit]
/etc/init.d/sendmail stop
chkconfig sendmail off
mv /usr/lib/sendmail /usr/lib/sendmail.org
mv /usr/sbin/sendmail /usr/sbin/sendmail.org
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
cd /var/qmail/supervise/
chmod +x */run
chmod +x */log/run
mkdir -p /service
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-pop3d /service
OPENLDAP Integration with QMAIL-LDAP[edit]
Configuration[edit]
cd /downloads
wget http://phpqladmin.com/phpQLAdmin-2.2.7.tar.gz
tar zxvf /downloads/phpQLAdmin-2.2.7.tar.gz
cd /etc/openldap
cp /usr/src/qmail/qmail-1.03/qmail.schema schema/.
cp /downloads/phpQLAdmin-2.2.7/schemas/phpQLAdmin.schema schema/.
vim slapd.conf
-----------------------------------------------------------------------------------------------------
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/qmail.schema
include /etc/openldap/schema/phpQLAdmin.schema
# Directives needed to implement policy:
database bdb
suffix "dc=kortekelectronics,dc=com"
rootdn "cn=Manager,dc=kortekelectronics,dc=com"
rootpw p4mail1server
-------------------------------------------------------------------------------------------------
vi ldap.conf
------------------------------------------------------------------------------------------------
HOST 127.0.0.1
BASE dc=kortekelectronics,dc=com
------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
vim schema/phpQLAdmin.schema
--------------------------------------------------------------------------------------------------
( Uncomment the following line )
# This is also availible in krb5-kdc.schema (from OpenLDAP.org)
attributetype ( 1.3.6.1.4.1.5322.10.1.12
NAME 'krb5RealmName'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} )
#
attributetype ( 1.3.6.1.4.1.5322.10.1.1
NAME 'krb5PrincipalName'
DESC 'The unparsed Kerberos principal name'
EQUALITY caseExactIA5Match
SINGLE-VALUE
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
# PQL_ATTR_KRB5_ADMIN_SERVER
attributetype ( 1.3.6.1.4.1.8767.3.2.2.15 NAME 'krb5AdminServer'
DESC 'Fully Qualified Host Name of the Kerberos admin server'
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.8767.3.2.4.1 NAME 'defaultDomain'
DESC 'Default domain name for the branch'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024}
SINGLE-VALUE )
------------------------------------------------------------------------------------------------
/etc/init.d/ldap start
Creation of LDAP datbase and LDIF FILES.[edit]
- ldif for creating base
vi base.ldif
------------------------------------------------------------------------
#kortekelectronics.com
dn: dc=kortekelectronics,dc=com
objectClass: top
objectClass: domain
dc: kortekelectronics
---------------------------------------------------------------------------------------
- ldif for creating organizational unit
vi ou.ldif
------------------------------------------------------------------------------------------
#kortekelectronics.com
dn: ou=users,dc=kortekelectronics,dc=com
objectClass: top
objectClass: organizationalUnit
ou: users
description: users
------------------------------------------------------------------------------------------
c. ldif file for creating Admin User.
(Note: Password is postmaster )
vi admin.ldif
-----------------------------------------------------------------------------------------
# admin, kortekelectronics.com
dn: uid=admin,ou=users,dc=kortekelectronics,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: qmailuser
cn: admin admin
sn: admin admin
mail: admin@kortekelectronics.com
accountStatus: active
userPassword:: e0NSWVBUfU9XY3dPTS9IekVBT2s=
mailMessageStore: kortekelectronics.com/admin
uid: admin
deliveryMode: noforward
------------------------------------------------------------------------------------------
Commnad to create user/ database[edit]
ldapadd -acvx -D"cn=Manager,dc=kortekelectronics,dc=com" -w p4mail1server -f base.ldif
ldapadd -acvx -D"cn=Manager,dc=kortekelectronics,dc=com" -w p4mail1server -f ou.ldif
ldapadd -acvx -D"cn=Manager,dc=kortekelectronics,dc=com" -w p4mail1server -f admin.ldif
Courier IMAP Integration.[edit]
Compilation and its parameters[edit]
cd /downloads/qmailrocks/
tar jxvf courier-authlib-0.55.tar.bz2
cd courier-authlib-0.55
./configure --prefix=/usr/local --exec-prefix=/usr/local --with-authldap --without-authmysql --disable-root-check --with-ssl --with-authchangepwdir=/usr/local/libexec/authlib --with-redhat
make && make check
make install-strip && make install-configure
vi /etc/rc.local
( Add following line )
----------------------------------------------------------------------------------------------------
/usr/local/sbin/authdaemond start
-----------------------------------------------------------------------------------------------------
cd /downloads/qmailrocks/
tar jxvf courier-imap-4.0.2.tar.bz2
useradd bsmith
chown -R bsmith:wheel courier-imap-4.0.2
cd /downloads/qmailrocks/courier-imap-4.0.2
su bsmith
./configure --prefix=/usr/local --exec-prefix=/usr/local --without-authvchkpw --with-authldap --without-authmysql --disable-root-check --with-ssl --with-authchangepwdir=/usr/local/libexec/authlib --with-redhat
make && make check
exit
make install-strip && make install-configure
/usr/local/sbin/mkimapdcert
vi /usr/local/etc/imapd.cnf
(Change postmaser@example.com an administrative email address )
------------------------------------------------------------------------------------------------------
…………………………..
………………………….
emailAddress=admin@kortekelectronics.com
……………………………
-------------------------------------------------------------------------------------------------------
Configuration changes[edit]
vi /usr/local/etc/imapd
-------------------------------------------------------------------------------------------------------
IMAPDSTART=YES
-------------------------------------------------------------------------------------------------------
vi /usr/local/etc/imapd-ssl
-------------------------------------------------------------------------------------------------------
IMAPDSSLSTART=YES
TLS_CERTFILE=/usr/local/share/imapd.pem
-------------------------------------------------------------------------------------------------------
vi /usr/local/etc/authlib/authdaemonrc
-------------------------------------------------------------------------------------------------------
authmodulelist="authldap"
authmodulelistorig="authldap"
-------------------------------------------------------------------------------------------------------
vi /usr/local/etc/authlib/authldaprc
-------------------------------------------------------------------------------------------------------
LDAP_SERVER localhost
LDAP_PORT 389
LDAP_PROTOCOL_VERSION 3
LDAP_BASEDN dc=kortekelectronics,dc=com
LDAP_BINDDN cn=manager, dc=kortekelectronics,dc=com
LDAP_BINDPW p4mail1server
LDAP_TIMEOUT 5
LDAP_AUTHBIND 1
LDAP_MAIL uid
LDAP_GLOB_UID vmail
LDAP_GLOB_GID vmail
LDAP_HOMEDIR mailMessageStore
LDAP_MAILROOT /home/vmail
LDAP_DEFAULTDELIVERY defaultDelivery
LDAP_FULLNAME cnmail.kortekelectronics.com
LDAP_CLEARPW clearPassword
LDAP_CRYPTPW userPassword
#LDAP_CRYPTPW sambaLMPassword
LDAP_DEREF never
LDAP_TLS 0
---------------------------------------------------------------------------------------------------
cp /usr/local/libexec/imapd.rc /etc/rc.d/init.d/imap
cp /usr/local/libexec/imapd-ssl.rc /etc/rc.d/init.d/imaps
vi /etc/rc.local
( Add following line )
----------------------------------------------------------------------------------------------------
/etc/rc.d/init.d/imap start
/etc/rc.d/init.d/imaps start
-----------------------------------------------------------------------------------------------------
/usr/local/sbin/authdaemond stop
/usr/local/sbin/authdaemond start
/etc/rc.d/init.d/imap stop
/etc/rc.d/init.d/imaps stop
/etc/rc.d/init.d/imap start
/etc/rc.d/init.d/imaps start
qmailctl cdb
phpldapadmin
yum install php -y
yum install php-ldap -y
cd /downloads
tar zxvf phpldapadmin-1.2.0.5.tgz
mv phpldapadmin-1.2.0.5 /var/www/html/phpldapadmin
cd /var/www/html/phpldapadmin
mv config/config.php.example config/config.php
mkdir templates/creation/old templates/modification/old
mv templates/creation/* templates/creation/old/
mv templates/modification/* templates/modification/old/
vi /etc/php.ini
memory_limit = 128M
Webmail
cd /downloads
tar zxvf squirrelmail-1.4.20.tar.gz
mv squirrelmail-1.4.20 /var/www/html/webmail
cd /var/www/html/webmail
mkdir /var/sqattachements
chown -R apache:apache /var/sqattachements
chown -R apache:apache data
cd config
./conf.pl
Clam Antivirus & SpamAssassin
install these perl modules using cpan
Digest::SHA1Digest::HMACNet::DNSTime::HiResHTML::TagsetHTML::ParserPod::UsageParse::SyslogStatistics::Distributions
yum install perl-suidperl
yum install unzip
cd /downloads/qmailrocks/
rpm -Uvh clamav-0.87-1.i386.rpm
rpm -Uvh clamav-devel-0.87-1.i386.rpm
vi /etc/clamd.conf
change User clamav to
--------------------
User qscand
--------------------
useradd -c "Qmail-Scanner Account" -s /bin/false qscand
chown qscand.qscand /var/log/clamav/
/etc/init.d/clamd stop
/etc/init.d/clamd start