BerkeleyDB upgrade

During switching LDAP directory to new environment with newer version of OpenLDAP (2.4.25) and new BerkeleyDB (5.1.25), I received following error message:


Program version 5.1 doesn't match environment version 4.7
database ... cannot be opened, err -30969. Restore from backup!
bdb(...): txn_checkpoint interface requires an environment configured for the transaction subsystem
bdb_db_close: database "...": txn_checkpoint failed: Invalid argument (22).
backend_startup_one (type=hdb, suffix="..."): bi_db_open failed! (-30969)
bdb_db_close: database "...": alock_close failed

This means that you need to upgrade BerkeleyDB. Because this is not OpenLDAP specific, but rather BerkeleyDB specific, I decided to describe how to fix this issue. First of all let’s make a backup:

Read more

Mail system authentication in LDAP

I suppose that Dovecot and Postfix are up and running, and you can receive and send mail with system user (see previous posts). It is time to configure authentication in LDAP.

Use of directory service to user authentication allows for flexible management of mail system, hosting and so on. LDAP is established standard for authentication and authorization and almost all software which requires authentication support this protocol.

Let’s begin from POP3/IMAP Dovecot server, which also deliver authentication mechanism for Postfix:


/usr/bin/sudo -i
cd /etc/dovecot
vi dovecot-ldap.conf

In this file you need to define LDAP server/s parameters, authentication method, filter and attributes. I list those most important:


hosts = localhost
auth_bind = yes
base = o=hosting,dc=example,dc=com
scope = subtree
user_attrs = homeDirectory=home
user_filter = (&(objectClass=mailUser)(mail=%u))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailUser)(mail=%u))

Schema conversion – LDAP to LDIF

The power of directory service is possibility to define your own object classes, attributes, rules and so on. It also allows grouping it in schemas, which you can add to LDAP configuration.

As for now most of schemas, which you can find in Internet is organized into blocks, which contains definitions of attributes and object classes. This looks like:

attribute type definition:


attributetype ( 1.3.6.1.4.1.32349.1.2.2.9 NAME 'accountStatus'
    DESC 'The status of a user account: active, disabled'
    EQUALITY caseIgnoreIA5Match
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
    SINGLE-VALUE )

Installation of mail system on Ubuntu

I assume that you have installed system with basic configuration and SSH running. After login to system we can install dovecot-postfix package, which is described as fully functional mail server:

drfugazi@charr:~% sudo aptitude install dovecot-postfix
[sudo] password for drfugazi:
Reading extended state information
Initializing package states... Gotowe
The following NEW packages will be installed:
  dovecot-common{a} dovecot-imapd{a} dovecot-pop3d{a} dovecot-postfix
0 packages upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 7957kB of archives. After unpacking 15,1MB will be used.
Do you want to continue? [Y/n/?] y
...
Configuring dovecot-common (1:1.2.9-1ubuntu6.1) ...
Creating config file /etc/dovecot/dovecot.conf with new version
Creating config file /etc/dovecot/dovecot-ldap.conf with new version
Creating config file /etc/dovecot/dovecot-sql.conf with new version

Now we should check if Dovecot is running and we can connect to IMAP server on localhost:

Masowe snapshoty ZFS

ZFS is very friendly filesystem. You can do a snapshot quick and easy. For example, if you have ZFS named tank, you can do snapshot named snap1: # zfs snapshot tank@snap1 Done. But what if you have several pools and several ZFS filesystems on each? You can do a simple loop: # for a in … Read more

Installation and configuration of OpenLDAP

Installation and basic configuration of LDAP directory service (OpenLDAP) on Ubuntu:

sudo aptitude install slapd ldap-utils

This description is based on HowtoForge document for Karmic Koala. I used to be to configure of OpenLDAP in slapd.conf file, but this is old method. Here we have possibility to modify LDAP configuration without restart of LDAP server.

cd /etc/ldap

At first I suggest you to add some schemas, which contains objectclasses and attributes useful later:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

If you have problem with addition of above because of insufficient permissions then switch to root with sudo su - or sudo -i

php-5.2.14

Get the sources:

root@hydra:~# su - soft
soft@hydra:~% cd php 
soft@hydra:~/php% wget "http://pl.php.net/get/php-5.2.14.tar.gz/from/this/mirror"
...
soft@hydra:~/php% gtar -zxf php-5.2.14.tar.gz

Correct version numbers in script (use sed):

soft@hydra:~/php% gsed "s/5.2.12/5.2.14/g" drf_php-5.2.12_conf > drf_php-5.2.14_conf
soft@hydra:~/php% chmod 754 !$
chmod 754 drf_php-5.2.14_conf

Check and correct path to apxs if needed:

soft@hydra:~/php% vi drf_php-5.2.14_conf

apache-2.2.17

The Apache HTTP Server Project is an effort to develop and maintain
an open-source HTTP server for modern operating systems including UNIX
and Windows NT. The goal of this project is to provide a secure,
efficient and extensible server that provides HTTP services in sync
with the current HTTP standards.

Apache httpd has been the most popular web server on the Internet since
April 1996, and celebrated its 15th birthday as a project this February.

The Apache HTTP Server (“httpd”) is a project of The Apache Software Foundation.

dovecot-2.0.6

Dovecot is an open source IMAP and POP3 email server for Linux/UNIX-like systems, written with security primarily in mind. Dovecot is an excellent choice for both small and large installations. It’s fast, simple to set up, requires no special administration and it uses very little memory.

Source: http://dovecot.org/

Dovecot 2.0.6 is bugfix release and should be more stable than previous versions of 2.0.x.

Below you can find transcript of configuration and compilation session of Dovecot server and a script which I use for this purpose (as attachement).

dovecot-2.0-sieve-0.2.0

Pigeonhole – Sieve Support for Dovecot

Projekt Pigeonhole is the name of the project that adds support for the Sieve language (RFC 5228) and the ManageSieve protocol (RFC 5804) to the Dovecot Secure IMAP Server. In the literal sense, a pigeonhole is a a hole or recess inside a dovecot for pigeons to nest in. It is, however, also the name for one of a series of small, open compartments in a cabinet used for filing or sorting mail. As a verb, it describes the act of putting an item into one of those pigeonholes. The name `Pigeonhole’ therefore well describes an important part of the functionality that this project adds to Dovecot: sorting and filing e-mail messages.

Source: http://pigeonhole.dovecot.org/