티스토리 뷰
[ Fedora 7에서 설치 기준 - 업데이트 : 2006.12.31 ]
큐메일은 모듈 방식으로 작동한다. 큐메일은 혼자서 작동하지 않는다. 슈퍼데몬과 같은 서버와 연계해서 실행해야 한다. xinetd와 tcpserver로 돌릴수 있다.그러나 보안과 속도면이나 큐메일과 잘 맞는것으로 보나 tcpserver로 돌리것을 권한다. 그래서 tcpserver가 포함된 ucspi-tcp를 설치한다.
1. ucspi-tcp 설치
http://cr.yp.to/ucspi-tcp/install.html 에서 ucspi-tcp-0.88.tar.gz를 다운 받은뒤 적당한 디렉토리에 압축을 푼다.
디렉토리에 있는 두가지 파일을 수정한다.
컴파일
2. qmail 설치
이제 qmail-1.03 을 설치한다. 참고로 deamontool은 이용하지 않는다.
ftp://ftp.eu.uu.net/pub/unix/mail/qmail/ 에서 qmail-1.03 을 다운로드
http://people.kldp.org/~eunjea/qmail/patch/ 에서 qmail-ej-cocktail-14.tar.gz을 다운로드
적당한 곳에 압축을 푼다.
* 참고로 cocktanl-14 이후에 추가 업데이트(cocktail_tls.patch)가 있음.(컴파일 에러때문에 패치필요)
큐메일 그룹과 유저를 추가한다.
큐메일은 /var/qmail을 기본 홈폴더로 한다. 그러나 관리상 /usr/bin 이 실행 기본 패스로 걸려있으므로 /var/qmail 폴더만 있고 그 아래 폴더들은 /usr/bin과 /etc로 링크. 언제나 /usr로 프리픽스를 하는것을 원해서 이렇게 한것뿐이다. 링크를 안 걸고 그냥 만들어 써도 관계없다.
sendmail 파일 있는경우 다른이름으로 백업후 교체
사용자 생성때 Maildir 을 만들기 위해 skel 디렉토리에 Maildir생성한다.
현재 경로 {적당한디렉토리}/qmail-1.03
메일을 /Maildir로 전송하기 위해 dot-qmail설정
/etc/profile.d/qmail.sh 파일 생성후 다음과 같은 내용입력
/etc/profile.d/qmail.csh 파일 생성후 다음과 같은 내용입력
/etc/qmqp.tcp 생성, /etc/services에 사용
/etc/services에 qmqp protocol 추가
사용되지 않는 파일,디렉토리를 지운다.(비사용)
3. vpopmail 설치
http://www.inter7.com/vpopmail.html 에서 vpopmail-5.4.25 소스 다운로드 받은뒤 압축을 푼다.
* Fedora 7에서 구버전은 컴파일 에러 남
vpopmail유저 추가와 그룹추가
폴더를 미리 만들어두지 않으면 나중에 etc/아래에 inc_deps lib_deps가 생성되지 않는다
vpop은 한번 인증한 사용자에게 일정기간동안 유동아이피라도 릴레이를 열어준다. clearopensmtp는 유동아피 유저들에게 임시적으로 열어준 오픈 릴레이 호스트 목록을 지워준다.지워주는 주기를 --enable-relay-clear-minutes=15 (15분)라고 정의해주었다. 설치한후 릴레이 설정을 한번 다 지워준다.
qmail의 설정파일을 다시 설정
qmail-vpop이라는 시작 스크립트를 /etc/rc.d/init.d/qmail 로 복사
기본 경로 추가해준다.
크론탭에 등록해서 주기적(15분마다)으로 릴레이 목록을 청소해준다.
기본 도메인을 추가한다.
자신의 도메인에 알수없는 유저명으로 올 경우 받을 이메일 주소다.(예:bravo@lzbravo.com)
가상 도메인을 하나 더 추가해주고 싶으면 위의 기본 도메인 추가시의 설정과 같다. 새로운 가상 도메인과 기존 가상 도메인의 알리아스를 만들기 위해서는
라는 명령으로 추가 큐메일을 한번 리스타트 시켜준다. 아웃룩으로 접속할때 주의할것은 가상도메인 유저는 사용자명 입력시 유저명@도메인명으로 입력해줘야 한다.vpop의 인증을 사용하므로 이같이 한다.
릴레이 테스트 페이지
http://people.kldp.org/~eunjea/relay-test.php
큐메일은 모듈 방식으로 작동한다. 큐메일은 혼자서 작동하지 않는다. 슈퍼데몬과 같은 서버와 연계해서 실행해야 한다. xinetd와 tcpserver로 돌릴수 있다.그러나 보안과 속도면이나 큐메일과 잘 맞는것으로 보나 tcpserver로 돌리것을 권한다. 그래서 tcpserver가 포함된 ucspi-tcp를 설치한다.
1. ucspi-tcp 설치
http://cr.yp.to/ucspi-tcp/install.html 에서 ucspi-tcp-0.88.tar.gz를 다운 받은뒤 적당한 디렉토리에 압축을 푼다.
tar xpfz ucspi-tcp-0.88.tar.gz
디렉토리에 있는 두가지 파일을 수정한다.
[conf-home]
/usr/local/ -> /usr/로 프리픽스 변경
[error.h]
#include <errno.h>추가
/usr/local/ -> /usr/로 프리픽스 변경
[error.h]
#include <errno.h>
컴파일
make
make setup check
chmod 0510 /usr/bin/tcpserver
chmod 0510 /usr/bin/tcpclient
make setup check
chmod 0510 /usr/bin/tcpserver
chmod 0510 /usr/bin/tcpclient
2. qmail 설치
이제 qmail-1.03 을 설치한다. 참고로 deamontool은 이용하지 않는다.
ftp://ftp.eu.uu.net/pub/unix/mail/qmail/ 에서 qmail-1.03 을 다운로드
http://people.kldp.org/~eunjea/qmail/patch/ 에서 qmail-ej-cocktail-14.tar.gz을 다운로드
적당한 곳에 압축을 푼다.
* 참고로 cocktanl-14 이후에 추가 업데이트(cocktail_tls.patch)가 있음.(컴파일 에러때문에 패치필요)
tar xpfz qmail-1.03.tar.gz
tar xpfz qmail-ej-cocktail-14.tar.gz
tar xpfz qmail-ej-cocktail-14.tar.gz
큐메일 그룹과 유저를 추가한다.
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
cd {적당한디렉토리}/qmail-1.03/
patch -p1 < ../cocktail_tls.patch
[conf-spawn]
1000 -> 255
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
cd {적당한디렉토리}/qmail-1.03/
patch -p1 < ../cocktail_tls.patch
[conf-spawn]
1000 -> 255
큐메일은 /var/qmail을 기본 홈폴더로 한다. 그러나 관리상 /usr/bin 이 실행 기본 패스로 걸려있으므로 /var/qmail 폴더만 있고 그 아래 폴더들은 /usr/bin과 /etc로 링크. 언제나 /usr로 프리픽스를 하는것을 원해서 이렇게 한것뿐이다. 링크를 안 걸고 그냥 만들어 써도 관계없다.
mkdir /var/qmail
chown 0.qmail /var/qmail
mkdir -p /etc/qmail/alias
mkdir -p /etc/qmail/control
mkdir -p /etc/qmail/users
ln -sf /etc/qmail/alias /var/qmail
ln -sf /etc/qmail/control /var/qmail
ln -sf /etc/qmail/users /var/qmail
ln -sf /usr/bin /var/qmail/bin
ln -sf /usr/share/man /var/qmail/man
make
make man
make setup check
chown 0.qmail /var/qmail
mkdir -p /etc/qmail/alias
mkdir -p /etc/qmail/control
mkdir -p /etc/qmail/users
ln -sf /etc/qmail/alias /var/qmail
ln -sf /etc/qmail/control /var/qmail
ln -sf /etc/qmail/users /var/qmail
ln -sf /usr/bin /var/qmail/bin
ln -sf /usr/share/man /var/qmail/man
make
make man
make setup check
sendmail 파일 있는경우 다른이름으로 백업후 교체
mv /usr/lib/sendmail /usr/lib/sendmail.old
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -sf /var/qmail/bin/qmail-qread /usr/bin/mailq
rm -rf /var/qmail/boot/
rm -rf /var/qmail/doc/
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -sf /var/qmail/bin/qmail-qread /usr/bin/mailq
rm -rf /var/qmail/boot/
rm -rf /var/qmail/doc/
사용자 생성때 Maildir 을 만들기 위해 skel 디렉토리에 Maildir생성한다.
/var/qmail/bin/maildirmake /etc/skel/Maildir
현재 경로 {적당한디렉토리}/qmail-1.03
./config
설정 파일을 만드는 과정이다. 만약 이렇게 해서 에러가 난다면 config-fast에 자신의 도메인을 넣는다.
./config-fast lzbravo.com
설정 파일을 만드는 과정이다. 만약 이렇게 해서 에러가 난다면 config-fast에 자신의 도메인을 넣는다.
./config-fast lzbravo.com
메일을 /Maildir로 전송하기 위해 dot-qmail설정
echo './Maildir/' > /etc/qmail/dot-qmail
chmod 511 /etc/qmail/dot-qmail
chown 0.0 /etc/qmail/dot-qmail
chmod 511 /etc/qmail/dot-qmail
chown 0.0 /etc/qmail/dot-qmail
/etc/profile.d/qmail.sh 파일 생성후 다음과 같은 내용입력
export MAILDIR=$HOME/Maildir/
export MAILDROP=$HOME/Maildir/ 저장
export MAILDROP=$HOME/Maildir/ 저장
/etc/profile.d/qmail.csh 파일 생성후 다음과 같은 내용입력
setenv MAIL $HOME/Maildir/
setenv MAILDIR $MAIL
저장
chmod 755 /etc/profile.d/qmail.csh
chmod 755 /etc/profile.d/qmail.sh
chown 0.0 /etc/profile.d/qmail.sh
chown 0.0 /etc/profile.d/qmail.csh
setenv MAILDIR $MAIL
저장
chmod 755 /etc/profile.d/qmail.csh
chmod 755 /etc/profile.d/qmail.sh
chown 0.0 /etc/profile.d/qmail.sh
chown 0.0 /etc/profile.d/qmail.csh
/etc/qmqp.tcp 생성, /etc/services에 사용
127.0.0.1:allow
(예)192.168.0.:allow
:deny
저장
tcprules /etc/qmqp.cdb /etc/qmqp.tmp < /etc/qmqp.tcp
chmod 644 /etc/qmqp.*
(예)192.168.0.:allow
:deny
저장
tcprules /etc/qmqp.cdb /etc/qmqp.tmp < /etc/qmqp.tcp
chmod 644 /etc/qmqp.*
/etc/services에 qmqp protocol 추가
echo "qmail-qmqpd 628/tcp QMQP # Quick Mail Queueing Protocol" >> /etc/services
사용되지 않는 파일,디렉토리를 지운다.(비사용)
rpm -e procmail
rm -rf /var/spool/mail
rm -rf /var/spool/mail
3. vpopmail 설치
http://www.inter7.com/vpopmail.html 에서 vpopmail-5.4.25 소스 다운로드 받은뒤 압축을 푼다.
* Fedora 7에서 구버전은 컴파일 에러 남
tar xpfz vpopmail-5.4.25.tar.gz
vpopmail유저 추가와 그룹추가
groupadd -f -g 110 vchkpw > /dev/null 2>&1 || :
useradd -c "vpopmail" -g vchkpw -u 110 -s /bin/false -r -m -d /home/vpopmail vpopmail > /dev/null 2>&1 || :
useradd -c "vpopmail" -g vchkpw -u 110 -s /bin/false -r -m -d /home/vpopmail vpopmail > /dev/null 2>&1 || :
폴더를 미리 만들어두지 않으면 나중에 etc/아래에 inc_deps lib_deps가 생성되지 않는다
mkdir -p /home/vpopmail/etc
chmod 777 /home/vpopmail/etc
~vpopmail/etc/defaultdomain 파일을 만들고 도메인 입력
cd {적당한디렉토리}/vpopmail-5.4.25
./configure \
--enable-roaming-users=y \
--enable-tcprules-prog=/usr/bin/tcprules \
--enable-relay-clear-minutes=15 \
--enable-auth-logging=y \
--enable-logging=e
make
make install-strip
echo "127.0.0.1:allow,RELAYCLIENT=\"\"" > ~vpopmail/etc/tcp.smtp
echo ":allow" >> ~vpopmail/etc/tcp.smtp
chown 110.110 ~vpopmail/etc/tcp.smtp
tcprules ~vpopmail/etc/tcp.smtp.cdb ~vpopmail/etc/tcp.smtp.tmp < ~vpopmail/etc/tcp.smtp
chown 110.110 ~vpopmail/etc/tcp.smtp.cdb
chmod 777 /home/vpopmail/etc
~vpopmail/etc/defaultdomain 파일을 만들고 도메인 입력
cd {적당한디렉토리}/vpopmail-5.4.25
./configure \
--enable-roaming-users=y \
--enable-tcprules-prog=/usr/bin/tcprules \
--enable-relay-clear-minutes=15 \
--enable-auth-logging=y \
--enable-logging=e
make
make install-strip
echo "127.0.0.1:allow,RELAYCLIENT=\"\"" > ~vpopmail/etc/tcp.smtp
echo ":allow" >> ~vpopmail/etc/tcp.smtp
chown 110.110 ~vpopmail/etc/tcp.smtp
tcprules ~vpopmail/etc/tcp.smtp.cdb ~vpopmail/etc/tcp.smtp.tmp < ~vpopmail/etc/tcp.smtp
chown 110.110 ~vpopmail/etc/tcp.smtp.cdb
vpop은 한번 인증한 사용자에게 일정기간동안 유동아이피라도 릴레이를 열어준다. clearopensmtp는 유동아피 유저들에게 임시적으로 열어준 오픈 릴레이 호스트 목록을 지워준다.지워주는 주기를 --enable-relay-clear-minutes=15 (15분)라고 정의해주었다. 설치한후 릴레이 설정을 한번 다 지워준다.
~vpopmail/bin/clearopensmtp
qmail의 설정파일을 다시 설정
echo "localhost" > /var/qmail/control/locals
qmail-vpop이라는 시작 스크립트를 /etc/rc.d/init.d/qmail 로 복사
기본 경로 추가해준다.
#!/bin/bash
# This shell script takes care of starting and stopping Qmail.
#
# chkconfig: 2345 80 30
# description: Qmail is a small, fast, secure Mail Transport Agent, which \
# is the program that moves mail from one machine to another.
#
# processname: qmail-send
# Source function library.
. /etc/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# If Qmail is not available stop now.
[ -f /usr/bin/qmail-send ] || exit 0
RETVAL=0
prog="Qmail"
start() {
echo -n $"Starting $prog: "
qmail-start "`cat /etc/qmail/dot-qmail`" splogger qmail &
# Here we start qmail-smtpd with AUTH, vpop support.
tcpserver -p -c 1024 -u 110 -g 110 -x /home/vpopmail/etc/tcp.smtp.cdb \
-DRHl localhost 0.0.0.0 25 /usr/bin/tcp-env tcp-env /usr/bin/qmail-smtpd &
# Here we start qmail-pop3d with AUTH, vpop support.
tcpserver -c 1024 -u 110 -g 110 -DRHl localhost 0.0.0.0 110 /usr/bin/qmail-popup \
`hostname -f` /home/vpopmail/bin/vchkpw /usr/bin/qmail-pop3d Maildir &
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/qmail
return $RETVAL
}
stop() {
echo -n $"Shutting down $prog: "
killproc qmail-send
#killproc stunnel
killproc tcpserver
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/qmail
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
queue)
qmail-qstat
qmail-qread
;;
status)
status qmail-send
RETVAL=$?
;;
restart)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/qmail ]; then
stop
start
RETVAL=$?
fi
;;
*)
echo $"Usage: $0 {start|stop|queue|status|restart|condrestart}"
exit 1
esac
exit $RETVAL
# This shell script takes care of starting and stopping Qmail.
#
# chkconfig: 2345 80 30
# description: Qmail is a small, fast, secure Mail Transport Agent, which \
# is the program that moves mail from one machine to another.
#
# processname: qmail-send
# Source function library.
. /etc/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# If Qmail is not available stop now.
[ -f /usr/bin/qmail-send ] || exit 0
RETVAL=0
prog="Qmail"
start() {
echo -n $"Starting $prog: "
qmail-start "`cat /etc/qmail/dot-qmail`" splogger qmail &
# Here we start qmail-smtpd with AUTH, vpop support.
tcpserver -p -c 1024 -u 110 -g 110 -x /home/vpopmail/etc/tcp.smtp.cdb \
-DRHl localhost 0.0.0.0 25 /usr/bin/tcp-env tcp-env /usr/bin/qmail-smtpd &
# Here we start qmail-pop3d with AUTH, vpop support.
tcpserver -c 1024 -u 110 -g 110 -DRHl localhost 0.0.0.0 110 /usr/bin/qmail-popup \
`hostname -f` /home/vpopmail/bin/vchkpw /usr/bin/qmail-pop3d Maildir &
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/qmail
return $RETVAL
}
stop() {
echo -n $"Shutting down $prog: "
killproc qmail-send
#killproc stunnel
killproc tcpserver
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/qmail
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
queue)
qmail-qstat
qmail-qread
;;
status)
status qmail-send
RETVAL=$?
;;
restart)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/qmail ]; then
stop
start
RETVAL=$?
fi
;;
*)
echo $"Usage: $0 {start|stop|queue|status|restart|condrestart}"
exit 1
esac
exit $RETVAL
echo 'export PATH="$PATH:/home/vpopmail/bin"' >> /etc/profile
. /etc/profile
. /etc/profile
크론탭에 등록해서 주기적(15분마다)으로 릴레이 목록을 청소해준다.
crontab -e
10,25,40,55 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
chmod 700 /etc/rc.d/init.d/qmail
chown 0.0 /etc/rc.d/init.d/qmail
/etc/rc.d/init.d/qmail restart
10,25,40,55 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
chmod 700 /etc/rc.d/init.d/qmail
chown 0.0 /etc/rc.d/init.d/qmail
/etc/rc.d/init.d/qmail restart
기본 도메인을 추가한다.
vadddomain lzbravo.com <- configure시 설정해준 기본 도메인명
vconvert -e -c lzbravo.com <- 자신의 시스템에 있는 기존 유저들을 vpop계정으로 변환
vconvert -e -c lzbravo.com <- 자신의 시스템에 있는 기존 유저들을 vpop계정으로 변환
자신의 도메인에 알수없는 유저명으로 올 경우 받을 이메일 주소다.(예:bravo@lzbravo.com)
- 알수없는 유저명으로 올 경우
echo "| /home/vpopmail/bin/vdelivermail '' bravo@lzbravo.com" > ~vpopmail/domains/lzbravo.com/.qmail-default
- qmail-root,qmail-mailer-daemon,qmail-postmaster 메일 포워드
echo "bravo@lzbravo.com" > ~vpopmail/domains/lzbravo.com/.qmail-root
cp ~vpopmail/domains/lzbravo.com/.qmail-root ~vpopmail/domains/lzbravo.com/.qmail-mailer-daemon
cp ~vpopmail/domains/lzbravo.com/.qmail-root ~vpopmail/domains/lzbravo.com/.qmail-postmaster
echo "| /home/vpopmail/bin/vdelivermail '' bravo@lzbravo.com" > ~vpopmail/domains/lzbravo.com/.qmail-default
- qmail-root,qmail-mailer-daemon,qmail-postmaster 메일 포워드
echo "bravo@lzbravo.com" > ~vpopmail/domains/lzbravo.com/.qmail-root
cp ~vpopmail/domains/lzbravo.com/.qmail-root ~vpopmail/domains/lzbravo.com/.qmail-mailer-daemon
cp ~vpopmail/domains/lzbravo.com/.qmail-root ~vpopmail/domains/lzbravo.com/.qmail-postmaster
가상 도메인을 하나 더 추가해주고 싶으면 위의 기본 도메인 추가시의 설정과 같다. 새로운 가상 도메인과 기존 가상 도메인의 알리아스를 만들기 위해서는
vaddaliasdomain new.com old.com
라는 명령으로 추가 큐메일을 한번 리스타트 시켜준다. 아웃룩으로 접속할때 주의할것은 가상도메인 유저는 사용자명 입력시 유저명@도메인명으로 입력해줘야 한다.vpop의 인증을 사용하므로 이같이 한다.
릴레이 테스트 페이지
http://people.kldp.org/~eunjea/relay-test.php
> useradd test
메일함 파일을 만드는 중: 그런 파일이나 디렉토리가 없음
다음과 같은 메시지가 보이는 경우 /etc/default/useradd 파일내
CREATE_MAIL_SPOOL=yes
"yes" 부분을 "no" 로 수정
메일함 파일을 만드는 중: 그런 파일이나 디렉토리가 없음
다음과 같은 메시지가 보이는 경우 /etc/default/useradd 파일내
CREATE_MAIL_SPOOL=yes
"yes" 부분을 "no" 로 수정
'Old' 카테고리의 다른 글
자바스크립트 이벤트 (0) | 2008.07.01 |
---|---|
SWFUpload (0) | 2008.03.18 |
Fedora Core 7 설치 (0) | 2007.12.27 |
Fedora Core4 설치 (0) | 2006.01.13 |
국가코드 (0) | 2005.12.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 게임
- kisa
- css
- javascript
- IE
- 버퍼문제
- 노바로직
- 자바스크립트
- epel
- 설치
- 캐슬
- 보안
- ajax
- swfupload
- 업데이트
- buffer-size
- mootools
- php
- 델타포스
- 리눅스
- deltaforce
- 버퍼사이즈
- Repository
- rwapm
- Style
- 무툴즈
- NODE_PATH
- castle
- novalogic
- 모듈 경로
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함