TRENDING
  • Linux
  • Shell Script
  • Cloud
  • DevOps
  • About US
SUBSCRIBE
  • CLOUD
  • DEVOPS
  • LINUX
  • SHELL SCRIPT
Reading: How to Configure Linux Mail Server Qmail on AlmaLinux / Rocky Linux
Share
TechBrownTechBrown
Aa
  • CLOUD
  • DEVOPS
  • LINUX
  • SHELL SCRIPT
Search
  • CLOUD
  • DEVOPS
  • LINUX
  • SHELL SCRIPT
Follow US
© 2014 - 2022 TechBrown. All Rights Reserved.
Linux

How to Configure Linux Mail Server Qmail on AlmaLinux / Rocky Linux

January 29, 2015
Share
9 Min Read
SHARE
Contents
Step-1 (Download the Software and extract qmail pkgs)Step-2 (Installing Qmail Itself)Step-3 (EZmlm)Step-4 (Autoresponder)Step-5 (Vpopmail)Step-6 (Vqadmin)Step-7 (Maildrop)Step-8 (Qmailadmin)Step-9 (Finalizing Qmail)Step-10 (Starting qmail)Step-11 (Installing Courier-imap/imaps with Courierpassd)Step-12 (Installing Squirrelmail)

Qmail is Founded in June of 2003. Put together to provide a free and open resource for anyone needing help with the installation and configuration on AlmaLinux / Rocky Linux / Amazon Linux. It is an incredibly fast, stable and secure mail solution suitable for almost any environment. Qmailrocks continues to grow and improve because of the generous contributions from devoted qmail fans across the world.

Step-1 (Download the Software and extract qmail pkgs)
# wget http://www.qmailrocks.org/downloads/qmailrocks.tar.gz
# mkdir /downloads
# cd /downloads
# tar zxvf qmailrocks.tar.gz
Step-2 (Installing Qmail Itself)
# /downloads/qmailrocks/scripts/install/qmr_install_linux-s1.script
# /downloads/qmailrocks/scripts/util/qmail_big_patches.script

Now we build Qmail…

# cd /usr/src/qmail/qmail-1.03
# make man && make setup check
# ./config-fast your_fqdn_hostname (ex: ./config-fast mail.galaxy.com)
# make cert
Country Name (2 letter code) [GB]:IN
State or Province Name (full name) [Berkshire]: MH
Locality Name (eg, city) [Newbury]: India
Organization Name (eg, company) [My Company Ltd]: MCH
Organizational Unit Name (eg, section) []: Computer Cell
Common Name (eg, your name or your server's hostname)
[]:mail.techbrown.com
Email Address []:[email protected]
Step-3 (EZmlm)
# cd /downloads/qmailrocks/
# tar zxvf ezmlm-0.53-idx-0.41.tar.gz
# cd ezmlm-0.53-idx-0.41
# make && make setup
Step-4 (Autoresponder)
# cd /downloads/qmailrocks
# tar zxvf autorespond-2.0.5.tar.gz
# cd autorespond-2.0.5
# make && make install
Step-5 (Vpopmail)
# cd /downloads/qmailrocks
# tar zxvf vpopmail-5.4.5.tar.gz
# cd vpopmail-5.4.5
# ./configure --enable-logging=p
# make && make install-strip
Step-6 (Vqadmin)
# cd /downloads/qmailrocks
# tar zxvf vqadmin-2.3.6.tar.gz
# cd vqadmin-2.3.6
# ./configure --enable-cgibindir=/var/www/cgi-bin --enablehtmldir=/var/www/html/
# make && make install-strip

Now you will need to add the following to your server’s Apache configuration file (usually httpd.conf)

<Directory "/var/www/cgi-bin/vqadmin">
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>

In addition, within the Apache master config file you will want to set the “AllowOveride” option to “All”.Example: AllowOveride All

# cd /var/www/cgi-bin/vqadmin
# vi .htaccess
AuthType Basic
AuthUserFile /usr/local/apache/conf/vqadmin.passwd
AuthName vQadmin
require valid-user
satisfy any
# chown apache .htaccess
# htpasswd -bc /usr/local/apache/conf/vqadmin.passwd admin admin
# chmod 644 /usr/local/apache/conf/vqadmin.passwd
# apachectl stop
# apachectl start
# http://mail.galaxy.com/cgi-bin/vqadmin/vqadmin.cgi
Step-7 (Maildrop)
# cd /downloads/qmailrocks
# tar zxvf maildrop-1.6.3.tar.gz
# cd maildrop-1.6.3
# ./configure --prefix=/usr/local --exec-prefix=/usr/local --enablemaildrop-uid=root --enable-maildrop-gid=vchkpw --enablemaildirquota
# make && make install-strip && make install-man
Step-8 (Qmailadmin)
# cd /downloads/qmailrocks
# tar zxvf qmailadmin-1.2.1.tar.gz
# cd qmailadmin-1.2.1
# ./configure --enable-cgibindir=/var/www/cgi-bin --enablehtmldir=/var/www/html/
# make && make install-strip
Step-9 (Finalizing Qmail)
# /downloads/qmailrocks/scripts/finalize/linux/finalize_linux.script

Find “mail.example.com” and change it to your server’s hostname. For example: mail.galaxy.com.

# vi /var/qmail/supervise/qmail-pop3d/run
# vi /var/qmail/supervise/qmail-smtpd/run

Next, we’ll kill any running qmail processes so that we can implement some final configurations.

# qmailctl stop

Setup Selective relaying Localhost

# echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
# qmailctl cdb
# echo [email protected] > /var/qmail/alias/.qmail-root
# echo [email protected]> /var/qmail/alias/.qmail-postmaster
# echo [email protected]> /var/qmail/alias/.qmail-mailerdaemon
# ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmailanonymous
# chmod 644 /var/qmail/alias/.qmail*

Removing Sendmail

# service sendmail restart
# rpm -qa | grep sendmail
# rpm -e --nodeps sendmail-x.x.x.x
# rpm -e --nodeps sendmail-doc-x.x.x.x
# rpm -e --nodeps sendmail-devel-x.x.x.x
# rpm -e --nodeps sendmail-cf-x.x.x.x
# /etc/rc.d/init.d/sendmail stop (to stop Sendmail)
# mv /usr/lib/sendmail /usr/lib/sendmail.old
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old

Delete Postfix

# rpm -qa | grep postfix
# postfix-x.x-x
# /etc/rc.d/init.d/postfix stop
# rpm -e nodeps postfix-x.x-x
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
Step-10 (Starting qmail)
# /downloads/qmailrocks/scripts/util/qmr_inst_check
# qmailctl stop
# qmailctl start
# qmailctl stat
# telnet localhost 110
Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.
+OK <[email protected]>
user [email protected] (enter your username here remember to use the full e-mail address)
+OK
pass galaxy
+OK
quit
+OK
Connection closed by foreign host.
Step-11 (Installing Courier-imap/imaps with Courierpassd)
# cd /downloads/qmailrocks
# tar jxvf courier-authlib-0.55.tar.bz2
# cd courier-authlib-0.55
# ./configure --prefix=/usr/local --exec-prefix=/usr/local --withauthvchkpw--without-authldap --without-authmysql --disable-rootcheck--with-ssl --with-authchangepwdir=/usr/local/libexec/authlib --with-redhat
# make && make check
# make install-strip && make install-configure
# vi /etc/rc.local

Add the following line:

# /usr/local/sbin/authdaemond start

Now let’s install courier-imap/imaps…

# cd /downloads/qmailrocks/
# tar jxvf courier-imap-4.0.2.tar.bz2
# chown -R bsmith:wheel courier-imap-4.0.2
# cd /downloads/qmailrocks/courier-imap-4.0.2
# subsmith
# ./configure --prefix=/usr/local --exec-prefix=/usr/local --withauthvchkpw--without-authldap --without-authmysql --disable-rootcheck--with-ssl --with-authchangepwdir=/usr/local/libexec/authlib --with-redhat
# make && make check

We will exit out of our NON-ROOT USER and go back to being root.

# Exit
# make install-strip && make install-configure
# /usr/local/sbin/mkimapdcert
# vi /usr/local/etc/imapd.cnf
# vi /usr/local/etc/imapd
# vi /usr/local/etc/imapd-ssl
# vi /usr/local/etc/authlib/authdaemonrc authmodulelist="authvchkpw“
# cp /usr/local/libexec/imapd.rc /etc/rc.d/init.d/imap
# cp /usr/local/libexec/imapd-ssl.rc /etc/rc.d/init.d/imaps

Let’s start up Authdaemond, IMAP and IMAPS. To be safe we’ll stop each service before starting it.

# /usr/local/sbin/authdaemond stop
# /usr/local/sbin/authdaemond start
# /etc/rc.d/init.d/imap stop
# /etc/rc.d/init.d/imaps stop
# /etc/rc.d/init.d/imap start
# /etc/rc.d/init.d/imaps start
# telnet localhost 143
Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2003 Double Precision, Inc. See COPYING for distribution information.
a login [email protected] techbrown
a OK LOGIN Ok. (successful login!)
a logout (logs you out)
* BYE Courier-IMAP server shutting down
a OK LOGOUT completed
Connection closed by foreign host.

Note: Courierpassd will require that port 106 be open to at least local traffic (traffic from 127.0.0.1)

# cd /downloads/qmailrocks
# tar zxvf courierpassd-1.1.0-RC1.tar.gz
# cd courierpassd-1.1.0-RC1
# ./configure
# make && make install
# cd /etc/xinetd.d

Here we create the xinetd script for courierpassd.

# vi courierpassd
service courierpassd
 {
 port = 106
 socket_type = stream
 protocol = tcp
 user = root
 server = /usr/local/sbin/courierpassd
 server_args = -s imap
 wait = no
 only_from = 127.0.0.1
 instances = 4
 disable = no
 }
# vi /etc/services
# /etc/rc.d/init.d/xinetd restart
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 courierpassd v0.30 hello, who are you?
user [email protected]
200 Your password please.
pass galaxy
200 Your new password please.
newpass galaxy
200 Password changed, thank-you.
quit
200 Bye.
Connection closed by foreign host.
# telnet localhost 106
Step-12 (Installing Squirrelmail)
# cd /downloads/qmailrocks
# tar xvzf squirrelmail-1.4.8.tar.gz

Now rename the untarred folder to something more friendly.

# mv squirrelmail-1.4.8 webmail

And now let’s configure Squirrelmail.

# mkdir /var/sqattachements
# chown -R apache:apache /var/sqattachements
# cdwebmail
# chown -R apache:apache data
# cd config
# ./conf.pl

General Settings

1. Domain : 1.2.3.4 (Enter the IP of your server here. Don't be an idiot and actually use 1.2.3.4)
2. Invert Time : false
3. Sendmail or SMTP : SMTP

IMAP Settings

4. IMAP Server : localhost
5. IMAP Port : 143
6. Authentication type : login
7. Secure IMAP (TLS) : false
8. Server software : other
9. Delimiter : detect

SMTP Settings

4. SMTP Server : localhost
5. SMTP Port : 25
6. POP before SMTP : false
7. SMTP Authentication : login
8. Secure SMTP (TLS) : false

I edit the httpd.conf Apache configuration file and add the following block:

<VirtualHost 172.25.25.4:80>
ServerName mail.techbrown.com
ServerAlias mail.*
ServerAdmin [email protected]
DocumentRoot /var/www/webmail
</VirtualHost>
http://mail.techbrown.com

We’ll sign in with the postmaster account under the domain you should have created earlier using Vqadmin.

Username: [email protected]
Password: techbrown
/etc/rc.d/init.d/imap start
/etc/rc.d/init.d/imaps start
# qmailctl restart
# qmailstat

Congratulations now you have configured the Linux Mail Server Qmail on AlmaLinux / Rocky Linux / Amazon Linux.

You Might Also Like

How to Optimize MySQL Performance on AlmaLinux / Rocky Linux

How to Enable TLS 1.3 on Apache and Nginx

5 Security Tips to Protect your WordPress Website from Hackers

How to Enable AES-128 Bit SSL Cipher with TLS 1.3 on Nginx Web Server

How to Set Up NGINX Web Server on AlmaLinux / Rocky Linux

Sign Up For Newsletter

Be keep up! Get the latest articles delivered straight to your inbox.

TechBrown Solutions January 29, 2015
Share this Article
Facebook TwitterEmail Print
Share
Leave a comment Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

TRENDING

Linux

How to Create User without using Useradd Command on AlmaLinux / Rocky Linux

Linux

How to Configure phpMyAdmin with MySQL Database on AlmaLinux / Rocky Linux

Linux

RPM and YUM Commands Cheat Sheet for AlmaLinux / Rocky Linux

Linux

How to Sync Time with Timezone on AlmaLinux / Rocky Linux

You Might Also Like

Linux

How to Optimize MySQL Performance on AlmaLinux / Rocky Linux

October 19, 2021
Linux

How to Enable TLS 1.3 on Apache and Nginx

March 14, 2021
Linux

5 Security Tips to Protect your WordPress Website from Hackers

November 8, 2020
Linux

How to Enable AES-128 Bit SSL Cipher with TLS 1.3 on Nginx Web Server

November 7, 2020

Always Stay Up to Date

Subscribe to our newsletter to get our newest articles instantly!

Follow US on Social Media

Facebook Twitter Youtube Rss

© 2014 - 2022 Techbrown. All Rights Reserved.

  • About Us
  • Terms of Service
  • Cookie Policy
  • Privacy Policy
By using this site, you agree to the Privacy Policy, Cookie Policy and Terms of Service.
Accept

Removed from reading list

Undo
AdBlock Detected
Our site is an advertising supported site. Please whitelist to support our site.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

Lost your password?