스팸을 근절한다는 차원은 좋은데 이런 짓을 왜하는지 이해가 안됩니다.


잘 아시는 분은 설명좀.. 


먼저 /etc/services 파일에서 587 port 확인을 하고, iptables나 방화벽이 설치되어 있다면, 587 port를 열어줍니다.


다 했으면 아래 작업 시작하면 됩니다.


Xmail 은 MAIL_CMD_LINE 에서 아래와 같이 기본 port인 25 이외에 port 587을 추가합니다.


문법 설명은 0.0.0.0 --> 모든 IP에서 포트 허용을 하겠다는 것입니다.


-SI [0.0.0.0]:25 -SI [0.0.0.0]:587


Qmail의 경우


기존 설치되어 있는 qmail-smtp dir 아래 모든 것을 copy 해서 qmail-smtpd-sub dir을 생성 및  스크립트 587 수정, 그리고 qmail start script 수정하면 됩니다.


그대로 베껴서 하셔도 됩니다.

cd /var/qmail/supervise

pwd


cp -Rfp qmail-smtpd qmail-smtpd-sub

cd qmail-smtpd-sub

vi run

Q_UID=`id -u vpopmail`

Q_GID=`id -g vpopmail`

exec /usr/local/bin/softlimit -m 30000000 \

/usr/local/bin/tcpserver -vRHl 0 -x /home/mail/etc/tcp.smtp.cdb \

-u $Q_UID -g $Q_GID 0 587(포트 25에서 587로 바꿔줍니다) \

/var/qmail/bin/qmail-smtpd domain(이부분은 수정하세요)


저장하고 빠져나옵니다.


start script 수정 (이것도 그냥 베끼면 됩니다)

vi /etc/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



###587###

if [ -e /service/qmail-smtpd-sub ] ; then

        if svok /service/qmail-smtpd-sub ; then

            svc -u /service/qmail-smtpd-sub

        else

            echo qmail-submission supervise not running

        fi

     else

        ln -s /var/qmail/supervise/qmail-smtpd-sub /service/

     fi

#########


        if [ -e /service/vpop ] ; then

             if svok /service/vpop ; then

                   svc -u /service/vpop

             else

                   echo pop3 supervise not running
             fi
        else
             ln -s /var/qmail/supervise/vpop /service/
        fi

    if [ -d /var/lock/subsys ]; then
      touch /var/lock/subsys/qmail
    fi
### CentOS 계열등에서 readproctitle 에러 발생시 아래 주석 제거(기본제거) ###
    ;;
  stop)
    echo "Stopping qmail..."
    echo "  qmail-smtpd"
    svc -dx /service/qmail-smtpd /service/qmail-smtpd/log
    svc -dx /service/qmail-smtpd-sub /service/qmail-smtpd-sub/log
     rm -f /service/qmail-smtpd
     rm -f /service/qmail-smtpd-sub
    echo "  qmail-send"
    svc -dx /service/qmail-send /service/qmail-send/log
     rm -f /service/qmail-send
    echo "  qmail pop3"
    svc -dx /service/vpop /service/vpop/log
             rm -f /service/vpop
    if [ -f /var/lock/subsys/qmail ]; then
      rm /var/lock/subsys/qmail
    fi
killall tcpserver 2>/dev/null
    ;;
  stat)
    svstat /service/qmail-send
    svstat /service/qmail-send/log
    svstat /service/qmail-smtpd
    svstat /service/qmail-smtpd/log
    svstat /service/vpop
    svstat /service/vpop/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 /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp
    chmod 644 /home/vpopmail/etc/tcp.smtp.cdb
    echo "Reloaded /home/vpopmail/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