Content-Type: multipart/related; start=; boundary=----------l1kNOdpt0KwzRANOtdbeji Content-Location: http://www.gentoo.org/doc/en/virt-mail-howto.xml Subject: =?utf-8?Q?Gentoo=20Linux=20Documentation=20--=20Virtual=20Mailhosting=20System=20with=20Postfix=20Guide?= MIME-Version: 1.0 ------------l1kNOdpt0KwzRANOtdbeji Content-Disposition: inline; filename=virt-mail-howto.htm Content-Type: text/html; name=virt-mail-howto.htm Content-Id: Content-Location: http://www.gentoo.org/doc/en/virt-mail-howto.xml Content-Transfer-Encoding: 8bit Gentoo Linux Documentation -- Virtual Mailhosting System with Postfix Guide
Gentoo Logo

Virtual Mailhosting System with Postfix Guide

Content:

1. Introduction

For most Gentoo users, a simple mail client and fetchmail will do. However, if you're hosting a domain with your system, you'll need a full blown MTA (Mail Transfer Agent). And if you're hosting multiple domains, then you'll definitely need something more robust to handle all of the email for your users. This system was designed to be an elegant solution to that problem.

A virtual mail system needs to be able to handle email for numerous domains with multiple users over a variety of interfaces. This presents some issues that must be dealt with. For instance, what if you have two users on different domains that want the same user name? If you are providing imap access and smtp-auth, how do combine the various authentication daemons into a single system? How do you provide security for the numerous components that comprise the system? How do you manage it all?

This howto will show you how to set up with a mail system capable of handling mail for as many domains as your hardware can handle, supports virtual mail users that don't require shell accounts, has domain specific user names, can authenticate web, imap, smtp, and pop3 clients against a single database, utilizes ssl for transport layer security, has a web interface, can handle mailing lists for any domain on the machine, and is controlled by a nice, central and easy mysql database.

There are quite a variety of ways to go about setting up a virtual mailhosting system. With so may options, another may be the best choice for your specific needs. Consider investigating http://www.qmail.org/ and http://www.exim.org/ to explore your options.

The following packages are used in this setup: apache, courier-imap, courier-authlib postfix, mod_php, phpmyadmin, squirrelmail, cyrus-sasl, mysql, php, and mailman.

Make sure to turn on the following USE variables in /etc/make.conf before compiling the packages: USE="mysql imap libwww maildir sasl ssl". Otherwise you will most likely have to recompile things to get the support you need for all the protocols. Further, it's a good idea to turn off any other mail and network variables, like ipv6.

Important: You need a domain name to run a public mail server, or at least an MX record for a domain. Ideally you would have control of at least two domains to take advantage of your new virtual domain functionality.

Important: Make sure /etc/conf.d/hostname is set to the right hostname for your mail server. You can apply any changes you make to this file by running /etc/init.d/hostname restart. Verify your hostname is set correctly with hostname. Also verify that there are no conflicting entries in /etc/hosts.

Note: It is recommended that you read this entire document and familiarize yourself with all the steps before attempting the install. If you run into problems with any of the steps, check the troubleshooting guide at the end of this document. Also, not all the referenced packages are necessary, this set up is very flexible. For instance, if you do not desire a web interface, feel free to skip the squirrelmail section.

2. Postfix Basics

Code Listing 2.1: Install postfix

# emerge postfix

Warning: Verify that you have not installed any other MTA, such as ssmtp, exim, or netqmail, or you will surely have BIG problems.

After postfix is installed, it's time to configure it. Change the following options in /etc/postfix/main.cf. Remember to replace $variables with your own names.

Code Listing 2.2: /etc/postfix/main.cf

myhostname = $host.domain.name
mydomain = $domain.name
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks = my.ip.net.work/24, 127.0.0.0/8
home_mailbox = .maildir/
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10

Next change the following in /etc/postfix/master.cf. This will turn on verbose output for debugging:

Code Listing 2.3: /etc/postfix/master.cf

# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (50)
#
==========================================================================
(Just add the "-v" after the smtpd in the following line)
smtp      inet  n       -       n       -       -       smtpd -v

Next, edit /etc/mail/aliases to add your local aliases. There should at least be an alias for root like: root: your@email.address.

Code Listing 2.4: Starting postfix for the first time

# /usr/bin/newaliases
(This will install the new aliases. You only need to do this
when you update or install aliases.)
		
# /etc/init.d/postfix start

Now that postfix is running, fire up your favorite console mail client and send yourself an email. I use mutt for all my console mail. Verify that postfix is delivering mail to local users, once that's done, we're on to the next step.

Note: I strongly recommend that you verify this basic postfix setup is functioning before you progress to the next step of the howto.

3. Courier-imap

Code Listing 3.1: Install courier-imap and courier-authlib

# emerge courier-imap courier-authlib

Code Listing 3.2: Courier-imap configuration

# cd /etc/courier-imap
(If you want to use the ssl capabilities of courier-imap or pop3,
you'll need to create certs for this purpose.
This step is recommended. If you do not want to use ssl, skip this step.)

# nano -w pop3d.cnf
# nano -w imapd.cnf
(Change the C, ST, L, CN, and email parameters to match your server.)

# mkpop3dcert
# mkimapdcert

Code Listing 3.3: Start the courier services you need.

# /etc/init.d/courier-imapd start
# /etc/init.d/courier-imapd-ssl start
# /etc/init.d/courier-pop3d start
# /etc/init.d/courier-pop3d-ssl start

Start up your favorite mail client and verify that all connections you've started work for receiving and sending mail. Of course, you won't be able to log on to any of the services because authentication hasn't been configured yet, but it is wise to check if the connections themselves work or not.

Now that the basics work, we're going to do a whole bunch of stuff at once to get the rest of the system running. Again, please verify that what we've installed already works before progressing.

4. Cyrus-sasl

Next we're going to install cyrus-sasl. Sasl is going to play the role of actually passing your auth variables to courier-auth, which will in turn pass that information to mysql for authentication of smtp users. For this howto, we'll not even try to verify that sasl is working until mysql is set up and contains a test user. Which is fine since we'll be authenticating against mysql in the end anyway.

Code Listing 4.1: Configuring and installing the cyrus-sasl ebuild

# emerge cyrus-sasl

Next, edit /etc/sasl2/smtpd.conf.

Code Listing 4.2: Starting sasl

# nano -w /etc/sasl2/smtpd.conf
mech_list: PLAIN LOGIN
pwcheck_method: saslauthd
# nano -w /etc/conf.d/saslauthd
SASLAUTHD_OPTS="${SASLAUTH_MECH} -a rimap -r"
SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -O localhost"
# /etc/init.d/saslauthd start

5. SSL Certs for Postfix and Apache

Next we're going to make a set of ssl certificates for postfix and apache.

Code Listing 5.1: Making ssl certicates

# cd /etc/ssl/
# nano -w openssl.cnf

Change the following default values for your domain:
countryName_default
stateOrProvinceName_default
localityName_default
0.organizationName_default
commonName_default
emailAddress_default.

(If the variables are not already present, just add them in a sensible place.)

# cd misc
# ./CA.pl -newreq-nodes
# ./CA.pl -newca
# ./CA.pl -sign
# cp newcert.pem /etc/postfix
# cp newkey.pem /etc/postfix
# cp demoCA/cacert.pem /etc/postfix
(Now we do the same thing for apache.)

# openssl req -new > new.cert.csr
# openssl rsa -in privkey.pem -out new.cert.key
# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365
(Just leave the resulting certificates here for now.
We'll install them after Apache is installed.)

6. Adding SSL and SASL support to Postfix

Now edit the postfix config's to make it aware of your new sasl and ssl capabilities. Add the following parameters to the end of the file where they will be easy to find.

Code Listing 6.1: /etc/postfix/main.cf

# nano -w /etc/postfix/main.cf

smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =

(The broken_sasl_auth_clients option and the login auth method
are for outlook and outlook express only and are undocumented.
Isn't having to hack software for stupid, broken, M$ BS great?
smtpd_sasl_local_domain appends a domain name to clients using
smtp-auth. Make sure it's blank or your user names will get
mangled by postfix and be unable to auth.)

smtpd_recipient_restrictions =
	permit_sasl_authenticated,
	permit_mynetworks,
	reject_unauth_destination
	

(The next two options enable outgoing encryption.)
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_use_tls = yes
#smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/newkey.pem
smtpd_tls_cert_file = /etc/postfix/newcert.pem
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

(smtpd_tls_auth_only is commented out to ease testing the system.
You can turn this on later if you desire.)

# postfix reload

Now we're going to verify that the config's we added were picked up by postfix. For this we are going to use telnet (provided by for instance net-misc/netkit-telnetd) although you can also use nc (provided by net-analyzer/netcat):

Code Listing 6.2: Verifying sasl and tls support

# telnet localhost 25

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.domain.com ESMTP Postfix
EHLO domain.com
250-mail.domain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-XVERP
250 8BITMIME
^]
telnet> quit

Verify that the above AUTH and STARTTLS lines now appear in your postfix install. As I said before, as it stands now AUTH will not work. that's because sasl will try to auth against it's sasldb, instead of the shadow file for some unknown reason, which we have not set up. So we're going to just plow through and set up mysql to hold all of our auth and virtual domain information.

7. The vmail user

Before we set up our virtual mailhosting environment, we create a functional user under which the virtual mailboxes will be hosted. For clarity's sake we will call this vmail:

Code Listing 7.1: Adding the vmail user

# adduser -d /home/vmail -s /bin/false -m vmail

So now you've set up the vmail account. You can create multiple accounts if you want (to keep some structure in your set of virtual mail accounts). The user id, group id and home dirs are referenced in the MySQL tables.

Next to the user account we also need to create the location where the mailboxes will reside:

Code Listing 7.2: Creating mailboxes

# mkdir -p /home/vmail/virt-domain.com/foo
# chown -R vmail:vmail /home/vmail/virt-domain.com
# maildirmake /home/vmail/virt-domain.com/foo/.maildir

8. MySQL

Next we're going to install and configure MySQL. You'll need the genericmailsql.sql dumpfile for this step.

Code Listing 8.1: Installing and configuring MySQL

# emerge mysql

# /usr/bin/mysql_install_db
(After this command runs follow the onscreen directions
for adding a root password with mysql, otherwise your db will 
be wide open.)

# /etc/init.d/mysql start
# mysqladmin -u root -p create mailsql
# mysql -u root -p mailsql < genericmailsql.sql

# mysql -u root -p mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE
	->     ON mailsql.*
	->     TO mailsql@localhost
	->     IDENTIFIED BY '$password';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
(Verify that the new mailsql user can connect to the mysql server.)

# mysql -u mailsql -p mailsql

Your new database has default values and tables set up for two domains. The following tables are included:

  • alias - local email alias and mailman alias information.
  • relocated - relocated user email address maps
  • transport - default mail transport information for all domains you are hosting
  • users - all user account information
  • virtual - virtual domain email alias maps

Code Listing 8.2: alias table sample

id   alias    destination
1    root     foo@bar.com
2  postmaster foo@bar.com

Code Listing 8.3: user table sample

(Line wrapped for clarity.)
id email            clear     name     uid     gid     homedir     \
	maildir                                quota  postfix
10 foo@virt-domain.com $password realname virtid  virtid  /home/vmail \
	/home/vmail/virt-domain.com/foo/.maildir/        y
13 foo@bar.com      $password realname localid localid /home/foo   \
	/home/foo/.maildir/                           y

The values of the virtid uid and gid should be those of the vmail user and group.

Code Listing 8.4: transport table sample

id   domain          destination
1    bar.com         local:
2    virt-domain.com virtual:

Code Listing 8.5: virtual table sample

id   email               destination
3   root@virt-domain.com other@email.address

9. Apache and phpMyAdmin

Next we'll set up apache and add an interface to interact with the database more easily.

Code Listing 9.1: Setting up apache and phpmyadmin

# emerge apache phpmyadmin

There are plenty of guides out there about how to set up apache with php, including guides provided by the Gentoo PHP Project. There are also numerous posts on http://forums.gentoo.org detailing how to solve problems with the installation. So, that said, we're not going to cover it here. Set up the apache and php installs, then continue with this howto. Now, a word for the wise: .htaccess the directory that you put phpmyadmin in. If you do not do this, search engine spiders will come along and index the page which in turn will mean that anyone will be able to find your phpmyadmin page via google and in turn be able to come change your database however they want which is BAD! There are many howtos on this including: http://www.csoft.net/docs/micro/htaccess.html.en.

Now we're going to install the Apache certificates we made previously. The Apache-SSL directives that you need to use the resulting cert are:

  • SSLCertificateFile /path/to/certs/new.cert.cert
  • SSLCertificateKeyFile /path/to/certs/new.cert.key

Code Listing 9.2: Install Apache SSL certificates

# cp /etc/ssl/misc/new.cert.cert /etc/apache2/ssl/
# cp /etc/ssl/misc/new.cert.key /etc/apache2/ssl/
# cd /etc/apache2/vhosts.d
(Check if you have an ssl-vhost template already. 
 Copy that one instead of the default_vhost if that is the case)
# cp 00_default_vhost.conf ssl-vhost.conf
# nano -w ssl-vhost.conf

(Change the following parameters)
NameVirtualHost host.domain.name:443

<VirtualHost host.domain.name:443>
  ServerName host.domain.name
  ServerAdmin your@email.address

  DocumentRoot "/var/www/localhost/htdocs/phpmyadmin";
  <Directory "/var/www/localhost/htdocs/phpmyadmin">
    ...
  </Directory>

  SSLCertificateFile /etc/apache2/ssl/new.cert.cert
  SSLCertificateKeyFile /etc/apache2/ssl/new.cert.key
  SSLEngine on
  ...
</VirtualHost>

# nano -w /etc/conf.d/apache2
(Add -D SSL -D PHP5 to the APACHE2_OPTS)

# /etc/init.d/apache2 restart

Next, configure phpMyAdmin.

Code Listing 9.3: Configuring phpMyAdmin

# cd /var/www/localhost/htdocs/phpmyadmin
# cp config.sample.inc.php config.inc.php
# nano -w config.inc.php
(Change the following parameters.)
$cfg['blowfish_secret'] = 'someverysecretpassphraze';

$cfg['Servers'][$i]['host'] = 'localhost';          // MySQL hostname
$cfg['Servers'][$i]['controluser'] = 'mailsql';     // MySQL control user settings
                                                    // (this user must have read-only
$cfg['Servers'][$i]['controlpass'] = '$password';   // access to the "mysql/user"
                                                    // and "mysql/db" tables)
$cfg['Servers'][$i]['user'] = 'mailsql';            // MySQL user
$cfg['Servers'][$i]['password'] = '$password';      // MySQL password

Now enter the phpmyadmin page and browse the tables. You'll want to add in your local aliases, edit your user table to add a test user, and change your transport table to add information about your domains. The default values supplied with the dumpfile should be a sufficient guide to what values need to go where. Make sure that if you put information in the database that it is accurate. For instance, make sure the local user's home dir exists and that the correct uid/gid values are in place. The maildirs should be created automatically by postfix when the user receives their first email. So, in general, it's a good idea to send a "Welcome" mail to a new user after you setup their account to make sure the .maildir gets created.

10. Configuring MySQL Authentication and vhosts

Next we'll reconfigure our authentication to use the mailsql database in courier-imap and postfix. In all of the following examples, replace $password with the password you set for the mailsql mysql user.

Code Listing 10.1: Configuring authentication

# nano -w /etc/courier/authlib/authdaemonrc
authmodulelist="authmysql authpam"

# nano -w /etc/courier/authlib/authmysqlrc
MYSQL_SERVER            localhost
MYSQL_USERNAME       mailsql
MYSQL_PASSWORD      $password
MYSQL_DATABASE          mailsql
MYSQL_USER_TABLE        users
(Make sure the following line is commented out since we're storing plaintext.)
#MYSQL_CRYPT_PWFIELD    crypt
MYSQL_CLEAR_PWFIELD     clear
MYSQL_UID_FIELD         uid
MYSQL_GID_FIELD         gid
MYSQL_LOGIN_FIELD       email
MYSQL_HOME_FIELD        homedir
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir

# /etc/init.d/courier-authlib restart
# /etc/init.d/saslauthd restart

We're almost there, I promise! Next, set up the rest of the necessary configs for postfix to interract with the database for all its other transport needs. Remember to replace each value with the name of your own user, user id, password, alias, email address, and so on.

Code Listing 10.2: /etc/postfix/mysql-aliases.cf

# nano -w /etc/postfix/mysql-aliases.cf
# mysql-aliases.cf

user         	= mailsql
password     	= $password
dbname       	= mailsql
table        	= alias
select_field 	= destination
where_field  	= alias
hosts        	= unix:/var/run/mysqld/mysqld.sock

Code Listing 10.3: /etc/postfix/mysql-relocated.cf

# nano -w /etc/postfix/mysql-relocated.cf
# mysql-relocated.cf

user         	= mailsql
password     	= $password
dbname       	= mailsql
table        	= relocated
select_field 	= destination
where_field  	= email
hosts        	= unix:/var/run/mysqld/mysqld.sock

Code Listing 10.4: /etc/postfix/mysql-transport.cf (optional)

# nano -w /etc/postfix/mysql-transport.cf		
# mysql-transport.cf

user         	= mailsql
password     	= $password
dbname       	= mailsql
table        	= transport
select_field 	= destination
where_field  	= domain
hosts        	= unix:/var/run/mysqld/mysqld.sock

Code Listing 10.5: /etc/postfix/mysql-virtual-gid.cf (optional)

# nano -w /etc/postfix/mysql-virtual-gid.cf
# mysql-virtual-gid.cf

user          	= mailsql
password        = $password
dbname        	= mailsql
table           = users
select_field    = gid
where_field     = email
additional_conditions = and postfix = 'y'
hosts         	= unix:/var/run/mysqld/mysqld.sock

Code Listing 10.6: /etc/postfix/mysql-virtual-maps.cf

# nano -w /etc/postfix/mysql-virtual-maps.cf
# mysql-virtual-maps.cf

user        	= mailsql
password        = $password
dbname          = mailsql
table           = users
select_field    = maildir
where_field   	= email
additional_conditions = and postfix = 'y'
hosts           = unix:/var/run/mysqld/mysqld.sock

Code Listing 10.7: /etc/postfix/mysql-virtual-uid.cf (optional)

# nano -w /etc/postfix/mysql-virtual-uid.cf
# mysql-virtual-uid.cf

user            = mailsql
password        = $password
dbname          = mailsql
table           = users
select_field    = uid
where_field    	= email
additional_conditions = and postfix = 'y'
hosts           = unix:/var/run/mysqld/mysqld.sock

Code Listing 10.8: /etc/postfix/mysql-virtual.cf

# nano -w /etc/postfix/mysql-virtual.cf
# mysql-virtual.cf

user         	= mailsql
password     	= $password
dbname       	= mailsql
table        	= virtual
select_field 	= destination
where_field  	= email
hosts        	= unix:/var/run/mysqld/mysqld.sock

Lastly, edit /etc/postfix/main.cf one more time.

Code Listing 10.9: /etc/postfix/main.cf

# nano -w /etc/postfix/main.cf
(Ensure that there are no other alias_maps definitions)
alias_maps = mysql:/etc/postfix/mysql-aliases.cf
relocated_maps = mysql:/etc/postfix/mysql-relocated.cf

local_transport = local
local_recipient_maps = $alias_maps $virtual_mailbox_maps unix:passwd.byname

virtual_transport = virtual
(The domains listed by the mydestination should not be listed in 
 the virtual_mailbox_domains parameter)
virtual_mailbox_domains = virt-domain.com, $other-virtual-domain.com

virtual_minimum_uid = 1000
(Substitute $vmail-gid with the GID of the vmail group)
virtual_gid_maps = static:$vmail-gid
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf
(Substitute $vmail-uid with the UID of the vmail user)
virtual_uid_maps = static:$vmail-uid
virtual_mailbox_base = /
#virtual_mailbox_limit =

For security reasons you should change the permissions of the various /etc/mail/mysql-*.cf:

Code Listing 10.10: Changing file permission

# chmod 640 /etc/postfix/mysql-*.cf
# chgrp postfix /etc/postfix/mysql-*.cf

As of Postfix 2.0.x, there were a number of significant changes over the 1.1.x release. Notably the transport, virtual-gid, and virtual-uid tables are no longer necessary. The tables are still included if you wish to use them.

Note: It is recommended that you read VIRTUAL_README included with the postfix docs for more information.

Code Listing 10.11: Make postfix reload its tables

# postfix reload

Now, if all went well, you should have a functioning mailhost. Users should be able to authenticate against the sql database, using their full email address, for pop3, imap, and smtp. I would highly suggest that you verify that everything is working at this point. If you run into problems (with as many things as this setup has going on, it's likely that you will) check the troubleshooting section of this howto.

11. Squirrelmail

Code Listing 11.1: Install squirrelmail

# emerge squirrelmail
(Install squirrelmail to localhost so that it's accessed by http://localhost/mail)
(Substitute 1.4.3a-r2 with the version you use)

# webapp-config -I -h localhost -d /mail squirrelmail 1.4.3a-r2
# cd /var/www/localhost/htdocs/mail/config
# perl ./conf.pl
(Change your Organization, Server, and Folder settings for squirrelmail.
Now you should be able to login to squirrelmail, again - with your full email address,
and use your new webmail setup.)

12. Mailman

Last step: mailman. The new version of mailman has very nice virtual domain support, which is why I use it, not to mention it's really a great package. To get this package installed and working correctly for virtual domains is going to require a bit of hacking. I really recommend reading all of the mailman documentation, including README.POSTFIX.gz, to understand what's being done here.

Code Listing 12.1: Install mailman

# emerge mailman

Code Listing 12.2: Setting defaults: Mailman/Defaults.py

#  nano -w /usr/local/mailman/Mailman/Defaults.py
(Change the values below to reflect your primary domain, virtuals will be set next.)
DEFAULT_EMAIL_HOST = 'domain.com'
DEFAULT_URL_HOST = 'www.domain.com'

Code Listing 12.3: mailman config: mm_cfg.py

# nano -w /usr/local/mailman/Mailman/mm_cfg.py
MTA = "Postfix"
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['virt-domain.com', 'virt.domain2.com']	
add_virtualhost('www.virt.domain.com', 'virt.domain.com')
add_virtualhost('www.virt.domain2.com', 'virt.domain2.com')
(This is required for your virtual domains for mailman to function.)

Code Listing 12.4: And last but not least

(Once that's finished, add your first list.)

# su mailman
# cd ~
# ./bin/newlist --urlhost='www.virt-domain.com' --emailhost='virt-domain.com' test
Enter the email of the person running the list: your@email.address
Initial test password:
Hit enter to continue with test owner notification...
(Virtual domain lists may also be specified with
list@domain.com style list names.)
# ./bin/genaliases
(Now that your aliases have been generated,
verify that they were added successfully.)

# nano -w data/aliases
# STANZA START: test
# CREATED:
test:             "|/usr/local/mailman/mail/mailman post test"
test-admin:       "|/usr/local/mailman/mail/mailman admin test"
test-bounces:     "|/usr/local/mailman/mail/mailman bounces test"
test-confirm:     "|/usr/local/mailman/mail/mailman confirm test"
test-join:        "|/usr/local/mailman/mail/mailman join test"
test-leave:       "|/usr/local/mailman/mail/mailman leave test"
test-owner:       "|/usr/local/mailman/mail/mailman owner test"
test-request:     "|/usr/local/mailman/mail/mailman request test"
test-subscribe:   "|/usr/local/mailman/mail/mailman subscribe test"
test-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe test"
# STANZA END: test

(Create the required mailman list)
# ./bin/newlist mailman
# ./bin/genaliases

(Return to the root user)
# exit

# /etc/init.d/mailman start
# rc-update add mailman default
(To start mailman at once and on every reboot.)

Code Listing 12.5: Adding mailman alias support to postfix

# nano -w /etc/postfix/main.cf
owner_request_special = no
recipient_delimiter = +
(Read README.POSTFIX.gz for details on this.)

alias_maps     =
	hash:/usr/local/mailman/data/aliases,
	mysql:/etc/postfix/mysql-aliases.cf

virtual_alias_maps =
	hash:/usr/local/mailman/data/virtual-mailman,
	mysql:/etc/postfix/mysql-virtual.cf
(This adds mailman alias file support to postfix
You may of course use the mysql tables for this,
but I hate doing that by hand. Also, if you are not
using virtual domains, adding the virtual alias maps
to postfix may cause problems, be warned.)

You should now be able to setup mailing lists for any domain on your box. Last note on this, make sure you run all mailman commands as the user mailman (su mailman) or else the permissions will be wrong and you'll have to fix them. Read the mailman doc's for more information on setting up and managing mailman lists.

13. Content Filtering and Anti-Virus

For content filtering and Anti-Virus, please consult our mail filtering gateway guide.

14. Wrap Up

Ok, you're all set, edit /etc/postfix/master.cf and turn off verbose mode for production use. You'll probably also want to add the services to your startup routine to make sure everything comes back up on a reboot. Make sure to add all the services you're using - apache, mysql, saslauthd, postfix, courier-imapd, courier-imapd-ssl, courier-pop3d, and courier-pop3d-ssl are all up to your decision on what access you want to provide. I generally have all the services enabled.

Code Listing 14.1: Wrap up

# postfix reload
# rc-update add $service default

Have fun!

15. Troubleshooting

Introduction

Troubleshooting: This is a short troubleshooting guide for the set up we've detailed how to install here. It is not exhaustive, but meant as a place to get you started in figuring out problems. With a complicated setup such as this, it's imperative that you narrow down the problem to the particular component that is malfunctioning. In general I do that by following a few steps. Start from the base of the system and work your way up, ruling out components that work along the way until you discover which component is having the problem.

Step 1: Check your config files

Typos are killers, especially when dealing with authentication systems. Scan your config's and mailsql database for typo's. You can debug all you want, but if you're not passing the right information back and forth to your mail system, it's not going to work. If you make a change to a config file for a service, make sure you restart that service so that the config change gets picked up.

Code Listing 15.1: How to restart a service

# /etc/init.d/service restart

Step 2: Are all the necessary services actually running?

If it's not running, start it up. It's awful hard to debug a service that isn't running. Sometimes a service will act like it's started but still not function. Sometimes, when a bad config is used, or a bad transmission comes into a mail component, the service will hang and keep the port from being used by another process. Sometimes you can detect this with netstat. Or, if you've been at it awhile, just take a break and reboot your box in the meantime. That will clear out any hung services. Then you can come back fresh and try it again.

Code Listing 15.2: Checking the status of a service

# /etc/init.d/$service status
# netstat -a | grep $service (or $port)

Step 3: Are all the service using the current config's?

If you've recently made a change to a config file, restart that service to make sure it's using the current version. Some of the components will dump their current config's to you, like postfix.

Code Listing 15.3: Some services can dump their current config

# apache2ctl fullstatus (needs lynx installed)
# apache2ctl configtest (checks config sanity)
# postconf -n (will tell you exactly what param's postfix is using)
# /etc/init.d/$service restart

Step 4: Check the logs

Repeat after me, logs are my friend. My next troubleshooting stop is always the logs. Sometimes it's helpful to try a failed operation again then check the logs so that the error message is right at the bottom (or top depending on your logger) instead of buried in there somewhere. See if there is any information in your log that can help you diagnose the problem, or at the very least, figure out which component is having the problem.

Code Listing 15.4: Checking the logs

# kill -USR1 `ps -C metalog -o pid=`(to turn off metalog buffering)
# nano -w /var/log/mail/current
# cat /var/log/mysql/mysql.log
# tail /var/log/apache2/error_log

You may also find the debug_peer parameters in main.cf helpful. Setting these will increase log output over just verbose mode.

Code Listing 15.5: adding debug_peer support

# nano -w /etc/postfix/main.cf
debug_peer_level = 5
debug_peer_list = $host.domain.name
(Uncomment one of the suggested debugger
commands as well.)

Step 5: Talk to the service itself

SMTP, IMAP, and POP3 all respond to telnet sessions. As we've seen earlier when we verified postfix's config. Sometimes it's helpful to open a telnet session to the service itself and see what's happening.

Code Listing 15.6: Connect to a service with telnet

# telnet localhost $port
(SMTP is 25, IMAP is 143, POP3 is 110. You should receive at least an OK string,
letting you know that the service is running and ready to respond to requests.)

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK Courier-IMAP ready. Copyright 1998-2002 Double Precision, Inc.

Step 6: Sometimes only the big guns will give you the information you need: strace

You should have this installed anyway. This is an invaluable tool for debugging software. You can start commands from the command line with strace and watch all the system calls as they happen. It often dumps a huge amount of information, so you'll either need to watch it realtime as you retry a failed transaction with the mail system, or dump the output to a file for review.

Code Listing 15.7: Using strace

# emerge strace
# strace $command
# strace -p `ps -C $service -o pid=`

Step 7: Research

Once you have the information, if you can diagnose and fix the problem, great! If not, you'll probably need to go digging on the net for information that will help you fix it. Here's a list of sites you can check to see if your error has already been resolved. There's also a really good howto on setting up smtp-auth which contains some great debugging ideas.



Print

Updated August 24, 2007

Summary: This document details how to create a virtual mailhosting system based upon postfix, mysql, courier-imap, and cyrus-sasl.

Ken Nowack
Author

Ezra Gorman
Author

Zack Gilburd
Editor

Scygro
Editor

Sven Vermeulen
Editor

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Contact us.
------------l1kNOdpt0KwzRANOtdbeji Content-Disposition: inline; filename=main.css Content-Type: text/css; name=main.css Content-Location: http://www.gentoo.org/css/main.css Content-Transfer-Encoding: 8bit BODY { color: black; background: white; font-family: sans-serif, Verdana, Arial, Helvetica; /* Waaaay too much complaints... really, people should learn how to fix their browser settings. */ font-size: 0.8em; padding:0; } .dochead { margin-top: 1.5em; font-size: 1.7em; font-weight: bold; } .chaphead { font-size: 1.3em; font-weight: bold; } .chapnum { font-size: 0.85em; } .secthead { font-size: 1.1em; color: #5a3aca; background: white; font-weight: bold; font-family: sans-serif, Verdana, Arial, Helvetica; } .subsecthead { color: #7a5ada; background: white; font-size: 1.0em; font-weight: bold; font-family: sans-serif, Verdana, Arial, Helvetica; } a.highlight:link { color: #00ff00; text-decoration: none; } a.highlight:visited { color: #00ff00; text-decoration: none; } a.highlight:hover { color: #00ff00; text-decoration: underline; } a.highlight:active { color: #00ff00; text-decoration: underline; } a.menulink:link { color: #a0a0f0; text-decoration: none; } a.menulink:visited { color: #a0a0f0; text-decoration: none; } a.menulink:hover { color: #00ff00; text-decoration: underline; } a.menulink:active { color: #00ff00; text-decoration: underline; } a.altlink:link { color: #7a5ada; text-decoration: none; } a.altlink:visited { color: #5a3aba; text-decoration: none; } a.altlink:hover { color: #7a5ada; text-decoration: underline; } a.altlink:active { color: #7a5ada; text-decoration: underline; } a:link { color: #0000ff; } a:visited { color: #52188c; } a img {border:none; text-decoration:none; vertical-align:text-bottom;} .menu { font-size: 1.0em; font-weight: bold; font-family: sans-serif, Verdana, Arial, Helvetica; color: #ffffff; padding-left: 1.0em; padding-right: 1.0em; padding-top: 0.5em; padding-bottom: 0.5em; margin-bottom: 0; line-height:1.6em; } li {margin-bottom: 5px;} ol,ul {margin-top: 5px;} .altmenu { font-size: 0.85em; font-weight: bold; font-family: sans-serif, Verdana, Arial, Helvetica; color: #000000; padding-left: 1.0em; padding-right: 1.0em; line-height:1.4em; margin-top:0; margin-bottom:0; } .alttext { font-size: 0.85em; font-family: sans-serif, Verdana, Arial, Helvetica; color: #000000; margin-top:0; margin-bottom:0; } .infotab { padding: 0.5em; margin-top: 1.0em; margin-left: 1.0em; margin-bottom: 1.0em; } .codetitle { font-size: 0.9em; font-family: sans-serif, Verdana, Arial, Helvetica; padding: 0.25em; margin-left: 1.0em; margin-top: 0; margin-bottom: 0; color: #ffffff; font-weight: bold; } .infohead { font-size: 0.80em; font-family: sans-serif, Verdana, Arial, Helvetica; /* padding: 0.25em; */ padding-top: 0.2em; padding-bottom: 0.2em; padding-left: 1.0em; padding-right: 1.0em; margin-left: 1.0em; color: #ffffff; background-color: #7a5ada; font-weight: bold; } .infosub { margin-top: 0.25em; margin-bottom: 0.15em; margin-left: 0em; margin-right: 0.5em; padding: 0em; font-weight: bold; } .infolist { margin-top: 0.05em; margin-bottom: 0.05em; margin-left: 1.0em; margin-right: 0.5em; padding: 0em; padding-top: 0.3em; } .infogfx { padding: 0em; } .infotext { font-size: 0.85em; font-family: sans-serif, Verdana, Arial, Helvetica; color: #320f61; margin-left: 1.5em; margin-right: 1.5em; } /* .chaphead { margin: 1.2em 14% 0.5em 3%; font-size: 1.6em; font-weight: bold; } */ .copyright { margin-top: 2em; margin-left: 2em; margin-right: 2em; margin-bottom: 0.4em; font-size: 0.85em; font-family: sans-serif, Verdana, Arial, Helvetica; text-align: center; color: #404040; } .copyright a:link, .copyright a:visited { text-decoration: underline; color: #404040; } .copyright a:hover { text-decoration: underline; color: #4040f0; } .subhead { font-family: sans-serif, Verdana, Arial, Helvetica; font-size: 1.2em; font-weight: bold; /*margin: 0.5em 0% 0.5em 0%;*/ } .content { /*padding: 3em;*/ padding-top: 0em; padding-left: 1.0em; padding-right: 1.0em; font-family: sans-serif, Verdana, Arial, Helvetica; font-size: 1em; } .ntable { padding: 0em; margin-top: 0.5em; margin-bottom: 0.5em; } .ncontent { /*content with no padding, for an ugly Netscape 4.7 compatibility hack*/ padding: 0em; margin-top: 0.5em; margin-bottom: 0.5em; font-family: sans-serif, Verdana, Arial, Helvetica; font-size: 0.9em; } pre { margin-top: 0; margin-bottom: 0; padding: 0.5em; font-family: monospace, "Courier New"; color: #000000; font-size: 0.9em; overflow: auto; } .news { padding-left: 1.0em; padding-right: 1.0em; color: black; background-color: white; font-family: sans-serif, Verdana, Arial, Helvetica; font-size: 1em; text-align: justify; margin:10px; } .newsicon { float: left; margin-right: 12px; margin-bottom: 8px; } .newshead { background-color: #7a5ada; padding-top: 0.4em; padding-bottom: 0.4em; padding-left: 1.0em; padding-right: 1.0em; color: white; text-align: left; clear:both; } .newsitem { text-align: justify; } .spacer { clear: both; } /* Colour coding inside
 */
.code-input      {color:#0000c8;}
.code-comment    {color:#d80000;}
.code-constant   {color:#F000F0;}
.code-identifier {color:#209090;}
.code-statement  {color:#982424;}
.code-variable   {color:#b89b1c;}
.code-keyword    {color:#0C680C;}


.code {
	font-family: monospace, "Courier New";
	color: #0000ff;
	font-size: 1.0em;
}

.path {
	font-family: monospace, "Courier New";
	font-size: 1.0em;
}

.emphasis {
	font-style: italic;
}

P.note {
  margin-top: 0;
  margin-bottom: 0;
	padding: 0.5em;
}

P.impo {
  margin-top: 0;
	padding: 0.5em;
}

P.warn {
  margin-top: 0;
	padding: 0.5em;
}

P.epigraph {
  margin: 1em 15% 1em 4em;
  font-style: italic;
  text-align: justify;
}
P.epigraph BR { line-height:0.8em;}
SPAN.episig {
  font-style: normal;
}

SUP, SUB {font-size:xx-small;}

.contentbox {
	margin-left: 5%;
	margin-right: 5%;
	margin-top: 2%;
	margin-bottom: 2%;
	padding: 0.8em;
}

.logobg {
	background: #45347b;
}

.top {
	background: black;
	font-family: sans-serif, Verdana, Arial, Helvetica;
	font-size: 0.85em;
	color: #c0c0c0;
	padding: 0em;
	margin: 0em;
}

.topnews {
	background: #5f4e4e;
	color: white;
}

.tophead {
	color: #a7f3fe;
	font-weight: bold;
	margin: 0em;
}

.tableinfo {
	padding-left: 1.0em;
	padding-right: 1.0em;
	padding-top: 0.2em;
	padding-bottom: 0.2em;
	font-size: 0.75em; 
	background: #ddddff;
	font-weight: bold; 
	font-family: sans-serif, Verdana, Arial, Helvetica;
  vertical-align: top;
}

/*
UL {
	margin: 0em;
	padding-top: 0em;
	padding-bottom: 1em;
	padding-left: 1em;
	padding-right: 0em;
}

LI {
	padding-bottom: 0.5em;
}
*/
.toptext {
	color: #ffffff;
	margin-bottom: 7px;
}
.toptext a:hover {
        color: #00ff00;
}

.toptext a:link {
	font-style: normal;
  color: #00dd00;
}

.bartext {
	color: #40ff00;
	font-family: sans-serif, Verdana, Arial, Helvetica;
	font-size: 0.8em;
	padding: 0em;
}
.docs-index {
	margin: 0em;
	margin-left: 20px;
  font-family: sans-serif, Verdana, Arial, Helvetica;
	line-height: 1.25em; 
/*	border: 3px coral solid;*/
	border: 3px white solid;
}
/*this works fine in IE, but not in any other browser!, yet it's perfectly valid */
.docs-index .emphasis {
        font-style: normal;
        font-weight: bold;
}

.topsep {
  padding-top: 0.5em;
  border-top: 1px black solid;
}

.topsep img {margin-bottom:8px;}
.topsep form {margin-bottom:0;}

#devlinks {font-size:smaller;}
#devlinks tr {padding:0; margin:0; border:none;}
#devlinks td {margin:0; padding:0 4px 0 0; border:none;}
#devlinks a {text-decoration:none;}
#devlinks a:hover {color:#c02020;}


td.leftmenu p.altmenu a.altlink:before {content:"\2022\A0"; color:#301060;}
/*
Escaped arrow does not work with konqueror
td.leftmenu p.altmenu a.altlink:before {content:"\2023\20"; color:#301060;}

Any UTF-8 encoded character does not work with konqueror
td.leftmenu p.altmenu a.altlink:before {content:"‣ "; color:#301060;}
*/

------------l1kNOdpt0KwzRANOtdbeji
Content-Disposition: inline; filename=favicon.ico
Content-Type: image/x-icon; name=favicon.ico
Content-Location: http://www.gentoo.org/favicon.ico
Content-Transfer-Encoding: Base64

AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADeXXsA3l2DAN5ZewDNZXsA5pmsAO6ytADmoaQA/6G0AMVV
agDFUGoAvVBqALRMYgC0TGoArEhiAKRIYgDNXXsA3qq0AP///wD/7vYA/97mAP/O
1QD/vr0A9qGsAMVZcwCsRGIA3mF7AOa6vQD/8vYA/97eAP/KzQD2paQAzWmDANWZ
rAD/9vYA7rq9AP/S1QD/xs0A/7q9AP+ytAC9XWoAtEhiAO6+xQD2qqwAnJGUAIt9
gwD/1tUA/77FAN6FlAC0UGoA7mGDAJx1ewD2ys0A5p2kAP/GxQD/qqwArExiAOZh
gwCkZXsAnIGLALSBgwD20tUA//r/AP/m7gD/1t4A/8LFAP/CzQDVYXsApH2LAIN5
ewD/9v8A/+ruAP/a3gD/ytUAtHl7AOZdewDFZXsA/9rVAL2JgwBiLDkA1Vl7AOaF
nAD/4uYAxZWUAJxtewCUPFIA7pmsAP/OzQDFmZwAajhBAKREWgDFVXMAzVVzAP/O
3gDFiYsAnHFzAHM4SgDFgZQA/+r2AOaurADFnZwAi21zAIM4UgDVXXsAzVlzAMWV
nAC0fXsAvY2UAKSNlABqNEEAnEBaAINdagCkiYsAvZWUAL2ZlACslZQAlImUAINV
YgCLPFIAvUxqAHM8SgCchZQAnHmDAGosOQCLOFIAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdll3eHl6ew1PAABmT1tbCApu
b3BxcnN0dXYAAABnWwgLaB0tLS1pamtsbWcAZ1taYD9RRmFhRkViY2RlKGZPZ1tc
RT0RPRsSPhFdXl8oT1sCVRERERERRRtGG1ZXWFlaTwBQERERERFFRlFREVJTVABK
MUs9PRERPUYTR0wRTU5CAA1DREURERFGRyNINRFJODk6Ozw9ERE9Pj8dQEAuQTEy
MxEREREGNBsUNSUlNjcAKREREREqKywtHS4lJi8wACARERERISIhIyQlJicNKAAZ
GhEREREbHB0VHh8MCw0AAA8QERESExQVFhcKCw0YAAEBAgMEBQYHCAkKCwwNDgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA=

------------l1kNOdpt0KwzRANOtdbeji
Content-Disposition: inline; filename=gtop-www.jpg
Content-Type: image/jpeg; name=gtop-www.jpg
Content-Location: http://www.gentoo.org/images/gtop-www.jpg
Content-Transfer-Encoding: Base64

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
8zyxXUVd/wCDb3lu/St3lvf+P//Z
------------l1kNOdpt0KwzRANOtdbeji
Content-Disposition: inline; filename=x-click-but21.gif
Content-Type: image/gif; name=x-click-but21.gif
Content-Location: http://images.paypal.com/images/x-click-but21.gif
Content-Transfer-Encoding: Base64

R0lGODlhbgAXAMQfAKurq09PT9PT0319fe7u7vX19WRkZL6+vvPz883NzeLi4oqK
iv7+/qGhoefn5/v7+5WVldnZ2aWlpRgYGJubmzs7O8bGxoSEhJ6envn5+dzc3N/f
3+vr6wAAAP///////yH5BAEAAB8ALAAAAABuABcAAAX/4CeOZGmeaKqubOuiSQMt
y2XfeK7vfO//wOBtMDAYKKUDJKHYaJ7QqHRKrVqv2KxWGhFgJobRZiHwmM/otHrN
brvf8Phb0jmIMBS5fs/v+9EPFQEiBhZ/h4iJew8FEBMiAWV/HR2KlpdnjAQAHZCS
Z5RplWuhiJSnl6UeqnKanCIVCaKqrGi1faW3frp6Dwgcrx+xs6Goq8a5o6ejoMZm
tMrOy8zLz9XQyc6+wJ3CsrbHlbXF4tHWpNTpx+fr7c3s7cnxo9vBw+Cr7NPh6dXN
0urkzbOGTN1AgfW63QM16yBAdPCgDXSoz6A8hL/sfWNoq9w5chHfuRNI0lxJkRfN
u3lICGvjs4b8PM4b5y9mR4kzsY0syM6XA42YggrdwyADAgd0REwwNLSp0zQMGBQg
oCDphwkNPDB4kKGr169gw4odS7as2bNowRaY6kDDhUcfAlQogIAAh7t48+rdy7ev
37+AAwve60BBF0EiDnSAUHiD48eQI0ueTLmy5cuYM0fW0CXBgDojDHQw0KABhtOo
U6tezbq169ewY8tWTYGC6DAkBkyYxru379/AgwsfTnzahAEvkitfzrw5ihAAOw==

------------l1kNOdpt0KwzRANOtdbeji
Content-Disposition: inline; filename=vr-ad.png
Content-Type: image/png; name=vr-ad.png
Content-Location: http://www.gentoo.org/images/vr-ad.png
Content-Transfer-Encoding: Base64

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

------------l1kNOdpt0KwzRANOtdbeji
Content-Disposition: inline; filename=tek-gentoo.gif
Content-Type: image/gif; name=tek-gentoo.gif
Content-Location: http://www.gentoo.org/images/tek-gentoo.gif
Content-Transfer-Encoding: Base64

R0lGODlhfQB9AOYAAAAAANuXgwD/IA6XJlxhYqoAAP3/7zs7O8zAzdGFWebm5ry8
tyAhInRzcri2q97e3q2zsb0uM97e1ZmZmXZ6e6esrMtoWaWkpOTch9XV0L3DvYqJ
hPP66FNTUGLPeLUPGaKhnYODfsPA2XuCf7/ExGZmZg8PD+S6nu3t6u/cxLSus9ff
ezMzM8ZIR+bm3+fr1r29vZmZmTLFR3t7e6mp9ra7ue3ltNWxVtbW1rckIbu6/9+h
mteMft7d/yUnKK8ADlpaWoF9e0tLStjZ3PT64NLVstF6aPf399mfb2xxc5uPoenD
s8lXWKurp/X70ays1z6QTpKSjobHlLW1tY55iufrnHl6dfH3wcXFxd6the/u70FC
Q7e47sTEv/Dv/yP4R9LboWZmZnl2k5yhrYSFhNXX+b4tKu3txMzM/+XDmoyMjP//
/+Tm/LYZH9WFc8dVTNV5eFpXaMvMxY+QsbIGEa4ACMA7Oq2trbmsvMxmZvPg0vXs
0uKxnCkpKhD+OczMzCH5BAQUAP8ALAAAAAB9AH0AAAf/gACCg4SFhoeIiYqLjI2O
j4Z3dyoqU5aXmJmXTRAwnp+eJCRYpKWkfxmpqjhDrUMPsLGyKCgutrEKWgoKtFq+
v8BatS6+R8bHyMnIa8zNzoJNTZLTktEqENiaU9GYC5agnqV/46qrOOeu6a67sucP
u/DwtPO08r/K+MrO+2uC1P+SsGXD5OkbjBqWNGhYsNASlnHkVF1x4kQCq3QviGh8
sYvWrXPo4omkRy8YsHz4+D0DILATiUw1YspEiENLjTs1sChUuEBUk5wqYIiDaCOL
ESQ2yqU6E8BNACLxHpyDiAOWAqsi5aHo2EsLyq8qm0GL1mQIignYLtzRNsXshAs1
/zSAqgGh54VL4GDIqWKmgBkMcuRkaIUixYcCds5AxALuT1VYrbDKGuk12b2vxsIy
G9sERNUGktRamnZpiIIocBEaPIhFLYw7DsDIBuOgSJq+b/ag0EhEwos0bX5YuGKj
yIIaC4rILkICR0YUEpxwsMVhuouuWgwYKKascnfvmvsBIFtjF4g/WKJJevgHhjQc
CjZMuAMDPUJKeFpbclAFAxIkaThhwBI5FGDBHk5kAeAZV2TxwQ8J+IcBGEX0h0QW
VRSRgg027LFHFmkQccYSKRiwRwop7EHEHhy+YJJ3yHC3jGac7XMEBFGo8EAzR9QQ
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
rKIVr4jFLGpxi1zsYiAAADs=

------------l1kNOdpt0KwzRANOtdbeji
Content-Disposition: inline; filename=sevenl.gif
Content-Type: image/gif; name=sevenl.gif
Content-Location: http://www.gentoo.org/images/sponsors/sevenl.gif
Content-Transfer-Encoding: Base64

R0lGODlhfQCQAPcAAAAAAP///1JewEpiukZiuhp0qK0VFu1DRkMVFvFtcF8sLdqo
qeAXHagoLPvExv3X2P7k5feMk9h8gTgjJPutsUUyM5g1Ps5SXcSPk/7w8e7j5K5u
drYuQmBcXYU4Ti4bIb6eqKE7XU5MTf37/IhLbXJAXZtkjIpAeP31/TIxM2dVe2xR
kxIQGBoGXh4KYhoGYh4KZhoKWisiTWRUn01FbRUGXBoKYhoKXh4PZh4PYRoOUxcN
RhgRORMGVRkKZhYLUhoOXhoOWhoSRToyYhMGYxYKYhYKXRoOZhoOYoN6txoTUAwE
Vc7N2RwWbCYgeEE8ghIOajAthFpWullWtV9cuoKBl+rp/QYESg0OaRMTcFtctlla
qVdXmI2N1fT0/i4uLzs7PJqam4qKi1ZaxldawlZavldauTxBm2pusNDS+AMFHAwS
aUdPrVJaxk1VuVJawlJavldewldfuKOo7lJexlJewk9aulZfvlRcsHJ1klRiw1Je
vmh20qquyU5ewk5dvlJivlBeuVBfs1ppyFRhrk1iwk5ivlFiuIuStkthuU1ht0la
o6aosUhivEpivkpivUliukpiu0tiuU9mvkZivkVhuUdiukdjuUhjuVVijEJiv0Jh
uUZmvkZkukpmukJmv0JlukRktktqtm+Q40JmukFmuFt7wk9nn7bC3A8oXR03bj5m
uj1mtkNrvDZmujVmtDpqtjxruz9nqTJLdZGv4TVqtkd4vjlYhjVtuzZoqTBor4mS
nS1tsjJtsu31/lB8qWGPvW9wcSZuriturjp4rzVplZCyziJyriZyrih0sStyqxly
rh5yrh5yqiJ2ryJyqihxpTR0oRp2rhpyqhlupBx3sgwzTB52rh9xpjyJuhZ0qhp2
qhZjkBpypRlrmg9AXRVZgBNNbx52qh52piJ3qiBxoCp/rxZzpRp2phx6rCF2ovX7
/hZ6phd2oRt6pWFiYoGCgv769YuIhX4YGCAHB46OjoaGhnx8fCQkJB4eHhoaGhYW
FhQUFBISEg0NDf///yH5BAEAAP8ALAAAAAB9AJAAAAj/AAUIHEiw4MA/eur8gRNn
z55Aet7EEQCHYaA9BOHcQQhH4B+PcRjaETixzp4/deoY+hMnTiBAb+jQqWPnTqBA
cd4AshOnTc6PAiYGhQNIACBAY8bo0cNQAEKnBqNKneox4UimcBzucRPHTdA4NUci
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

------------l1kNOdpt0KwzRANOtdbeji
Content-Disposition: inline; filename=gni_logo.png
Content-Type: image/png; name=gni_logo.png
Content-Location: http://www.gentoo.org/images/gni_logo.png
Content-Transfer-Encoding: Base64

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
wGH/CxyDsVZDkGMlAAAAAElFTkSuQmCC
------------l1kNOdpt0KwzRANOtdbeji--