커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 네트워크(network) > 메일 서버(mail) 도움말
검색 : 사이트 WHOIS 웹서버 종류

메일 필터링(스팸메일) / procmail (14, 글 18, 자료 8)

  큐메일 서버 구축 #5-2 - vpopmail + mysql 설치 작성일 : 2007/03/20 00:05
 
  • 글쓴이 : 티니 ( http://linux.tini4u.net/ )
  • 조회수 : 17278
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      큐메일 서버 구축 #1 - 프롤로그
    큐메일 서버 구축 #2 - ucspi-tcp, daemontools 설치
    큐메일 서버 구축 #3 - qmail 설치
    큐메일 서버 구축 #4 - qmail 부트 스크립트
    큐메일 서버 구축 #5-1 - vpopmail + cdb 설치
    큐메일 서버 구축 #5-2 - vpopmail + mysql 설치
    큐메일 서버 구축 #6 - qmail과 vpopmail 시작
    큐메일 서버 구축 #7 - ezmlm과 qmailadmin 설치
    큐메일 서버 구축 #8 - courier-imap 설치
    큐메일 서버 구축 #9 - 다람쥐메일(SquirrelMail) 설치

    --------------------------------------------------------------------------------------
    - 작성자 : 김혁중(티니) [sky(golbangi or at)tini4u.net]
    - 작성일 : 2007-03-02
    - 사이트 : http://linux.tini4u.net/
    - 원제목 : 큐메일 서버 구축 #5-2 - vpopmail + mysql 설치
    - 환 경 : CentOS 4.4
    - 키워드 : qmail install
    --------------------------------------------------------------------------------------

    이 강좌는 vpopmail의 도메인과 사용자를 mysql database에서 관리하는 방법 입니다.
    2003년에 작성된 강좌라 비공개로 해두었는데, 생각보다 많은 분들께서 강좌를 공개해달라고
    이메일과 쪽지로 연락을 주시기에 다시 강좌로 쓰게 되었습니다.
    예전에는 mysql을 연동하는 방법이 꽤 귀찮은 작업이 많았는데, vpopmail의 버전이 5.4로
    올라오면서 기존 cdb를 이용하는 방법과 크게 다른 작업을 하실 내용이 없습니다.
    거의 대부분의 내용이 중복되는 사항이니 어쩌면 '뭐가 달라?' 라고 하시는 분이 계실지도 모르겠습니다.
    다만 주의사항이 있다면 vpopmail을 설치하기 전에 mysql이 먼저 설치가 되어 있어야 됩니다.

    1. 유저, 그룹 추가
    vpopmail 운영을 위한 유저와 그룹을 생성하셔야 됩니다.
    ※ 아래 -r 옵션은 시스템 계정(uid 500미만)으로 유저를 생성하겠다는 의미 입니다.
     [root@localhost]# groupadd -r vchkpw
    [root@localhost]# useradd -r -g vchkpw vpopmail
    [root@localhost]# mkdir -p /home/vpopmail/etc/
    [root@localhost]# chmod 755 /home/vpopmail
     


    ※ vpopmail의 기본디렉토리는 /home/vpopmail/ 입니다.

    2. vpopmail 설치 (최신버전: http://sourceforge.net/projects/vpopmail/)
     [root@localhost]# chmod 777 /home/vpopmail/etc/
    [root@localhost]# touch /home/vpopmail/etc/tcp.smtp
    [root@localhost]# wget http://nchc.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.17.tar.gz
    [root@localhost]# tar xfz vpopmail-5.4.17.tar.gz
    [root@localhost]# cd vpopmail-5.4.17
    [root@localhost]# ./configure \
    --enable-roaming-users=y \
    --enable-tcprules-prog=/usr/local/bin/tcprules \
    --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
    --enable-relay-clear-minutes=15 \
    --enable-auth-logging=y \
    --enable-logging=e \
    --enable-auth-module=mysql
    [root@localhost]# make
    [root@localhost]# make install-strip
    [root@localhost]# chmod 755 /home/vpopmail/etc/
    [root@localhost]# chown vpopmail.vchkpw /home/vpopmail/etc/
     


    ※ 위 configure 옵션으로 pop3 인증후 15분동안 아무런 서버 사용이 없으면 자동으로 relay를 닫아
    open relay가 되어 스패머들의 타겟이 되는것을 막도록 합니다.
    그리고 tcp.smtp 릴레이 파일을 임시생성하는 이유는 위 옵션에 파일경로를 지정해줬기 때문입니다.
    자동설정을 사용하지 않고 굳이 tcpserver-file 경로를 지정해주는 이유는 아무런 옵션이 없는 경우
    시스템에서 자동으로 찾게 되는데, 이런 경우 /etc/tcp.smtp를 대부분 찾기 때문 입니다.

    그리고 mysql을 소스컴파일 설치한 경우 mysql library를 못찾는 머신이 있을겁니다.
    그런 경우에는 아래와 같이 library option을 추가로 넣어주시면 됩니다.
     --enable-incdir=/mysql/path/to/include \
    --enable-libdir=/mysql/path/to/lib
     



    3. mysql db 추가
     [root@localhost]# mysql -u root -p mysql
    mysql> create database vpopmail;
    mysql> insert into user (host, user, password) values('localhost','vpopmail',password('1234'));
    mysql> insert into db values('localhost','vpopmail','vpopmail','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
     


    ※ 위 insert문은 mysql 5.0 기준이므로, db 추가는 데이터베이스 강좌를 참조하시기 바랍니다.

    4. 기본 도메인 설정, MySQL 설정, SMTP 릴레이 설정
    vpopmail 5.2.4 버전부터는 기본도메인 설정옵션인 --enable-default-domain이 사라지고
    ~vpopmail/etc/defaultdomain 에서 관리되며, vpopmail 5.4.x 버전부터는 mysql과 연동시 했던
    기존 vmysql.c 파일을 수정하던 작업이 사라지고 ~vpopmail/etc/vpopmail.mysql에서
    mysql의 관련 정보를 적용시킬 수 있습니다.
     [root@localhost]# echo "foobar.com" > /home/vpopmail/etc/defaultdomain
    [root@localhost]# chown vpopmail.vchkpw /home/vpopmail/etc/defaultdomain
    [root@localhost]# chmod 640 /home/vpopmail/etc/defaultdomain
    [root@localhost]# vi /home/vpopmail/etc/vpopmail.mysql
    localhost|0|vpopmail|1234|vpopmail
    [root@localhost]# chmod 640 /home/vpopmail/etc/vpopmail.mysql
    [root@localhost]# vi /home/vpopmail/etc/tcp.smtp
    127.0.0.1:allow,RELAYCLIENT=""
    192.168.0.2:allow,RELAYCLIENT=""
    [root@localhost]# chmod 640 /home/vpopmail/etc/tcp.smtp
    [root@localhost]# /home/vpopmail/bin/clearopensmtp
     


    ※ 위에서 clearopensmtp를 해주는 이유는 tcp.smtp를 이용해 tcp.smtp.cdb 파일을 생성하기 위함입니다.

    5. crontab 설정
    clearopensmtp를 자동으로 한번씩 실행해주기 위해 crond 데몬을 이용 합니다.
    필자는 15분에 한번씩 실행되도록 설정하겠습니다.
     [root@localhost]# crontab -e
    */15 * * * * /home/vpopmail/bin/clearopensmtp
     



    6. qmail smtp 스크립트 변경
    tcp.smtp 파일이 변경되었으므로 qmail을 설치할 때 작성한 run script중 하나를 수정해줘야 됩니다.
     [root@localhost]# 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 -vRHl 0 \
    -x /home/vpopmail/etc/tcp.smtp.cdb \ <--- 이부분
    -u $Q_UID -g $Q_GID 0 25 /var/qmail/bin/qmail-smtpd 2>&1
     



    6. vpopmail을 위한 디렉토리와 스크립트 생성
     [root@localhost]# mkdir /var/qmail/supervise/vpop
    [root@localhost]# vi /var/qmail/supervise/vpop/run
    #!/bin/sh
    VPOP_UID=`id -u vpopmail`
    VPOP_GID=`id -g vpopmail`

    exec /usr/local/bin/softlimit -m 2500000 \
    tcpserver -vRHl 0 -u $VPOP_UID -g $VPOP_GID 0 110 \
    /var/qmail/bin/qmail-popup foobar.com \
    /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1
    [root@localhost]# chmod 755 /var/qmail/supervise/vpop/run
     



    7. 도메인과 메일계정 생성
     [root@localhost]# /home/vpopmail/bin/vadddomain foobar.com
    [root@localhost]# /home/vpopmail/bin/vadduser webmaster@foobar.com 1234
     


    ※ vadddomain실행시 나오는 패스워드는 qmailadmin에서 사용할 비밀번호 입니다.
    또한 vadddomain [도메인] [postmaster 비밀번호] 로도 사용가능합니다.
    vadduser 사용법은 vadduser [메일계정] [비밀번호] 입니다.
      커피닉스 카페 최근 글
    [08/25] #gpt_question_subje
    [08/20] From what I've seen
    [08/14] сайт
    [06/16] [질문]SAN 스위치 브로드케이드 dcx8510-4 장비관련입니다.
    [04/22] Re: 영화속에 컴퓨터 이야기 ~스워드피쉬(2001)
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~