'redhat'에 해당되는 글 1건

Posted on 2008/09/08 12:00
Filed Under [1] IT 관련/2. Linux

Qmail - 설치 순서
--------------------
1. uscpi
변경할 것
vi conf-home
/usr/local 를 /usr로 수정
vi conf-cc
gcc -O2를 gcc -O2 -march=i686 -funroll-loops로 수정
make
make setup check

2. daemontool
mkdir -p /package
chmod 1755 /package
tar xvfz daemontools-0.76.tar.gz -C /package
cd /package/admin/daemontools-0.76
patch -p1 < daemontool패치
package/install

3. autorespond
tar xzf autorespond-2.0.2.tar.gz
cd autorespond-2.0.2
make
cp autorespond /usr/local/bin/

4. qmail
유져 추가
groupadd -f -g 81 nofiles
groupadd -f -g 82 qmail
useradd -c "Mail Server" -g 81 -u 81 -s /bin/false -r -d /var/qmail qmaild
useradd -c "Mail Server" -g 81 -u 82 -s /bin/false -r -d /var/qmail/alias alias
useradd -c "Mail Server" -g 82 -u 83 -s /bin/false -r -d /var/qmail qmailq
useradd -c "Mail Server" -g 82 -u 85 -s /bin/false -r -d /var/qmail qmails
useradd -c "Mail Server" -g 81 -u 86 -s /bin/false -r -d /var/qmail qmaill
useradd -c "Mail Server" -g 81 -u 87 -s /bin/false -r -d /var/qmail qmailp

qmail glibc패치를 가한후 아래 명령 실행
mkdir /var/qmail
chown 0.qmail /var/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-smtpd/run
#!/bin/sh
Q_UID=`id -u qmaild`
Q_GID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -vRHl 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=""
serverip:allow,RELAYCLIENT=""

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-postmaster
echo postmaster > /var/qmail/alias/.qmail-mailer-daemon
cd /var/qmail/alias/
chmod 644 .qmail-root .qmail-postmaster .qmail-mailer-daemon

시동파일 받기
wget http://people.kldp.org/~eunjea/qmail-startup.txt
mv qmail-startup.txt qmail
mv qmail /etc/init.d
chmod 700 /etc/init.d/qmail
chkconfig --add qmail
chkconfig --level 345 qmail on

5. 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 || :

mkdir -p /home/vpopmail/etc
chmod 777 /home/vpopmail/etc/

mysql -u root -p
> CREATE DATABASE vpopmail;
> use vpopmail;
> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE on vpopmail.* to vpopmail;
> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE on vpopmail.* to
vpopmail@localhost;
> SET password for ‘vpopmail’@’%’=password(‘vpopmail’);
> SET password for ‘vpopmail’@’localhost’=password(‘vpopmail’);
> flush privileges;
> /q

ln -s /usr/mysql/include/mysql/ /usr/include/mysql
ln -s /usr/mysql/lib/mysql/ /usr/lib/mysql

./configure \
--enable-default-domain=jungyama.co.kr \
--enable-roaming-users=y \
--enable-tcprules-prog=/usr/bin/tcprules \
--enable-relay-clear-minutes=15 \
--enable-mysql-logging=y \
--enable-logging=e \
--enable-sqlincdir=/usr/include/mysql \
--enable-sqllibdir=/usr/lib/mysql \
--enable-mysql=y \
--enable-mysql-replication=y \
--enable-valias=y \
--enable-many-domains=n

make
make install-strip

echo “127.0.0.1:allow,RELAYCLIENT=\”\”” > /home/vpopmail/etc/tcp.smtp
echo “serverip:allow,RELAYCLIENT=\”\”” >> /home/vpopmail/etc/tcp.smtp

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

chown 110.110 /home/vpopmail/etc/tcp.smtp*
ln -s /usr/mysql/lib/mysql/libmysqlclient.so.10 /usr/lib/libmysqlclient.so.10

/home/vpopmail/bin/clearopensmtp
echo “localhost” > /var/qmail/control/locals
echo ‘export PATH=”$PATH:/home/vpopmail/bin”’ >> /etc/profile
source /etc/profile

crontab -e
10,25,40,55 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

vadddomain domain.com
vadduser user@domain.com

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


6. courier-imap
일반 유져 계정으로 압축풀고 명령을 실행
CFLAGS="-DHAVE_OPEN_SMTP_RELAY"; export CFLAGS
env LIBS="-L/usr/lib/mysql -lmysqlclient -lz" \
./configure \
--prefix=/usr \
--datadir=/usr/share/courier-imap \
--sysconfdir=/etc/courier-imap \
--libexecdir=/usr/libexec/courier-imap \
--localstatedir=/var \
--mandir=/usr/share/man \
--without-ipv6 \
--enable-unicode \
--with-authvchkpw \
--with-redhat \
--without-authdaemon \
--without-authmysql \
--without-authldap \
--without-authdaemon \
--without-authpgsql

make
make check
루트 권한으로
make install
make install-configure
cp -f courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
chown 0.0 /etc/rc.d/init.d/courier-imap
chmod 755 /etc/rc.d/init.d/courier-imap
chkconfig --add courier-imap
chkconfig --level 2345 courier-imap on
chmod 700 /home/vpopmail/lib/
chmod 600 /home/vpopmail/lib/libvpopmail.a
chown -R 110.110 /home/vpopmail/lib/
mv /etc/courier-imap/imapd /etc/courier-imap/imapd.backup
mv /etc/courier-imap/pop3d /etc/courier-imap/pop3d.backup

vi /etc/courier-imap/imapd
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=40
PIDFILE=/var/run/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
AUTHMODULES="authvchkpw authpam"
DEBUG_LOGIN=0
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
IMAP_IDLE_TIMEOUT=60
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=0
IMAP_OBSOLETE_CLIENT=0
IMAP_ULIMITD=65536
IMAP_USELOCKS=0
IMAP_ENHANCEDIDLE=0
IMAP_TRASHFOLDERNAME=Trash
IMAP_EMPTYTRASH=Trash:7
IMAP_MOVE_EXPUNGE_TO_TRASH=0
SENDMAIL=/usr/bin/sendmail
HEADERFROM=X-IMAP-Sender
OUTBOX=.Outbox
IMAP_KEYWORDS=1IMAPDSTART=YES

vi /etc/courier-imap/pop3d
ADDRESS=0
PIDFILE=/var/run/pop3d.pid
MAXDAEMONS=40
MAXPERIP=40
AUTHMODULES="authvchkpw authpam"
DEBUG_LOGIN=0
POP3AUTH=""
POP3AUTH_TLS=""
PORT=110
TCPDOPTS="-nodnslookup -noidentlookup"
POP3DSTART=YES

vi /etc/init.d/courier-imap

#!/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() {
export LANG=C
echo -n $"Starting $prog: "
# QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
# export QMAILQUEUE

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 \
`hostname -f` /home/vpopmail/bin/vchkpw /bin/true 2>&1 &

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

6. ezlm과 ezlm-idx
7. qmailadmin
8. qmailscanner
9. spamassasin
10. clamv
--------------------
vadddomain domain.com -> 도메인추가
vdeldomain domain.com -> 도메인삭제
vdeluser user@domain.com -> 사용자 삭제
vadduser user@domain.com -> 사용자 추가
qmail-qstat -> 큐상태
2008/09/08 12:00 2008/09/08 12:00

About

by Jaehun

Counter

· Total
: 51561
· Today
: 83
· Yesterday
: 106