This documentation is for Dovecot v2.x, see wiki1 for v1.x documentation.
Differences between revisions 2 and 3
Revision 2 as of 2011-11-02 11:30:35
Size: 1865
Editor: hippo64
Comment: not working when home dir is chrooted?
Revision 3 as of 2011-12-20 12:46:53
Size: 1699
Editor: TimoSirainen
Comment: chrooting is fixed in 2.0.17+
Deletions are marked like this. Additions are marked like this.
Line 15: Line 15:
If you don't have the home directory and you can't or don't want to modify userdb configuration, you can add the home to plugin section: If you don't have the home directory and you can't or don't want to modify userdb configuration, you can add:
Line 18: Line 18:
plugin {
  # ..
  
home = /home/%u
  # or temporarily even e.g. home = /tmp/temp-home
}
mail_home = /home/%u
# or temporarily even e.g. mail_home = /tmp/temp-home
Line 38: Line 35:
  executable = script-login rawlog   executable = script-login -d rawlog
Line 50: Line 47:


== Warning ==

The rawlog seems not to work if you set the home directory in a chrooted enviroment.
See [[Chrooting]].

Rawlog

Dovecot supports logging post-login IMAP/POP3 traffic (also TLS/SSL encrypted) using rawlog binary. It works by checking if dovecot.rawlog/ directory exists in the logged in user's home directory, and writing the traffic to yyyymmdd-HHMMSS-pid.in and .out files. Each connection gets their own in/out files.

Home directory

Note that for rawlog to work, your userdb must have returned a home directory for the user. If you can't get rawlog to work, you should verify that the home directory really is where you expected it to be by setting mail_debug=yes and checking the logs. You should see a line such as:

Effective uid=1000, gid=1000, home=/home/user

In above configuration rawlog would expect to find /home/user/dovecot.rawlog/ directory writable by uid 1000.

If you don't have the home directory and you can't or don't want to modify userdb configuration, you can add:

mail_home = /home/%u
# or temporarily even e.g. mail_home = /tmp/temp-home

Configuration

To enable rawlog, you must use rawlog as a post-login script:

service imap {
  executable = imap postlogin
}
service pop3 {
  executable = pop3 postlogin
}

service postlogin {
  executable = script-login -d rawlog
  unix_listener postlogin {
  }
}

You can also give parameters to rawlog:

  • -i: Log only to *.in files
  • -o: Log only to *.out files
  • -b: Write IP packet boundaries (or whatever read() sees anyway) to the log files. The packet is written between <<< and >>>.

  • -t: Log a microsecond resolution timestamp at the beginning of each line.

None: Debugging/Rawlog (last edited 2021-07-07 23:37:53 by MichaelSlusarz)