
Setup mail server in centos 6
Description :
This article describes how to setup a mail server in centos 6
Here three popular packages used for configuration
- Postfix ( for sending )
- Dovecot ( for receiving )
- Squirrelmail ( for webmail access )
Installing and configuring postfix
Step 1 : Before installation assign a static ip and add a host entry for your domain to that IP in the /etc/hosts
123.45.67.89 domainname.com
Step 2 : Issue the below command to install postfix
[root@mail ~]# yum -y install postfix
Step 3 : Now issue the below command to install SMTP AUTH packages
[root@mail ~]# yum -y install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain
Postfix package installation is completed.
Step 4 : Issue the below commands one by one for creating SSL Certificate.
[root@mail ~]# mkdir /etc/postfix/ssl [root@mail ~]# cd /etc/postfix/ssl/ [root@mail ssl]# openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 [root@mail ssl]# chmod 600 smtpd.key [root@mail ssl]# openssl req -new -key smtpd.key -out smtpd.csr [root@mail ssl]# openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt [root@mail ssl]# openssl rsa -in smtpd.key -out smtpd.key.unencrypted [root@mail ssl]# mv -f smtpd.key.unencrypted smtpd.key [root@mail ssl]# openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 365
Step 5 : Now open /etc/postfix/main.cf file.
Find and comment the below lines.
#inet_interfaces = localhost #---> line no 116 #mydestination = $myhostname, localhost.$mydomain, localhost #--> line no 164
and add these lines at the bottom of the file.
myhostname = mail.domainname.com mydomain = domainname.com myorigin = $mydomain home_mailbox = mail/ mynetworks = 127.0.0.0/8 inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain smtpd_sasl_auth_enable = yes smtpd_sasl_type = cyrus smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
Step 6 : Now open /etc/postfix/master.cf file and add the below line after smt
smtps inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_sender=yes -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o broken_sasl_auth_clients=yes
Step 7 : Now start postfix and saslauthd service
[root@mail ~]# service postfix start
[root@mail ~]# service saslauthd start
Enter the below commands to start the postfix and saslauthd at startup
[root@mail ~]# chkconfig --level 235 postfix on
[root@mail ~]# chkconfig --level 235 saslauthd on
Step 8 : Now check your smtp connectivity . just telnet localhost on port 25 and type this command ehlo localhost
[root@mail ~]# telnet localhost 25 Trying ::1... Connected to localhost. Escape character is '^]'. 220 mail.domainname.com ESMTP Postfix ehlo localhost <---- type this command 250-mail.domainname.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host.
Installing and configuring dovecot :
Step 9 : Issue this command to install dovecot
[root@mail ~]# yum -y install dovecot
Step 10 : After installation open /etc/dovecot/dovecot.conf file and add the below line at the end of the file.
Make sure mail_location and home_mailbox in postfix configuration are using the same name.
protocols = imap pop3 mail_location = maildir:~/mail pop3_uidl_format = %08Xu%08Xv
Step 11 : Now start dovecot service
[root@mail ~]# service dovecot start
Enter the below command to start the dovecot at startup
[root@mail ~]# chkconfig --level 235 dovecot on
Step 12 : Now test your pop3 connectivity.
[root@mail ~]# telnet localhost 110 Trying ::1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready. quit +OK Logging out Connection closed by foreign host.
Now the server is ready to receive mails.
Creating users and testing :
Step 13 : Now create users to test your configuration.
[root@mail ~]# useradd -m user1 -s /sbin/nologin
[root@mail ~]# useradd -m user2 -s /sbin/nologin
and create passwords for the users created
[root@mail ~]# passwd user1
[root@mail ~]# passwd user2
Step 14 : Test your configuration in thunderbird.
Refer the below image for configuration details.
Step 15 : Now you can send and receive mails using this server. In case of any issues please check the log file
/var/log/maillog )
Now mail server is ready to use
Installing and configuring squirrelmail :
Step 16 : We need to add EPEL repository to install squirrelmail package.
[root@mail ~]# rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm
Step 17 : Issue the below command to install squirrelmail.
[root@mail ~]# yum install squirrelmail
This command will install squirrelmail along with apache and php.
Step 18 : Now run the below command to configure squirrelmail .
[root@mail ~]# perl /usr/share/squirrelmail/config/conf.pl
=> 1 => domain (type Organization name) => R (return)
=> 2 => 1 => ( hit space for empty Domain name ) => choose 3 => SMTP ( choose SMTP ) => R (return)
=> D => dovecot (tyoe) => Press enter with default
=> s (save and quit)
Step 19 : Open /etc/httpd/conf.d/squirrelmail.conf file and uncomment below lines
# RewriteCond %{HTTPS} !=on # RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Step 20 : Start apache service
[root@mail ~]# service httpd start
Enter the below commands to start the httpd at startup
[root@mail ~]# chkconfig --level 235 httpd on
Step 21 : Now open http://serverip/webmail path in your browser.
and after login
****