Difference between revisions of "Dovecot and Postfix Hybrid Authentication Example"

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search
Line 3: Line 3:
 
It might make things more clear to first [[Understand Postfix Account Types]] for a Linux system.
 
It might make things more clear to first [[Understand Postfix Account Types]] for a Linux system.
  
== configure postfix ==
+
== configuration steps with examples ==
 +
=== Step 1: prepare necessary files and directories ===
 +
Locate your postfix configuration files, they might be in /etc/postfix, or /etc/mail/postfix, or /etc/mail depending on your distro and installation.  For Redhat/Fedora/CentOS you will likely find the following directory structure:
  
Locate your postfix configuration files, they might be in /etc/postfix, or /etc/mail/postfix, or /etc/mail depending on your distro and installation.
+
/etc/poastfix
 +
/etc/dovecot
  
 +
You will have to manually create some files.
 +
touch /etc/postfix/virtual
 +
touch /etc/postfix/domains
 +
touch /etc/postfix/vmailbox
 +
mkdir /etc/auth
 +
touch /etc/auth/yourdomain.com/passwd
  
This document is not complete... here is a summary
+
== Step 2: edit the postfix main.cf ==
 
+
* Set up postfix virtual mailbox text file with email address and destination folder - this is plain text file that must be made hash database
+
* Make sure all domains are configured in postfix
+
* create a passwd file for each virtual user domain /etc/passwd.domain.com
+
* edit dovecot/conf.d/auth-checkpassword.conf.ext
+
mail_location = maildir:~/Maildir
+
passdb {
+
  driver = pam
+
}
+
  driver = passwd-file
+
  args = /etc/postfix/passwd/%d
+
 
+
== edit the postfix main.cf ==
+
 
Here are (some) important lines you will need in your main.cf
 
Here are (some) important lines you will need in your main.cf
  
Line 35: Line 31:
 
  virtual_gid_maps = static:5000
 
  virtual_gid_maps = static:5000
  
== edit the dovecot.conf ==
+
== Step 3: edit the dovecot.conf ==
 
Here is a sample of (minimum) lines from dovecot.conf
 
Here is a sample of (minimum) lines from dovecot.conf
 
   
 
   
Line 43: Line 39:
 
  !include conf.d/*.conf
 
  !include conf.d/*.conf
  
== edit conf.d/10-auth.conf ==
+
== Step 4: edit conf.d/10-auth.conf ==
 
The 10-auth.conf is located in the conf.d/ folder.  Here is a sample of (minimum) lines from 10-auth.conf
 
The 10-auth.conf is located in the conf.d/ folder.  Here is a sample of (minimum) lines from 10-auth.conf
  
Line 54: Line 50:
 
Make sure that !include auth-checkpassword.conf.ext is uncommented.   
 
Make sure that !include auth-checkpassword.conf.ext is uncommented.   
  
== edit conf.d/auth-checkpassword.conf.ext ==
+
== Step 5: edit conf.d/auth-checkpassword.conf.ext ==
 
The auth-checkpassword.conf.ext is in the conf.d/ filder.  Here are all the necessary lines.
 
The auth-checkpassword.conf.ext is in the conf.d/ filder.  Here are all the necessary lines.
  

Revision as of 20:21, 13 February 2014

This guide assumes you already have postfix installed, dovecot installed, and at minimum have email established for unix accounts either by final destination or virtual alias domains. Now you want to set up a separate virtual user database, and these virtual users that do not have a unix account on the system will be able to retrieve their email from their virtual mailbox. The security benefit is in that email only users need not have any security credentials in the /etc/passwd and still be able to pop or imap in and retrieve email.

It might make things more clear to first Understand Postfix Account Types for a Linux system.

configuration steps with examples

Step 1: prepare necessary files and directories

Locate your postfix configuration files, they might be in /etc/postfix, or /etc/mail/postfix, or /etc/mail depending on your distro and installation. For Redhat/Fedora/CentOS you will likely find the following directory structure:

/etc/poastfix
/etc/dovecot

You will have to manually create some files.

touch /etc/postfix/virtual
touch /etc/postfix/domains
touch /etc/postfix/vmailbox
mkdir /etc/auth
touch /etc/auth/yourdomain.com/passwd

Step 2: edit the postfix main.cf

Here are (some) important lines you will need in your main.cf

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_domains = hash:/etc/postfix/domains
virtual_mailbox_base = /var/spool/vmail
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 4000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

Step 3: edit the dovecot.conf

Here is a sample of (minimum) lines from dovecot.conf

protocols = imap pop3 lmtp
listen = *
login_greeting = Hello visitor!
!include conf.d/*.conf

Step 4: edit conf.d/10-auth.conf

The 10-auth.conf is located in the conf.d/ folder. Here is a sample of (minimum) lines from 10-auth.conf

disable_plaintext_auth = no
auth_failure_delay = 4 secs
auth_mechanisms = plain login
!include auth-system.conf.ext
!include auth-checkpassword.conf.ext

Make sure that !include auth-checkpassword.conf.ext is uncommented.

Step 5: edit conf.d/auth-checkpassword.conf.ext

The auth-checkpassword.conf.ext is in the conf.d/ filder. Here are all the necessary lines.

passdb {
  driver = passwd-file
  args = /etc/auth/%d/passwd
}

userdb {
  driver = prefetch
}

userdb {
  driver = passwd-file
  args = /etc/auth/%d/passwd
}

references

&nbsp