Installing a qmail server
Its been almost two years now since I installed a mail server. Nevertheless, qmail still rocks as qmailtoaster becomes more convenient to install. I also tried the install on a fresh CentOS4.4 machines, and it works like a charm.
--------------------------------------------------------------------
EZ QmailToaster Fresh Install on CentOS 4.3
Nick Hemmesch <nick @ndhsoft.com> June 08, 2006
--------------------------------------------------------------------
CentOS 4.3: This test install was performed on an
P4 3Ghz with 2GB ram on an Intel m/b.
--------------------------------------------------------------------
This tutorial is for CentOS 4.3 (cnt40) i386
To install CentOS 4.3 x86_64, replace cnt40 with cnt4064
To install Fedora Core 4 & 5, change download path from centos to
fedora & cnt40 to fdr40, fdr4064, fdr50 or fdr5064 per your distro
--------------------------------------------------------------------
Notes:
You must have either a local dns server or a local caching name
server. If you need a caching namserver, we will add one in Step 8.
Be sure to replace "your-domain.com" with your real domain name,
and "your.fqdn.com" with your server's "Fully Qualified Domain Name".
--------------------------------------------------------------------
1. Download CentOS 4.3 CD iso's or the DVD iso.
--------------------------------------------------------------------
Burn iso's to CD, or DVD if you downloded a DVD iso
Boot with your CD 1 or the DVD
--------------------------------------------------------------------
2. CentOS Installation (This is the configuration of my test box):
--------------------------------------------------------------------
Splash Page: <enter> to install in graphical mode
CD Found window: Choose "Skip" to bypass media test
Welcome to CentOS: Click "Next"
Language Selection: Select your language & Click "Next"
Keyboard Configuration: Select language type & Click "Next"
Installation Type: Select "Server" & Click "Next"
Disk Partitioning Setup: Select "Automatically Partition & Click "Next"
Warning: Click "Yes"
Automatic Partitioning: Select "Remove all partitions" & Click "Next"
Warning: Click "Yes"
Disk Setup: Click "Next"
Boot Loader Configuration: Click "Next"
Network Configuration: Click "Edit"
Edit Interface eth0: Deselect "Configure using DHCP"
Select "Activate on boot"
Enter your "IP Address" & "Netmask"
Click "OK
Set the hostname:
Deselect "automatically via DHCP"
Select "manually" & enter your "fully qualified domain name"
Miscellaneous Settings:
Gateway: enter IP address of your gateway
Primary DNS: enter IP address of primary dns server
Secondary DNS: enter IP address of secondary dns server
Click "Next"
Firewall Configuration:
Select "No firewall"
Select "Disabled" mode for SELinux
Click "Next"
Warning - No Firewall: Click "Proceed"
Additional Language Support" Click "Next"
Time Zone Selection: Select your time zone & Click "Next"
Set Root Password: Enter your root password twice & Click "Next"
--------------------------------------------------------------------
3. Package Group Selection - Select ONLY the following groups:
--------------------------------------------------------------------
Server Configuration Tools: Select
Web Server: Select
Click "Details" and add php-mysql plus the defaults
DNS Name Server: Select
FTP Server: Select
MySQL Database: Select
Click "Details" and add mysql-bench, mysql-server plus the defaults
Development Tools: Select
Click "Details" and add expect to the defaults
Administration Tools: Select
System Tools: Select
Click "Details" and add mrtg to the defaults
Click "Next"
About to Install: Click "Next"
Required Install Media: verify and click "Continue"
Installing Packages: Click "Next" & watch the install
After installation: remove your media & Click "Reboot"
--------------------------------------------------------------------
4. After reboot, login as root:
--------------------------------------------------------------------
mkdir -p /usr/src/qtms-install
cd /usr/src/qtms-install
This example is CentOS 4.3 i386 so the qmailtoaster switch is cnt40
--------------------------------------------------------------------
5. Prepare to Install QmailToaster:
--------------------------------------------------------------------
wget http://www.qmailtoaster.com/centos/cnt40/cnt40-deps.sh
sh cnt40-deps.sh
wget http://www.qmailtoaster.com/centos/cnt40/cnt40-perl.sh
sh cnt40-perl.sh
wget http://www.qmailtoaster.com/centos/cnt40/cnt40-svcs.sh
wget http://www.qmailtoaster.com/centos/cnt40/firewall.sh
nano -w cnt40-svcs.sh
edit MYSQLPW=your-mysql-password
ctl-o and enter to save
ctl-x to exit
nano -w firewall.sh
edit MYIP="your-IP-address"
ctl-o and enter to save
ctl-x to exit
sh cnt40-svcs.sh
=== NOTE ===
This script turns on or off all necessary services. Then the script sets
up your mysql root account, creates and grants privileges for your vpopmail
mysql account, makes a symlink so your krb5 is read properly, edits your
php.ini, sets inittab to start at runlevel 3, and sets up your firewall.
Note: You might see some service errors while the script runs,
don't worry about them.
============
Update all your packages:
yum -y update
REBOOT
--------------------------------------------------------------------
6. Get QmailToaster Packages:
--------------------------------------------------------------------
cd /usr/src/qtms-install
wget http://www.qmailtoaster.com/info/current-download-script.sh
sh current-download-script.sh
This script downloads all necessary packages into you current
directory (should be /usr/src/qtms-install/).
--------------------------------------------------------------------
7. Install QmailToaster Packages:
--------------------------------------------------------------------
wget http://www.qmailtoaster.com/centos/cnt40/cnt40-install-script.sh
sh cnt40-install-script.sh
Check your services:
setup: Select Services
See that the following services are selected: acpid anacron
atd autofs cpuspeed crond djbdns freshclam haldaemon httpd
iptables kudzu messagebus mysqld network ntpd qmail rawdevices
smartd sshd syslog xinet
Also: irqbalance (w/dual processors) xfs (w/xwindows)
--------------------------------------------------------------------
8. Add djbdns (if you don't want bind)
--------------------------------------------------------------------
rpm -e --nodeps bind bind-chroot caching-nameserver
rpmbuild --rebuild --with cnt40 djbdns*.src.rpm
rpm -Uvh ../redhat/RPMS/i386/djbdns-localcache*.rpm
echo "search your-domain.com" > /etc/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/resolv.conf
REBOOT
--------------------------------------------------------------------
9. Setup QmailToaster:
--------------------------------------------------------------------
qmailctl stat
(Should look somewhat like this)
[root@gateway ~]# qmailctl stat
authlib: up (pid 2425) 65 seconds
clamd: up (pid 2425) 65 seconds
imap4: up (pid 2421) 65 seconds
imap4-ssl: up (pid 2423) 65 seconds
pop3: up (pid 2414) 65 seconds
pop3-ssl: up (pid 2409) 65 seconds
send: up (pid 2416) 65 seconds
smtp: up (pid 2418) 65 seconds
spamd: up (pid 2407) 65 seconds
authlib/log: up (pid 2417) 65 seconds
clamd/log: up (pid 2417) 65 seconds
imap4/log: up (pid 2422) 65 seconds
imap4-ssl/log: up (pid 2424) 65 seconds
pop3/log: up (pid 2415) 65 seconds
pop3-ssl/log: up (pid 2413) 65 seconds
send/log: up (pid 2420) 65 seconds
smtp/log: up (pid 2419) 65 seconds
spamd/log: up (pid 2408) 65 seconds
[root@gateway ~]#
Add a domain:
/home/vpopmail/bin/vadddomain your-domain.com
<postmaster -password>
Add a user:
/home/vpopmail/bin/vadduser you@your-domain.com <your -password>
Edit /etc/php.ini and set register_globals = On
service httpd restart
Bring up your browser and go to:
http://www.your-domain.com/admin-toaster/
Username: admin
Password: toaster
Change your password . . .
Edit /etc/php.ini and set register_globals = Off
service httpd restart
Check your mail server:
http://www.your-domain.com/webmail
login with your full email address and your password
Send yourself an email - should show right away
Send an email to yourself if you have another address
Go to your other email account and reply to the message you sent
If Isoqlog doesn't show right away, do this:
sh /usr/share/toaster/isoqlog/bin/cron.sh
--------------------------------------------------------------------
10. Add domainkeys:
--------------------------------------------------------------------
Make dir for yourdomain.com:
mkdir /var/qmail/control/domainkeys/your-domain.com
Make domainkey (Remove the "\"):
dknewkey /var/qmail/control/domainkeys/your-domain.com/private > \
your-domain-dk.txt
chown root:qmail /var/qmail/control/domainkeys/your-domain.com/private
chmod 444 /var/qmail/control/domainkeys/your-domain.com/private
Make dns entry:
BIND - in the your-domain.com zone file (see yourdomain-dk.txt):
private._domainkey IN TXT "k=rsa; p=MEwwDQY . . . to end of key"
(NOTE QUOTATION MARKS MUST BE THERE)
DJBDNS - in /var/djbdns/tinydns/root/data (make from your-domain-dk.txt):
'_domainkey.your-domain.com:o=-; r=postmaster@your-domain.com
'private._domainkey.your-domain.com:k=rsa; p=MEwwDQY . . . to end of key
Test your mailserver:
http://domainkeys.sourceforge.net/policycheck.html
http://domainkeys.sourceforge.net/selectorcheck.html
In squirrelmail, send a test email, select View Full Header and you
should find something like the following:
----------- snip ------------
DomainKey-Status: good
Received: by simscan 1.2.0 ppid: 22641, pid: 22644, t: 0.8416s
scanners: clamav: 0.88.2/m:38/d:1476 spam: 3.1.1
X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on ndh1.whatgives.org
X-Spam-Level: *
X-Spam-Status: No, score=1.6 required=5.0 tests=FROM_DOMAIN_NOVOWEL
autolearn=no version=3.1.1
Received: from unknown (HELO ns1.ndhsdns.com) (216.221.100.227)
by ndh1.whatgives.org with (DHE-RSA-AES256-SHA encrypted) SMTP; 22 May 2006 20:03:36 -0000
Received-SPF: pass (ndh1.whatgives.org: SPF record at ndhsdns.com designates 216.221.100.227 as permitted sender)
Received: (qmail 28034 invoked by uid 89); 22 May 2006 20:03:36 -0000
Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
s=private; d=ndhsdns.com;
b=XVKQZe446BXMnSoQKvgchf0DRx4v8YQYZn5KVLj5O8XYf7V1dX7ETaJ1VGWGp5Bf ;
Received: from unknown (HELO www.ndhsdns.com) (127.0.0.1)
by ns1.ndhsdns.com with SMTP; 22 May 2006 20:03:36 -0000
----------- snip ------------
--------------------------------------------------------------------
11. Logs for all packages except freshclam are at:
--------------------------------------------------------------------
/var/log/qmail/*
Freshclam is at /var/log/clamav
</your></postmaster></enter></nick>
|
Notes:
The only problem I stumbbled upon is when using vadddomain, as the mysql password was still set to “SsEeCcRrEeTt”. Edit these files before adding a domain. I dont use the web interface when adding a domain, i prefer it by command line.
<br />
[root@mail vpopmail]# find . | grep mysql<br />
./etc/vpopmail.mysql.dist<br />
./etc/vpopmail.mysql<br />
After all the installs is completed, reboot and check if qmail is running.
<br />
Administrator links:<br />
http://your-mail-server-ip/admin-toaster/ -> this is the main administration interface<br />
http://your-mail-server-ip/qmailadmin/ -> administrative interface to manage accounts<br />
http://your-mail-server-ip/webmail/ -> an email account interface<br />