다음 이전 차례

3. 설정

권장 소스타볼 방법이나, 자동컴파일 패케지로부터 큐메일을 설치하셨습니다. 이번 항목에는 멜애드민이나 시스템애드민이 자기가 원하는 대로 큐메일을 운영하기 위해 큐메일을 설정하는 데 필요한 정보가 있습니다.

3.1 설정파일

모든 큐메일 시스템설정파일은  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"밑에 열거된 모듈에 해당하는 맨페지를 참조하십시오.

3.2 릴레이

소개서

릴레이는 무엇일까요? 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를 참고하도록 하십시오.

3.3 다중 호스트네임

호스트가 한 이름이상으로 알려지면, 예를 들어서 user@host1.example을 user@example.com이나 user@mail.example.com 등으로 적을 수 있다면, 큐메일에 이런 내용을 알려서 어떤 주소로 내부에서 전달할 지, 원격시스템에서 어떤 메세지를 받을 즈 등을 알게 합니다.

그렇게 하려면, 통제파일 두 개에 모든 이름을 첨가하기만 하면 됩니다.

3.4 버츄얼도메인

버츄얼도메인은 전항목에서 말씀드린 다중호스트네임과 비슷합니다만, 몇가지 중요한 차이점이 있습니다. 첫째로, 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기록은 버츄얼도메인으로 가는 메세지를 적절한 멜서버로 돌리도록
        설치되어야 합니다. 이것은 네임서버애드민이 할일이고, 본 가이드의 범위를 
        벗어납니다.
--------------------------------------------------------------------------------

3.5 앨리어스

큐메일의 표준 앨리어스기술은 큐메일의 로컬전달기술이 자연히 발전한 것입니다. 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에서 앨리어스를 실행할 수 있는 다른 기술을 설명합니다.

3.6 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-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를 재가동하셔야 합니다.
---------------------------------------------------------------------------------


다음 이전 차례