Mail Server:
============
=> MUA (Mail user Agent): outlook, thunderbird, eudora, webmail, apps(gmail)
=> MTA (Mail Transfer Agent): MS exchange,qmail,postfix,sendmail,exim,Lotus
=> MDA (Mail Delivery Agent): POP3 Server (Dovecot)
Reference Table:
----------------
Prerequisite - DNS Ready, Static IP for Mail Server
Packages:
=> postfix(smtp),
=> dovecot(pop3 & IMAP),
=> squirrelmail (webmail),
=> httpd,
=> telnet (testing)
=> epel (Extra package for Enterprise Linux)
Daemon - postfix (SMTP), dovecot (POP3 & IMAP), httpd
Ports -
=> SMTP 25 : client to Server, server to server
=> PoP3 110: server to client
=> IMAP 143: server to client (Interactively used)
Configuration files:
--------------------
=> /var/named/example.com.for (DNS)
=> /etc/postfix/main.cf
=> /etc/dovecot/dovecot.conf
=> /etc/dovecot/conf.d/10-mail.conf
=> /etc/dovecot/conf.d/10-auth.conf
=> /etc/dovecot/conf.d/10-master.conf
=> /usr/share/squirrelmail/config/conf.pl - squirrelmail
=> /etc/httpd/conf/httpd.conf - (web mail)
DNS Part:
----------
[root@nsX ~]# hostname
[root@nsX ~]# nslookup nsX.example.com
[root@nsX ~]# nslookup mail.example.com
[root@nsX ~]# cd /var/named
[root@nsX named]# ls
[root@nsX named]# vim example.com.for
8 IN NS nsX.example.com. ; no change
9 IN A 172.25.11.200+X ; no change
10 IN MX 10 mail.example.com. ; new entry
11 IN MX 20 mail2.example.com. ; (optional for 2nd Mail server)
13 nsX IN A 172.25.11.200+X ; no change
14 mail IN CNAME nsX.example.com. ; new entry
15 mail2 IN A 172.25.11.Y ;(optional for 2nd Mail server)
[root@nsX named]# systemctl restart named.service
Note: CNAME - Canonical Name ( If we want to configure multiple server like DNS, FTP, MAIL, Web in same machine then, we can use CNAME insted of "A" record.
[root@nsX named]# nslookup mail.example.com
Server: 172.25.11.200+X
Address: 172.25.11.200+X#53
mail.example.com canonical name = nsX.example.com.
Name: nsX.example.com
Address: 172.25.11.200+X
[root@nsx ~]# nslookup -query=mx example.com
Step 01:
--------
[root@nsx ~]# rpm -qa | grep postfix
[root@nsx ~]# yum install postfix* -y ; if not found
Step 02:
--------
[root@nsx ~]# cd /etc/postfix
[root@ns1 postfix]# ls
[root@nsx postfix]# vim main.cf
:set nu
75 myhostname = mail.example.com
83 mydomain = example.com
99 myorigin = $mydomain
113 inet_interfaces = all
116 #inet_interfaces = localhost
164 #mydestination = $myhostname, localhost.$mydomain, localhost
165 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
250 mynetworks_style = subnet
264 mynetworks = 172.25.11.0/24, 127.0.0.0/8
419 home_mailbox = Maildir/
572 smtpd_banner = $myhostname ESMTP $mail_name
[root@ns1 postfix]# systemctl restart postfix.service
[root@ns1 postfix]# systemctl enable postfix.service
Allow port through firewall-cmd:
-------------------------------
[root@nsx postfix]# systemctl restart firewalld
[root@nsx postfix]# systemctl enable firewalld
[root@nsx postfix]# firewall-cmd --permanent --add-service=smtp
success
[root@nsx postfix]# firewall-cmd --reload
success
[root@nsx postfix]# yum install telnet -y
Step 03: SMTP Testing
=====================
[root@nsx postfix]# telnet mail.example.com 25
Trying 172.25.11.200+X...
Connected to mail.example.com.
Escape character is '^]'.
220 mail.example.com ESMTP Postfix
quit
221 2.0.0 Bye
Connection closed by foreign host.
Step 04: dovecot install
========================:
[root@nsx ~]# yum install dovecot* -y
Step 05: dovecot configure
========================:
[root@nsx ~]# vim /etc/dovecot/dovecot.conf
24 protocols = imap pop3 lmtp
30 listen = *
42 login_greeting = Welcome to Example Inc. Mail
[root@nsx ~]# vim /etc/dovecot/conf.d/10-mail.conf
24 mail_location = maildir:~/Maildir
[root@nsx ~]# vim /etc/dovecot/conf.d/10-auth.conf
10 disable_plaintext_auth = no
100 auth_mechanisms = plain login
[root@nsx ~]# vim /etc/dovecot/conf.d/10-master.conf
91 user = postfix
92 group = postfix
[root@nsx ~]# systemctl enable dovecot.service
[root@nsx ~]# systemctl restart dovecot.service
Allow port through firewall-cmd:
-------------------------------
[root@nsx ~]# firewall-cmd --permanent --add-port 110/tcp
success
[root@nsx ~]# firewall-cmd --reload
success
Step 06: POP Testing
=====================
[root@nsx ~]# telnet mail.example.com 110
Trying 172.25.11.200+X...
Connected to mail.example.com.
Escape character is '^]'.
+OK Welcome to Example Inc. Mail
quit
+OK Logging out
Connection closed by foreign host.
Mail User Create:
-------------------
[root@nsx ~]# useradd -s /sbin/nologin sadia.afroz
[root@nsx ~]# useradd -s /sbin/nologin rose
[root@nsx ~]# useradd -s /sbin/nologin jack
[root@nsx ~]# passwd jack
[root@nsx ~]# passwd rose
[root@nsx ~]# passwd sadia.afroz
Web Mail Configure with Squirrelmail:
=====================================
Step 01: EPEL Install
---------------------
[root@serverX ~]# yum install epel-release
[root@nsx ~]# cd /etc/yum.repos.d
[root@nsx yum.repos.d]# ls
Step 02: Install Squirrelmail
------------------------------
[root@nsx ~]# yum install squirrelmail -y
Step 03: Configure Squirrelmail
-----------------------------
[root@ns1 ~]# cd /usr/share/squirrelmail/config/
[root@ns1 config]# ls
[root@ns1 config]# ./conf.pl
Command >> Press 1 and Enter (Orgnization)
Command >> Press 1 and Enter (Squirrelmail)
[SquirrelMail]: Example Ltd. ;press Enter
Command >> 4 (Organizationn Ttile)
[SquirrelMail $version]: Training Provider
Command >> Press 8 ;and Press Enter
[SquirrelMail]: Example Ltd.
Command >> S
Command >> R
Command >> Press 2
Command >> Press 1 (Domain)
[localhost]: example.com
Command >> Press 3
Your choice [1/2] [1]: 2 (SMTP)
Command >> S
Command >> R
Command >> Press 4 (General Options)
Command >> 7 ( Hide SM attributions)
Hide SM attributions (y/n) [n]: y
Command >> S
Command >> Q
Step 04: Apache HTTP Install
----------------------------
[root@nsx ~]# yum install httpd -y
Step 05: Add following lines at the end of configuration files ####
-------------------------------------------------------------------
[root@nsx ~]# vim /etc/httpd/conf/httpd.conf
[add the following lines end of the file]
Alias /webmail /usr/share/squirrelmail
<Directory /usr/share/squirrelmail>
Options Indexes FollowSymLinks
RewriteEngine On
AllowOverride All
DirectoryIndex index.php
Order allow,deny
Allow from all
</Directory>
[root@nsx ~]# systemctl restart httpd.service
[root@nsx ~]# systemctl enable httpd.service
Allow port through firewall-cmd:
-------------------------------
[root@nsx ~]# firewall-cmd --permanent --add-service=http
success
[root@nsx ~]# firewall-cmd --permanent --add-service=dns
success
[root@nsx ~]# firewall-cmd --reload
success
[root@nsx ~]# setenforce 0
Step 06: Test
-------------
-> open browser
-> http://mail.example.com/webmail or -> http://172.25.11.200+X/webmail
================= Thank you ==============
============
=> MUA (Mail user Agent): outlook, thunderbird, eudora, webmail, apps(gmail)
=> MTA (Mail Transfer Agent): MS exchange,qmail,postfix,sendmail,exim,Lotus
=> MDA (Mail Delivery Agent): POP3 Server (Dovecot)
Reference Table:
----------------
Prerequisite - DNS Ready, Static IP for Mail Server
Packages:
=> postfix(smtp),
=> dovecot(pop3 & IMAP),
=> squirrelmail (webmail),
=> httpd,
=> telnet (testing)
=> epel (Extra package for Enterprise Linux)
Daemon - postfix (SMTP), dovecot (POP3 & IMAP), httpd
Ports -
=> SMTP 25 : client to Server, server to server
=> PoP3 110: server to client
=> IMAP 143: server to client (Interactively used)
Configuration files:
--------------------
=> /var/named/example.com.for (DNS)
=> /etc/postfix/main.cf
=> /etc/dovecot/dovecot.conf
=> /etc/dovecot/conf.d/10-mail.conf
=> /etc/dovecot/conf.d/10-auth.conf
=> /etc/dovecot/conf.d/10-master.conf
=> /usr/share/squirrelmail/config/conf.pl - squirrelmail
=> /etc/httpd/conf/httpd.conf - (web mail)
DNS Part:
----------
[root@nsX ~]# hostname
[root@nsX ~]# nslookup nsX.example.com
[root@nsX ~]# nslookup mail.example.com
[root@nsX ~]# cd /var/named
[root@nsX named]# ls
[root@nsX named]# vim example.com.for
8 IN NS nsX.example.com. ; no change
9 IN A 172.25.11.200+X ; no change
10 IN MX 10 mail.example.com. ; new entry
11 IN MX 20 mail2.example.com. ; (optional for 2nd Mail server)
13 nsX IN A 172.25.11.200+X ; no change
14 mail IN CNAME nsX.example.com. ; new entry
15 mail2 IN A 172.25.11.Y ;(optional for 2nd Mail server)
[root@nsX named]# systemctl restart named.service
Note: CNAME - Canonical Name ( If we want to configure multiple server like DNS, FTP, MAIL, Web in same machine then, we can use CNAME insted of "A" record.
[root@nsX named]# nslookup mail.example.com
Server: 172.25.11.200+X
Address: 172.25.11.200+X#53
mail.example.com canonical name = nsX.example.com.
Name: nsX.example.com
Address: 172.25.11.200+X
[root@nsx ~]# nslookup -query=mx example.com
Step 01:
--------
[root@nsx ~]# rpm -qa | grep postfix
[root@nsx ~]# yum install postfix* -y ; if not found
Step 02:
--------
[root@nsx ~]# cd /etc/postfix
[root@ns1 postfix]# ls
[root@nsx postfix]# vim main.cf
:set nu
75 myhostname = mail.example.com
83 mydomain = example.com
99 myorigin = $mydomain
113 inet_interfaces = all
116 #inet_interfaces = localhost
164 #mydestination = $myhostname, localhost.$mydomain, localhost
165 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
250 mynetworks_style = subnet
264 mynetworks = 172.25.11.0/24, 127.0.0.0/8
419 home_mailbox = Maildir/
572 smtpd_banner = $myhostname ESMTP $mail_name
[root@ns1 postfix]# systemctl restart postfix.service
[root@ns1 postfix]# systemctl enable postfix.service
Allow port through firewall-cmd:
-------------------------------
[root@nsx postfix]# systemctl restart firewalld
[root@nsx postfix]# systemctl enable firewalld
[root@nsx postfix]# firewall-cmd --permanent --add-service=smtp
success
[root@nsx postfix]# firewall-cmd --reload
success
[root@nsx postfix]# yum install telnet -y
Step 03: SMTP Testing
=====================
[root@nsx postfix]# telnet mail.example.com 25
Trying 172.25.11.200+X...
Connected to mail.example.com.
Escape character is '^]'.
220 mail.example.com ESMTP Postfix
quit
221 2.0.0 Bye
Connection closed by foreign host.
Step 04: dovecot install
========================:
[root@nsx ~]# yum install dovecot* -y
Step 05: dovecot configure
========================:
[root@nsx ~]# vim /etc/dovecot/dovecot.conf
24 protocols = imap pop3 lmtp
30 listen = *
42 login_greeting = Welcome to Example Inc. Mail
[root@nsx ~]# vim /etc/dovecot/conf.d/10-mail.conf
24 mail_location = maildir:~/Maildir
[root@nsx ~]# vim /etc/dovecot/conf.d/10-auth.conf
10 disable_plaintext_auth = no
100 auth_mechanisms = plain login
[root@nsx ~]# vim /etc/dovecot/conf.d/10-master.conf
91 user = postfix
92 group = postfix
[root@nsx ~]# systemctl enable dovecot.service
[root@nsx ~]# systemctl restart dovecot.service
Allow port through firewall-cmd:
-------------------------------
[root@nsx ~]# firewall-cmd --permanent --add-port 110/tcp
success
[root@nsx ~]# firewall-cmd --reload
success
Step 06: POP Testing
=====================
[root@nsx ~]# telnet mail.example.com 110
Trying 172.25.11.200+X...
Connected to mail.example.com.
Escape character is '^]'.
+OK Welcome to Example Inc. Mail
quit
+OK Logging out
Connection closed by foreign host.
Mail User Create:
-------------------
[root@nsx ~]# useradd -s /sbin/nologin sadia.afroz
[root@nsx ~]# useradd -s /sbin/nologin rose
[root@nsx ~]# useradd -s /sbin/nologin jack
[root@nsx ~]# passwd jack
[root@nsx ~]# passwd rose
[root@nsx ~]# passwd sadia.afroz
Web Mail Configure with Squirrelmail:
=====================================
Step 01: EPEL Install
---------------------
[root@serverX ~]# yum install epel-release
[root@nsx ~]# cd /etc/yum.repos.d
[root@nsx yum.repos.d]# ls
Step 02: Install Squirrelmail
------------------------------
[root@nsx ~]# yum install squirrelmail -y
Step 03: Configure Squirrelmail
-----------------------------
[root@ns1 ~]# cd /usr/share/squirrelmail/config/
[root@ns1 config]# ls
[root@ns1 config]# ./conf.pl
Command >> Press 1 and Enter (Orgnization)
Command >> Press 1 and Enter (Squirrelmail)
[SquirrelMail]: Example Ltd. ;press Enter
Command >> 4 (Organizationn Ttile)
[SquirrelMail $version]: Training Provider
Command >> Press 8 ;and Press Enter
[SquirrelMail]: Example Ltd.
Command >> S
Command >> R
Command >> Press 2
Command >> Press 1 (Domain)
[localhost]: example.com
Command >> Press 3
Your choice [1/2] [1]: 2 (SMTP)
Command >> S
Command >> R
Command >> Press 4 (General Options)
Command >> 7 ( Hide SM attributions)
Hide SM attributions (y/n) [n]: y
Command >> S
Command >> Q
Step 04: Apache HTTP Install
----------------------------
[root@nsx ~]# yum install httpd -y
Step 05: Add following lines at the end of configuration files ####
-------------------------------------------------------------------
[root@nsx ~]# vim /etc/httpd/conf/httpd.conf
[add the following lines end of the file]
Alias /webmail /usr/share/squirrelmail
<Directory /usr/share/squirrelmail>
Options Indexes FollowSymLinks
RewriteEngine On
AllowOverride All
DirectoryIndex index.php
Order allow,deny
Allow from all
</Directory>
[root@nsx ~]# systemctl restart httpd.service
[root@nsx ~]# systemctl enable httpd.service
Allow port through firewall-cmd:
-------------------------------
[root@nsx ~]# firewall-cmd --permanent --add-service=http
success
[root@nsx ~]# firewall-cmd --permanent --add-service=dns
success
[root@nsx ~]# firewall-cmd --reload
success
[root@nsx ~]# setenforce 0
Step 06: Test
-------------
-> open browser
-> http://mail.example.com/webmail or -> http://172.25.11.200+X/webmail
================= Thank you ==============
Post a Comment