웹마스터 팁

안녕하세요..
DeX™입니다.
이번에는 qmail+mysql+vpopmail+qmailadmin을 설치하는 법을
올리려 합니다.
qmail.kldp.org에는 디망쉬님께서 올리신 소스로 프비에서
설치하는 법이 있습니다.

전 그냥 그냥 포트로 설치하는걸 기본으로 하겠습니다.



qmail과 vpopmail의 조합으로 다음과 같은 장점을 가질수 있다.
  - 시스템계정 등록 없이 메일계정을 별도로 등록할 수 있다.
  - 많은 도메인에 대한 메일계정을 관리하는데 편리하다.
  - 도메인과 메일계정을 mysql database로 관리한다.
  - 로밍유저의 smtp 릴레이가 가능하다.(스팸방지)
  - qmailadmin을 이용해 웹에서 메일계정 관리가 가능하다.
  - sqwebmail을 이용하면 웹 메일로도 사용가능하다.

라고 어디에선가 말이 나왔었습니다. ㅡ,.ㅡ;;



1.설치하기


## qmail 설치



cd /usr/ports/mail/qmail
make install
make disable-sendmail
make enable-qmail




make disable-sendmail은 /etc/rc.conf 파일에
sendmail_enable="NO" 라고 자동으로 수정해줍니다.

make enable-qmail은 mailwrapper 설정파일을 변경시켜줍니다.(/etc/mail/mailler.conf)


  * FreeBSD 4.x 버전에서는 mailwrapper가 sendmail을 대신해서 사용되고 있다.
  사용자가 /usr/sbin/sendmail, /usr/bin/mail, 또는 /usr/bin/newaliases 를
  호출하면 실제로는 심볼릭링크로 연결된 mailwrapper를 호출하게 된다.

  메일레퍼는 샌드메일을 대치하기 위해 설계되었고, /etc/mail/mailer.conf에
  설정된 내용에 따라 sendmail 대신 적절한 MTA를 불러오게 된다. 이러한
  정책은 시스템이 시작될때 어떤 MTA를 불러올것인지를 설정할 수 있게한다.

  mailwrapper의 설정파일은 /etc/mail/mailer.conf 이다.
  make enable-qmail함으로서 다음과 같이 바꼈을 것이다.

    # /etc/mail/mailer.conf -------------------
    sendmail        /var/qmail/bin/sendmail
    send-mail       /var/qmail/bin/sendmail
    mailq           /var/qmail/bin/qmail-qread
    newaliases      /var/qmail/bin/newaliases
    # -----------------------------------------

라고 어디에선가 말이 나와있더군요..
이해는 잘 안가지만.. 그러니까 기본 센드메일로 설정된걸 큐메일로 설정을
바꿔준다는 말처럼 이해가 되더군요.




alias를 설정합니다.



echo readex4@dexign.co.kr > /var/qmail/alias/.qmail-root
echo readex4@dexign.co.kr > /var/qmail/alias/.qmail-postmaster
echo readex4@dexign.co.kr > /var/qmail/alias/.qmail-mailer-daemon



기본 도메인을 설정하겠습니다.



cd /var/qmail/configure
./config-fast dexign.co.kr


만약 전에 djbdns를 설치하셨었다면 아래의 daemontools나 ucspi-tcp는 설치 안하셔도 됩니다.


## daemontools 설치

cd /usr/port/sysutil/daemontools
make install clean


## ucspi-tcp 설치

cd /usr/port/sysutil/ucspi-tcp
make install clean


## Ezmlm & Ezmlm-idx (Mailing List) 설치

cd /usr/ports/mail/ezmlm-idx
make -DWITH_MYSQL install
cp /usr/local/etc/ezmlmrc.sample /usr/local/etc/ezmlmrc
make clean


## autorespond 설치

cd /usr/ports/mail/autorespond
make install clean



2. 설정하기



## daemontools 설정하기

다 설치 하셨으면..
daemontools가 자동 실행이 되도록 설정을 해줍니다.
이작업 역시 djbdns를 이미 설치 하셨다면 하지 않아도 됩니다.

cp /usr/port/sysutil/daemontools/files/svscan.sh.sample /usr/local/etc/rc.d/svscan.sh
chmod a+x /usr/local/etc/rc.d/svscan.sh


## qmail 설정하기

djbdns와 같이 qmail을 실행시킬 유저를 만들어줍니다.



pw groupadd -n vchkpw
pw useradd -n vpopmail -g vchkpw -d /home/vpopmail -s /sbin/nologin



전 이렇게 했는데 vpopmail이란 디렉토리가 home 아래에 안만들어지더군요.
그래서 강제로 만들었죠.. vpopmail이라구요.
릴레이을 설정하기 위해 etc라는 디렉을 vpopmail 안에 만들어주었습니다.



mkdir /home/vpopmail
mkdir /home/vpopmail/etc

echo "127.0.0.:allow,RELAYCLIENT=""" > ~vpopmail/etc/tcp.smtp
echo "1.2.:allow,RELAYCLIENT=""" >> ~vpopmail/etc/tcp.smtp



요건 릴레이 설정을 해주는 부분이므로 qmail 홈페이지등을 참고하셔서 릴레이를 설정해주세요.
릴레이 설정이 끝났으면



cd /home/vpopmail/etc
tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

해서 cdb 파일을 만들어줍니다.


## vpopmail 설치 및 설정하기

vpopmail은 포트설치를 하면.. 지금까지 한 설정들이 다 틀어져 버리더군요..
그래서 소스 설치를 하겠습니다.
vpopmail.tar.gz 파일을 다운 받습니다. 최신버젼은 5.2.1이더군요..


tar xvzf vpopmail-5.2.1.tar.gz
cd vpopmail-5.2.1
./configure --enable-default-domain=dexign.co.kr
            --enable-roaming-users=y
            --enable-logging=y
            --enable-relay-clear-minutes=60
            --enable-mysql=y


--enable-default-domain은 vpopmail에서 사용될 기본도메인 설정하는겁니다.
--enable-roaming-users은 로밍서비스를 할때 넣는것이구요.
--enable-mysql은 vpopmail에서 mysql을 사용하겠다는 겁니다.
mysql을 사용한다고 했으므로
vmysql.h 파일을 수정해주셔야 합니다.



vi vmysql.h
-----------------------vmysql.h
/* Edit to match your set up */
#define MYSQL_UPDATE_SERVER "localhost"
#define MYSQL_UPDATE_USER   "vpopmail"
#define MYSQL_UPDATE_PASSWD "패스"

#define MYSQL_READ_SERVER   "localhost"
#define MYSQL_READ_USER     "vpopmail"
#define MYSQL_READ_PASSWD   "패스"
/* End of setup section*/
--------------------------------------------



이부분을 자신에 맞게 수정해주시면 됩니다.
그 다음에 mysql에서 vpopmail에서 사용할 디비와 유저등을 생성해줍니다.



mysql -u root -p 패스워드
-------------- mysql query --------------------
create database vpopmail;
use mysql;
insert into user values ('localhost'+ ','vpopmail',password('패스'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N');
insert into db values('%','vpopmail','vpopmail','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
flush privileges;
-------------- mysql query --------------------



다 생성해 주셨으면..
vpopmail을 컴파일하겠습니다.



make
make install-strip



릴레이서비스를 제공한다면(--enable-roaming-users=y) 크론테이블을 수정합니다.



crontab -e

9-59,10 * * * * /usr/home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null


가상도메인을 추가해주겠습니다.

가상도메인을 추가하기전에 dns에서 MX레코드를 추가해야 메일이 정상적으로
작동한다는 것을 알아두세요.



cd /home/vpopmail
./vadddomain dexign.co.kr 또는
./vadddomain dexign.co.kr postmaser-패스워드
  
  -> postmaster의 비밀번호를 입력하지 않으면 친절하게 비밀번호를 물어본답니다.
  
vadddomain을 하시면..

  /var/qmail/control/locals
  /var/qmail/control/rcpthosts
  /var/qmail/control/morercpthosts (if rcpthosts > than 50 lines)
  /var/qmail/control/virtualdomains
  /var/qmail/users/assign
  /var/qmail/users/cdb

  ~vpopmail/domains/test.com
  ~vpopmail/domains/test.com/postmaster/Maildir ...
  ~vpopmail/domains/test.com/vpasswd
  ~vpopmail/domains/test.com/vpasswd.cdb

등을 변경시켜준답니다.


## qmailadmin 설치 및 설정하기

qmailadmin 역시 소스 설치하겠습니다.
qmailadmin은 최신버젼이 1.0.6이더군요.



tar xvzf qmailadmin-1.0.6.tar.gz
cd qmailadmin-1.0.6
./configure --enable-htmldir=/home/html/mail/htdocs
                  --enable-cgibindir=/home/html/mail/cgi-bin



--enable-htmldir 는 아파치의 웹루트의 위치를
--enable-cgibindir는 아파치의 cgi-bin의 위치를 적어주시면 됩니다.



make
make install-strip



해주시면 qmailadmin이 설치됩니다.
웹브라우저로 http://hostname/cgi-bin/qmailadmin 을 확인합니다..
등록된 도메인과 Postmaster 비밀번호로 로그인해서 사용자 계정을
관리할 수 있습니다.
즉 웹에서 이메일사용자들을 관리할수 있게 해준답니다.

접속하시면 이미지가 깨져보일 수 있는데 그럴때는
qmailadmin 소스 디렉토리에 있는 images 디렉토리를 경로가
맞는 적당한 곳에 두시면 됩니다.


## 설정 마무리 하기

이제 거의다 완성이 되었습니다.
이제 마무리 설정등을 하겠습니다.
qmail.sh를 설정해야 하는데
qmail을 포트로 설치할경우엔 자동으로 /usr/local/etc/rc.d/에
qmail.sh라는게 있으므로 따로 설정하는게 없습니다.
그러므로 pop3와 smtp만 설정해주면 된답니다.



# POP3 설정하기

vi /var/qmail/qmail-pop3d.sh

------------------------qmail-pop3d.sh
#!/bin/sh
UID=`id -u vpopmail`
GID=`id -g vpopmail`
env - PATH="/var/qmail/bin:/usr/local/bin"
tcpserver -u $UID -g $GID -R 0 pop3 /var/qmail/bin/qmail-popup dexign.co.kr
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
----------------------------

chmod +x /var/qmail/qmail-pop3d.sh
ln -s /var/qmail/qmail-pop3d.sh /usr/local/etc/rc.d/qmail-pop3d.sh



# SMTP 설정하기

vi /var/qmail/qmail-smtpd.sh

---------------------qmail-smtpd.sh
#!/bin/sh
UID=`id -u vpopmail`
GID=`id -g vpopmail`
exec /usr/local/bin/softlimit -m 3000000
/usr/local/bin/tcpserver -v -p -x/home/vpopmail/etc/tcp.smtp.cdb
-u $UID -g $GID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 &
------------------------

chmod +x /var/qmail/qmail-smtpd.sh
ln -s /var/qmail/qmail-smtpd.sh /usr/local/etc/rc.d/qmail-smtpd.sh


유저관리나 가상도메인 관리하는법은 qmail 한글홈페이지등에서 검색하시면..
잘 나와 있습니다.

웹에서 관리하는법과..
커멘드 모드로 관리하는법..
이렇게 두가지로 관리를 할수 있답니다.

전 그냥 웹에서 관리합니다.

http://도메인/cgi-bin/qmailadmin

하면 로그인 화면이 나오죠..
아까 지정했던 도메인주소와 패스워드를 입력하면..
관리화면이 나오죠..
거기서 관리를 하면 쉽게 할수 있답니다.


마지막으로 리부팅 하시면 잘 작동 할겁니다.


3.참고한 글


- 한글 qmail 웹사이트 (http://qmail.kldp.org/)
- Qmail + Vpopmail for FreeBSD (http://www.systemadmin.co.kr/mod/doc_view.htm?doc_no=196)
- 디망쉬님의 qmail + vpopmail (http://qmail.kldp.org/bbs/read.php?table=bbs_tip&no=235)


4. 혼자말

여기까지 설치하는데 문제가 없었고 데몬이 잘 구동된다면 성공한 것입니다.
여기에 웹 메일을 붙이고자 한다면 sqwebmail을 설치하면 궁합이 잘 맞을 것이라고 하는데..
설치도 의외로 어렵습니다. (내가 바본가?)

또. sqwebmail은 한글을 지원하지 못하더군요.. ㅡ.,ㅡ;;
그래서 저도 지금 이 웹메일 부분에서 씨름중입니다.


메일이 보내지지 않거나 받지 못하는 문제가 발생된다면 경험적으로 봤을 때
dns 설정 오류가 제일 많습니다.

dns 서버의 MX 레코드 설정을 다시 한번 확인하시구요

또 한가지는 실행스크립트인 qmail-pop3d.sh 와 qmail-smtpd.sh 설정등을 확인해 보세요.
제목 글쓴이 날짜
[FreeBSD] qmail+mysql+vpopmail+qmailadmin 설치 [1] DeX™ 2002.11.26
Apache + PHP + Mysql확실한 연동 및 리눅스 재설치 정보 [2] file 최종우 2002.11.26
리눅스 서버를 구축해 보자! #1 [11] 꼬토 2002.11.21
보안설정을 하다^^ 유의할점. [3] Dopesoul 2002.10.14
나만의 ftp서버 만들기 제2부 -serv-u 4.0- [12] 레드 2002.10.09
자동 apm 설치 쉘스크립트(리눅스) [5] file 김동현 2002.09.15
PHP에서의 SQL문 보안취약성 [5] 김영빈 2002.09.09
[Apache] 윈도우 NT 계열에 서비스 등록하기 [1] file 스카이 2002.09.08
What is the MRTG? [4] Dopesoul 2002.09.06
웹호스팅 세팅기 1편 - 설치하기(2부) [3] 임현 2002.08.22
FTP 에 사용자추가후 로그인부분 추가하기 - 로그인 부분 [2] file DearMai 2002.08.12
FTP 에 사용자추가후 로그인부분 추가하기 - 사용자추가부분 [5] file DearMai 2002.08.12
ASP + MS SQL 기반 게시판 설치하기 - 두번째 file 오픈소스 2002.07.12
ASP + MS SQL 기반 게시판 설치하기 - 첫번째 file 오픈소스 2002.07.12
[알아서 나쁠것없는 10원짜리 팁!] 수십 수백명사용자의 일괄생성 방법! [6] 임현 2002.05.09
리눅스 아주 간단한 사용자 계정 주기-_- [7] i- 2002.03.12
관리자모드 - 관리자그룹만 모든 회원리스트보기 [2] 이지혜609 2007.10.23
포인트부여시 ...회원로그인 [2] 구본순 2007.08.28
mysql 관리하는 프로그램입니다. (7/26 13:03) 수정 [4] file 제로저아 2007.07.18
mysql 안쓰는 간단한 게시판. [20] 제로저아 2007.07.15