http://qmail.kldp.org/wiki/wiki.php/%BC%B3%C4%A1%B0%A1%C0%CC%B5%E5

qmail 설치 가이드 #
이 글은 sendmail을 대체하는 현대적인 메일 전송 에이전트(MTA)인 Qmail의 설치 가이드 입니다.

이 글은 qmail의 설치 방법만을 설명합니다.

이 글에서는 qmail의 기술적인 면은 설명하지 않습니다.

이 글은 qmail+vpopmail 문서의 qmail 설치 부분과 중복됩니다. vpopmail을 사용하시려는 분들은 qmail + vpopmail 문서를 보세요.

1 qmail 설치 가이드
1.1 1. 필요한 것들
1.2 2. patches
1.3 3. daemontools, ucspi-tcp
1.4 4. qmail 컴파일/설치
1.5 5. 스크립트 만들기
1.6 6. POP 서버
1.7 7. SMTP, POP 데몬 시작하기


1.1 1. 필요한 것들 #
qmail

ucspi-tcp

daemontools


1.2 2. patches #
qmail.org에서 추천하는 몇가지 패치들이 있습니다.

또는 http://qmail.org/netqmail/ 에서 netqmail 패키지를 받아 사용하셔도 됩니다.


glibc 2.3.1 이상에서는 컴파일이 제대로 되지 않습니다. 각각의 패치 (local)를 받아 적용 후 컴파일 합니다.

0.0.0.0을 local IP 주소로 인식하게 하는 패치 (local)

qmail이 sendmail을 emulation할때 -f 옵션이 From: 헤더를 설정하도록 하는 패치 (local)


위 패치를 설치하고, 칵테일 패치 적용시 실패합니다.

qmail.org에서 권장하는 패치는 이미 칵테일 패치에 적용되어 있습니다. (칵테일 패치를 먼저 해놓고 권장패치를 일일이 비교해보니 이미 다 수정되어 있더군요.) 아마도 그래서 실패하는 것 같습니다. -?kirrie

데비안 사지에서는 칵테일 패치 적용후 컴파일이 되지 않습니다.

왜 안되는지 알려 주실 수 있나요? -- 임은재 2004-04-20 02:04:51
기존 칵테일 패치엔 auto_spawn.c 의 값이 255로 되어 있는 반면에 현재 패치에는 1000으로 되어 있습니다. 게시판 보고 참조했는데 아직 패치에 수정이 가해지지 않은 듯 하네요.

칵테일 패치에 들어있는 TLS 기능을 완전히 세팅하지 않고 두면, thawte.com의 메일서버처럼 TLS로 접속을 시도하는 서버에서 아래와 같이 되어 버립니다.

635 > 454 TLS missing certificate: error:0200100D:system library:fopen:Permission denied (#4.3.0)
635 < QUIT
즉, 메일이 소리소문없이 배달되지 않습니다. 칵테일 패치 많이들 쓰시는데, 대부분의 qmail 문서들이 TLS세팅이나 certificate에 대해서는 언급이 없기 때문에 문제가 됩니다.
TLS로 접속하는 첨단(?) ESMTP서버들이 별로 없기에 망정이지... 완전히 episode 1 보이지 않는 위험 입니다.


1.3 3. daemontools, ucspi-tcp #
필요한 파일들이 모두 준비되었나요? 받은 몇가지 파일들을 적당한 디렉토리에 옮겨 놓고 이제 설치를 시작합시다.



일단 daemontools, ucspi-tcp를 먼저 설치하도록 하죠 (daemontools는 시스템 서비스를 관리하기 위한 도구들의 모음으로 ucspi-tcp와 같이 사용하면 inetd/xinetd 같은 구시대 수퍼 데몬을 완전히 대체할 수 있습니다).



ucspi-tcp

$ tar xzf ucspi-tcp-0.88.tar.gz
$ cd ucspi-tcp-0.88
$ make
$ make setup checkdaemontools

$ mkdir -p /package
$ chmod 1755 /package
$ mv daemontools-0.76.tar.gz /package
$ cd /package
$ tar xzf daemontools-0.76.tar.gz
$ rm daemontools-0.76.tar.gz
$ cd admin/daemontools-0.76
$ package/installdaemontools의 설치가 끝나면 svscanboot가 자동으로 시작됩니다 (*BSD는 재부팅).



1.4 4. qmail 컴파일/설치 #
자, 이제 qmail을 설치 하도록 하지요.



qmail이 설치될 디렉토리를 만듭니다.

$ mkdir /var/qmail
$ mkdir /var/qmail/alias


(참고:디렉토리를 생성하지 않아도 자동으로 /var/qmail 안에 파일이 생성된다. 물론 make setup check가 선행되어야 한다)



qmail 소스를 풀고...

$ tar xzf qmail-1.03.tar.gz
$ cd qmail-1.03


Qmail 운영을 위한 유저,그룹을 만들어 주기 위해 다음 명령을 차례로 실행합니다 (운영체제가 리눅스가 아니라면 소스 디렉토리 안의 INSTALL.ids 를 참조하세요).

$ groupadd nofiles
$ useradd -g nofiles -d /var/qmail/alias alias
$ useradd -g nofiles -d /var/qmail qmaild
$ useradd -g nofiles -d /var/qmail qmaill
$ useradd -g nofiles -d /var/qmail qmailp
$ groupadd qmail
$ useradd -g qmail -d /var/qmail qmailq
$ useradd -g qmail -d /var/qmail qmailr
$ useradd -g qmail -d /var/qmail qmails
Qmail을 컴파일/인스톨 합니다.

$ make
$ make setup check


컴파일/설치가 끝나면 기본 control 파일들의 설정을 위해..

$ ./config


이것이 정상적으로 실행 되었다면 /var/qmail/control/ 안에는 qmail이 정상적으로 작동하기 위한 설정 파일들이 생길 것입니다. 만약 그렇지 않다면 DNS 설정에 문제가 있어 호스트 이름을 찾지 못한 것이니 다음과 같이 합니다. (foobar.org가 호스트 이름이라면...)

$ ./config-fast foobar.org


1.5 5. 스크립트 만들기 #
필요한 스크립트를 만듭니다.



/var/qmail/rc 파일

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/


이 파일에 실행 권한을 줍니다.

$ chmod a+x /var/qmail/rc


다음은 큐메일 데몬을 위한 디렉토리와 파일들을 생성...

$ mkdir -p /var/qmail/supervise/qmail-send/log
$ mkdir -p /var/qmail/supervise/qmail-smtpd/log
$ chmod +t /var/qmail/supervise/qmail-send
$ chmod +t /var/qmail/supervise/qmail-smtpd

/var/qmail/supervise/qmail-send/run 파일

#!/bin/sh
exec /var/qmail/rc


/var/qmail/supervise/qmail-send/log/run 파일

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
    /usr/local/bin/multilog t /var/log/qmail


/var/qmail/supervise/qmail-smtpd/run 파일

#!/bin/sh
Q_UID=$(id -u qmaild)
Q_GID=$(id -g qmaild)
exec /usr/local/bin/softlimit -m 2000000 \
    /usr/local/bin/tcpserver -vHRl 0 -x /etc/tcp.smtp.cdb \
    -u $Q_UID -g $Q_GID 0 25 /var/qmail/bin/qmail-smtpd 2>&1


'참고: 솔라리스에서는 스크립트 내용을 다음과 같이 수정합니다.'

Q_UID=`/usr/xpg4/bin/id -u qmaild`
Q_GID=`/usr/xpg4/bin/id -g qmaild`


스크립트를 만들때 인용 부호를 실수하는 경우가 많은데 이 글을 참고하라.



/var/qmail/supervise/qmail-smtpd/log/run 파일

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
    /usr/local/bin/multilog t /var/log/qmail/smtpd


지금 까지 만들어 놓은 파일들에 실행 권한을 줍니다.

$ chmod 755 /var/qmail/supervise/qmail-send/run
$ chmod 755 /var/qmail/supervise/qmail-send/log/run
$ chmod 755 /var/qmail/supervise/qmail-smtpd/run
$ chmod 755 /var/qmail/supervise/qmail-smtpd/log/run


다음은 qmail-smtpd 를 위한 로그 디렉토리 만들기

$ mkdir -p /var/log/qmail/smtpd
$ chown qmaill /var/log/qmail /var/log/qmail/smtpd


마지막으로 릴레이를 위한 파일은 /etc/tcp.smtp를 수정하는데 일단 메일 서버 자신만의 릴레이가 허용되도록 하는 파일을 만듭시다. 서버의 ip가 192.168.1.1 이라고 한다면 다음과 같이 될것 입니다 (릴레이에 관한 더 자세한 설명).



/etc/tcp.smtp 파일

127.0.0.1:allow,RELAYCLIENT=""
192.168.1.1:allow,RELAYCLIENT=""


이렇게 tcp.smtp를 수정한 후에는 항상 cdb 형식의 파일로 바꿔줘야 합니다.



$ tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp


1.6 6. POP 서버 #
POP 서버는 메일 계정을 어떻게 운영할 것인가에 따라 달라지는데 개인적으로 vpopmail을 사용할 것을 권장합니다. vpopmail은 하나의 uid/gid로 무제한의 도메인, 메일 계정을 만들어 줄 수 있으며, 관리가 매우 편합니다. 만약 vpopmail을 사용할 것이라고 결정 했다면 다음 문서를 참고 하세요.



Qmail + vpopmail


vpopmail을 사용하지 않고 시스템 로그인 계정을 사용할 것으로 결정 했다면 암호 인증을 위한 checkpassword를 받습니다.



checkpassword


checkpassword 설치

$ tar xzf checkpassword-0.90.tar.gz
$ cd checkpassword-0.90
$ make
$ make setup check


pop 서버 구동을 위한 디렉토리/파일 만들기

$ mkdir -p /var/qmail/supervise/qmail-pop3d/log
$ chmod +t /var/qmail/supervise/qmail-pop3d
$ mkdir /var/log/qmail/pop3d
$ chown qmaill /var/log/qmail/pop3d


/var/qmail/supervise/qmail-pop3d/run 파일

#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \
FQDN /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1
FQDN은 서버의 호스트 이름(FQDN)을 적어줍니다.



/var/qmail/supervise/qmail-pop3d/log/run 파일

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \
    /var/log/qmail/pop3d


만들어진 파일에 실행 권한을 줍니다.

$ chmod 755 /var/qmail/supervise/qmail-pop3d/run
$ chmod 755 /var/qmail/supervise/qmail-pop3d/log/run


1.7 7. SMTP, POP 데몬 시작하기 #
이미 설치되어 있거나 실행되고 있는 메일 서버나 POP 데몬이 있다면 중지 시키고, 시스템에서 삭제합니다.



sendmail 실행 파일

sendmail 바이너리를 사용하는 다른 어플리케이션들을 위해 대신 qmail의 그것을 링크 해줍니다.


$ ln -s /var/qmail/bin/sendmail /usr/lib
$ ln -s /var/qmail/bin/sendmail /usr/sbin
 

기본 alias 계정

다음 세가지 기본 알리아스 계정은 반드시 만들어 줍니다.

postmaster

mailer-daemon

root


이 주소들로 도착하는 메일을 받아볼 일반 계정으로 알리아스를 만들어야 하는데, 만약 로컬 계정이 silver 라면 다음과 같이 만듭니다.


$ echo silver > /var/qmail/alias/.qmail-root
$ echo silver > /var/qmail/alias/.qmail-postmaster
$ echo silver > /var/qmail/alias/.qmail-mailer-daemon
$ cd /var/qmail/alias/
$ chmod 644 .qmail-root .qmail-postmaster .qmail-mailer-daemon


Maildir 만들기
/var/qmail/bin/maildirmail  ~/Maildir
echo ./Maildir/ > ~/.qmail

하고 /etc/skel 에 적용

qmail 시작하기


다음과 같이 daemontools 서비스 디렉토리에 링크를 걸어주면 5초 이내에 qmail MTA가 시작됩니다.


$ ln -s /var/qmail/supervise/qmail-send /service/
$ ln -s /var/qmail/supervise/qmail-smtpd /service/
 이렇게 한번 링크를 걸어 두면 시스템을 재부팅 하더라도 daemontools에 의해 자동으로 재시작 됩니다.

시작/정지등의 명령을 좀더 쉽게 하기위해 만들어진 스크립트를 사용할 수 도 있습니다. 다음 url의 파일을 적당한 이름으로 저장한 후 실행 권한을 주고 사용하시면 됩니다.

qmail-startup.txt


pop 서버 시작하기

pop3 서버도 같은 요령으로 daemontools 서비스 디렉토리에 링크만 걸어주면 됩니다.


$ ln -s /var/qmail/supervise/qmail-pop3d /service

'linux > Mail' 카테고리의 다른 글

netmania webmail install document  (0) 2007.03.16
qmail FAQ  (0) 2007.03.16
qmail 과 삶  (0) 2007.03.16
qmail+phpmail+imap4.7  (0) 2007.03.15
qmail+checkpassword+phpmail-임시  (0) 2007.03.15
Posted by efrit
,