- 论坛徽章:
- 0
|
系统为:SuSE Linux
安装 qmail 、vpopmail等,运行良好。
最近发现有非法用户使用smtp发垃圾信,因此加了smtp验证。
是通过:qmail-smtpd.c 这个补丁程序来加的。
编译等都正常,复制到qmail的bin目录,修改了vpopmail的vchkpw的setuid和setgid,同时修改了qmail的smtp启动脚本,修改后的如下:
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`
if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
if [ ! -f /var/qmail/control/rcpthosts ]; then
echo "No /var/qmail/control/rcpthosts!"
echo "Refusing to start SMTP listener because it'll create an open relay"
exit 1
fi
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 25 /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true 2>;&1
重新启动了qmail,然后outlook中设置了smtp验证,但用合法的用户和正确的密码也不能通过。
望,那为大虾不吝赐教!万分感谢……
注:这里的qmail-smtpd 是编译的有smtp验证的文件;同时vpopmail中设置了默认域;outlook中的用户名我试验了user@domain.com这样形式的也不能通过。 |
|