리눅스
subject 큐메일 설치가이드
author 관리자 date 2004-01-04 hit 147 HIT

Qmail 설치 가이드


2003/08/28 - 패치 관련 항목 추가

2002/07/08 - 첫번째 문서


      
  1. 이 글은 sendmail을 대체하는 현대적인 메일 전송 에이전트(MTA)인 Qmail의 설치 가이드 입니다.
      
  2. 이 글은 qmail의 설치 방법만을 설명합니다.
      
  3. 이 글에서는 qmail의 기술적인 면은 설명하지 않습니다.
      
  4. 이 글은 qmail+vpopmail 문서의 qmail 설치 부분과 중복됩니다. vpopmail을 사용하시려는 분들은 qmail + vpopmail문서를 보세요.


목차:

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




      
  • 필요한 것들
      


      


            
    1. qmail
            
    2. ucspi-tcp
            
    3. daemontools
        

      



      

  • patches
      


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


            
    • glibc 2.3.1 이상에서는 컴파일이 제대로 되지 않습니다.
            각각의 패치 (local)를 받아 적용 후 컴파일 합니다.
            
    • 0.0.0.0을 local IP 주소로 인식하게 하는 패치 (local)
            
    • qmail이 sendmail을 emulation할때 -f 옵션이 From: 헤더를 설정하도록 하는 패치 (local)
        


      



      

  • 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 check

      


      
       daemontools


    $ mkdir -p /package
    $ chmod 1755 /package
    $ cd /package
    $ mv daemontools-0.76.tar.gz /package
    $ tar xzf daemontools-0.76.tar.gz
    $ rm daemontools-0.76.tar.gz
    $ cd admin/daemontools-0.76
    $ package/install


       daemontools의 설치가 끝나면 svscanboot가 자동으로 시작됩니다 (*BSD는 재부팅).
      



      

  • qmail 컴파일/설치
      


       자, 이제 qmail을 설치 하도록 하지요.
      


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


    $ mkdir /var/qmail


       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을 컴파일/인스톨 합니다 (필요한 패치가 있다면 지금 합시다. cocktail patch).


    $ make
    $ make setup check

      


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


    $ ./config

      


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


    $ ./config-fast foobar.org

      



      

  • 스크립트 만들기
      


       필요한 스크립트를 만듭니다.
      



    /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

      



      

  • POP 서버
      

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


      


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


      


       checkpassword 설치


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

      


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


    $ mkdir /var/qmail/supervise/qmail-pop3d
    $ 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


      


      

  • SMTP, POP 데몬 시작하기
      


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


      
      


            
    • sendmail 실행 파일
            


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


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

            


            
            

    • 기본 alias 계정
            


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


            


                
      1. postmaster
                
      2. mailer-daemon
                
      3. 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

        


        

    • qmail 시작하기
        


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


         ln -s /var/qmail/supervise/qmail-send /service/
         ln -s /var/qmail/supervise/qmail-smtpd /service/

        


         이렇게 한번 링크를 걸어 두면 시스템을 재부팅 하더라도 daemontools에 의해 자동으로 재시작 됩니다.
        


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


            


        


        

    • pop 서버 시작하기
        


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


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

목록보기
39  메일서버(QMAIL) 구축 - 10. qmail 부트파일 만들기  2004-01-06 135
38  메일서버(QMAIL) 구축 - 9. root 와 postmaster를 위한 alias 설정  2004-01-06 137
37  메일서버(QMAIL) 구축 - 8. qmail의 log파일을 위한 디렉토리 만들기  2004-01-06 134
36  메일서버(QMAIL) 구축 - 7. qmail 데몬을 위한 디렉토리와 파일들을 생성  2004-01-06 143
35  메일서버(QMAIL) 구축 - 6. 기본 control 파일들의 설정  2004-01-06 156
34  메일서버(QMAIL) 구축 - 5. qmail 과 연관 프로그램들을 컴파일  2004-01-06 139
33  메일서버(QMAIL) 구축 - 2. 루트권한으로 변경 후..  2004-01-06 152
32  메일서버(QMAIL) 구축 - 1. qmail 소스 받아오기  2004-01-06 156
31  메일서버(QMAIL) 구축 - 4. qmail 실행을 위한 유저와 그룹을 생성  2004-01-06 130
30  메일서버(QMAIL) 구축 - 3. qmail 설치를 위한 디렉토리를 생성  2004-01-06 128
 큐메일 설치가이드  2004-01-04 147
28  리눅스 설치 후 해야 할 것들..  2003-12-29 148
27  리눅스 설치 후 초기 보안 설정법.. [1]  2003-12-22 155
26  리눅스 보안을 위한 기본설정 Part 2.  2003-12-22 153
25  서버 부팅 데몬 설정  2003-12-02 139
1 2 3 4 5