스팸을 근절한다는 차원은 좋은데 이런 짓을 왜하는지 이해가 안됩니다.
잘 아시는 분은 설명좀..
먼저 /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
진흥원에서
2010년 대통령 보고때 스팸근절을 이유로 유동ip에 smtp포트를 587로 바꾸겠다고 그랬다는데요.
어느분 이야기로는 25번포트로는 보내는 메일에 인증을 못하기(???) 때문에 유동 ip에서는 587로 바꾸겠다고 진흥원이 그랬다는데
정말로 그렇게 생각을 했는지는 모르겠고, 올해 하반기에 시행한다고 그랬는데 그뒤로는 들은게 없네요.