권장 소스타볼 방법이나, 자동컴파일 패케지로부터 큐메일을 설치하셨습니다. 이번 항목에는 멜애드민이나 시스템애드민이 자기가 원하는 대로 큐메일을 운영하기 위해 큐메일을 설정하는 데 필요한 정보가 있습니다.
모든 큐메일 시스템설정파일은 alias에 있는 .qmail파일을 빼고는 모두 /var/qmail/control에 놓여져 있습니다. qmail-control 맨페지에는 다음과 같은 테이블이 있습니다.
Control Default Used by Purpose
badmailfrom none qmail-smtpd blacklisted From addresses
bouncefrom MAILER-DAEMON qmail-send username of bounce sender
bouncehost me qmail-send hostname of bounce sender
concurrencylocal 10 qmail-send max simultaneous local
deliveries
concurrencyremote 20 qmail-send max simultaneous remote
deliveries
defaultdomain me qmail-inject default domain name
defaulthost me qmail-inject default host name
databytes 0 qmail-smtpd max number of bytes in
message (0=no limit)
doublebouncehost me qmail-send host name of double bounce
sender
doublebounceto postmaster qmail-send user to receive double
bounces
envnoathost me qmail-send default domain for
addresses without "@"
helohost me qmail-remote host name used in SMTP
HELO command
idhost me qmail-inject host name for Message-ID's
localiphost me qmail-smtpd name substituted for local
IP address
locals me qmail-send domains that we deliver
locally
me FQDN of system various default for many control
files
morercpthosts none qmail-smtpd secondary rcpthosts
database
percenthack none qmail-send domains that can use
"%"-style relaying
plusdomain me qmail-inject domain substituted for
trailing "+"
qmqpservers none qmail-qmqpc IP addresses of QMQP
servers
queuelifetime 604800 qmail-send seconds a message can
remain in queue
rcpthosts none qmail-smtpd domains that we accept
mail for
smtpgreeting me qmail-smtpd SMTP greeting message
smtproutes none qmail-remote artificial SMTP routes
timeoutconnect 60 qmail-remote how long, in seconds, to
wait for SMTP connection
timeoutremote 1200 qmail-remote how long, in seconds, to
wait for remote server
timeoutsmtpd 1200 qmail-smtpd how long, in seconds, to
wait for SMTP client
virtualdomains none qmail-send virtual domains and users
특정 컨트롤 파일에 대해 정보를 더 원하시면, "Used by"밑에 열거된 모듈에 해당하는 맨페지를 참조하십시오.
릴레이는 무엇일까요? MTA가 SMTP를 통해서 메세지를 받아들이지만, 로컬주소 또는 로컬송신자가 아닐때를 말합니다.
스팸이전시대에는 MTA가 공개릴레이로 설정되는 것이 보통이었습니다. 송신자/수신자가 누구든 지 멜을 수용하는 무차별서버였습니다.
요즘의 MTA는 대개 릴레이를 금지하거나, 일정한 믿을만한 사용자나 시스템에게만 릴레이를 허용하고 있습니다.
공식 큐메일설치지시사항을 따르면 릴레이는 기본이 안되게 되어있습니다. 이것은 locals와 virtualdomains에 있는 도메인 네임들에 있는 도메인 네임들을 /var/qmail/control/rcpthosts파일에 적기 때문입니다. rcpthosts통제파일이름은 SMTP RCPT (수신자) 명령어에서 유래합니다. SMTP 세션에서 RCPT는 메세지수신인의 주소를 밝히는 데 씁니다. 그러면 rcpthosts는 RCPT 주소에 나타나는 유효한 호스트네임을 리스트합니다.
대부분의 단일사용자와 소규모 서버는 릴레이를 완전히 금지할 수 있지만, 분산된 사용자 공동체를 지원하려면 사용자에게만은 릴레이용으로 서버를 이용하게 할 수 있는 방법이 필요합니다. 이것은 qmail-smtpd에게 rcpthosts 파일을 무시하도록 tcpserver를 써서 RELAYCLIENT환경변수를 정하면 됩니다.
본문서의 설치지시사항을 따르면, 릴레이선택은 기본입니다. 클라이언트에게 릴레이접근권한을 주려면 /etc/tcp.smtp에 다음을 첨가하십시오.
IP address of client:allow,RELAYCLIENT=""
그리고나서 SMTP 접근권한 데이터베이스를 재컴파일하십시오.
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp chmod 644 /etc/tcp.smtp*
공식설치지시사항을 따랐다면, Chris Johnson이 큐메일이 특정호스트에게만 릴레이를 허용하도록 설정하는 방법을 적으셨으니 http://www.palomine.net/qmail/selectiverelay.html를 참고하도록 하십시오.
호스트가 한 이름이상으로 알려지면, 예를 들어서 user@host1.example을 user@example.com이나 user@mail.example.com 등으로 적을 수 있다면, 큐메일에 이런 내용을 알려서 어떤 주소로 내부에서 전달할 지, 원격시스템에서 어떤 메세지를 받을 즈 등을 알게 합니다.
그렇게 하려면, 통제파일 두 개에 모든 이름을 첨가하기만 하면 됩니다.
버츄얼도메인은 전항목에서 말씀드린 다중호스트네임과 비슷합니다만, 몇가지 중요한 차이점이 있습니다. 첫째로, example.net에 virtual.example.com이라는 버츄얼도메인이 있다면, joe@example.net에게 보낸 메세지는 대개 joe@virturl.example.com으로 보낸 메제지와 같은 멜복스에서 끝나지 않습니다. 버추얼도메인에 대한 이름은 별개입니다.
큐메일에서 버츄얼도메인은 virtualdomains파일에 설정되는데, 다음형식으로 하나 또는 그 이상을 적습니다.
큐메일은 user@domain을 prepend-user@domain으로 변환하고, 그 결과를 도메인이 로컬인 것처럼 취급합니다. user@부분은 선택입니다. 생략하면, 모든 @domain주소와 일치합니다.
위의 example씨나리오를 다시 보면, example.net의 멜애드민이 john사용자의 애드민 통제하에 virtual.example.com이라는 버츄얼도메인을 만들기 위해서는 다음과 같이 virtualdomains에 써넣어야 합니다.
virtual.example.com:john
joe@virtual.example.com로 들어오는 메세지는 john-joe@virtual.example.com으로 써지고, 내부에서 전달됩니다. john이 어떻게 버츄얼도메인을 관리하는 지 .qmail항목의 주소연장 부항목을 보시기 바랍니다.
다중호스트네임과 같이 모든 버츄얼도메인은 rcpthosts에 리스트되어서 qmail-smtpd가 그곳으로 주소된 메세지들을 받아들이게 합니다. 그렇지만, 다중호스트네임과 틀린점은 버츄얼도메인을 locals에 첨가해서는 안됩니다
--------------------------------------------------------------------------------
유의점: DNS와 MX기록은 버츄얼도메인으로 가는 메세지를 적절한 멜서버로 돌리도록
설치되어야 합니다. 이것은 네임서버애드민이 할일이고, 본 가이드의 범위를
벗어납니다.
--------------------------------------------------------------------------------
큐메일의 표준 앨리어스기술은 큐메일의 로컬전달기술이 자연히 발전한 것입니다. qmail-local은 localpart@host을 주소로 하는 메세지를 localpart라는 이름의 로컬사용자에게 전달하려고 합니다. 맞는 사용자가 없으면 메세지는 전체 큐메일시스템에서 /var/qmail/alias가 홈디렉토리인 pseudo-user 앨리어스 사용자에게 전달됩니다.
예를 들어 메세지를 tom사용자에게 회송하는 info@example.com앨리어스를 만들고자 한다고 합시다. example.com에서 룻사용자로서 다음과 같이 합니다.
echo tom > /var/qmail/alias/.qmail-info
.qmail항목과 주소연장부항목에서 어떤 앨리어스가 있는 지 정하는 .qmail파일을 어떻게 만들고, 전달되는 메세지로 무엇을 해야 하는 지 설명합니다.
큐메일에서 앨리어스가 실행되는 방식때문에 앨리어스가 정당한 사용자 전달을 무시할 수는 없다는 것을 유의하십시오.
fastforward패케지에는 Sendmail의 앨리어스 데이터베이스와 호환하는 단일파일에 다중앨리어스를 적는 대체가능 앨리어스기술이 있습니다.
다음 항목인 qmail-users에서 앨리어스를 실행할 수 있는 다른 기술을 설명합니다.
qmail-users는 사용자에게 주소를 할당하는 시스템입니다. 설정파일들이 /var/qmail/users에 놓입니다. 할당파일은 할당테이블입니다. simple과 wildcard 등 두 종류의 할당이 있습니다.
--------------------------------------------------------------------------------
유의점: assign은 한 줄에 할당들을 갖는데, 다음줄에 마침표를 적어줍니다. assign을
수동으로 만드시면 마침표줄을 잊지 마십시오.
---------------------------------------------------------------------------------
간단한 할당은 다음과 같습니다.
=address:user:uid:gid:directory:dash:extension:
address로 받은 메세지는 user사용자로 작동하는데, 특정 uid와 gid로 하며, directory/.qmaildashextension파일에 메세지를 어떻게 전달해야 하는 지를 규정한다는 뜻입니다.
와일드카드 할당은 다음과 같습니다.
+prefix:user:uid:gid:directory:dash:prepend:
prefix형식의 주소로 수신된 메세지는 user사용자로 작동하는데, 특정 uid와 gid로 하며, directory/.qmaildashprepend파일에 메세지를 어떻게 전달해야 하는 지를 규정한다는 뜻입니다.
qmail-user에는 도우미 프로그램이 두 개 있는데, qmail-newu와 qmail-pw2u입니다.
qmail-newu는 assign파일을 처리해서 /var/qmail/users에 cdb라는 contstant 데이터베이스(CDB)파일을 만듦니다. CDB는 바이너리 형식이라서 할당이 수천개라도 qmail-lspawn으로 매우 빨리 접근합니다.
qmail-pw2u는 시스템사용자데이터베이스인 /etc/passwd를 assign에 적합한 할당으로 변환합니다. qmail-pw2u는 변환규칙을 고치는 파일 몇개를 사용합니다.
---------------------------------------------------------------------------------
유의점: qmail-pw2u를 사용하면, 사용자를 추가, 삭제하거나 UID나 GID를 바꿀 때마다
qmail-pw2u와 qmail-newu를 재가동하셔야 합니다.
---------------------------------------------------------------------------------