메일서버에는 다양한 어플들이 있다.
흔히(?) 쓰는 sendmail 부터, 요즘 우분투쪽에서 밀고 있는 듯한 postfix.
지금은 어떤지 모르겠지만, 예전에는 sendmail 의 보안문제에 대해서 말이 많았다.

그렇다 보니 다른 대안을 찾아다니게 된다.
그 중에 유명한 메일서버가 qmail 이 아닐까 한다.
큐메일.
그런데, 문제가 컴파일 해서 사용해야 하기때문에 비경험자에게는 쉽지않은 난이도를 가지고 있었다.
그리고 환경에 따라 다양한 방법이 존재한다.(각종 패치는 더욱 많다)
다양한 요구를 만족시킬 수 있다는 장점은 다른 면에서 복잡성을 나타내기 때문에 어려워진다.

서버의 실제 계정을 활용하는 가장 기본적인 방법과 (qmail 기본)
파일로 관리하는 가상계정을 사용하는 방법(qmail + vpopmail)
DB 로 관리하는 가상계정을 사용하는 방법(qmail + vpopmail + mysql)

등 여러방법이 존재한다.
기타 자세한 정보는 http://qmail.kldp.net  를 참조한다.

지금 설명하려는 부분은 qmail + vpopmail 의 가상계정을 이용하는 방법이다.
지금까지 qmail 기본 설정을 사용했었다. 원래 sendmail 으로 운영했었는데(몇년전) 관리의 어려움이 있어 qmail 로 변경을 했다. 그당시 설정이 어려운부분이 많아서, 제일 간단한 방법이면서, 기존의 설정을 그대로 가져갈 수 있기 때문에 qmail 기본을 사용했었다.

그리고 몇년이 지난후 서버의 운영체제를 업그레이드 하다보니, 메일서버가 문제였다.
예전의 컴파일 하던 방식이 새운영체제에 맞지 않는 것이었다.
여러 방법을 찾아보다가 qmail + vpopmail 로 이전하는 것으로 결론을 내렸다.
그 사이에 쉽게 처리할 수 있는 방법이 나왔기 때문이다.

Centos 에서 SRPM 으로 빌드하는 방법이다.
http://qmail.kldp.net/phpbb/viewtopic.php?t=7887

1. 해당 SRPM 패키지를 받아서. 빌드한다.
rpmbuild --rebuild --with cdb knetqmail-0.0.1-3.src.rpm
이때 /var/qmail 디렉토리가 없다는 에러가 나온다. ( mkdir /var/qmail 로 만들어 준다.)
빌드된 rpm 파일은 /usr/src/redhat/RPMS/x86_64 에 위치한다. ( x86_64 또는 i386 )

2. 빌드된 rpm 패키지를 설치한다.
centos 는 기본 sendmail 이 설치가 되어 있어, 먼저 제거를 해준다.
rpm -e sendmail --nodeps
rpm -Uvh /usr/src/redhat/RPMS/x86_64/knetqmail-0.0.1-3.x86_64.rpm
(빌드된 rpm 파일명은 본인의 것을 확인한다.)

3. qmail 실행
/etc/init.d/qmaild start
/etc/init.d/pop3d start
위 처럼 실행하면 /service 에 다음처럼 링크가 된다.
ll /service/
합계 0
lrwxrwxrwx 1 root root 31  8월 27 17:46 qmail-pop3 -> /var/qmail/supervise/qmail-pop3
lrwxrwxrwx 1 root root 31  8월 27 17:45 qmail-send -> /var/qmail/supervise/qmail-send
lrwxrwxrwx 1 root root 32  8월 27 17:45 qmail-smtpd -> /var/qmail/supervise/qmail-smtpd
위와 같이 나오고, ps ax 에
# ps ax|grep qmail
27800 ?        S      0:00 supervise qmail-smtpd
27802 ?        S      0:00 supervise qmail-send
27803 ?        S      0:00 /usr/bin/tcpserver -vRHl0 -x/etc/tcp.smtp.cdb -c 100 -u 108 -g 106 0 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true
27804 ?        S      0:00 /usr/bin/multilog t s2500000 n10 /var/log/qmail/smtpd
27805 ?        S      0:00 qmail-send
27812 ?        S      0:00 /usr/bin/multilog s2500000 n10 /var/log/qmail/send
27813 ?        S      0:00 qmail-lspawn ./Maildir/
27815 ?        S      0:00 qmail-rspawn
27816 ?        S      0:00 qmail-clean
27824 ?        S      0:00 supervise qmail-pop3
27826 ?        S      0:00 /usr/bin/multilog n10 s2500000 /var/log/qmail/pop3
27827 ?        S      0:00 /usr/bin/tcpserver -vRHl0 -u 108 -g 106 0 pop3 /var/qmail/bin/qmail-popup mymail.mydomain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir
위와 같이 관련 데몬이 뜨는 것을 볼 수 있다.

telnet localhost 25   (smtp)
telnet localhost 110   (pop3)
등으로 테스트를 해본다.
http://www.abuse.net/relay.html  나
http://people.kldp.org/~eunjea/relay-test.php
에서 릴레이 테스트도 해본다.

4. vpopmail 계정관리
vadddomain blahblah.com
도메인 추가.
vdeldomain blahblah.com
도메인 삭제. 조심하자. 아주 깨끗히 삭제한다.
vadduser foo@blahblah.com 
메일사용자 계정을 추가한다. 전체 메일주소를 쓴다.
vdeluser foo@blahblah.com
메일사용자 계정 삭제. 역시 조심. 그냥 삭제한다.
vpasswd foo@blahblah.com
암호변경. 암호는 바꾸고 써야지.
vaddaliasdomain newblah.com  blahblah.com
기존쓰던 도메인 계정그대로 다른 도메인으로도 메일을 같이 받고 싶을때.

자세한 사항은  http://ejlabs.net/txt/vpopmail  를 참조한다.


여기까지 기본적인 설치와 설정에 관한 부분이다.
예전에 qmail 써봤던 분들은 SRPM 빌드 방법을 해보면 정말 편해졌다는 것을 느낄 것이다.

다음에는 기존 /etc/passwd 의 계정을 vpopmail 가상계정으로 가져오는 방법과
그에 따라 간단하게 만든 실행 스크립트를 소개한다.


[추가] : yum update 시의 conflict 문제.

yum update 를 했을때. 
knetqmail ... conflicts with exim
이런식의 메세지가 나오면서 진행이 되지 않으면, 관련 패키지를 빼고 업데이트한다.
yum update -x exim -x postfix -x sendmail

위에서 sendmail 을 삭제할 때. rpm -e  보다는 yum remove  를 쓰는것이 좋을 듯 싶다.
(문제가 생길지는 모르겠다 - 테스트 필요.)

신고

댓글을 달아 주세요