================== OS : redhat9 ================== 1. 필요한 프로그램 qmail-1.03.tar.gz qmail-103.patch qmail-1.03.errno.patch qmail-1.03.qmail_local.patch ucspi-tcp-0.88.tar.gz daemontools-0.76.tar.gz autorespond-2.0.2.tar.gz vpopmail-4.9.10.tar.gz /* qmailadmin-0.42.tar.gz ezmlm-0.53.tar.gz ezmlm-idx-0.40.tar.gz */ 2. qmail 설치 위 프로그램들을 모두 /usr/local/src/qmail 디렉토리 및에 다운로드한다. == qmail 컴파일 설치 == mkdir /var/qmail cd /usr/local/src/qmail tar zxvf qmail-1.03.tar.gz cp qmail*.patch qmail-1.03 cd qmail-1.03 -- qmail 에 필요한 계정과 그룹등록 -- vi INSTALL.ids (리눅스부분만 빼고 모두 삭제) ----------------------------------------------- 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 ------------------------------------------------- sh INSTALL.ids cat /etc/passwd (생성된 계정확인) 큐메일 패치 patch -p1 < ./qmail-103.patch patch -p1 < ./qmail-1.03.errno.patch patch -p1 < ./qmail-1.03.qmail_local.patch make make setup check 기본 /var/qmail/control 및의 설정 파일의 설정 ./config --> 실패시 다음을 실행한다. ./config-fast pentachord.com (여기서 pentachord.com 은 실제 도메인네임) == ucspi-tcp 설치 == cd .. tar zxvf ucspi-tcp-0.88.tar.gz cp ucspi-tcp-0.88*.patch ucspi-tcp-0.88/ cd ucspi-tcp-0.88 patch -p1 < ./ucspi-tcp-0.88.errno.patch patch -p1 < ./ucspi-tcp-0.88.nobase.patch patch -p1 < ./ucspi-tcp-0.88.a_record.patch make make setup check == daemontools 설치 == cd .. mkdir -p /package cp /usr/local/src/qmail/daemontools-0.76.* /package/ cd /package/ tar zxvf daemontools-0.76.tar.gz rm daemontools-0.76.tar.gz mv daemontools-0.76.errno.patch admin/daemontools-0.76/ cd admin/daemontools-0.76/ patch -p1 < ./daemontools-0.76.errno.patch package/install == autorespond 설치 == cd /usr/local/src/qmail tar zxvf autorespond-2.0.2.tar.gz cd autorespond-2.0.2 make make install 3. 스크립트 생성 vi /var/qmail/rc ------------------------------------------ #!/bin/sh exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir/ splogger qmail ------------------------------------------ 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 7340032 \ /usr/local/bin/tcpserver -vRH -l 0 -x /etc/tcp.smtp.cdb \ -u $Q_UID -g $Q_GID 0 25 /var/qmail/bin/qmail-smtpd 2>&1 -------------------------------------------------------------- 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 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="" 165.246.190.:allow,RELAYCLIENT="" --------------------------------- cf.) 후에 이 파일에 변경이 있는 경우 다음의 qmail 부트 스크립트를 이용해 다음과 같이 한다. /etc/rc.d/init.d/qmail cdb = tcprules의 $PATH 추가 (/usr/local/bin) vi ~/.bash_profile ------------------------------ PATH=$PATH:$HOME/bin:/usr/local/bin ------------------------------ export PATH=$PATH:/usr/local/bin =실제로 tcpserver가 읽을 수 있는 cdb 형식으로 바꿔준다 tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp = 기본계정 알리아스 설정 echo postmaster > /var/qmail/alias/.qmail-root echo postmaster > /var/qmail/alias/.qmail-mailer-daemon == qmail 시동파일 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 ------------------------------------------------------------------------------ chmod 700 /etc/rc.d/init.d/qmail 3. vpopmail 설치 - 유저, 그룹추가 groupadd vchkpw useradd -g vchkpw vpopmail - vpopmail 설치 cd /usr/local/src/qmail/ tar zxvf vpopmail-5.2.1.tar.gz cd vpopmail-5.2.1 ./configure --enable-default-domain=pentachord.com make make install-strip - pop3 시동파일 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 -vRH -l 0 -u $VPOP_UID -g $VPOP_GID 0 110 \ /var/qmail/bin/qmail-popup pentachord.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 (5초 이내로 daemontool에 의해 pop 데몬이 구동될 것이다) -기존의 sendmail 바이너리를 qmail 의 것으로 바꾼다. mv /usr/lib/sendmail /usr/lib/sendmail.old mv /usr/sbin/sendmail /usr/sbin/sendmail.old ln -s /var/qmail/bin/sendmail /usr/lib ln -s /var/qmail/bin/sendmail /usr/sbin -qmail 시동 ln -s /var/qmail/supervise/qmail-send /service/ ln -s /var/qmail/supervise/qmail-smtpd /service/ ============== 서버제어 ================ - 종료 cd /service/qmail-send rm -f /service/qmail-send svc -dx . log cd /service/qmail-smtpd rm -f /service/qmail-smtpd svc -dx . log cd /service/vpop rm -f /service/vpop svc -dx . - stat 보기 svstat /service/vpop/ - qmail 큐에 있는 메일을 강제로 배달하기 svc -a /service/qmail-send - 서버 잠시 중지 시키기 svc -p /service/qmail-send svc -p /service/qmail-smtpd svc -p /service/vpop - 다시 진행 시키기 svc -c /service/qmail-send svc -c /service/qmail-smtpd svc -c /service/vpop =========================================== ** 재대로 설정파일이 변경이 되었는지 확인해 보자. ** cat /var/qmail/control/locals ------------------------------------------------ localhost 주 도메인도 vpopmail이 관리하기로 했다면 /var/qmail/control/locals 파일의 내용은 localhost 만이 있어야 정상이다. 다른것이 있으면 지운다. cat /var/qmail/control/virtualdomains ----------------------------------------------- test.net:test.net tru64unix.co.kr:tru64unix.co.kr cat /var/qmail/users/assign ----------------------------------------------- +test.net-:test.net:515:510:/home/vpopmail/domains/test.net:-:: +tru64unix.co.kr-:tru64unix.co.kr:515:510:~vpopmail/domains/tru64unix.co.kr:-:: 4. vpopmail 사용하기 cd /home/vpopmail/bin - 도메인추가 ./vadddomain 1280.co.kr - 계정추가 ./vadduser suil@1280.co.kr ... .. . |
'Linux' 카테고리의 다른 글
비밀번호 만료일 제거 centOS (0) | 2021.06.21 |
---|---|
리눅스서버 설치후 보안세팅 (0) | 2019.01.10 |
백업 ftp + cron 설정 (0) | 2019.01.10 |
IP 알리아스 (0) | 2019.01.10 |
iptables로 IP, IP대역 막기 (0) | 2019.01.10 |