사이트 내 전체검색
gentoo에서 qmail+vpopmail+mysql+courier-imap 설치 및 thunderbird 설정
로빈아빠
https://cmd.kr/server/976 URL이 복사되었습니다.

본문

1. 개요
gentoo에서 qmail 및 관련 패키지를 설치하고 mail client(thunderbird) 설정을 다룬다.


2. 현재상황 및 시스템 상태
kernel : gentoo-2.6.18 (전부 다)

나의 사설네트워크의 dns서버가 세팅되어 있다. http://innu.pe.kr/tt/397 참조.
zone 파일의 MX 레코드에 1차로 mail.ddong.ac.kr, 2차로 mail2.ddong.ac.kr로 설정되었다.
우선, mail.ddong.ac.kr 세팅을 한다.
pop3서버는 mail.ddong.ac.kr과 IP는 동일하고 호스트명만 A 레코드에 추가를 하였다.
db.ddong.ac.kr에 mysql이 설치되어 있어야 한다.

즉, 이 작업이 이뤄지기 위해선,
- dns 설치(ns.ddong.ac.kr)
- mysql 설치(db.ddong.ac.kr)

이 반드시 선행되어져야 한다.


3. 설치
qmail 설치에 앞서 우선 USE flag를 손본다.

사용자 삽입 이미지



# cat /etc/make.conf
...
USE="-X -xorg -kde -gnome -gtk -gtk2 -ipv6"
# cat /etc/portage/package.use
mail-mta/netqmail maildir ssl imap mysql
net-mail/vpopmail mysql
net-mail/courier-imap berkdb fam gdbm nls -debug -ipv6


qmail 설치

qmail을 emerge 한다.
# emerge mail-mta/netqmail


/var/qmail/control/servercert.cnf 파일의 [ req_dn ] 블록을 수정한다
# cat /var/qmail/control/servercert.cnt
...
C=KO
ST=SE
L=Seoul
O=Gogi Mail Systems
OU=Automatically-generated Qmail SMTP SSL key
CN=mail.ddong.ac.kr
emailAddress=gogisnim@gmail.com


qmail의 config 파일을 emerge한다.
# emerge --config netqmail


qmail의 alias 설정을 한다.
참고로, qmail은 root로 메일을 보낼 수 없다. 그래서 root를 비롯한 타 계정으로 가는 메일을 다른 메일로 forward 시킨다. 여기선 gogisnim으로 forward 시켰다.
# cd /var/qmail/alias
# echo gogisnim > .qmail-root
# echo gogisnim > .qmail-postmaster
# echo gogisnim > .qmail-mailer-daemon


qmail 시스템의 전체적인 총괄을 담당(?)하는 데몬을 구동시킨다.
그리고, /service/ 아래에 qmail-send 심볼릭 링크를 걸어준다.
# /etc/init.d/svscan start
# rc-update add svscan default
# ln -s /var/qmail/supervise/qmail-send /service/qmail-send


qmail 설치가 끝났다. 로컬에서 gogisnim으로 메일을 보내본다. 
이상이 없으면 다음으로 진행..
# ssh gogisnim@localhost
$ maildirmake .maildir
$ qmail-inject root << EOF
> test mail to root
> EOF
$ qmail-inject postmaster << EOF
> test mail to postmaster
> EOF
$ qmail-inject gogisnim << EOF
> test mail to gogisnim
> EOF
$ mutt
gogisnim에게 3통의 메일이 수신되었으면 정상이다.


vpopmail 설치

vpopmail은 다른 MTA가 시스템계정 == 메일계정 방식의 계정관리 방식에서 보다 유연하게 DB로 관리할 수 있게 한다. 무엇보다도 가상 도메인을 지원하기때문에 하나의 qmail 시스템에서 수십, 수백, 수천개의 도메인, 계정을 관리할 수 있다.
mysql이 필요한 시점이 지금이다.

# emerge vpopmail
# mysql -uroot -hdb.ddong.ac.kr -p << EOF
> create database vpopmail;
> use mysql;
> grant select,insert,update,delete,create,drop on vpopmail.* to vpopmail@mail.ddong.ac.kr identified by 'vpoppw';
> grant select,insert,update,delete,create,drop on vpopmail.* to vpopmail@smtp.ddong.ac.kr identified by 'vpoppw';
> grant select,insert,update,delete,create,drop on vpopmail.* to vpopmail@pop3.ddong.ac.kr identified by 'vpoppw';
> grant select,insert,update,delete,create,drop on vpopmail.* to vpopmail@mail2.ddong.ac.kr identified by 'vpoppw';
> flush privileges;
> EOF

위 내용은 gentoo.org의 qmail 세팅 매뉴얼에 나와있는 내용이지만 나는 이렇게 작업하지 않고 mysql_setpermission 스크립트를 이용해서 간단하게 작업했다.


vpopmail 설정파일을 수정한다.
호스트|포트|mysql사용자|mysql비번|DB명
# cat /etc/vpopmail.conf
...
# Read-only DB
db.ddong.ac.kr|0|vpopmail|vpoppw|vpopmail
# Write DB
db.ddong.ac.kr|0|vpopmail|vpoppw|vpopmail


파일의 사용자,권한을 체크한다.
gentoo에서는 이 작업이 필요없다. 확인만 한다.
# chown root:vpopmail /etc/vpopmail.conf
# chmod 640 /etc/vpopmail.conf
# chown root:vpopmail /var/vpopmail/bin/vchkpw
# chmod 4711 /var/vpopmail/bin/vchkpw


설정환경을 업데이트 한다.
# env-update && . /etc/profile


가상도메인을 추가한다.
내가 사용할 user@ddong.ac.kr 형식의 가상도메인을 여기서 설정한다.
아울러, 사용자도 추가해준다.
# /var/vpopmail/bin/vadddomain ddong.ac.kr
Password for postmaster: 1111
# /var/vpopmail/bin/vadduser gogisnim@ddong.ac.kr
Password for gogisnim@ddong.ac.kr: 2222
# /var/vpopmail/bin/vadduser ji@ddong.ac.kr
Password for ji@ddong.ac.kr: 3333

도메인삭제는 vdeldomains, 사용자삭제는 vdeluser이다.
이처럼 /var/vpopmail/bin/에 있는 vpopmail 관련 명령어들은 직관적이어서 쉽게 사용할 수 있다.
vpopmail 설정이 끝났다.
간혹, mysql/vpopmail 연동해서 permission 관련 오류가 발생하면 mysql 데몬을 재시동 시켜준다.
db # /etc/init.d/mysql restart


courier-imap 설치

courier-imap 패키지는 pop3/pop3-ssl, imap/imap-ssl 모두를 지원하는 MDA이다.
반드시 vpopmail 설치후 courier-imap를 설치해야 한다.

# emerge courier-imap
# cat /etc/courier/authlib/authdaemonrc
...
authmodulelist = "authvchkpw"
...
# cat /etc/courier-imap/pop3d.cnf
...
[ req_dn ]
C=KO
ST=SE
L=Seoul
O=Gogi Mail Systems
OU=Automatically-generated Qmail SMTP SSL key
CN=mail.ddong.ac.kr
emailAddress=gogisnim@gmail.com
...
# cat /etc/courier-imap/imap.cnf
...
[ req_dn ]
C=KO
ST=SE
L=Seoul
O=Gogi Mail Systems
OU=Automatically-generated Qmail SMTP SSL key
CN=mail.ddong.ac.kr
emailAddress=gogisnim@gmail.com
...

# mkpop3dcert
# mkimapdcert

# /etc/init.d/courier-pop3d start
# /etc/init.d/courier-imapd start
# /etc/init.d/courier-pop3d-ssl start
# /etc/init.d/courier-imap-ssl start
# rc-update add courier-pop3d default
# rc-update add courier-imapd default
# rc-update add courier-pop3d-ssl default
# rc-update add courier-imapd-ssl default

qmail 서버에서 pop3(110), pop3-ssl(995), imap(143), imap-ssl(993) 전부 대기하게 만든다.
사용자가 mail client를 입맛대로 설정할 수 있다.
courier-imap 패키지 설치와 설정이 끝났다.


마무리작업

# cat /var/qmail/control/conf-smtpd
...
QMAIL_SMTP_CHECKPASSWORD="/var/vpopmail/bin/vchkpw"
...
# mkservercert
# ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd


mail client(thunderbird) 설정

현재 thunderbird 2.0.0.6 영문버전을 사용하고 있다.

사용자 삽입 이미지
계정세팅 이미지


사용자 삽입 이미지
pop3-ssl 설정 이미지


사용자 삽입 이미지
smtp 설정 이미지


4. 후기
qmail 설치작업은 한마디로 삽질의 연속이었다.
gentoo wiki, gentoo.org, qmail.kldp.org 그리고 googling 까지..
될듯될듯 하면서도 마지막 mail client의 사용자 인증부분에서 좌절을 겪고 또 설치하고, 테스트하고..

메일세팅 작업의 노하우를 간단히 얘기하면,

MTA를 설치하고 반드시 localhost에서 주고 받는데 이상이 없는지 테스트를 한다.
테스트 하는데는 mutt와 telnet client가 좋다.(mutt로 메일보내고 telnet으로 110번 접속해서 확인)
localhost에서 이상이 없으면 다른 호스트에서 테스트를 한다.
mail client 설정할때 반드시 Thunderbird, Outlook (Express)를 비롯한 여러 프로그램에서 테스트 해본다.
처음, Outlook에서는 인증이 되는데 Thunderbird에서는 인증이 되지않아 애를 먹었다.

스팸처리와 webmail구현은 다음에 작업해서 문서로 남긴다.


5. 참조 url
http://www.gentoo.org/doc/en/qmail-howto.xml
http://gentoo-wiki.com/HOWTO_Setup_QMAIL_RELAY-CTRL_VPOPMAIL_%26_QMAILADMIN_with_a_minimum_amount_of_fuss.
http://qmail.kldp.org/
http://www.mozilla.or.kr/products/thunderbird/
http://forums.gentoo.org/viewtopic-t-539101.html

댓글목록

등록된 댓글이 없습니다.

1,139 (5/23P)

Search

Copyright © Cmd 명령어 3.136.19.203