hl8189 发表于 2013-2-7 11:32:58

Install and configure Email Server

To install and configure Email server, there are two things need to be done.The first things isto install and configure the DNS servr. The second is to install and configure Email server.
      We usually use the BIND for the DNS server on the Redhat server and use the James and sendmail for the email server.
      Step 1, install the DNS server on Redhat.
         1. Get the bind from the website, www.bind.com.
         2. upload the installation file to the server Redhat and use tar -zxvf *.gz to extract the file.
         3. The file was needed to make install.
                        ./configure --prefix=/usr/local/named# this tell the system the path to install
                        make#precompile
                        make install# make install.
            4.Since now, the installation were finished and the configure can be started.
            5.Add the user and group bind.
                        groupadd bind
                        useradd -g bind -d /usr/local/named -s /sbin/nologin bind
            6.configure the DNS
                        cd /usr/local/named/etc
                        /usr/local/named/sbin/rndc-confgen > rndc.conf
                        cat rndc.conf > rndc.key
                        chmod 777 /usr/local/named/var
                        tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf
    vi named.conf
添加下面内容(

#################

options {
directory "/usr/local/named/var";         
pid-file "named.pid";            
};

zone "." IN {
      type hint;         
      file "named.root";
};

zone "localhost" IN {
      type master;
      file "localhost.zone";
      allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
      type master;      
      file "named.local";   
      allow-update { none; };
};

zone "test.com" IN {   
      type master;   
      file "test.com.zone";   
      allow-update { none; };
};


zone "1.168.192.in-addr.arpa" in {
      type master;
      file "test.com.rev";            
      allow-update { none; };
};
########################
   cd /usr/local/named/var

1:named.root
dig @a.root-servers.net . ns > named.root

2:localhost.zone
##########
$TTL    86400
$ORIGIN localhost.
@                     1D IN SOA       @ root (
                                        42            ; serial (d. adams)
                                        3H            ; refresh
                                        15M             ; retry
                                        1W            ; expiry
                                        1D )            ; minimum

                        1D IN NS      @
                        1D IN A         127.0.0.1
#############

3:named.local
###############
$TTL    86400
@       IN      SOA   localhost. root.localhost. (
                                    1997022700 ; Serial
                                    28800      ; Refresh
                                    14400      ; Retry
                                    3600000    ; Expire
                                    86400 )    ; Minimum
            IN      NS      localhost.

1       IN      PTR   localhost.
####################


4:test.com.zone
############

$TTL 86400      ; 1 day
@               IN      SOA   ns1.test.com.      root.test.com. (
                              2008050122 ; serial
                              28800      ; refresh (8 hours)
                              7200       ; retry (2 hours)
                              604800   ; expire (1 week)
                              86400      ; minimum (1 day)
                              )
                        NS      ns1.test.com.
                        A       192.168.1.168
                        MX      10 mail.test.com.
www                     A       192.168.1.168
mail      A      192.168.1.168
ns1      A      192.168.1.168

#########################
5:test.com.rev
#############
$TTL 86400
@ IN SOA ns1.test.com. root.test.com.(
                                                            20031001;
                                                            7200;
                                                            3600;
                                                            43200;
                                                             86400);
@         IN         NS             ns1.test.com.
168         IN         PTR          ns1.test.com.
##############
      
      7 create the service

vi /etc/rc.d/init.d/named

#!/bin/bash
# named a network name service.
# chkconfig: 345 35 75
# description: a name server

if [ `id -u` -ne 0 ]
then
echo "ERROR:For bind to port 53,must run as root."
exit 1
fi
case "$1" in
start)
if [ -x /usr/local/named/sbin/named ]; then
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf -u bind && echo . && echo 'BIND9 server started'
fi
;;
stop)
kill `cat /usr/local/named/var/named.pid` && echo . && echo 'BIND9 server stopped'
;;
restart)
echo .
echo "Restart BIND9 server"
$0 stop
sleep 10
$0 start
;;
reload)
/usr/local/named/sbin/rndc reload
;;
status)
/usr/local/named/sbin/rndc status
;;
*)
echo "$0 start | stop | restart |reload |status"
;;
esac



->chmod 755 /etc/rc.d/init.d/named

->chkconfig --add named

->service named start

      8 test the service

/usr/local/named/sbin/named -g

You can use the script to test the server and it will print the start log.


start the server
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf -u bind &


view the status of the server

/usr/local/named/sbin/rndc status

start teh server

service named restart

edit /etc/resolv.conf

change the dns server to local pc.

we can nslookup to test the dns server.
      eg: nslookup www.polisy.com.sg



Step 2, Install and configure the james.

      James is very easy to install.
      
      1. After upload the installation file,we can use tar -zxvf .gz to extract the tar file.
      
      eg: tar -zxvf *.gz -C james   #extract the gz file to james.
         
            2. Add the JAVA_HOME to the script $JAMES_HOME/bin/run.sh
                  # add JAVA_HOME
                  JAVA_HOME=/opt/jdk1.6.0_13
                  export JAVA_HOME
               
                3. Will start the james.
                  When start the james ,it willcheck if there is another mail server started on the redhat,so we need to close other email server
                        ->service sendmail stop
                        ->sh run.sh
                        If there is no problem, we can see the message below.
                        # sh run.sh
                        Using PHOENIX_HOME:   /opt/james/james-2.3.1
                        Using PHOENIX_TMPDIR: /opt/james/james-2.3.1/temp
                        Using JAVA_HOME:      /opt/jdk1.6.0_13
                        Running Phoenix:

                        Phoenix 4.2

                        James Mail Server 2.3.1
                        Remote Manager Service started plain:4555
                        POP3 Service started plain:110
                        SMTP Service started plain:25
                        NNTP Service started plain:119
                        FetchMail Disabled
               
               4modify the /SAR-INF/config

               <postmaster>Postmaster@test.com</postmaster>
                  <servernames autodetect="false" autodetectIP="true">
               <!-- CONFIRM? -->
               <servername>test.com</servername>
               </servernames>

                5. restart the serersh run.sh

                6. add user and password
                telnet 127.0.0.1 4555
                  adduser usr pwd

Step 3. create the start and stop server script for DNS and james server.

vi startEmailserver
   
    #! /bin/sh
   service sendmail stop
   service named start
   sh /opt/james/james-2.3.1/bin/run.sh &

vi stop Email server
      
#! /bin/sh
# kill james pid
pidlist=`ps -ef|grep jame | grep -v "grep"|awk '{print $2}'`
#ps -u $USER|grep "java"|grep -v "grep"
echo "email server Id list :$pidlist"
if [ "$pidlist" = "" ]
then
echo "no email server pid alive"
else
for pid in ${pidlist}
{
   kill -9 $pid
echo "KILL $pid:"
echo "service stop success"
}
fi

#stop DNS server

pidlist=`ps -ef|grep named | grep -v "grep"|awk '{print $2}'`
#ps -u $USER|grep "java"|grep -v "grep"
echo "DNS server Id list :$pidlist"
if [ "$pidlist" = "" ]
then
echo "no DNS server pid alive"
else
for pid in ${pidlist}
{
   kill -9 $pid
echo "KILL $pid:"
echo "service stop success"
}
fi
页: [1]
查看完整版本: Install and configure Email Server