一、SMTP发信认证


通过sasl库中的saslauthd服务实现SMTP认证

二、部署


1.先安装postifx

2.生成sasl配置文件,实现使用sasl认证

vim /usr/lib64/sasl2/smtpd.conf    //编写sasl配置文件
pwcheck_method:saslauthd
vim /etc/sysconfig/saslauthd    //将sasl验证方式改为系统用户密码验证
将MECH=pam改为MECH=shadow
/etc/init.d/saslauthd restart    //启动sasl认证服务
chkconfig --level 35 saslauthd on //设置35级别的开机自启
chkconfig --list saslauthd //验证saslauthd服务35级别是否启动
testsaslauthd -u hehe -p 123        //验证sasl工作是否正常

3.编辑postfix配置文件

vim /etc/postfix/main.cf

  queue_run_delay = 3s          //每3s扫描一次delay的邮件
minimal_backoff_time = 3s //在3s内不会重发delay的邮件
maximal_backoff_time = 6s //在6s内则一定会重发邮件
maximal_queue_lifetime = 12s //邮件超过12s没有发出,则退信
smtpd_sasl_auth_enable = yes //启动SMTP认证
smtpd_sasl_security_options = noanonymous //禁止匿名使用SMTP服务
mynetworks = 127.0.0.1 //允许本服务器发送到外网地址
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination //定义地址过滤规则

4.验证

/etc/init.d/postfix restart    //重启邮件服务
客户端telnet测试
telnet mail.xueluo.org 25
EHLO mail.xueluo.org //宣告地址
AUTH LOGIN //需进行认证登陆
askw^& //输入加密的用户字符串(printf hehe | openssl base64)
783jhs2 //输入加密的用户密码(printf 123 | openssl base64)
MAIL FROM:hehe@xueluo.org
RCPT TO:haha@xueluo.org
DATA
aaaaaaa
.

三、Web界面发收邮件


web端软件可自行选择,这里使用squirrelmail,下载http://www.squirrelmail.org/

1.解压squirrelmail

tar -zxvf squirrelmail-webmail-1.4.22.tar.gz -C /usr/src/    //解压squirrelmail
yum -y install httpd php     //使用yum安装httpd和php软件包
cp -r /usr/src/squirrelmail-webmail-1.4.22/* /var/www/html/    //拷贝目录下的文件到Apache的网页目录
chown -R apache:apache /var/www/html/    //设置网页目录属主和属组为apache

2.配置

mv /var/www/html/config/config_default.php /var/www/html/config/config.php    //重命名模板文件为config.php
vim /var/www/html/config/config.php
118 $domain = 'xueluo.org'; //当前域
146 $smtpServerAddress = '192.168.1.10'; //SMTP服务IP
202 $imapServerAddress = '192.168.1.10'; //IMAP服务IP
212 $popServerAddress = '192.168.1.10'; //新增,POP服务IP
213 $popPort = 110; //新增,POP服务端口
259 $smtp_auth_mech = 'login'; //SMTP认证方式
mkdir -p /var/local/squirrelmail/data/    //新建目录
chown apache:apache /var/local/squirrelmail/data/    //设置apache为属主和属组
/etc/init.d/httpd start && chkconfig --level 35 httpd on    //重启服务,并设置35级别的开机自启

3.访问

浏览器 --> 192.168.1.10 -->输入用户名密码登录-->使用

四、设置postfix邮件附件大小


1. 修改/etc/php.ini

max_execution_time = 30    //改为60 (增加处理脚本的时间限制)
memory_limit = 8M //改为50M (这样才能发10M的附件)
post_max_size = 2M //改为50M
upload_max_filesize = 2M //改为50M

2. 修改/etc/postfix/main.cf

message_size_limit = 20480000

postfix的默认值是10M, 但这指的是邮件正文和编码后附件的总和, 经过base64编码,附件的大小会增加35%左右, 因此这里设定可接受邮件的大小为20M
可以使用如下命令查看postfix的有关设定: 
#/usr/sbin/postconf | grep size

3. 修改/var/www/extsuite/extmail/webmail.cf

SYS_MESSAGE_SIZE_LIMIT = 51200000

Saslauthd服务实现SMTP发信认证的更多相关文章

  1. 【知识点】业务连接服务(BCS)认证概念整理

    业务连接服务(BCS)认证概念整理 I. BDC认证模型 BDC服务支持两种认证模型:信任的子系统,模拟和代理. 在信任的子系统模型中,中间层(通常是Web服务器)通过一个固定的身份来向后端服务器取得 ...

  2. linux服务之smtp

    实现这个协议的软件太多,有sendmail,postfix等.不像snmp,基本上是net-snmp一统天下, yum install nc nc用来取代telnet 这里我们希望让大家知道网络协议中 ...

  3. 分布式服务Dubbo+Zookeeper安全认证

    前言 由于之前的服务都是在内网,Zookeeper集群配置都是走的内网IP,外网不开放相关端口.最近由于业务升级,购置了阿里云的服务,需要对外开放Zookeeper服务. 问题 Zookeeper+d ...

  4. cinder服务端的keystone认证机制

    keystone在openstack中的地位 Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用户的身份认证.基于角色的授权管理.其他OpenStack服务的地址发现和安全策 ...

  5. spring cloud eureka 服务端开启密码认证后,客户端无法接入问题

    Eureka服务端开启密码的认证比较简单 在pom文件中加入: <dependency> <groupId>org.springframework.boot</group ...

  6. Spring cloud微服务安全实战-6-2JWT认证之认证服务改造

    首先来解决认证的问题. 1.效率低,每次认证都要去认证服务器调一次服务. 2.传递用户身份,在请求头里面, 3.服务之间传递请求头比较麻烦. jwt令牌. spring提供了工具,帮你在微服务之间传递 ...

  7. 微服务系列之授权认证(一) OAuth 2.0 和 OpenID Connect

    1.传统架构的授权认证 传统应用架构,用户使用账号密码登录后,可以使用前端cookie存储登录状态,也可以使用后端session方式存储登录状态,小应用这么做其实很高效实用,当应用需要横向扩展时,就需 ...

  8. 微服务系列之授权认证(二) identity server 4

    1.简介 IdentityServer4 是为ASP.NET Core系列量身打造的一款基于 OpenID Connect 和 OAuth 2.0 认证授权框架. 官方文档:https://ident ...

  9. 微服务系列之授权认证(三) JWT

    1.JWT简介 官方定义:JWT是JSON Web Token的缩写,JSON Web Token是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,可以将各方之间的信息作为JSON ...

随机推荐

  1. 基本服务器的AAA实验

    一.实验拓扑 二.网络地址分配 三.不同网段互相PING通 PC-A ping PC-B PC-A ping PC-C PC-B ping PC-C 四.配置过程 (1)在路由器R1上配置本地用户账号 ...

  2. go语言调度器源代码情景分析之一:开篇语

    专题简介 本专题以精心设计的情景为线索,结合go语言最新1.12版源代码深入细致的分析了goroutine调度器实现原理. 适宜读者 go语言开发人员 对线程调度器工作原理感兴趣的工程师 对计算机底层 ...

  3. Base64编码转换原理

    Base64编码,是我们程序开发中经常使用到的编码方法.它是一种基于用64个可打印字符来表示二进制数据的表示方法.它通常用作存储.传输一些二进制数据编码方法.它其实只是定义用可打印字符传输内容一种方法 ...

  4. ES6语法的学习与实践

    ES6是JavaScript语言的新一代标准,是ECMAScript的第六个版本,加入了很多新的功能和语法,在很多框架,如在使用Vue,React等框架的项目中一般都采用ES6语法来编写的,下面对经常 ...

  5. WebGL three.js学习笔记 阴影与实现物体的动画

    实现物体的旋转.跳动以及场景阴影的开启与优化 本程序将创建一个场景,并实现物体的动画效果 运行的结果如图: 完整代码如下: <!DOCTYPE html> <html lang=&q ...

  6. 抽象工厂模式(Abstract Factory Pattern)

    抽象工厂模式概述 定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类 抽象工厂抽象工厂,顾名思义,就是比工厂模式更抽象的工厂模式.在工厂模式中,一个具体工厂只负责生产一个具体产品 ...

  7. Android拦截并获取WebView内部POST请求参数

    起因: 有些时候自家APP中嵌入的H5页面并不是自家的.但是很多时候又想在H5不知情的情况下获取H5内部请求的参数,这应该怎么做到呢? 带着这个疑问,就有了这篇博客. 实现过程: 方案一: 最开始想到 ...

  8. gitbook 入门教程之环境要求

    gitbook 是基于 node.js 的命令行工具,首先需要安装并配置好 node.js 环境,然后才能安装gitbook 相关工具. 由于安装工具全部都是国外网站,因此速度可能会很慢,也可能需要F ...

  9. 产品经理之UML表达业务逻辑

    文章大纲 一. 什么是UML二. UML基础介绍三.UML实例介绍四.参考文档   一. 什么是UML   UML(Unified Modeling Language,统一建模语言) 是一种在软件设计 ...

  10. python3 完全理解赋值,浅copy,深copy 通过地址详细理解~

    额...老规矩,先来一天NLP再说,也没几条了. 十,在任何一个系统里,最灵活的部分是最能影响大局的部分 灵活便是有一个以上的选择,选择便是能力,因此最灵活的人便是最有能力的人. 灵活来自减少只相信自 ...