Saslauthd服务实现SMTP发信认证
一、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发信认证的更多相关文章
- 【知识点】业务连接服务(BCS)认证概念整理
业务连接服务(BCS)认证概念整理 I. BDC认证模型 BDC服务支持两种认证模型:信任的子系统,模拟和代理. 在信任的子系统模型中,中间层(通常是Web服务器)通过一个固定的身份来向后端服务器取得 ...
- linux服务之smtp
实现这个协议的软件太多,有sendmail,postfix等.不像snmp,基本上是net-snmp一统天下, yum install nc nc用来取代telnet 这里我们希望让大家知道网络协议中 ...
- 分布式服务Dubbo+Zookeeper安全认证
前言 由于之前的服务都是在内网,Zookeeper集群配置都是走的内网IP,外网不开放相关端口.最近由于业务升级,购置了阿里云的服务,需要对外开放Zookeeper服务. 问题 Zookeeper+d ...
- cinder服务端的keystone认证机制
keystone在openstack中的地位 Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用户的身份认证.基于角色的授权管理.其他OpenStack服务的地址发现和安全策 ...
- spring cloud eureka 服务端开启密码认证后,客户端无法接入问题
Eureka服务端开启密码的认证比较简单 在pom文件中加入: <dependency> <groupId>org.springframework.boot</group ...
- Spring cloud微服务安全实战-6-2JWT认证之认证服务改造
首先来解决认证的问题. 1.效率低,每次认证都要去认证服务器调一次服务. 2.传递用户身份,在请求头里面, 3.服务之间传递请求头比较麻烦. jwt令牌. spring提供了工具,帮你在微服务之间传递 ...
- 微服务系列之授权认证(一) OAuth 2.0 和 OpenID Connect
1.传统架构的授权认证 传统应用架构,用户使用账号密码登录后,可以使用前端cookie存储登录状态,也可以使用后端session方式存储登录状态,小应用这么做其实很高效实用,当应用需要横向扩展时,就需 ...
- 微服务系列之授权认证(二) identity server 4
1.简介 IdentityServer4 是为ASP.NET Core系列量身打造的一款基于 OpenID Connect 和 OAuth 2.0 认证授权框架. 官方文档:https://ident ...
- 微服务系列之授权认证(三) JWT
1.JWT简介 官方定义:JWT是JSON Web Token的缩写,JSON Web Token是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,可以将各方之间的信息作为JSON ...
随机推荐
- 基本服务器的AAA实验
一.实验拓扑 二.网络地址分配 三.不同网段互相PING通 PC-A ping PC-B PC-A ping PC-C PC-B ping PC-C 四.配置过程 (1)在路由器R1上配置本地用户账号 ...
- go语言调度器源代码情景分析之一:开篇语
专题简介 本专题以精心设计的情景为线索,结合go语言最新1.12版源代码深入细致的分析了goroutine调度器实现原理. 适宜读者 go语言开发人员 对线程调度器工作原理感兴趣的工程师 对计算机底层 ...
- Base64编码转换原理
Base64编码,是我们程序开发中经常使用到的编码方法.它是一种基于用64个可打印字符来表示二进制数据的表示方法.它通常用作存储.传输一些二进制数据编码方法.它其实只是定义用可打印字符传输内容一种方法 ...
- ES6语法的学习与实践
ES6是JavaScript语言的新一代标准,是ECMAScript的第六个版本,加入了很多新的功能和语法,在很多框架,如在使用Vue,React等框架的项目中一般都采用ES6语法来编写的,下面对经常 ...
- WebGL three.js学习笔记 阴影与实现物体的动画
实现物体的旋转.跳动以及场景阴影的开启与优化 本程序将创建一个场景,并实现物体的动画效果 运行的结果如图: 完整代码如下: <!DOCTYPE html> <html lang=&q ...
- 抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式概述 定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类 抽象工厂抽象工厂,顾名思义,就是比工厂模式更抽象的工厂模式.在工厂模式中,一个具体工厂只负责生产一个具体产品 ...
- Android拦截并获取WebView内部POST请求参数
起因: 有些时候自家APP中嵌入的H5页面并不是自家的.但是很多时候又想在H5不知情的情况下获取H5内部请求的参数,这应该怎么做到呢? 带着这个疑问,就有了这篇博客. 实现过程: 方案一: 最开始想到 ...
- gitbook 入门教程之环境要求
gitbook 是基于 node.js 的命令行工具,首先需要安装并配置好 node.js 环境,然后才能安装gitbook 相关工具. 由于安装工具全部都是国外网站,因此速度可能会很慢,也可能需要F ...
- 产品经理之UML表达业务逻辑
文章大纲 一. 什么是UML二. UML基础介绍三.UML实例介绍四.参考文档 一. 什么是UML UML(Unified Modeling Language,统一建模语言) 是一种在软件设计 ...
- python3 完全理解赋值,浅copy,深copy 通过地址详细理解~
额...老规矩,先来一天NLP再说,也没几条了. 十,在任何一个系统里,最灵活的部分是最能影响大局的部分 灵活便是有一个以上的选择,选择便是能力,因此最灵活的人便是最有能力的人. 灵活来自减少只相信自 ...