다음 이전 차례

2. 필요한것들

큐메일을 인스톨 하기전에 다음것들은 꼭 필요한것이다:

2.1 소오스의 다운로드와 패키지 풀기.

첫번째 스텝은 필요한 파일들을 서버에서 다운로드 한다. 이 지침서에서 필요한 패키지들은 다음과 같다:

qmail
ucspi-tcp
daemontools
rblsmtpd

다음과 같은 절차에 따라 적절한 공간에 (/usr/src/ 와같은) 패키지를 푼다. (지금은 root로 수행하여야 한다.)

     # gzip -d qmail-1.03.tar.gz
     # tar xf qmail-1.03.tar

파일을 푼후 qmail-1.03 폴더로 바꾼다.

     # cd qmail-1.03

2.2 RTFM

큐메일볼더에서 FAQ와 INSTALL 파일을 읽어보기를 권한다.

     # more INSTALL
     # more INSTALL.alias
     # more INSTALL.mbox
     etc...

INSTALL 파일을 읽어보았다면 당신은 이 HOWTO를 읽어볼 필요가 없을 것이다. 그러나 이미 이만큼 읽어 왔으나 계속 해서 진행해 가도록 하겠다.

2.3 큐메일 디렉토리의 생성

첫번째는 큐메일이 필요로 하는 홈디렉토리를 생성하여야 한다.

     # mkdir /var/qmail

2.4 큐메일을 실행하는데 필요한 이용자와 그룹을 등록

이제 다양한 큐메일의 데몬을 실행하기 위한 이용자들 모두와 그룹을 생성하여야 한다. INSTALL.ids를 보면 필요한 그룹이 있다. 만인 데비안 리눅스 2.0를 사용한 다면 이미 생성되어 있을것 이다. (데비안 나이스!) 리눅스와 솔라리스 라면 다음과 같은 명령을 수행한다:

     # groupadd nofiles
     # useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
     # useradd -g nofiles -d /var/qmail -s /bin/false qmaild
     # useradd -g nofiles -d /var/qmail -s /bin/false qmaill
     # useradd -g nofiles -d /var/qmail -s /bin/false qmailp
     # groupadd qmail
     # useradd -g qmail -d /var/qmail -s /bin/false qmailq
     # useradd -g qmail -d /var/qmail -s /bin/false qmailr
     # useradd -g qmail -d /var/qmail -s /bin/false qmails

큐메일의 이용자와 그룹을 생성중에 다음과 같는 문구가 나오면 INSTALL.ids를 읽어보라.

*** NOTE: IF YOU DO NOT CREATE THESE USERS AND GROUPS, QMAIL WILL NOT WORK. ***

2.5 큐메일과 rblsmtpd 의 컴파일.

다음단계로서 프로그램과 큐메일 디ㄹ렉토리 트리를 만든다.

Type:
     # make setup check

큐메일이 컴파일을 시작할 것이다. 만일 성공적으로 컴팡리이 끝나면 /var/qmail 아래에는 완벽한 큐메일 시스템의 새로운 디렉토리들이 생성되어 있을것이다.

rblsmtpd 의 컴파일은 대부분의 시스템에서 수행된다:

     # tar zxvf rblsmtpd-0.70.tar.gz
     # cd rblsmtpd-0.70
     # make
     # make setup check

rblsmtpd 의 실행프로그램은 /usr/local/bin/ 에 생성될것이다.

2.6 큐메일의 Configure.

큐메일이 컴파일 되었으면 컨피규를 항여야 한다. 이것은 매우 쉽다: 다시 큐메일의 디렉토리로 돌아가서 다음을 입력한다.

     # ./config

만일 이것이 수행되지 않으면 당신이 직접 귀찮은 작업을 해야 한다. INSTALL.ctl 파일을 읽어보고 당신의 로컬 IP와 DNS 의 문제를 해결해야 한다. 그래도 문제가 해결되지 않으면 다른방법으로 다음을 따라서 실행하라.

     # ./config-fast your.full.host.name

이것은 큐메일이 수행하는데 필요한 파일들을 생성할것 이다.

2.7 큐메일의 알리아스의 설치

     # cd ~alias
     # echo adam > .qmail-root
     # echo bob > .qmail-postmaster
     # echo bob > .qmail-mailer-daemon

큐메일은 모든 알리어스 파일을 이용한다. 이것은 큐메일이 sendmail과 다른 주요한 것중의 하나이다. 이 것은 다음에 자세하게 설명된다. root를 위한 알리아스가 기술 된다. 이것은 다음에 자세하게 설명된다. 알리어스는 root에 의해서 쓰진다. 이것 은 root가 큐메일이 메일수신을 하는것이 아니기 때문이다. 실제로 큐메일은 root에 의해서 소유된 파일은 전송을 거부할 것이다. INSTALL.alias 파일을 보면 보다 자세 한 내용을 알수 있다.

2.8 로컬 전송을 가능케 하기

이것이 끝나게 되면 당신의 qmail 시스템은 테스트가 준비된것이다. 큐메일의 로컬 전송을 가능게 하는것은 root의 명령으로 수행한다.

     # cp /var/qmail/boot/home /var/qmail/rc
     # csh -cf '/var/qmail/rc &'

이러한 프로세서들은 센드메일 과 인터페이스 하지 않는다. 로컬 전송테스트는 당신 이 임의로 준비한것을 이용한다. (TEST.deliver를 읽어보라) 당신의 홈디렉토리에 있는 메일박스에 있는 메일을 전송할 것이다. /var/spool/mail에 만들어지는 정보는 큐메일 설치시에 호환을 위한것이다. INSTALL.mbox를 읽어보라.

큐메일이 당신의 홈디렉토리의 메일박스를 직접적으로 읽기전에, PINE 같은 메일 프로그램이 수신된 메일에 대하여 setgid를 할 필요가 없다. 이것은 비록 적기는 하지만 보안상의 구멍이 만들어질 가능성을 없앤다.

2.9 Maildir.

Maildir은 메세지를 전송하는 또하나의 방법으로서 다음과 같은 이점을 가지고 있다:

Lock-free -- 이것은 NFS를 이용한 파일저장 방법에서도 신뢰도를 가지고 있다. qmail-pop3d를 사용할수 있다. 큐메일과 사용하는 POP3 데몬은 안전하다. 프로그램은 /var/spool/mail 의 당신의 메일박스의 파일의 시간을 가져오는데 stat()를 사용하지 않는다. 대규모의 유저베이스 시스템에서는 이것을 만드는데 상당한 시간이 걸릴수 있다. mutt MUA에 의해서 실제적으로 지원된다.

Maildir을 사용하게 되면 몇가지의 단점을 가지고 있다.

PINE과 같는 일부 대중적인 프로그램은 Maildir을 사용하기 위해서는 패치를 하고 재컴파일을 해야한다. PINE의 패치를 위해서 Bloodhounds Internations 의 c-클라이언트가 필요하다. Maildir은 각 메세지 별로 분리된 파일로 저장한다. 이것은 하나의 스풀파일을 사용하는것보다 자원을 많이 소모한다.

만일 Maildir을 이용하기를 원한다면 당신의 홈 디렉토리에서 다음명령을 수행한다.

     $ /var/qmail/bin/maildirmake $HOME/Maildir
     $ echo ./Maildir/ > ~/.qmail

기억할것은 Maildir 은 이용자의 것으로 소유가 되어 있어야 한다. 만일 root에 의해 서 생성되면 당신의 것으로 오우너싶을 바꾸어 놓아야 한다. /etc/skil에 있는 Maildir을 포함하는것도 좋은 아이디어 이다. 이것은 자동적으로 새로운 유저에게 Maildir을 만들어 준다. Maildir에 대하여 좀더 알고 싶으면 INSTALL.maildir을 읽어보라.

2.10 sendmail 죽이기!!

이것을 수행한다는 것은 좋은것을 위하여 위태로운 구 sendmail을 로부터 빠져나오는 것을 의미한다. 우선 당신의 sendmail 데몬을 찾아서 그것을 죽인다. 리눅스에서는:

     # killall -TERM sendmail

이러한 경험으로부터 기쁨을 얻은 느낌은 sendmail이 재시동되면 다시 죽여야 하기 때문에 다음을 실행시킨다.

     # mv /usr/lib/sendmail /usr/lib/sendmail.old
     # mv /usr/sbin/sendmail /usr/sbin/sendmail.old
     # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
     # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

(/usr/sbin 은 당신의 시스템에는 없을수 있다.)

*** 중요한것: sendmail은 당신의 초기화 스크립트에 의해서 시돋되도록 되어 있다. 이러한 시스템이 reboot 될경우에 실행하는 초기화 스크립트에서 sendmail을 지워야할 필요성이 있다. 각 시스템마다 규정되어 있는 문건에서 도움을 받을수 있을 것이다.

2.11 큐메일 데몬을 셋업.

이제 인스톨된 큐메일을 SMTP, POP3와 그밖의 데몬이 당신의 시스템에서 셋업되게 하여야 한다. 가장 중요한것은 qmail-smtpd 이다. qmail-smtpd 가 없이 당신의 시스템은 외부로부터의 편지를 전달할 수 없다.

2.12 daemontools 과 tcpserver의 설치.

데몬툴과 ucspi-tcp 패키지는 큐메일의 기능을 보강시켜주는 일반적인 유틸리티로서 이미 다운로드를 받았을 것이다.

수퍼바이저, accustamp, 셋유저와 데몬툴 패키지에서 나온 cyclog, 그리고 ucspi-tcp 애서 나온 tcpserver를 큐메일위하여 이용하게 될것이다.

다음을 실행하게 되면 uspci-tcp 는 /usr/local/bin 에 설치된다.

     # tar zxvf ucspi-tcp-0.84.tar.gz
     # cd ucspi-tcp-0.84
     # make
     # make setup check

데몬툴은 다음과 같이 쉽게 설치된다.

     # tar zxvf daemontools-0.53.tar.gz
     # cd daemontools-0.53
     # make
     # make man
     # make setup
     $ make check  # (can be run as a regular user)

지금 다음의 디렉토리들을 생성하여주면 cyclog 가 로그를 시작할것이다.

     # mkdir /var/log/qmail
     # chown qmaill /var/log/qmail
     # mkdir /var/log/qmail/qmail-smtpd
     # mkdir /var/log/qmail/qmail-pop3d  # qmail-pop3d를 사용할 경우
     # chown qmaill /var/log/qmail/*

데몬툴이 설치되었으면 INSTALL을 따라서 프로그램을 테스트 하도록 한다. 큐메일 smtpd를 스타트업 하기전에 일부 엑세스 컨트롤을 해야할 필요성이 있다. /etc 내에 이용할 파일을을 간단하게 조정한다. 나는 /etc/tcp.smtp 의 액세스 파일 을 이용한다. 만일 엑세스 컨트롤을 이용할 필요가 없다면 /etc/tcp.smtp 에 단지 한라인 만을 넣으면 된다.

:allow

기본적인 컨피규레이션은 로컬호스트에 있는 사람은 누구나 이용할수 있게 하는 것이다. 로컬호스트와 로컬 네트웍에 있는 사람들이 사용할 수 있게 하려면 다음과 같이 만든다:

     127.0.0.1:allow,RELAYCLIENT=""
     192.168.1.:allow,RELAYCLIENT=""
     :allow

보다 상세한 에제는 man tcprules를 보아라. 당신의 률을 생성하였으면 그것이 활성화 되도록 하여야 한다. tcpserver 는 cdb (데이터베이스) 파일을 ㅇ릭어서 수행한다. 당신은 tcprules 프로그램으로 당신의 /etc/tcp.smtp 파일로부터 데이터베이스를 만들수 있다. 이것은 다음과 같이 실행 한다.

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

2.13 rblsmtpd

rblsmtpd 는 tcpserver 하에서 (예를 들면 큐메일과 sendmail) SMTP 서버로서 수행 하는 일반적인 프로그램이다. 만일 MAPS RBL에 목록화된 불록사이트를 원한다면 SMTP 데몬을 어떠한 인수를 rblsmtpd에게 줄 필요는 없다.

SMTP데몬이 수행된다. 만일 당신이 블럭킹시스템(ORBS와 같은)하에서 블럭기반으로 수행되기를 원한 다면 단신은 rblsmtpd 의 수행을 멀티플로 수행시킬 필요가 있을 것아다. 이것은 서버의 명칭에 -b 플러그를 이용함으로서 할수 있다. 당신은 각각 실행하는 방법을 찾아볼수 있다.

이제 당신의 큐메일데몬을 tcpserver 하에서 시작할 준비가 되었다면 (그리고 부트시 에 초기화 파일들이 이용되게 하려면) 다음을 root 권한으로 실행한다:

     # PATH=/var/qmail/bin:/usr/local/bin:$PATH
     # mkdir /var/lock/qmail-smtpd
     # mkdir /var/log/qmail/
     # mkdir /var/log/qmail/qmail-smtpd
     # supervise /var/lock/qmail-smtpd \
       tcpserver -v -x/etc/tcp.smtp.cdb -u71 -g1001 0 25 \
       rblsmtpd qmail-smtpd 2>&1 | setuser qmaill accustamp | \
       setuser qmaill cyclog -s5000000 -n5 /var/log/qmail/qmail-smtpd &
또는 ORBS 와 RBL 을 이용하여 block 시킨다.
     # supervise /var/lock/qmail-smtpd \
       tcpserver -v -x/etc/tcp.smtp.cdb -u71 -g1001 0 25 \
       rblsmtpd rblsmtpd -rrelays.orbs.org qmail-smtpd 2>&1 |\
       setuser qmaill accustamp | \
       setuser qmaill cyclog -s5000000 -n5 /var/log/qmail/qmail-smtpd &

이전에 수행한 명령들을 정확하게 알고 싶다면은 당신은 많은량의 문겅을 읽어보아야 할것같다. 그것이 내가 추정하기로는 모든 목록상에 있는 모든 명령어를 읽어보아야 할것같다. 당신의 tcpserver 로그는 이제부터는 /var/log/qmail/qmail-smtpd에 쌓인 다.

sysvinit 를 위한 rc 파일의 예제는 part11에서 tcpserver 하에서읜 qmail-smtp를 구동시키는 방법에서 찾을수 있다.

이것을 읽어보면 inetd.conf 에서의 qmail-smtpd의 구동방법에 대하여 기술해 놓는것 중에서 부족한것을 발견할수 있을 것이다. (high load를 위한 권할만한 것은 아니다) 여기에 다음을 추가할 필요가 있다:

     smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env 
                /usr/local/bin/rblsmtpd /var/qmail/bin/qmail-smtpd (한줄임)

이것은 xinetd 에서는 다음과 같이 이용된다.

     service smtp
     {
     socket_type     = stream
     protocol        = tcp
     wait            = no
     user            = qmaild
     server          = /var/qmail/bin/tcp-env
     server_args     = /usr/local/bin/rblsmtpd /var/qmail/bin/qmail-smtpd
     only_from       = 0.0.0.0 
     }

이제 시스템을 재시동 하거나 inetd 를 재적재 한다. 리눅스에서는:

     # killall -HUP inetd
또는
     # killall -USR1 xinetd

2.14 RTFM

이시점에 있어서 공식적인 문서를 읽어보는것이 좋은 생각일것이다. 물론 당신이 게속해서 나의 빈약한 문건을 계속해서 읽는다면 그렇게 하지 않아도 된다. 나는 당신을 지긋지긋하게 할것이지만 그것은 나를 몰입하게 한다.

어떻든 간에 qmail로 돌아가자.

2.15 제어파일들

당신은 한번은 qmail 시스템을 셋업하고 수행시켰다. 그것이 단순한 몇가지의 지식 으로 하였다고 하더라도 말이다. 무었보다도 지금 당신은 알게된것에 대하여 행복 할것이고 이제 sendmail보다 가상의 호스트를 쉽게 세팅하는것에 대하여 해보도록 한다.

당신의 /var/qmail/control 디렉토리르 보면 다음과 같은 파일들이 있다.

     nose:/var/qmail/control$ ls -la
     total 8
     drwxr-xr-x   2 root     qmail        1024 Sep 29 10:08 .
     drwxr-xr-x  10 root     root         1024 Sep 18 02:48 ..
     -rw-r--r--   1 root     root           22 Sep 18 02:40 defaultdomain
     -rw-r--r--   1 root     root           27 Sep 18 02:40 locals
     -rw-r--r--   1 root     root           27 Sep 18 02:40 me
     -rw-r--r--   1 root     root           17 Sep 18 02:40 plusdomain
     -rw-r--r--   1 root     root           27 Sep 18 02:40 rcpthosts
     -rw-------   1 root     root          147 Sep 29 10:08 virtualdomains

세개의 가장 중요한 파일들이 있는데 (무었보다도 중요하다):

me -- (qmail은 사실 이파일로 수행된다. 이것에는 당신의 로컬 호스트명과 도메인 명을 가지고 있다) rcpthosts -- (qmail이 편지를 받기위한 모든 호스타이다. 당신의 로컬 도메인을 이 파일에 곡 세팅하여야 한다.)

중요한것: 도메인을 위한 qmail 바운스메일은 rcpthost에 리스트 되어 있지는 않다. 당신의 가상도메인을 포함아혀 모든 도메인들은 이파일에 목록화 되어야 한다. locals -- (로컬의 모든 호스트, 즉 /etc/passwd 내에 있는 편지를 받은 유저들의 호스트들이 기록된다.)

2.16 dot-qmail.

dot-qmail 은 중요한 컨셉이고 나의 생각에 이 HOW-TO에서 마땅히 하나의 섹션을 할당 받을 만한 것이다. 그러한 이유는 당신은 qmail이 설치하고 나면 95% 가 dot- qmail을 사용할것이기 때문이다.

dot-qmail은 qmail-local이라고도 불리며 메세지를 수신한 이후의 모든것을 할 수 있다. dot-qmail을 사용하면 그이용자는 메일을 포워드 할수 있고, ezmlm 메일링 리스트를 생성할수 있고 (qmail 메일링 리스트와 같은), 사용자이름하의 알리아스를 생성할수 있고, 외부 프로그램을 호출하여 자동답신을 할 수 있다.

dot-qmail은 당신의 홈디렉토리에 있는 .qmail 파일에 의하여 실행된다. qmail-local은 message를 이파일의 명령에 따라서 읽어들인다.

qmail이 .qmail 파일을 찾지 못할 경우에 수신자의 홈디렉토리에 있는 메일박스에 메일을 전송한다. dot-mail의 매뉴얼 페이지를 보도록 하라.

dot-qmail의 위해단 점중의 하나는 유저가 자신의 알이아스를 가질수 있다는 것이다. 만일 나의 이용자 account가 "adm"으로 되어 있다면 나는 .qmail-info 파일을 셋업 할수 있다. 이파일에는 처리하는 메세지들을 adam-info에 주소화하는 명령어를 가지 고 있을 것이다. dot-qmail은 당신의 취향대로 많은 알리아스를 생성할수 있고 분산화된 목록이라도 이용할 수 있다.

2.17 가상도메인.

dot-mail에 감사를 보내면서 가상 도메인은 알리아스를 만드는것 만큼이나 쉽다. 가상도메인 파일에 다음과 같는 포맷으로 작성한다.

     example.com:user

이 도메인으로 수신되는 메일은 어느 유저에게 보낼것인가를 알려주고 있다. 이것은 처음볼때에는 복잡해 보이나, 실제로는 매우 직관적이다. 만일 나의 계정이 example.com 으로 수신되는 가상도메인의 의해서 지정된 adm이라면 .qmail 파일에 나의 홈디렉토리에서 example.com 일반적으로 사용되는것과 마찬가지 로 저장되도록 할수 있다. 그렇다면 .qmail-info는 info@example.com 으로 되어야 한다.

그러나 나의 이용자계정으로 부터 하나의 가상도메인보다 많은 관리를 하려면 어떻게 해야할까?

가상도메인 파일은 매우 직감적으로 만들수 있다. 호혜적인 사용자간의 밀어내기 대신 에 단지 호혜적인 이용자 확장을 설정한다. 예를 들면:

     example.com:adam-example
     example2.com:adam-example2

이러한 컴피규레이션은 가상 호스트알리아스 생성을 쉽게 한고 dot-qmail 파일명으로 확장하는것과는 다르다. 지금 info@example.com 은 .qmail-example-info 에 의해서, info@example2.com 은 .qmail-example2-info 으로 된다.

만일 .qmail-ext 가 존재하지 않으면 qmail-local 은 기설정된 .qmail 을 이용한다. 예를 들면 ext 가 for-bar 이면 (?) qmail-local 은 .qmail-for- 보다도 우선 .qmail-for-bar을 찾는다, 그리고 마지막으로 .qmail-defualt를 찾는다. 만일 어떤것도 발견되지 않으면 qmail-local은 메세지를 바운스(?)한다. (예외로서 기본적인 이용자 주소가 있다면 qmail-local은 .qmail 이 존재하지 않거나 .qmail이 비어었음으로 처리한다.) 이러한 처리는 dot-qmail의 매뉴얼 페이지로부터 온것이다.

2.18 로컬시스템 알리어스

로컬알이라스를 생성하기를 원한다면 어디에 해야 하는가? /etc/aliases 에 만들어야 하는가? 그렇지 않다. /etc/aliases는 qmail에 의해서 처리된 sendmail의 또다른 문제 중의 하나이다.

알리아스를 항상 추가하기 위하여 (새로운 알리아스) 대규모의 데이터베이스를 생성 하는 대신에 큐메일은 아주 다른 방법으로 로컬 알리아스를 처리한다.

지금부터는 당신이 dot-qmail 파일 과 가상도메인에 대하여 알았으므로, 당신은 시스템 알아라스를 얼마나 쉽게 생성하는가에 대하여 놀라지 않을것이다.

시스템 알리아스는 단지 dot-qmail의 파일중의 하나인 /var/qmail/alias 를 이용한다.

2.19 끝 (그리고 시작)

큐메일은 극단적으로 빠르고, 유연하고 안전한 MTA 이다. 이것은 많은 다른 응용프로그램으로 이루어져 있고 내가 하고자 하는 것들을 할수 있게 해주었다. 더 필요한 정보는 큐메일 웹사이트를 읽어라.

2.20 알아두어야 할것들

나는 다름과 같은 사람들에게 감사를 표한다.

     Dan Bernstein, 그의 훌륭한 프로그램을 제공해 준것에 대하여
     Russell Nelson, qmail 홈페이지를 호스팅하여 준것에 대하여
     Christopher Johnson, vckpw 패키지를 작성해 준것에 대하여
     Mr. Sam, maildrop을 포함하도록 qmail의 다양한 기능을 진전시켜 준것에 대하여
     다름사람들에게는 이 HOWTO가 좀더 잘만들어 지도록 피드백을 보내준데
     대하여 감사를 드린다.

          Matthew Gibbins 
          Scott Schwartz 
          Mark Delany 
          harold@nb.com.[sg] 
          Erik Linder 
          Djalil Chafai 
          Olivier Mueller 
          Peter Rye 
          Harry Hersh 
          Michael Handler 
          Mate Wierdl 
          Dave Sill 

만일 내가 잊어버린 것이 있다면 편지를 보내시오. --Adam adam@flounder.net This HOWTO is Copyright(R) 1998 Adam D. McKenna
다음 이전 차례