LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1544|回复: 1

Postfix + CyrusSASL2

[复制链接]
发表于 2003-10-17 15:41:41 | 显示全部楼层 |阅读模式
安装好 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 让开机后自动运行。
 楼主| 发表于 2003-10-17 15:44:33 | 显示全部楼层
加入 procmail 的功能

下载
http://www.procmail.org/procmail-3.22.tar.gz
代码:

tar zxvf procmail-3.22.tar.gz
cd procmail-3.22
make
make install



然后在 /etc/postfix
pico main.cf

寻找代码:

#mailbox_command = /some/where/procmail
#mailbox_command = /some/where/procmail -a "$EXTENSION"



在底下加入
代码:

mailbox_command = /usr/bin/procmail



及/etc/logrotate.d/syslog

代码:

/var/log/procmail.log {
        monthly
        rotate 5
        nocompress
}



预设的 procmail 的 滤信条件是放在 /etc/procmailrc
由于您裝好procmail 在寻找procmailrc会找不到
您只要到 /etc/ 底下 pico procmailrc

代码:

############ ###
MAILDIR=/var/spool/mail
VERBOSE=off
PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin
LOGFILE=/var/log/procmail.log
LINEBUF=9999
###############
:0 HB
* ^.*Content-Type:.*
* ^.*[nN]ame=.*\.(pif|bat|vbs|js|hta|dll|scr|asd|chm|lnk|nws|ocx|reg|shb|shs|v
b|vbe|ws[cfh|PIF|BAT|VBS|JS|HTA|SCR|JS|ASD|CHM|LNK|NWS|OCX|REG|SHB|SHS|VB|VBE|WS[CFH])
/dev/null

这样就可以过滤一些有毒的信件

或是可以这样使用

:0 Bh
* AV女优
/dev/null





以上是简单的设定可以去参考procmail 的详细设置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表