Qmail + vpopmail + APM설치 조회수:2185
########################################################################################
########################################################################################
########### Qmail + vpopmail + APM설치 #################################################
########################################################################################
########################################################################################
###################### mysql 설치 #####################################################
cd mysql-4.0.7
#./configure --prefix=/usr/local/mysql --with-charset=euc_kr
#make
#make install
#/usr/local/mysql/bin/mysql_install_db
#/usr/local/mysql/bin/mysqld_safe --user=root --language=korean & 으로 실행
#/etc/rc.d/rc.local 에 /usr/local/mysql/bin/mysqld_safe --user=root --language=korean & 추가
#/usr/local/mysql/bin/mysql -u root mysql 로 접속테스트
#tar xzf qmail-1.03.tar.gz
#cd qmail-1.03
#mkdir /var/qmail
유저,그룹이 생성
#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
#vi qmail-1.03/error.h
- #include <errno.h> 추가 redhat 9.0 해당
#make
#make setup check
#./config-fast mail.domain.com
이것이 정상적으로 실행 되었다면 /var/qmail/control/ 안에는 qmail이 정상적으로 작동하기 위한 설정 파일들이 생겨야 한다.
만약 그렇지 않다면 서버의 DNS 설정(MX 레코드)에 문제가 있는 것이다.
ucspi-tcp-0.88
#tar xzf ucspi-tcp-0.88.tar.gz
#cd ucspi-tcp-0.88
#vi ucspi-tcp-0.88/error.h
- #include <errno.h>추가 redhat 9.0 해당
#make
#make setup check
daemontools
#mkdir -p /package
#chmod 1755 /package
#cd /package
다운로드 받은 daemontools 소스 파일을 /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
#vi /admin/daemontools-0.76/src/error.h
- #include <errno.h>추가 redhat 9.0 해당
#package/install
autorespond
#tar xzf autorespond-2.0.2.tar.gz
#cd autorespond-2.0.2
#make
#cp autorespond /usr/local/bin/
모두 이상없이 설치가 되었다면 다시 qmail 운영에 필요한 스크립트들과 파일들을 만든다.
#vi /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
#vi /var/qmail/supervise/qmail-send/run 의 내용
#!/bin/sh
exec /var/qmail/rc
#vi /var/qmail/supervise/qmail-send/log/run 의 내용
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
#vi /var/qmail/supervise/qmail-smtpd/run
#!/bin/sh
Q_UID=`id -u vpopmail`
Q_GID=`id -g vpopmail`
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
위와 같이 qmaild 의 UDI,GDI 를 사용 하거나, vpopmail을 사용할 것이라면 vpopmail 권한으로 실행되도록 한다
#vi /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
#vi /etc/tcp.smtp의 내용
127.0.0.1:allow,RELAYCLIENT=""
192.168.1.200:allow,RELAYCLIENT=""
이 파일은 실제로 tcpserver가 읽을 수 있는 cdb 형식으로 바꿔야 하므로 다음과 같이 해준다.
#tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
qmail은 root 계정으로 메일을 배달하지 않으므로, 알리아스를 반듯이 만들어 줍니다.
그리고 postmaster, mailer-daemon 도 역시 일반 계정으로 알리아스를 만드는 것이 좋습니다.
예를 들어 이 주소들로 도착하는 메일은 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
# vi /etc/rc.d/init.d/qmail 추가
#!/bin/sh
# For Red Hat chkconfig
# chkconfig: - 80 30
# description: the qmail MTA
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH
case "$1" in
start)
echo "Starting qmail"
if [ -e /service/qmail-send ] ; then
if svok /service/qmail-send ; then
svc -u /service/qmail-send
else
echo qmail-send supervise not running
fi
else
ln -s /var/qmail/supervise/qmail-send /service/
fi
if [ -e /service/qmail-smtpd ] ; then
if svok /service/qmail-smtpd ; then
svc -u /service/qmail-smtpd
else
echo qmail-smtpd supervise not running
fi
else
ln -s /var/qmail/supervise/qmail-smtpd /service/
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/qmail
fi
;;
stop)
echo "Stopping qmail..."
echo " qmail-smtpd"
svc -dx /service/qmail-smtpd /service/qmail-smtpd/log
rm -f /service/qmail-smtpd
echo " qmail-send"
svc -dx /service/qmail-send /service/qmail-send/log
rm -f /service/qmail-send
if [ -f /var/lock/subsys/qmail ]; then
rm /var/lock/subsys/qmail
fi
;;
stat)
svstat /service/qmail-send
svstat /service/qmail-send/log
svstat /service/qmail-smtpd
svstat /service/qmail-smtpd/log
qmail-qstat
;;
doqueue|alrm|flush)
echo "Flushing timeout table and sending ALRM signal to qmail-send."
/var/qmail/bin/qmail-tcpok
svc -a /service/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /service/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /service/qmail-send
echo "Pausing qmail-smtpd"
svc -p /service/qmail-smtpd
;;
cont)
echo "Continuing qmail-send"
svc -c /service/qmail-send
echo "Continuing qmail-smtpd"
svc -c /service/qmail-smtpd
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /service/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /service/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /service/qmail-smtpd
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp.cdb
echo "Reloaded /etc/tcp.smtp."
;;
help)
cat <<HELP
stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
flush -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac
exit 0
위에 파일를 생성한다음
#chkconfig --add qmail
#ntsysv 에서 qmail 체크
#useradd -g vchkpw -d /home/vpopmail vpopmail
이제 vpopmail 을 설치하자.
#tar xzf vpopmail-5.2.tar.gz
#cd vpopmail-5.2
#vi vmysql.h
#ln -s /usr/local/mysql/include/mysql/ /usr/local/include/mysql
#ln -s /usr/local/mysql/lib/mysql/ /usr/local/lib/mysql
#./configure --enable-default-domain=domain.com --enable-mysql=y --enable-sqlincdir=/usr/local/include/mysql --enable-sqllibdir= /usr/local/lib/mysql --enable-roaming-users=y --enable-tcprules-prog=/usr/local/bin/tcprules --enable-relay-clear-minutes=15 --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp
#echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf && ldconfig
$ make
$ make install-strip
vpopmail의 로밍서비스는 고정되어 있지 않은 IP사용자들에게 smtp 릴레이를 지원해 줄수 있는 기능이다.
vpopmail은 먼저 POP 메일 유저의 암호를 확인한다음 얼마만큼의 시간동안 그 IP주소의 smtp 릴레이를 열어 놓게 된다.
다음과 같이 기본적인 tcp.smtp 파일을 만든다.
#echo "127.0.0.:allow,RELAYCLIENT=\"\"" > ~vpopmail/etc/tcp.smtp
위 내용은 반듯이 필요하며, 이제 추가적으로 고정 IP(또는 대역)를 추가할수도 있다. 다음은 C class 10.1.1.x 대의 IP 주소로 부터의 릴레이를 허용한다.
#echo "211.43.64.90.:allow,RELAYCLIENT=\"\"" >> ~vpopmail/etc/tcp.smtp
이제 기본 릴레이 파일을 만들었다면 다음 명령을 한번 실행해 준다.
#~vpopmail/bin/clearopensmtp // 주의
마지막으로 crontab을 하나 설정해야 하는데, 이것은 cron에 의해 주기적으로 실행되어 릴레이가 허용된 IP 주소중
pop 인증 시간이 한시간 이상된 것이 있으면 지워준다. vpopmail 컴파일시 별다른 옵션을 주지 않았다면 기본적으로 릴레이 허용 시간은 한시간이며 이것은 --enable-relay-clear-minutes= 옵션으로 바꿔줄수 있다.
# crontab -e
40 * * * * /home/vpopmail/bin/clearopensmtp
#vi /var/qmail/supervise/qmail-smtpd/run 의 내용
#!/bin/sh
Q_UID=`id -u vpopmail`
Q_GID=`id -g vpopmail`
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
#mkdir /var/qmail/supervise/vpop
#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 domain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1
이 파일에 실행 권한을 준다.
#chmod 755 /var/qmail/supervise/vpop/run
#ln -s /var/qmail/supervise/vpop /service
#vi /etc/xinetd.d/pop3
service pop3
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /var/qmail/bin/qmail-popup
server_args = babo.org /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir
log_type = FILE /var/log/xinetd.log
log_on_success = HOST
log_on_failure = HOST RECORD
}
##################### apache 설치 ######################################################################
cd httpd-2.0.43
./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE --enable-module=most --enable-shared=max --enable-so
make
make install
##################### imap 설치 ########################################################################
imap-2001a 버그가 존재하여 imap-4.7c를 이용하실것을 권장합니다.
# mv /usr/include/sys/time.h /usr/include/sys/time.h.ori
# ln -s /usr/include/time.h /usr/include/sys/time.h
# tar xvf imap-4.7c.tar
# cd imap-4.7c
# make slx
# cd ..
# cp -r imap-2001a /usr/local/imap
# cp -r imap-4.7c /usr/local/imap
# cd /usr/local/imap
# ln -s c-client include
# ln -s c-client lib
# cd /usr/local/imap/c-client
# ln -s c-client.a libc-client.a
# cd ..
# cp imapd/imapd /usr/sbin/in.imapd
# vi /etc/xinetd.d/imap
#vi /etc/xinetd.d/imap 추가
service imap
{
disable = no
flags = REUSE
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/in.imapd
log_on_failure += USERID
}
# /etc/init.d/xinetd restart
# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK localhost.localdomain IMAP4rev1 v12.264 server ready
a00 login phpmail@메일서버도메인명 비밀번호
a00 OK LOGIN completed
a01 list mbox *
* LIST (\NoInferiors) NIL INBOX
a01 OK LIST completed
a02 logout
#
# rm /usr/include/sys/time.h
# mv /usr/include/sys/time.h.ori /usr/include/sys/time.h
##################### php 설치 #####################################################################################
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-imap=/usr/local/imap "--with-imap-ssl=/usr/share/ssl" 에러날 경우 빼버림 --with-language=korean --with-charset=euc_kr --enable-track-vars --enable-module=so
make
make install
## httpd.conf 에 LoadModule php4_module modules/libphp4.so 가 있으면..php 모듈이 추가 되었으면 정상
httpd.conf 에 추가
AddType application/x-httpd-php .html .htm .php .inc
AddType application/x-httpd-php-source .phps
phpinfo 확인
########################################################################################
########################################################################################
########### Qmail + vpopmail + APM설치 #################################################
########################################################################################
########################################################################################
###################### mysql 설치 #####################################################
cd mysql-4.0.7
#./configure --prefix=/usr/local/mysql --with-charset=euc_kr
#make
#make install
#/usr/local/mysql/bin/mysql_install_db
#/usr/local/mysql/bin/mysqld_safe --user=root --language=korean & 으로 실행
#/etc/rc.d/rc.local 에 /usr/local/mysql/bin/mysqld_safe --user=root --language=korean & 추가
#/usr/local/mysql/bin/mysql -u root mysql 로 접속테스트
#tar xzf qmail-1.03.tar.gz
#cd qmail-1.03
#mkdir /var/qmail
유저,그룹이 생성
#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
#vi qmail-1.03/error.h
- #include <errno.h> 추가 redhat 9.0 해당
#make
#make setup check
#./config-fast mail.domain.com
이것이 정상적으로 실행 되었다면 /var/qmail/control/ 안에는 qmail이 정상적으로 작동하기 위한 설정 파일들이 생겨야 한다.
만약 그렇지 않다면 서버의 DNS 설정(MX 레코드)에 문제가 있는 것이다.
ucspi-tcp-0.88
#tar xzf ucspi-tcp-0.88.tar.gz
#cd ucspi-tcp-0.88
#vi ucspi-tcp-0.88/error.h
- #include <errno.h>추가 redhat 9.0 해당
#make
#make setup check
daemontools
#mkdir -p /package
#chmod 1755 /package
#cd /package
다운로드 받은 daemontools 소스 파일을 /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
#vi /admin/daemontools-0.76/src/error.h
- #include <errno.h>추가 redhat 9.0 해당
#package/install
autorespond
#tar xzf autorespond-2.0.2.tar.gz
#cd autorespond-2.0.2
#make
#cp autorespond /usr/local/bin/
모두 이상없이 설치가 되었다면 다시 qmail 운영에 필요한 스크립트들과 파일들을 만든다.
#vi /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
#vi /var/qmail/supervise/qmail-send/run 의 내용
#!/bin/sh
exec /var/qmail/rc
#vi /var/qmail/supervise/qmail-send/log/run 의 내용
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
#vi /var/qmail/supervise/qmail-smtpd/run
#!/bin/sh
Q_UID=`id -u vpopmail`
Q_GID=`id -g vpopmail`
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
위와 같이 qmaild 의 UDI,GDI 를 사용 하거나, vpopmail을 사용할 것이라면 vpopmail 권한으로 실행되도록 한다
#vi /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
#vi /etc/tcp.smtp의 내용
127.0.0.1:allow,RELAYCLIENT=""
192.168.1.200:allow,RELAYCLIENT=""
이 파일은 실제로 tcpserver가 읽을 수 있는 cdb 형식으로 바꿔야 하므로 다음과 같이 해준다.
#tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
qmail은 root 계정으로 메일을 배달하지 않으므로, 알리아스를 반듯이 만들어 줍니다.
그리고 postmaster, mailer-daemon 도 역시 일반 계정으로 알리아스를 만드는 것이 좋습니다.
예를 들어 이 주소들로 도착하는 메일은 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
# vi /etc/rc.d/init.d/qmail 추가
#!/bin/sh
# For Red Hat chkconfig
# chkconfig: - 80 30
# description: the qmail MTA
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH
case "$1" in
start)
echo "Starting qmail"
if [ -e /service/qmail-send ] ; then
if svok /service/qmail-send ; then
svc -u /service/qmail-send
else
echo qmail-send supervise not running
fi
else
ln -s /var/qmail/supervise/qmail-send /service/
fi
if [ -e /service/qmail-smtpd ] ; then
if svok /service/qmail-smtpd ; then
svc -u /service/qmail-smtpd
else
echo qmail-smtpd supervise not running
fi
else
ln -s /var/qmail/supervise/qmail-smtpd /service/
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/qmail
fi
;;
stop)
echo "Stopping qmail..."
echo " qmail-smtpd"
svc -dx /service/qmail-smtpd /service/qmail-smtpd/log
rm -f /service/qmail-smtpd
echo " qmail-send"
svc -dx /service/qmail-send /service/qmail-send/log
rm -f /service/qmail-send
if [ -f /var/lock/subsys/qmail ]; then
rm /var/lock/subsys/qmail
fi
;;
stat)
svstat /service/qmail-send
svstat /service/qmail-send/log
svstat /service/qmail-smtpd
svstat /service/qmail-smtpd/log
qmail-qstat
;;
doqueue|alrm|flush)
echo "Flushing timeout table and sending ALRM signal to qmail-send."
/var/qmail/bin/qmail-tcpok
svc -a /service/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /service/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /service/qmail-send
echo "Pausing qmail-smtpd"
svc -p /service/qmail-smtpd
;;
cont)
echo "Continuing qmail-send"
svc -c /service/qmail-send
echo "Continuing qmail-smtpd"
svc -c /service/qmail-smtpd
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /service/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /service/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /service/qmail-smtpd
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp.cdb
echo "Reloaded /etc/tcp.smtp."
;;
help)
cat <<HELP
stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
flush -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac
exit 0
위에 파일를 생성한다음
#chkconfig --add qmail
#ntsysv 에서 qmail 체크
#useradd -g vchkpw -d /home/vpopmail vpopmail
이제 vpopmail 을 설치하자.
#tar xzf vpopmail-5.2.tar.gz
#cd vpopmail-5.2
#vi vmysql.h
#ln -s /usr/local/mysql/include/mysql/ /usr/local/include/mysql
#ln -s /usr/local/mysql/lib/mysql/ /usr/local/lib/mysql
#./configure --enable-default-domain=domain.com --enable-mysql=y --enable-sqlincdir=/usr/local/include/mysql --enable-sqllibdir= /usr/local/lib/mysql --enable-roaming-users=y --enable-tcprules-prog=/usr/local/bin/tcprules --enable-relay-clear-minutes=15 --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp
#echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf && ldconfig
$ make
$ make install-strip
vpopmail의 로밍서비스는 고정되어 있지 않은 IP사용자들에게 smtp 릴레이를 지원해 줄수 있는 기능이다.
vpopmail은 먼저 POP 메일 유저의 암호를 확인한다음 얼마만큼의 시간동안 그 IP주소의 smtp 릴레이를 열어 놓게 된다.
다음과 같이 기본적인 tcp.smtp 파일을 만든다.
#echo "127.0.0.:allow,RELAYCLIENT=\"\"" > ~vpopmail/etc/tcp.smtp
위 내용은 반듯이 필요하며, 이제 추가적으로 고정 IP(또는 대역)를 추가할수도 있다. 다음은 C class 10.1.1.x 대의 IP 주소로 부터의 릴레이를 허용한다.
#echo "211.43.64.90.:allow,RELAYCLIENT=\"\"" >> ~vpopmail/etc/tcp.smtp
이제 기본 릴레이 파일을 만들었다면 다음 명령을 한번 실행해 준다.
#~vpopmail/bin/clearopensmtp // 주의
마지막으로 crontab을 하나 설정해야 하는데, 이것은 cron에 의해 주기적으로 실행되어 릴레이가 허용된 IP 주소중
pop 인증 시간이 한시간 이상된 것이 있으면 지워준다. vpopmail 컴파일시 별다른 옵션을 주지 않았다면 기본적으로 릴레이 허용 시간은 한시간이며 이것은 --enable-relay-clear-minutes= 옵션으로 바꿔줄수 있다.
# crontab -e
40 * * * * /home/vpopmail/bin/clearopensmtp
#vi /var/qmail/supervise/qmail-smtpd/run 의 내용
#!/bin/sh
Q_UID=`id -u vpopmail`
Q_GID=`id -g vpopmail`
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
#mkdir /var/qmail/supervise/vpop
#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 domain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1
이 파일에 실행 권한을 준다.
#chmod 755 /var/qmail/supervise/vpop/run
#ln -s /var/qmail/supervise/vpop /service
#vi /etc/xinetd.d/pop3
service pop3
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /var/qmail/bin/qmail-popup
server_args = babo.org /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir
log_type = FILE /var/log/xinetd.log
log_on_success = HOST
log_on_failure = HOST RECORD
}
##################### apache 설치 ######################################################################
cd httpd-2.0.43
./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE --enable-module=most --enable-shared=max --enable-so
make
make install
##################### imap 설치 ########################################################################
imap-2001a 버그가 존재하여 imap-4.7c를 이용하실것을 권장합니다.
# mv /usr/include/sys/time.h /usr/include/sys/time.h.ori
# ln -s /usr/include/time.h /usr/include/sys/time.h
# tar xvf imap-4.7c.tar
# cd imap-4.7c
# make slx
# cd ..
# cp -r imap-2001a /usr/local/imap
# cp -r imap-4.7c /usr/local/imap
# cd /usr/local/imap
# ln -s c-client include
# ln -s c-client lib
# cd /usr/local/imap/c-client
# ln -s c-client.a libc-client.a
# cd ..
# cp imapd/imapd /usr/sbin/in.imapd
# vi /etc/xinetd.d/imap
#vi /etc/xinetd.d/imap 추가
service imap
{
disable = no
flags = REUSE
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/in.imapd
log_on_failure += USERID
}
# /etc/init.d/xinetd restart
# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK localhost.localdomain IMAP4rev1 v12.264 server ready
a00 login phpmail@메일서버도메인명 비밀번호
a00 OK LOGIN completed
a01 list mbox *
* LIST (\NoInferiors) NIL INBOX
a01 OK LIST completed
a02 logout
#
# rm /usr/include/sys/time.h
# mv /usr/include/sys/time.h.ori /usr/include/sys/time.h
##################### php 설치 #####################################################################################
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-imap=/usr/local/imap "--with-imap-ssl=/usr/share/ssl" 에러날 경우 빼버림 --with-language=korean --with-charset=euc_kr --enable-track-vars --enable-module=so
make
make install
## httpd.conf 에 LoadModule php4_module modules/libphp4.so 가 있으면..php 모듈이 추가 되었으면 정상
httpd.conf 에 추가
AddType application/x-httpd-php .html .htm .php .inc
AddType application/x-httpd-php-source .phps
phpinfo 확인
'O / S > Linux' 카테고리의 다른 글
| alias (0) | 2007/06/20 |
|---|---|
| ip변경 (0) | 2007/06/20 |
| qmail+vpopmail+APM설치 (0) | 2007/06/20 |
| php설정시 imap 관련 오류시 읽어 볼거리.. (0) | 2007/06/20 |
| 아파치, php설정 (0) | 2007/06/20 |
| 센드메일, IMAP 설정 (0) | 2007/06/20 |
0 Trackback,
0 Comment,
:




최근에 달린 댓글
링크
최근에 받은 트랙백
태그목록