시스템/Linux2016. 4. 28. 17:49

Sendmail 설정



vi /etc/mail/sendmail.mc


===== 변경전(원본) =====

dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

...

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl



위 라인을 아래와 같이 수정 


===== 변경 후 =====

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

...

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

 


m4 tool을 이용하여 sendmail.cf 파일을 재생성해 준다.


m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf



vi /etc/mail/sendmail.cf 


#Dj$w.Foo.COM


위 항목을 아래와 같이 수정한다. 저 상태로 두면 localhost.localdomain.com 으로 메일이 발송되므로 수신측 차단됨


Dj[도메인명]


저장 후 sendmail 서비스를 재시작 한다.


# vi /etc/mail/local-host-names

[domain name]  RELAY

 

해당 파일에 추가한 도메인으로 메일이 오면 서버내의 로컬계정의 메일박스로 메일이 수신됨

 

외부에서 서버의 sendmail을 통하여 메일 발송시 아무나 보낼 수 없도록 설정


# vi /etc/mail/access

[domain name] [option]

 

- Option

RELAY - host 에서 지정된 메일 허용

REJECT - host 에서 지정된 메일 거부

DISCARD - 메일을 받은후에 폐기, 발신자는 메일이 발신된것으로 알게됨

OK - host 에서 지정된 메일의 모든것을 허용


access 파일을 수정 후 적용하기 위해서 아래의 명령어를 실행해야 함


# makemap hash /etc/mail/access < /etc/mail/access

 

서버에 존재하지 않은 계정으로 온 메일을 서버내의 로컬계정의 메일박스로 전달해준다.


# vi /etc/mail/virtusertable

[mail address] [user name]






dovecot 설치 & 설정


http://dovecot.org/ 

위 사이트에서 알맞은 버전의 소스를 다운받는다.

# wget http://dovecot.org/releases/1.1/dovecot-1.1.2.tar.gz
# tar xvfz dovecot-1.1.2.tar.gz
# cd dovecot-1.1.2
# ./configure --prefix=/usr/local/dovecot --localstatedir=/var --with-pam --with-gssapi --with-mysql
# make
# make install
# groupadd -g 97 dovecot
# useradd -u 97 -g 97 -d /usr/libexec/dovecot -s /sbin/nologin dovecot

아래와 같은 내용으로 설정파일을 작성(imap 만 사용할 경우)

# vi /usr/local/dovecot/etc/dovecot.conf

protocols = imap
disable_plaintext_auth = no
ssl_disable = yes
protocol imap {
}
auth default {
mechanisms = plain
passdb passwd {
}
passdb shadow {
}
userdb passwd {
}
user = root
}
plugin {
}
mail_privileged_group = mail


아래와 같이 서비스 실행 파일을 만든다.


# vi /etc/rc.d/init.d/dovecot



#!/bin/bash

#

#   /etc/rc.d/init.d/dovecot

#

# Starts the dovecot daemon

#

# chkconfig: - 65 35

# description: Dovecot Imap Server

# processname: dovecot

# Source function library.

. /etc/init.d/functions


test -x /usr/local/dovecot/sbin/dovecot || exit 0


RETVAL=0

prog="Dovecot Imap"


start() {

        echo -n $"Starting $prog: "

    daemon /usr/local/dovecot/sbin/dovecot

    RETVAL=$?

    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot

    echo

}


stop() {

    echo -n $"Stopping $prog: "

    killproc /usr/local/dovecot/sbin/dovecot

    RETVAL=$?

    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dovecot

    echo

}


#

#   See how we were called.

#

case "$1" in

  start)

    start

    ;;

  stop)

    stop

    ;;

  reload|restart)

    stop

    start

    RETVAL=$?

    ;;

  condrestart)

    if [ -f /var/lock/subsys/dovecot ]; then

        stop

        start

    fi

    ;;

  status)

    status /usr/local/dovecot/sbin/dovecot

    RETVAL=$?

    ;;

  *)

    echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}"

    exit 1

esac


exit $RETVAL



# chmod 700 /etc/init.d/dovecot
# chkconfig dovecot on

# /etc/init.d/dovecot start


Posted by 소울하트