邮件服务器
SMTP:简单邮件传输协议 基于tcp 监听25端口
POP3:邮局协议 Post Office Protocol 基于tcp 监听110端口
IMAP4:互联网邮件访问协议 Internet Mail Access Protocol 基于tcp 监听143端口
MIME : 多用户多功能互联网邮件扩展Multipurpose Internet Mail Extensions
MUA:邮件用户代理 Mail User Agent 常用的:Outlook,mutt,OE
MTA :提供SMTP SERVER 邮件传输代理 Mail Transfer Agent 是个统称 能够提供SMTP服务的服务器都叫MTA 软件Exchange Sendmail Lotus Note Domino Postfix Qmail Exim
/var/mail目录下用户均有文件
MDA: 邮件投递代理 Mail Delivery Agent 提供此服务的软件:procmail,maildrop
MAA :邮件访问代理 Mail Access Agent
提供POP3,IMAP4服务的软件: courrier-imap,dovecot
MSA:邮件提交代理
SASL:简单认证安全层 Simple Authentication Secure Layer 是种协议
clamav 病毒邮件扫描器 发现有毒的话则进行标示
caller 呼叫器: mimedefang,mailscanner,amavisd-new
用户的邮箱是个存储空间 类型:mbox,maildir
构建邮件服务器 三个软件 sendmail,postfix,exim
发邮件:mail -v 后跟发给谁 或者echo “文件正文” |mail -s ‘邮件主题’ 发给谁
允许其他主机发邮件的话 需要sendmail,sendmail-cf,sendmail-doc,m4软件包
sendmail所有配置文件都在/etc/mail下 主配置文件是sendmail.cf
在配置文件sendmail.mc中的116行改变文件 使其可对外服务
但是邮件服务器默认从主机到主机 在access中定义的有 如果允许谁发邮件 则在其中定义
sendmail不会识别access文件 要转换成access.db 重启服务自动转换
邮件别名
[email protected] à [email protected] 把发给neil的都转给aa
邮件别名在/etc/aliases 格式: neil: aa 或者写全称
这个文件不被识别 可以手动转换 newaliases 但是重启服务自动转换
可以群发 在/etc/aliases 格式:随便一名字: 要群发的对象(用户间用逗号隔开)
用到的被改的文件:(前面为使用的文件,后面是实则改动的文件)
sendmail.cf:sendmail.mc access.db:access local-host-names /etc/aliases.db:/etc/aliases
这些是用来发邮件的 用来接收邮件 必须安装接收邮件的包
dovecot包 用来接收邮件 属于MAA 提供以下四种服务:pop3,imap4,pops,imaps
dovecot主配置文件在/etc/dovecot.conf文件 找到protocols 来定义启动什么服务
用telnet受邮件时 用telnet 后跟服务器地址 后跟端口号110
进入后USER后跟用户名 PASS后跟密码 LIST查看邮箱邮件数 RETR后跟数字表示查看哪一封邮件
用mutt接收邮件 格式例如mutt -f pop://[email protected]
如何实现sendmail发邮件时的地址伪装
如果发件人有多个名字 在发邮件时统一名称
主配置文件/etc/mail/sendmail.mc 伪装地址修改MASQUERADE选项 启用以FEATURE开头的选项
如何让sendmail支持smtps,sasl
smtps监听465端口 用到证书
sasl 进程名字:saslauthd /usr/lib/sasl2目录中的配置文件说明下密码检测方法 在Sendmail.conf中添加mech_list:login plain
编码方式 echo -n“被编码内容” | openssl base64
imaps监听993端口 pop3s监听995端口
提供加密的imaps,pop3s服务 pop3àpop3s imapàimaps
创建 CA的步骤:cd /etc/pki/CA
openssl genrsa 1024 > private/cakey.pem生成私钥文件保留在此目录下
生成自签证书 生成前把/etc/pki/tls/openssl.cnf中的CA路径修改一下以及默认项 openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 6500
修改文件权限为600 cacert.pem private/cakey.pem
在/etc/pki/CA创建三个目录 certs,newcerts,crl 再创建三个文件 serial,index.txt echo 00 > serial
抓包工具:wireshark 抓包格式:tshark -ni eth0 -R “抓包条件”
例如:tshark -ni eth0 -R "tcp.srcport eq 110 or tcp.dstport eq 110"
纯粹为了测试使用的证书建立方法:
在/etc/pki/tls/certs下 make命令创建证书 例如make dovecot.pem
Postfix:和sendmail相同作用但是功能更大效率更高
Postfix是模块化设计 其中master进程最重要,是核心进程 在其管理下有很多子进程 在postfix启动时第一个启动的进程。 master.cf main.cf记录这些子进程在完整的实现一个邮件系统的时候所用到的服务参数 parameter = value(定义的值)
postconf –n 查看修改过的参数 postconf –d 查看默认参数 postconf 显示所有生效的选项
postconf –e 可以修改需要的参数为自己所需 用vim修改比较常用
查看main.cf接受哪些参数哪些命令 用man postconf 配置文件第五行 man后加5
安装postfix 后 启动服务前要卸载sendmail rpm –e sendmail –nodeps 忽略依赖关系强行卸载
主配置文件/etc/postfix/main.cf inet_interfaces选项指定监听的接口地址,多个接口用逗号隔开
NSS:名称服务转换
PAM:可插拔式认证模块
/lib/security下放着所有PAM可配置模块
在/etc/pam.d下有和模块名对应的进程
常见的模块:pam_unix.so 是完全实现认证的模块 实现本地用户在登录时认证的