Linux/CentOS2012. 4. 3. 00:21

Gmail for CentOS (http://www.jopenbusiness.com/mediawiki/index.php/CentOS)

CentOS 5.5 버전에서 sendmail을 사용하여 Gmail을 연동하여 보자.

  • sendmail 설치
yum install openssl sendmail sendmail-cf
yum install cyrus-sasl cyrus-sasl-plain
  • sendmail이 TLS 또는 SSL을 지원하는지 확인 한다.
#--- STARTTLS와 SASLv2가 있는지 확인
sendmail -d0.1 -bv root
  • SASL 2.1.21 이상을 지원하는지 확인 한다.
yum list | grep sasl
  • OpenSSL을 사용하여 sendmail에서 사용할 개인키와 공개키를 생성를 생성 한다.
  • sendmail 인증 정보를 생성 한다.
cd /etc/mail
mkdir auth
cd auth
vi /etc/mail/auth/authinfo
    AuthInfo:smtp.gmail.com "U:root" "I:[Gmail아이디]@gmail.com" "P:[Gmail비밀번호]"
    ### AuthInfo:smtp.gmail.com "U:root" "I:[Gmail아이디]@gmail.com" "P:[Gmail비밀번호]" "M:PLAIN"
    ### AuthInfo:smtp.gmail.com:587 "U:root" "I:[Gmail아이디]@gmail.com" "P:[Gmail비밀번호]" "M:PLAIN"

#---인증 파일의 hashdb(authinfo.db)를 생성 한다.
makemap hash authinfo < authinfo

#--- 인증파일경로의 퍼미션을 설정 한다.
chmod 700 /etc/mail/auth
chmod 600 /etc/mail/auth/*
  • vi /etc/mail/sendmail.mc
include('/etc/mail/sasl/sasl.m4')dnl            #--- Ubuntu Server에서만 추가
FEATURE(authinfo,hash /etc/mail/auth/authinfo)dnl
define('SMART_HOST','smtp.gmail.com')dnl
define('RELAY_MAILER_ARGS', 'TCP $h 587')dnl
define('ESMTP_MAILER_ARGS', 'TCP $h 587')dnl
define('confCACERT_PATH', '/etc/mail/certs')dnl
define('confCACERT', '/etc/mail/certs/CAcert.pem')dnl
define('confSERVER_CERT', '/etc/mail/certs/mycert.pem')dnl
define('confSERVER_KEY', '/etc/mail/certs/mykey.pem')dnl
define('confCLIENT_CERT', '/etc/mail/certs/mycert.pem')dnl
define('confCLIENT_KEY', '/etc/mail/certs/mykey.pem')dnl
define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
define('confAUTH_OPTIONS', 'A')dnl
#--- 아래 라인 위에 추가 한다.
MAILER(smtp)dnl
  • sendmail.cf 생성
  • CentOS
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
service sendmail restart
  • Ubuntu Server
cd /etc/mail
make

#--- 필요한 경우 sendmail의 설정을 재 생성 한다. 
sendmailconfig

/etc/init.d/sendmail start
  • 최종 확인
echo '/map authinfo AuthInfo:smtp.gmail.com' | /usr/sbin/sendmail -bt
echo "this is a test" | sendmail -s ghkim@daou.co.kr
#--- ghkim@daou.co.kr 메일함에서 메일을 확인 한다.
  • 방화벽에서 587, 465 port를 개방 한다.
system-config-securitylevel
  • 기타 sendmail 설정
  • Access 설정
makemap hash /etc/mail/access.db < /etc/mail/access
  • Mail host 설정
vi /etc/mail/local-host-names
  • showinfo_sendmail.bash
#!/bin/bash
echo 'sendmail 버전  : sendmail 8.13.8'
echo '환경 파일      : vi /etc/mail/sendmail.mc'
echo '기동 종료      : service sendmail restart'
echo '서비스 확인    : ps -ef | grep sendmail | grep -v grep'
  • php.ini 설정
sendmail_path = /usr/sbin/sendmail -t

서비스 업체별 POP3, SMTP 주소

  • gmail.com (환경설정 - 전달 및 POP/IMAP - POP 다운로드 항목에서 사용설정을 해야 이용 가능)
  • IMAP: imap.gmail.com (SSL 사용, 포트: 993)
  • POP3: pop.gmail.com (SSL 사용, 포트: 995)
  • SMTP: smtp.gmail.com (SSL 사용, 포트: 465)
  • hanmail.net
  • POP3: pop.hanmail.net (SSL 사용, 포트: 995)
  • SMTP: smtp.hanmail.net (SSL 사용, 포트: 465)
  • nate.com
  • POP3: nate.com (포트: 110)
  • SMTP: 지원 안함 (다른 업체의 SMTP를 이용하는 수 밖에 없음)
  • naver.com (으뜸사용자만 이용 가능)
  • POP3: pop.naver.com (포트: 110)
  • SMTP: smtp.naver.com (포트: 25)
  • yahoo.co.kr
  • POP3: pop.mail.yahoo.co.kr (SSL 사용, 포트: 995)
  • SMTP: smtp.mail.yahoo.co.kr (SSL 사용, 포트: 465, 인증 사용)
  • yahoo.com
  • POP3: pop.mail.yahoo.com (SSL 사용, 포트: 995)
  • SMTP: smtp.mail.yahoo.com (SSL 사용, 포트: 465, 인증 사용)

참고 문헌

  • Ubuntu Server
  • CentOS

Outlook 설정

  • Microsoft Outlook를 실행하여 "도구 -> 계정 설정 -> 새로 만들기" 메뉴를 선택 합니다.
  • "Microsoft Exchange, POP3, IMAP 또는 HTTP"을 선택 합니다.

그림:GoogleOutlook001.png

  • "수동으로 서버 설정 또는 추가 서버 유형 구성"을 선택 합니다.

그림:GoogleOutlook002.png

  • "인터넷 전자 메일"을 선택 합니다.

그림:GoogleOutlook003.png

  • 필요한 정보를 입력하고 "기타 설정" 버튼을 선택 합니다.
  • 사용자 이름 : 사용자 이름
  • 전자 메일 주소 : 이메일 주소
  • 계정 유형 : IMAP
  • 받는 메일 서버 : imap.gmail.com
  • 보내는 메일 서버 : smtp.gmail.com
  • 사용자 이름 : 이메일 주소
  • 암호 : 비밀번호
  • 암호 저장 체크

그림:GoogleOutlook004.png

  • "고급" 탭을 선택하여 아래와 같이 설정 합니다.
  • 받는 메일 서버 : 993
  • 암호화된 다음 연결 방식 사용 : SSL
  • 보내는 메일 서버 : 25
  • 암호화된 다음 연결 방식 사용 : TLS

그림:GoogleOutlook005.png

  • "보내는 메일 서버" 탭을 선택하여 아래와 같이 설정 합니다.
  • "보내는 메일 서버 인증 필요" 체크
  • "받는 메일 서버와 동일한 설정 사용" 선택

그림:GoogleOutlook006.png

 

 

CentOS sendmail 메일 서버 설치, 설정 (http://blog.leadus.co.kr/119)

1) 메일 서버 설치 여부를 확인한다.

[root@localhost ~]# yum list |grep sendmail
sendmail.x86_64                       8.13.8-8.el5              installed
sendmail-cf.x86_64                    8.13.8-8.el5              installed
sendmail-devel.x86_64                 8.13.8-8.el5              installed

2) dovecot 설치한다.

[root@localhost ~]# yum list |grep dovecot
dovecot.x86_64                        1.0.7-7.el5               base
[root@localhost ~]# yum install dovecot.x86_64

dovecot의 개요
RHEL 4부터 사용되는 imap, pop3 서비스 제공 프로그램으로 기존의 imap
패키지에 비해 TLS/SSL을 지원하여 보안이 강화되었다. 또한 기존에는 imap, pop3
서비스가 inetd(xinetd)에 의해 작동하였지만, dovecot는 단독 데몬으로 작동한다.
참고로 관련정보는 http://www.dovecot.org(새 창으로 열기)에서 확인할 수 있다.

3) sendmail.mc 파일을 수정한다.
vi /etc/mail/sendmail.mc

아래의 부분을 확인한다. 주석처리되어 있으면 제거한다.
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=112.169.173.161, Name=MTA')dnl
==> dnl DAEMON_OPTIONS(`Port=smtp,Addr=112.169.173.161, Name=MTA')dnl

4) sendmail.mc 적용
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

변경후 결과
-rw-r--r-- 1 root root 58368  6월 13 22:33 sendmail.cf
==> -rw-r--r-- 1 root root 58338  8월 31 16:33 sendmail.cf

5) 최종수신지 도메인 설정  
vi /etc/mail/local-host-names
leadus.co.kr  RELAY

test :
linkus.kr  RELAY

*** 스팸방지
Spam 방지 ( /etc/mail/access )
  linkus.kr  RELAY
 
  makemap hash /etc/mail/virtualusertable.db < /etc/mail/access  <- access 적용 access.db 파일 생성
  또는 /etc/mail 디렉토리에서 간단히 make

가상 메일 ( /etc/mail/virtualusertable )
  webmaster@linkus.kr root
   webmaster@linkus.kr 으로 오는 메일은 root 라는 실제계정이 받게 함

  makemap hash /etc/mail/virtualusertable.db < /etc/mail/virtualusertable
  또는 /etc/mail 디렉토리에서 간단히 make


6) Dovecot 설정
vi /etc/dovecot.conf
  protocols = pop3 <- imap 제외 pop3 만 사용
  listen = *  <- ipv6 사용 안 하고 ipv4 만 사용 ==> php3_listen = * 버전업되면서 바뀌었다.

7) 서비스 시작
 /etc/init.d/sendmail start
 /etc/init.d/saslauthd start <- smtp 인증을 위해 필요
 /etc/init.d/dovecot start

 

Posted by iWithJoy