큐메일 서버 구축 #5-1 - vpopmail + cdb 설치


1. 유저, 그룹 추가

vpopmail 운영을 위한 유저와 그룹을 만들어주어야 됩니다.

※ 아래 -r 옵션은 시스템 계정(uid 500미만)으로 유저를 생성하겠다는 의미 입니다.


※ vpopmail의 기본디렉토리는 /home/vpopmail/ 입니다.


# groupadd -r vchkpw

# useradd -r -g vchkpw vpopmail

# mkdir -p /home/vpopmail/etc/

# chmod 777 /home/vpopmail/etc/


2. vpopmail 설치 (최신버전 : http://sourceforge.net/projects/vpopmail/)


vpopmail-5.4.33.tar.gz


# touch /home/vpopmail/etc/tcp.smtp

# tar zxf vpopmail-5.4.33.tar.gz

# cd vpopmail-5.4.33

# ./configure \

--enable-roaming-users=y \

--enable-tcprules-prog=/usr/local/bin/tcprules \

--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \

--enable-relay-clear-minutes=15 \

--enable-auth-logging=y \

--enable-logging=e

# make

# make install-strip



# chmod 755 /home/vpopmail/etc/

# chown vpopmail.vchkpw /home/vpopmail/etc/  

# chown vpopmail.vchkpw /home/vpopmail



※ 위 configure 옵션으로 pop3 인증후 15분동안 아무런 서버 사용이 없으면 자동으로 relay를 닫아

open relay가 되어 스패머들의 타겟이 되는것을 막도록 합니다.

그리고 tcp.smtp 릴레이 파일을 임시생성하는 이유는 위 옵션에 파일경로를 지정해줬기 때문입니다.

굳이 tcpserver-file을 지정해주는 이유는 옵션으로 넣어주지 않으면 시스템에서 자동으로 찾게되는데

정상적으로 smtp 릴레이 파일을 찾는 경우도 있지만 릴레이 파일을 정상적으로 찾지 못하는 머신을

간혹 세팅해본 경험이 있기 때문입니다.


3. 기본 도메인 설정 및 SMTP 릴레이 설정

vpopmail 5.2.4 버전부터는 default-domain이 설치옵션에서 사라지고 파일로 적용되고 있습니다.


default-domain의 파일은 ~vpopmail/etc/defaultdomain 입니다.


# echo "sbs.com" > /home/vpopmail/etc/defaultdomain

# chown vpopmail.vchkpw /home/vpopmail/etc/defaultdomain

# chmod 640 /home/vpopmail/etc/defaultdomain

# vi /home/vpopmail/etc/tcp.smtp



-- /home/vpopmail/etc/tcp.smtp --

127.0.0.1:allow,RELAYCLIENT=""

192.168.56.200:allow,RELAYCLIENT=""

-- /home/vpopmail/etc/tcp.smtp --



# chmod 640 /home/vpopmail/etc/tcp.smtp

# /home/vpopmail/bin/clearopensmtp  

# tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp

# rm -f /etc/tcp.smtp*



※ 위에서 clearopensmtp를 해주는 이유는 tcp.smtp를 이용해 tcp.smtp.cdb 파일을 생성하기 위함입니다.


4. crontab 설정

clearopensmtp를 자동으로 한번씩 실행해주기 위해 crond 데몬을 이용 합니다.

- 15분에 한번씩 실행되도록 설정한다.

# crontab -e

*/15 * * * * /home/vpopmail/bin/clearopensmtp  

# crontab -l



5. qmail smtp 스크립트 변경

- qmail + vpopmail 을 연동하면 tcp.smtp 파일이 /etc/tcp.smtp 에서 

- /home/vpopmail/etc/tcp.smtp 파일로 변경되었으므로 qmail을 설치할 때 

- 작성한 run script중 하나를 수정해줘야 됩니다.

# vi /var/qmail/supervise/qmail-smtpd/run



-- /var/qmail/supervise/qmail-smtpd/run --

#!/bin/sh

Q_UID=`id -u qmaild`

Q_GID=`id -g qmaild`

exec /usr/local/bin/softlimit -m 70000000 \

/usr/local/bin/tcpserver -vRHl 0 \

-x /home/vpopmail/etc/tcp.smtp.cdb \ <--- 이부분

-u $Q_UID -g $Q_GID 0 25 /var/qmail/bin/qmail-smtpd 2>&1  

-- /var/qmail/supervise/qmail-smtpd/run --



실행파일 링크생성

# ln -s /home/vpopmail/bin/* /usr/sbin


6. vpopmail을 위한 디렉토리와 스크립트 생성

# mkdir -p /var/qmail/supervise/vpop/log 

# install /dev/null /var/qmail/supervise/vpop/run


# vi /var/qmail/supervise/vpop/run



-- /var/qmail/supervise/vpop/run --

#!/bin/sh

VPOP_UID=`id -u vpopmail`

VPOP_GID=`id -g vpopmail`


exec /usr/local/bin/softlimit -m 70000000 \

tcpserver -vRHl 0 -u $VPOP_UID -g $VPOP_GID 0 110 \

/var/qmail/bin/qmail-popup sbs.com \

/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1

-- /var/qmail/supervise/vpop/run --



# install /dev/null /var/qmail/supervise/vpop/log/run 

# vi /var/qmail/supervise/vpop/log/run



-- /var/qmail/supervise/vpop/log/run --

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill \

/usr/local/bin/multilog t /var/log/qmail/pop3d

-- /var/qmail/supervise/vpop/log/run --



# install -o qmaill -d /var/log/qmail/pop3d      


- pop3 서비스를 실행한다.

# ln -s /var/qmail/supervise/vpop /service


- port 를 확인한다.

# netstat -nltp | grep 110



# nc localhost 110

+OK <21220.1401067278@sbs.com>

                            <-- 멈추면 pop3 서버도 설치 성공!!!


=========== 여기까지 vpopmail 이 끝 =========== 


=====================================================================

QMAIL-LAB> vpopmail 설치 후 메일이 잘 받아지는지 테스트를 한다.


-- 메일을 받기위한 설정은 아래와 같다. --


프롬프트    도메인     MX             IP

56.200(S1)  sbs.com    mail.kbs.com   192.168.56.210

56.210(S2)  kbs.com    mail.kbs.com   192.168.56.210


- 순서 -

1. 메일서버의 도메인을 추가한다. 

2. /etc/init.d/qmail 재시작한다.

3. 가상 도메인을 생성한다. 

4. 사용자를 생성한다. 

5. 메일발송

6. 확인

7. pop3 접속을 테스트한다.


1. 메일서버의 도메인을 추가한다. 

- /var/qmail/control/{rcpthosts,locals} 에 도메인을 추가한다.

56.200(S1)# vi /var/qmail/control/rcpthosts

-- /var/qmail/control/rcpthosts --

mail.sbs.com

sbs.com

-- /var/qmail/control/rcpthosts --


56.200(S1)# vi /var/qmail/control/locals

-- /var/qmail/control/locals --

mail.sbs.com

sbs.com

-- /var/qmail/control/locals --


2. /etc/init.d/qmail 재시작한다.

- qmail 의 설정파일을 수정했으므로 qmail을 재시작한다.

56.200(S1)# /etc/init.d/qmail reload or restart


(스샷에선 S1이 mail.qmailtest.com 이고 S2가 mail.testqmail.com 임 / 둘다 Qmail 설치함)


3. 가상 도메인을 생성한다. 

- vpopmail의  vadddomain 명령어를 이용해서 가상 도메인을 생성한다.

- vadddomain -h 를 이용해서 사용법을 확인한다.

56.200(S1)# ln -s /home/vpopmail/bin/* /usr/sbin

56.200(S1)# vadddomain sbs.com 1234



4. 사용자를 생성한다. 

- vpopmail의 vadduser 명령어를 이용해서 가상 사용자를 생성한다.

- vadduser 만 입력하여 사용법을 확인한다.

56.200(S1)# vadduser webmaster@sbs.com 0000

56.200(S1)# cd /home/vpopmail/domains

56.200(S1)# tree sbs.com/webmaster/

sbs.com/webmaster/

|-- Maildir

|   |-- cur

|   |-- new

|   `-- tmp

`-- lastauth



5. 메일발송

56.210(S2)# mail -s testmail webmaster@sbs.com < /etc/passwd



6. 확인

56.200(S1)# tree sbs.com/webmaster/

sbs.com/webmaster/

|-- Maildir

|   |-- cur

|   |-- new

|   |-- 1399082712.18300.mail.sbs.com  <-- 메일이 온 것이다.

|   `-- tmp

`-- lastauth



7. pop3 접속을 테스트한다.

56.200(S1)# nc localhost 110

+OK <28184.1400143808@sbs.com>

user webmaster@sbs.com

+OK 

pass 0000

+OK 

list

+OK 

1 2423

2 2423

3 2423

.

quit

+OK 



                         여기까지 

======================================================================

=====================================================================

QMAIL-LAB> OUTLOOK 을 이용해서 메일서버에 저장된 자신의 메일을 가져와보자.

(스샷에선 Windows mail 사용법 비슷한듯 .. 씀)


OUTLOOK express 실행


메뉴 -> 도구 -> 계정 -> 메일탭 -> 추가 -> 메일 



추가 클릭



전자 메일 계정 선택



표시이름 : 이름입력



전자메일주소 : webmaster@sbs.com



받는메일 서버 유형 : pop3

받는메일 서버   : 192.168.56.200

보내는메일 서버 : 192.168.56.200


속성 클릭 -> 서버 탭

보내는 메일 서버 -> 인증필요 체크


(아웃룩 익스프레스에서는 계정 만들고 마지막에 체크 해주지만 윈도우 메일에서는 여기서 체크 가능)



계정이름 : webmaster@sbs.com

암호 : 0000




=====================================================================