Neda Libre Email Appliance
Neda Libre Email Appliance
Design and Implementation Notes
Debian Qmail++ – A Family of Adopted LSIP Components
Draft Document – Reflects Work in Progress
Document Nu: PLPC-110504
Mohsen Banan
http://mohsen.banan.1.byname.net/ContactMe
January 15, 2008
Contents
1.1 This is a Draft Document
1.2 Part of LSIP
1.2.1 Realizations and Uses of Neda-LSIP
1.2.2 About Neda Libre Appliances
1.3 Neda-LSIP Approach and Policy
1.4 About This Document
2 Email Facilities
2.1 Big Picture Perspective
2.2 Summary of Lower Layer LSIP Facilities
2.3 Summary of Mail Layer LSIP Facilities
2.4 Summary of Peer Layer LSIP Facilities
2.5 MTA Facilities
2.5.1 Incoming Mail Processing
2.5.1.1 RBL
2.5.2 Mail Queue Processing
2.5.3 Outgoing Mail Processing
2.5.4 MMA Qmail
2.5.4.1 Model and Terminology – MMA Qmail
2.5.4.2 Files Overview – MMA Qmail
2.5.4.3 Hints – MMA Qmail
2.5.4.4 Pointer and References – MMA Qmail
2.5.5 MTA Anti-Spam Facilities
2.6 Mail Submission and Injection
2.6.1 Mail Submission Anti-Spam
2.7 Mail Delivery
2.7.1 Mail Delivery Anti-Spam: SpamAssassin
2.7.2 Mail Delivery Anti-Virus: ClamAV
2.8 MailBox Management Facilities
2.9 MailBox Access Facilities
2.9.1 POP
2.9.2 IMAP
2.9.2.1 Model and Terminology – MMA IMAP
2.9.2.2 Files Overview – MMA IMAP
2.9.2.3 Hints – MMA IMAP
2.9.2.4 Pointer and References – MMA IMAP
2.9.3 WebMail
2.9.3.1 Squirelmail
2.10 User Agent Facilities
2.10.1 Gnus
2.10.2 Mozilla
2.11 Mailing List Facilities
2.11.1 ezmlm
2.11.2 mhonarc
2.12 In Access Units
2.12.1 In Fax Access Unit - Mail
2.12.2 WhiteBerry: In EMSD Access Unit - Mail
2.13 Out Access Units
2.13.1 Mail - Out Access Unit
2.13.2 WhiteBerry: Mail - Out Access Unit
2.14 Mail Processing Tools
2.14.1 mess822
2.15 Mail Monitoring and Analysis
2.15.1 qmailanalog
3 Peer and Lower Layer Facilities
3.1 Related Peer Facilities
3.1.1 web
3.2 Lower Layer Facilities
4 Large Site Deployment
4.1 Introduction
4.1.1 General Policies & Procedures
4.1.2 Site Deployment Policies & Procedures
List of Figures
List of Tables
Chapter 1
Overview
1.1 This is a Draft Document
It reflects work in progress. It is subject to frequent changes. Use at your own risk.
1.2 Part of LSIP
This document is part of Libre Sercices Integration Platform Neda-LSIP.
Neda-LSIP is a comprehensive set of tools and conventions for the transformation of software into services. Neda-LSIP is the key technological component of our realization of the concept of Libre Services, allowing practical and cost-effective aggregation of free software components into coherent services. Neda-LSIP is free software itself, available under the Affero GPL version 3 license. For complete details see the document titled, Neda-LSIP Design and Implementation Notes [?].
You can obtain Neda-LSIP by following the instructions below:
Neda-LSIP is a series of self documenting scripts. The most current and complete documentation is embedded in the scripts.
This document is for the most part auto generated and includes much information that is extracted from the LSIP scripts directly.
This document provides structure and organization to the individual script information.
1.2.1 Realizations and Uses of Neda-LSIP
Neda-LSIP is a platform it allows for good things to be built on top of it.
The 3 categories of things that use Neda-LSIP are:
- - Ready to run Software. To be installed by the user.
- - Pre-Configured Servers. Ready to be plugged in. See http://store.neda.com
- - Ready to use ByStar Internet Application Services.
- - As part of a Libre Service Engine.
1.2.2 About Neda Libre Appliances
Certain functional profiles (sub-sets of Neda-LSIP) are often desired as dedicated ready to run servers.
In that spirit, we have created the following Neda Libre Appliances.
- Neda Libre Email Appliance. See [?]
- Neda Libre Web Appliance.
- Neda Libre Intranet Office Appliance.
- Neda Libre Fax Appliance. See [?]
1.3 Neda-LSIP Approach and Policy
General Preference for std debian distribution packages. Bystar is layered on top of Debian/Ubuntu. qmail and all else is part of Debian/Ubuntu.
Versions – Stable and testing.
-----
Highly Scalable
---------------
Plug and Play
-------------
Robust and Secure
-----------------
Expandable
----------
Best of Breed incorporation
1.4 About This Document
¡!DOCTYPE HTML PUBLIC ”-//W3C//DTD HTML 3.2 Final//EN”¿ ¡HTML¿ ¡HEAD¿ ¡TITLE¿¡/TITLE¿ ¡META NAME=”generator” CONTENT=”HTML::TextToHTML v2.23”¿ ¡/HEAD¿ ¡BODY¿ ¡P¿Neda Libre Email Appliance is based on Debian and qmail++ as a coherent family of adopted LSIP components.
¡P¿Neda Libre Appliances can be used as:
¡UL¿ ¡LI¿Ready to run Software. To be installed by the user.
¡LI¿Pre-Configured Servers. Ready to be plugged in. See ¡A HREF=”http://store.neda.com”¿http://store.neda.com¡/A¿
¡LI¿Ready to use ByStar Internet Application Services.
¡LI¿As part of a Libre Service Engine.
¡/UL¿ ¡/BODY¿ ¡/HTML¿
Chapter 2
Email Facilities
2.1 Big Picture Perspective
lpEmailHosts.sh
lcaQmailHosts.sh
OBSOLETED BY: /libre/ByStar/InitialTemplates/activeDocs/bxServices/mailManage/roadmap/fullUsagePanel-en.org
2.2 Summary of Lower Layer LSIP Facilities
2.3 Summary of Mail Layer LSIP Facilities
2.4 Summary of Peer Layer LSIP Facilities
2.5 MTA Facilities
qmail 1.03 ++
2.5.1 Incoming Mail Processing
2.5.1.1 RBL
2.5.2 Mail Queue Processing
2.5.3 Outgoing Mail Processing
2.5.4 MMA Qmail
2.5.4.1 Model and Terminology – MMA Qmail
Extracted by mmaQmailRoadmap.sh -i modelAndTerminology
OBSOLETED BY: /libre/ByStar/InitialTemplates/activeDocs/bxServices/mailManage/roadmap/fullUsagePanel-en.org
2.5.4.2 Files Overview – MMA Qmail
Extracted by mmaQmailRoadmap.sh -i help
OBSOLETED BY: /libre/ByStar/InitialTemplates/activeDocs/bxServices/mailManage/roadmap/fullUsagePanel-en.org
2.5.4.3 Hints – MMA Qmail
Extracted by mmaQmailRoadmap.sh -i howTos
OBSOLETED BY: /libre/ByStar/InitialTemplates/activeDocs/bxServices/mailManage/roadmap/fullUsagePanel-en.org
2.5.4.4 Pointer and References – MMA Qmail
Extracted by mmaQmailRoadmap.sh -i pointersAndReferences
OBSOLETED BY: /libre/ByStar/InitialTemplates/activeDocs/bxServices/mailManage/roadmap/fullUsagePanel-en.org
2.5.5 MTA Anti-Spam Facilities
- RLB - qrlbcheck - Reject at SMTP (Priority 2) - spamGuard
- qconfirm
2.6 Mail Submission and Injection
SMTP Auth
2.6.1 Mail Submission Anti-Spam
2.7 Mail Delivery
Extracted by mmaQmailAddrs.sh -i help
Account Processing:
===================
vis_acct{Manipulate}: -p acctName
do_acct{Manipulate}: -s qmailAcctsList_
-s qmailAcct_
⋆⋆ Manipulate an account entry as locDeliveryAcct
in /var/qmail/users/
Address Processing:
===================
vis_addr{Manipulate}: -p acctName -p localPart -p mbox,forward,progs
-p FQMA -p mbox,forward,progs
do_addr{Manipulate}: -s qmailAddrsList_
-s qmailAddr_
⋆⋆ Manipulate an addr by editing the dotQmailFile
Account/Address Processing:
===========================
do_acctAddrs{Manipulate}: -s qmailAcctsList_
-s qmailAcct_
⋆⋆ Manipulate an account entry as locDeliveryAcct
in /var/qmail/users/
and manipulate addresses asscoiated with the account.
Account VirDom Manipulate:
==========================
vis_virDom{Manipulate}: -p acctName -p domainPart
do_acctAddrsVirDom{Manipulate}:
-s qmailAcctsList_
-s qmailAcct_
⋆⋆ Manipulate a virtual domain
Address ControlFile Show:
==========================
vis_addrCtlFileShow : -p acctName -p localPart
-p FQMA
do_addrCtlFileShow : -p acctName -s qmailAddr_
⋆⋆ Show the dotQmailFile for an address
Account Addresses FQMA Show:
============================
vis_addrsFqmaShow: -p acctName
do_acctAddrsFqmaShow: -s qmailAcctsList_
-s qmailAcct_
-s qmailAddrList_
⋆⋆ Show all addresses corresponding to
an account in FQMA format.
2.7.1 Mail Delivery Anti-Spam: SpamAssassin
2.7.2 Mail Delivery Anti-Virus: ClamAV
2.8 MailBox Management Facilities
MaildirToMbox
Vacation
Autoresponder
qsecretary
2.9 MailBox Access Facilities
2.9.1 POP
2.9.2 IMAP
Our Choice of IMAP server is courier.
We Considered the below mentioned alternatives:
uw = University of Washington's IMAP server
courier = Courier IMAP server
dovcod
2.9.2.1 Model and Terminology – MMA IMAP
Extracted by mmaImapRoadmap.sh -i modelAndTerminology
Terminology and Model:
======================
Objects Overview:
-----------------
mmaGnats Object Processors and Containers:
------------------------------------------
mmaGnatsServerHosts.sh
2.9.2.2 Files Overview – MMA IMAP
Extracted by mmaImapRoadmap.sh -i help
DESCRIPTION
mmaGnats (MailMeAnywhere QMAIL) is a set of consistent
policies built on the QMAIL as a CAPABILITY and on
(OSMT) Open Services Management Tools.
mmaGnats Commands, each contain a set of related functions
which allow you to accomplish specific tasks. Specifically:
COMMAND TYPE USED BY
mmaGnats.sh action.sh any
mmaGnatsLib.sh library.sh root/any
mmaGnatsBinsPrep.sh action.sh root
mmaGnatsServerHosts.sh subjectAction.sh root/any
mmaGnatsAdmin.sh action.sh root/any
At A Glance
-----------
Basic qmail
-----------
mmaGnats.sh -- This File. General Orientation and Information
mmaGnatsLib.sh -- To be included in all mmaGnats scripts.
General configuration parameters and
general useful functions go here
mmaGnatsBinsPrep.sh -- Prepare binary files for qmail/ezmlm
-- for relevant pltforms and versions
mmaGnatsBinsInstall.sh -- Install mmaGnats binaries on opRunHostName
mmaGnatsServerHosts.sh -- For subject host, configure qmail
mmaGnatsAdmin.sh -- Start, stop and addNewAccounts
mmaGnatsUserConfig.sh -- Setup Per user environment parameters.
2.9.2.3 Hints – MMA IMAP
Extracted by mmaImapRoadmap.sh -i howTos
A) How Do I setup a null client from scratch?
Follow (A-1), and then:
3) Specify basic null client paramters (smarthost, domain, ...)
In ../siteControl/nedaPlus/mmaGnatsListItems.main
add an entry for your host. Then:
mmaGnatsHosts.sh -s bacs0017 -a configure
4) Verify and Monitor installation
mmaGnatsAdmin.sh -i fullReport
5) Sendout a test message.
mmaGnatsUserConfig.sh -i mailTest
6) Allow users to customize their desired parameters.
mmaGnatsUserConfig.sh
2.9.2.4 Pointer and References – MMA IMAP
Extracted by mmaImapRoadmap.sh -i pointersAndReferences
cgi-bin is: /usr/lib/cgi-bin/gnatsweb.pl
Gnats web conf params are in: /etc/gnatsweb/
Web config is in: + /usr/doc/gnatsweb/CUSTOMIZE.vars.gz
2.9.3 WebMail
2.9.3.1 Squirelmail
sqwebmail
2.10 User Agent Facilities
2.10.1 Gnus
2.10.2 Mozilla
2.11 Mailing List Facilities
2.11.1 ezmlm
2.11.2 mhonarc
2.12 In Access Units
2.12.1 In Fax Access Unit - Mail
See [?] for details.
2.12.2 WhiteBerry: In EMSD Access Unit - Mail
See [?], [?], [?], [?] for details.
2.13 Out Access Units
2.13.1 Mail - Out Access Unit
See [?] for details.
2.13.2 WhiteBerry: Mail - Out Access Unit
See [?], [?], [?], [?] for details.
2.14 Mail Processing Tools
2.14.1 mess822
2.15 Mail Monitoring and Analysis
2.15.1 qmailanalog
Chapter 3
Peer and Lower Layer Facilities
3.1 Related Peer Facilities
3.1.1 web
3.2 Lower Layer Facilities
daemontools ucspi tcpserver djbdns splogger
Chapter 4
Large Site Deployment
4.1 Introduction
4.1.1 General Policies & Procedures
4.1.2 Site Deployment Policies & Procedures
The abbreviations that are used in Figure 4.1
- EMR-IN:
- Edge Mail Router - Inbound
MB provide the description. - EMR-OUT:
- Edge Mail Router - Outbound
MB provide the description. - SMR-DS:
- Site Mail Router - Delivery Server
MB provide the description. - SMR-DS-LIST:
- Site Mail Router - Delivery Server - List
MB provide the description. - SMR-SS:
- Site Mail Router - Submit Server
MB provide the description. - SMR-SA:
- Site Mail Router - Submission Agent
MB provide the description. - MBAS:
- Mail Box Access Server
MB provide the description. - FDS:
- Final Delivery Server
MB provide the description. - MUA:
- Mail User Agent
MB provide the description. - MRUA:
- Mail Retrieval User Agent
MB provide the description. - MSUA:
- Mail Submission User Agent
MB provide the description.