2012-09-15

Mail]qmail+ mysql+ vpopmail+ qmailadmin 설치 기술 문서.



qmail+ mysql+ vpopmail+ qmailadmin 설치 기술 문서.

(이 글은 www.godisgreen.com/wikix/index.php 중

qmail+ mysql+ vpopmail+ qmailadmin 설치부분을 기초로 한 것입니다. )



mysql설치는 SQL란의 proftpd와 mysql의 연동 부분을 참조하세요...



(포트를 통한 설치)

1.qmail 설치 => 아래 답변을 참조하시기 바랍니다.(qmail-scanner를 설치시)

# 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/mailer.conf)


/etc/mail/mailer.conf 파일의 내용



# Configuration for mailwrapper is kept in /etc/mail/mailer.conf.
# Replace that file with this one to enable qmail under a sendmail
# disguise. Very useful.

sendmail /var/qmail/bin/sendmail
send-mail /var/qmail/bin/sendmail
mailq /var/qmail/bin/qmail-qread
newaliases /var/qmail/bin/newaliases
hoststat /var/qmail/bin/qmail-tcpto
purgestat /var/qmail/bin/qmail-tcpok




** 인용**

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

**인용 끝**


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

mailwrapper 의 설정파일은 /etc/mail/mailer.conf 이다. make enable-qmail 명령을 줌으로서 위의 내용과 같이 바뀌었을 것이다.


2. alias를 설정합니다.

(
snipper@ 설치할도메인은 예를들면 : abc@abc.com이 될 수 있다
그리고 위의 계정은 시스템에서 보내는 메일을 받아서 처리할 개인 메일계정이다.
)

echo snipper@설치할도메인 > /var/qmail/alias/.qmail-root
echo snipper@설치할도메인 > /var/qmail/alias/.qmail-postmaster
echo snipper@설치할도메인 > /var/qmail/alias/.qmail-mailer-daemon



3. 기본도메인을 설정합니다.

# cd /var/qmail/configure
# ./config-fast pettree.co.kr



4. daemontools와 ucspi-tcp설치하기

4.1. daemontools설치하기

# cd /usr/ports/sysutils/daemontools/
# make install clean



4.2. ucspi-tcp 설치

# cd /usr/ports/sysutils/ucspi-tcp
# make install clean



4.3. ezmlm & ezmlm-idx(mailing list 설치)

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



4.4. autorespond 설치

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



5. 설정하기

5.1. daemontools설정하기

정상적으로 설치가 된후 daemontools가 자동으로 실행되도록
설정을 해 줍니다.

# cp /usr/ports/sysutils/daemontools/files/svscan.sh.sample /usr/local/etc/rc.d/svscan.sh
# chmod a x /usr/local/etc/rc.d/svscan.sh



5.2. qmail설정하기

** 아래는 pw명령을 사용하여 작업한 내용입니다.

5.2.1. vpopmail용 계정 및 그룹 생성하기

# pw group add vchkpw
# pw user add vpopmail -g vchkpw -d /home/vpopmail -s /sbin/nologin



** pw명령으로 계정 생성시 홈디렉토리가 생성이 되지 않습니다.
(pw문제인지 명확치 않네요... 아님 ?션을 잘못 주었거나요...)

5.2.2. vpopmail 디렉토리 생성

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

릴레이를 설정하기 위해 /home/vpopmail/etc폴더를 만들어 줍니다.



5.2.3. 릴레이 설정하기

** 아래 127.0.0.으로 시작하는 구문은 반드시 필요합니다.
# echo "127.0.0.:allow,RELAYCLIENT=""" > ~vpopmail/etc/tcp.smtp

** 아래의 구문은 추가적으로 고정IP대역(1.2.x.x)을 추가하는 경우입니다.
** 아웃룩 같은 클라이언트 프로그램 이용시 자신이 사용하는 IP대역을 넣어주세요...

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



5.2.4. cdb 파일 만들기

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



6. vpopmail 설치하기

vpopmail은 포트 설치를 하면 지금까지 한 모든 설정들이 다 틀어져 버립니다.
그래서 소스 설치를 합니다.
vpopmail.tar.gz파일 을 다운 받습니다. (lynx를 사용합니다.)

# lynx inter7.com/vpopmail/vpopmail-5.4.0.tar.gz
(
** 만약 위 파일로 ~vpopmail/bin/vadddomain 도메인명 을 했을경우 core dump 에러가 떨어지면 아래의 파일로 작업을 해보기 바랍니다.

# lynx heanet.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.8.tar.gz
)



6.1. 압축풀기 및 설정하기(참조하는 문서는 5.2.1이나 현재는 5.4.0버전이네요)
**소스가 디렉토리는 /usr/src 에 있다고 가정합니다.



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

==>5.4.0에서는 --enable-mysql옵션이 --enable-auth-module=mysql로 변경되었네요.(아래의 ./configure 옵션을 사용하세요)

# ./configure --enable-roaming-users=y --enable-logging=y --enable-relay-clear-minutes=60 --enable-auth-module=mysql


참고: vpopmail 5.4.x 이상 버전은 --enable-default-domain 컴파일 옵션이 없어지고 ~vpopmail/etc/defaultdomain 파일을 사용하도록 되었다. 이 파일에 직접 default domain 이름을 넣어주면 된다

정상적으로 configure가 완료되면 아래와 비슷한 메시지가 출력될 것입니다.




vpopmail 5.4.0
Current settings
---------------------------------------

vpopmail directory = /home/vpopmail
uid = 1003
gid = 1003
roaming users = ON --enable-roaming-users
tcpserver file = /home/vpopmail/etc/tcp.smtp
open_smtp file = /home/vpopmail/etc/open-smtp
rebuild tcpserver file = ON --enable-rebuild-tcpserver-file (default)
password learning = OFF --disable-learn-passwords (default)
md5 passwords = ON --enable-md5-passwords (default)
file locking = ON --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
make seekable = ON --enable-make-seekable (default)
clear passwd = ON --enable-clear-passwd (default)
user dir hashing = ON --enable-users-big-dir (default)
address extensions = OFF --disable-qmail-ext (default)
ip alias = OFF --disable-ip-alias-domains (default)
domain quotas = OFF --disable-domainquotas (default)
auth module = mysql --enable-auth-module=mysql
mysql replication = OFF --disable-mysql-replication (default)
mysql logging = OFF --disable-mysql-logging (default)
mysql limits = OFF --disable-mysql-limits (default)
MySQL valias = OFF --disable-valias (default)
auth inc = -I/usr/local/include/mysql
auth lib = -L/usr/local/lib/mysql -lmysqlclient -lz
system passwords = OFF --disable-passwd (default)
pop syslog = show successful and failed login attempts
--enable-logging=y
auth logging = ON --enable-auth-logging (default)
all domains in one SQL table = --enable-many-domains (default)



6.2 mysql을 사용하여 인증을 한다고 설정을 하였으므로 vmysql.h파일을 수정합니다.

# vi vmysql.h

NOTE: As of vpopmail 5.3.25, MySQL connection info is stored in
23 ~vpopmail/etc/vpopmail.mysql. The format of the file is as follows:
24
25 read server|read port|read user|read password|read database
26 update server|update port|update user|update password|update database
27
28 Comments (lines starting with '#') are allowed. The first line contains
29 connection information for READING from the database. The second (option
al)
30 line contains connection information for UPDATING the database. If the
31 second line is left out, then vpopmail will use the same settings for
32 reading and updating.
33
34 Port should be the actual port, or 0 for default.
35
36 For example:
37
38 # This is the MySQL configuration file for vpopmail.
39 localhost|0|readonly|somepass|vpopmail
40 localhost|0|root|secret|vpopmail




vmysql.h 파일에 위와 같은 문구가 있네요. 내용인즉은 5.3.25 이후 부터 mysql과 연동하기 위해 ~vpopmail/etc/vpopmail.mysql 파일에

"호스트|포트|계정|비밀번호|DB명" 을 적어 넣고 관리를 한다고 하네요...



# cd ~vpopmail/etc
#echo "localhost|0|root|비밀번호|vpopmail" > vpopmail.mysql



6.3 mysql에서 vpopmail계정 생성하기

# mysql -u root -p mysql

password :



mysql> create database vpopmail;

mysql> use mysql;

mysql> insert into user values ('localhost','vpopmail',password('패스 '),'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','','0','0','0');

mysql> insert into user values ('lnx68.thesoft.co.kr','vpopmail',password('패스 '),'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','','0','0','0');

mysql>insert into db values('%','vpopmail','vpopmail','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

mysql> flush privileges;

mysql> q



6.4 vpopmail 컴파일및 설치

# cd /usr/src/vpopmail-5.4.0
# make
# make install-strip



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

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



6.6 가상도메인을 추가합니다.

가상도메인을 추가하기전에 dns에서 MX 레코드를 추가해야 정상적으로 작동합니다.

# cd ~vpopmail
# ./bin/vadddomain pettree.co.kr

위의 vadddomain을 하시면

/var/qmail/control/locals
/var/qmail/control/rcpthosts
/var/qmail/control/morercpthosts
/var/qmail/control/virtualdomains
/var/qmail/users/assign
/var/qmail/users/cdb



~vpopmail/domains/pettree.co.kr
~vpopmail/domains/pettree.co.kr/postmaster/Maildir ...
~vpopmail/domains/pettree.co.kr/vpasswd
~vpopmail/domains/pettree.co.kr/vpasswd.cdb

등을 변경시켜준답니다.





7. qmailadmin 설치 및 설정하기
7.0 apache, php설치는 서버게시판의 아파치 설치 부분을 참조 하세요.
7.1 qmailadmin 설치

qmailadmin 도 역시 소스를 다운받아 설치를 하겠습니다.

# cd /usr/src
# lynx http://qmail.kldp.org/src/vpopmail/qmailadmin/qmailadmin-1.2.1.tar.gz



# tar -xvzf qmailadmin-1.2.1.tar.gz
# cd qmailadmin-1.2.1
# ./configure --enable-htmldir=/usr/local/www/data --enable-cgibin-dir=/usr/local/www/cgi-bin

--enabe-htmldir 은 아파치의 웹문서 루트를 --enable-cgibin-dir은 아파치의 cgi-bin의 위치를 적어주면 됩니다.


정 상적으로 처리가 되면 아래와 같은 메시지가 보입니다.


qmailadmin 1.2.1
Current settings
---------------------------------------
cgi-bin dir = /usr/local/www/cgi-bin
html dir = /usr/local/www/data
image dir = /usr/local/www/data/images/qmailadmin
image URL = /images/qmailadmin
template dir = /usr/local/share/qmailadmin
qmail dir = /var/qmail
vpopmail dir = /home/vpopmail
autorespond dir = /usr/local/bin
ezmlm dir = /usr/local/bin
ezmlm idx = yes
mysql for ezmlm = yes
help = no
modify quota = no
domain autofill = no
modify spam check = no




# make
# make install-strip



7.2 설치 확인하기

웹브라우 저에서 http://hostname/cgi-bin/qmailadmin 을 입력하여 제대로 화면이 뜨고 동작을 하는지 확인합니다.

** qmailadmin 에서 계정 생성시 계정은 ~vpopmail/domains/도메인명/ 에 생성됨 Maildir도 자동으로 생성이 됩니다.



8. 설정 마무리 하기

이제 설정을 마무리 하겠습니다.
qmail.sh 를 설정해야 하는데 qmail을 포트로 설치한 경우에 자동으로 /usr/local/etc/rc.d/ 에 qmail.sh 라는게 따로 있으므로 설정하는게 없습니다. 그러므로 pop3와 smtp만 설정해 주면 됩니다.


(** 만약 qmail.sh 이 없는 경우 **)

8.0 qmail.sh 생성

# cp /var/qmail/boot/home /var/qmail/rc
# ln -s /var/qmail/rc /usr/local/etc/rc.d/qmail.sh



8.1 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 pettree.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



8.2 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




마 지막으로 리부팅 하면 됩니다.

댓글 없음:

댓글 쓰기