Email server setup
Contents
Overview
Requirements
An email server requires a lot of components:
- Send / Receive emails [SMTP, POP3, IMAP, ...]
- Tools to check the email content against virus, spam
- Tools to encrypt the communication
- (optional) Database to manage users and emails
Therefore, before going on you need to have:
- MySQL server
- MySQL client such as MySQL workbench
Installation
MySQL database
Create a new database and user for email.
I assume that:
- Database name: maildb
- Db user: maildb
MySQL script:
# log in as root
mysql -u root -p
# Create the mail database
create database maildb;
# Create a new user and grant rights upon mail database
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON maildb.* TO 'mail'@'localhost' IDENTIFIED by 'mailPASSWORD';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON maildb.* TO 'mail'@'%' IDENTIFIED by 'mailPASSWORD';
exit;
SMTP send server
## Security libraries
# SASL is the Simple Authentication and Security Layer, a method for adding authentication support to connection-based protocols.
apt-get install libsasl2-modules libsasl2-modules-sql libgsasl7 libauthen-sasl-cyrus-perl sasl2-bin
# Authentication using MySQL
apt-get install libpam-mysql
## Anti-virus
apt-get install clamav-base libclamav6 clamav-daemon clamav-freshclam
## SPAM killer
apt-get install spamassassin spamc
## Interface to scan emails for virus & spam
apt-get install amavisd-new
## Utility to SEND emails
apt-get install postfix postfix-mysql
## Utility to RECEIVE emails
apt-get install courier-base courier-authdaemon courier-authlib-mysql courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl