一、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. Java集合--TreeSet详细解析

    目录 1.构造函数 2.增 3.删 4.比较器 总结 谈到TreeSet的特点,估计大家脑海里想到的都是:有序,不可重复,红黑树,基于Treemap实现,自定义排序等特点.这篇博客帮助大家从源码梳理下 ...

  2. [翻译 EF Core in Action 2.3] 理解EF Core数据库查询

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  3. 【公告】关于8.8MIP组件审核平台故障的说明

    故障通报 2017 年 8 月 8 日 下午 14:11,由于机器故障原因,MIP 组件管理平台暂时无法提供服务. 2017 年 8 月 8 日 下午 16:46, 故障已解决.MIP 组件管理平台服 ...

  4. 女朋友也能看懂的Zookeeper分布式锁原理

      前言 关于分布式锁,在互联网行业的使用场景还是比较多的,比如电商的库存扣减,秒杀活动,集群定时任务执行等需要进程互斥的场景.而实现分布式锁的手段也很多,大家比较常见的就是redis跟zookeep ...

  5. mysql 多实例部署

    Centos7.6 部署3个Mariadb 实例 [root@localhost ~]# yum install mariadb-server -y # 创建对应的目录文件 [root@localho ...

  6. 史上最全的大厂Mysql面试题在这里!

    1.MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联: 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中: 从:io线程——在使用star ...

  7. Dynamics Business Central-如何配置VS Code连接BC环境

    最近在研究Business Central,也就是以前的Dynamics NAV,需要配置Visual Studio Code连接BC环境,以下是配置的具体步骤. 1. VS Code下载,这个不多说 ...

  8. #if和#ifdef的区别

    学习STM32偶然发现:在Keil中直接预先定义宏USE_STDPERIPH_DRIVER,但是却没有指定宏的值.而在头文件中判断用的是如下代码: #ifdef USE_STDPERIPH_DRIVE ...

  9. ASP.NET开发中修改代码而不重启网站

    我们在做网站开发的时候,通常是写好了一个功能就要进行测试,Visual Studio上点“Start Debugging”(快捷键是F5),这是调试模式,也有直接运行模式,“Start Without ...

  10. Go语言strings包

    目录 strings包实现了用于操作字符的简单函数. func EqualFold 判断两个utf-8编码字符串(将unicode大写.小写.标题三种格式字符视为相同)是否相同. func Equal ...