|
安装好 slackware 9.1 之后,便进行 mail server 的假设,只是先前在 9.0 运作正常的 postfix-2.0.14+sasl-2.1.13 换到 9.1 的环境后,却无法编译成功,于是只好将两者都更换成新的版本试试,底下便是安装的心得笔记,请供参考用...
cyrus-sasl-2.1.15
install:
在原码目录下执行如下指令,因为 slackware 沒有用 krb4 和 gssapi 这两种认证,所以要关掉它:
代码:
# ./configure --with-saslauthd --with-pwcheck --with-openssl --disable-krb4 -disable-gssapi
# make
# make install
装完后做个符号连接 soft link:
代码:
# ln -sf /usr/local/lib/sasl2 /usr/lib/sasl2
# ldconfig
test:
做测试,进入 saslauthd 目录下,编译出 testsaslauthd 程序?聿馐裕
代码:
# cd saslauthd
# make testsaslauthd
# saslauthd -a shadow
输入 username 和 password,成功的话会有 OK 的信息字样:
代码:
# ./testsaslauthd -u <username> -p <password>
0: OK "Success."
smtpd.conf file:
编辑 /usr/local/lib/sasl2/smtpd.conf 这个文件,这里我是用 saslauthd 的认证方式:
代码:
# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd
postfix-2.0.16
install:
在原码目录下执行如下指令安装:
代码:
# make tidy
# make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/include/sasl" AUXLIBS="-L/usr/local/lib -lsasl2"
# make
第一次安装时,记得要先将 /usr/sbin/sendmail 给 rename 掉,如果不想移除 sendmail 的话。
代码:
# mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF
如果先前有安装过 postfix 的话,请将底下的 install 换成 upgrade:
代码:
# make install
main.conf file:
预设是在 /etc/postfix 目录底下,底下是有关 sasl 设定的部份,其它的设定请见 postfix 的说明文件:
代码:
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
就这样,最后让 postfix 跑起来就 ok 了:
代码:
# saslauthd -a shadow
# postfix start
另外咨询:
当然,我自己有做一个rc.postfix 文件,方便我控制 postfix:
代码:
#!/bin/bash
RETVAL=0
start() {
if [ -f /usr/local/sbin/saslauthd ]; then
echo -n $"Starting Cyrus SASL saslauthd: "
/usr/local/sbin/saslauthd -a shadow
RETVAL=$?
echo OK
fi
if [ -f /usr/sbin/postfix ]; then
echo $"Starting Postfix mail system: "
/usr/sbin/postfix check && \
/usr/sbin/postfix start
RETVAL=$?
else
echo "Command postfix not found."
fi
echo ""
return $RETVAL
}
stop() {
echo -n $"Shutting down Cyrus SASL saslauthd: "
/bin/kill `/bin/cat /var/state/saslauthd/saslauthd.pid` && echo OK
echo $"Shutting down Postfix mail system: "
/usr/sbin/postfix stop
RETVAL=$?
echo ""
return $RETVAL
reload() {
/bin/kill -HUP `/bin/cat /var/state/saslauthd/saslauthd.pid` && \
echo -n "Reloading Cyrus SASL saslauthd: " && echo OK
echo "Reloading Postfix mail system: " && \
/usr/sbin/postfix reload
echo ""
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
sleep 1
start
;;
status)
echo -n "ostfix mail queue status: "
/usr/sbin/postqueue -p
echo ""
;;
*)
echo "Usage: rc.postfix {start|stop|reload|restart|status}"
exit 1
esac
exit $?
最后chmod u+x rc.postfix 让开机后自动运行。 |
|