Qmail 구축하기
ⓐ 소스 구하기
ucspi-tcp (http://cr.yp.to/ucspi-tcp/install.html)
daemontools (http://cr.yp.to/daemontools/install.html)
qmail (http://cr.yp.to/qmail.html)
정상적인 컴파일을 위해서 여러 패치를 받아야하는데 잘 모르겠다면
ucspi-tcp,daemontools을 다운받고, 아래의 버전을 다운받습니다.
http://www.qmail.org/netqmail-1.05.tar.gz
ⓑ 운영사항
Fedora Core 2
gcc 3.3.3
ⓒ 소스 풀기
mkdir -p /usr/local/src #디렉토리가 있을 경우 생략)
mv netqmail-1.05.tar.gz ucspi-tcp-0.88.tar.gz /usr/local/src
위에서 받은 netqmail, ucspi-tcp 는 /usr/local/src/밑에서 컴파일합니다.
mkdir -p /package

mv daemontools-0.76.tar.gz /package
chmod 1755 /package
netqmail 패키지를 풀어 패치와 qmail 소스를 설치합니다.
cd /usr/local/src
tar xvfz netqmail-1.05.tar.gz
cd netqmail-1.05
./collate.sh
ucspi-tcp 를 패치 & 컴파일하기
cd ..
tar xvfz ucspi-tcp-0.88.tar.gz
cd /usr/local/src/ucspi-tcp-0.88
patch < /usr/local/src/netqmail-1.05/other-patches/\
ucspi-tcp-0.88.errno.patch

make
make setup check
daemontools 를 패치 & 컴파일하기
cd /package
tar xvzf daemontools-0.76.tar.gz
cd src
patch < /usr/local/src/netqmail-1.05/other-patches/\
daemontools-0.76.errno.patch
cd ..
package/install
ⓓ 빌드하기
설치 디렉토리 생성
mkdir /var/qmail
만일 qmail을 /var/가 아닌 다른 디렉토리에 두고 싶으면 심볼릭 링크를 걸어둘 수 있습니다.
mkdir /var/qmail
ln -s /usr/man /var/qmail/man # → man 경로를 /usr/man 으로
링크
mkdir /etc/qmail
ln -s /etc/qmail /var/qmail/control # → control 경로를 /etc/qmail 로
링크
ln -s /usr/sbin /var/qmail/bin
관리 계정 설정
/usr/local/src/netmail 의 폴더에서 INSTALL.ids 파일을 열어보면, 전부 주석처리되어 있는데 그중에서 해당 운영체제의 항목 (여기서는 Linux)의 항목의 주석을 해지합니다.(# 삭제)
항목은 다음과 같습니다.
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
다음 명령을 실행합니다.
. ./INSTALL.ids
컴파일 및 설정하기
cd /usr/local/src/netqmail-1.05
make setup check
컴파일이 끝난 후 설정파일 설치를 위해 아래의 명령을 실행합니다.
./config
만일 도메인 관련해서 에러가 생기면 다음의 명령을 수행합니다.
./config-test [your hostname]
ex)./config-test your.domain.com
ⓔ 스크립트 작성하기
/var/qmail/rc 작성하기
vi /var/qmail/rc

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/
chmod a+x /var/gmail/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 파일 생성
vi /var/qmail/supervise/qmail-send/run
#!/bin/sh
exec /var/qmail/rc
/var/qmail/supervise/qmail-send/log/run 파일 생성
vi /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 파일 생성
vi /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
/var/qmail/supervise/qmail-smtpd/log/run 파일 생성
vi /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 로그 디렉토리 생성
$ mkdir -p /var/log/qmail/smtpd
$ chown qmaill /var/log/qmail /var/log/qmail/smtpd
ⓕ 릴레이 설정하기
/etc/tcp.smtp 파일을 수정합니다. 릴레이를 허용할 ip에 대해서 다음과 같은 양식으로 추가합니다.
vi /etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT=""
192.168.1.1:allow,RELAYCLIENT=""
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
ⓖ 계정 별칭 설정하기
/etc/tcp.smtp 파일을 수정합니다. 릴레이를 허용할 ip에 대해서 다음과 같은 양식으로 추가합니다.
root
mailer-daemon
postmaster
이상 세 메일계정이 사용할 실제 계정을 등록해주어야 합니다.
예로, 사용할 실제 계정이 trick 이라고 한다면
echo trick > /var/qmail/alias/.qmail-root
echo trick > /var/qmail/alias/.qmail-postmaster

ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
chmod 644 /var/qmail/alias/.qmail-root
chmod 644 /var/qmail/alias/.qmail-postmaster
ⓗ qmail 자동실행하기
ln -s /var/qmail/supervise/qmail-send /service/
ln -s /var/qmail/supervise/qmail-smtpd /service/
로 걸어주면 곧바로 시스템이 실행되며 시스템 재부팅 후에도 자동실행 됩니다.