基于用户认证来实现不同域的邮件转发

Postfix有两种方法可以实现发送邮件到不同的域,一种是信任网段,一种是身份认证。

Postfix想要认证用户,就需要使用额外的认证框架,因为Postfix提供的SMTP不具备认证的服务

所以须要使用SASL(Simple Authentication Secure Layer),系统默认已经安装cyrus-sasl软件

一、首先使用postfix  -a可以查看postfix可以使用哪种机制认证

    可以看到支持两种,其中一种就是cyrus

    wKioL1YyxP2CuYKRAAAvg7RQ0ag305.jpg

二、首先修改/etc/postfix/main.cf文件,设置除了127.0.0.0外拒绝给任何人中继

    这样就只有身份认证通过的用户才可以发送邮件了,大概在268

                wKiom1YyxILyVaghAACnco7FEGU932.jpg


    使用XP发送不是本域的邮件,发送不了,提示Relay  access  denied

                wKioL1YyxOKzxP1cAAHgIp3d5Kk969.jpg

三、开启认证,让通过认证的用户可以发送不是本域的邮件,这时候就用到了SASL服务,所以首先启动服务saslauthd

                wKiom1YyxN2CgXzoAABarps2KjA744.jpg

四、启动服务后,可以使用testsaslauthd来进行用户验证

        a1是系统新建的帐号,123是密码,提示的是认证失败

                wKiom1YyxPngoXrHAABSQjUPkf0620.jpg

五、修改/etc/sysconfig/saslauthd,使用shadow机制,重启服务在进行验证

    在次验证就是验证通过了

            wKioL1YyxWCCW4K1AALuvMqGjag307.jpg六、虽然SASL已经可能让用户通过认证,但是Postfix却还没有开启SASL认证

    所以需要修改配置文件配置文件中需要设置两点

                1.给postfix开启SASL认证

                2.限定只有通过认证的用户才能中继邮件

                    wKioL1Yyxd2wq4dTAACVhekQFys157.jpg                可以通过postconf  -d | grep  smtpd可以获取上面的选项

七、设置用户,要求身份验证,之后便可以发送不是本域的邮件了

        wKiom1YyxcqQNYAjAAGFnkmQ1H0628.jpg

                   


你可能感兴趣的:(邮件,sasl,用户认证,中继)