您的位置:首页 > 大数据 > 人工智能

Mail,邮件服务(三):POP3认证机制,以及中继的规则

2011-08-23 18:40 344 查看
Mail,邮件服务(三):POP3认证机制,以及中继的规则
我们使用马哥的“基于虚拟用户的邮件系统架构做出我们已经有的邮件系统”的基础上来实现pop3的认证机制。

如果你还没有一个可以使用的邮件服务系统,那么可以按照马哥的说明,一步步的做下来,相信你是可以做到的。

进入正题:

POP3认证机制:

1.创建CA服务,为颁发证书做准备

# cd /etc/pki/CA

# vim ../tls/openssl.cnf 修改里面的默认配置路径和默认选项

dir = /etc/pki/CA

countryName_default = CN

stateOrProvinceName_default = HeNan

localityName_default = ZZ

0.organizationName_default = Linux

organizationalUnitName_default = TECH



# openssl genrsa 2048 > private/cakey.pem

# opsenssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650



# chmod 600 private/cakey.pem

# mkdir certs newcerts crl

# touch index.txt serial

# echo 01 > serial

# ll






2.为dovecot颁发证书

# mkdir /etc/dovecot 建立要存放的目录

# mkdir /etc/dovecot/ssl

# cd /etc/dovecot/ssl

# (umask 077;openssl genrsa 1024 > dovecot.key)

生成证书颁发请求

# openssl req -new -key dovecot.key -out dovecot.csr

里面服务器的名字很重要:pop3.a.org(此时我们还没有这个名字,需要一会儿去自己加入)

# openssl ca -in dovecot.csr -out dovecot.crt -days 3650

# rm dovecot.csr

此时,证书和私钥都有了。

# dovecot还要用到CA的证书,所以我们复制一个

# cp /etc/pki/CA/cacert.pem ./

# mv cacert.pem cacert.crt

# ll






3.配置dovecot使其支持认证机制

# vim /etc/dovecot.conf

修改

ssl_cert_file = /etc/dovecot/ssl/dovecot.crt

ssl_key_file = /etc/dovecot/ssl/dovecot.key

ssl_ca_file = /etc/dovecot/ssl/cacert.crt

开启

protocols = imap imaps pop3 pop3s



# service dovecot restart

# vim /var/named/a.org.zone

加入正向的 pop3 对应的ip,反向同理。

# service named reload



# mutt -f pops://weiyan@weiyan.org@pop3.weiyan.org

按r 拒绝,按o进入,发现需要输入密码






这时候,我们的收发邮件就是加密的了



检测:

开启抓包工具:

# tshark -ni eth0 -R “tcp.srcport eq 995 or tcp.dstport eq 995”

到另一台主机上

# mutt -f pops://gentoo@a.org@172.16.100.1






我们可以看到抓包抓出来的结果全都被显示成了加密后信息





中继的规则限制:

在main.cf中定义中继的规则,我们以虚拟域为例:



1.实现限制开放网段中的一个或者几个ip

smtpd_client_restrictions = file

file这个文件可以自定义 文件内容只要写成

172.16.100.100 REJECT

这样的格式,就表明不能让172.16.100.100转发,在REJECT后还可以加上REJECT信息。

定义完成后使用postmap命令将其转换成*.db的二进制文件

# postmap file

编辑main.cf 修改

smtpd_client_restrictions = hash:/filename



这时候,我们去指定哪个ip地址的主机上发邮件试试,应该会被拒绝

而我们如果使用其他的IP就可以实现。





2.限定拒绝某个特定邮件地址

smtpd_sender_restrictions = file

我们也需要建立一个新文件来定义



centos@a.org REJECT

@a.org REJECT

gentoo@ REJECT



第一个意思是拒绝 centos@a.org

第二行意思是拒绝 所有是a.org域的转发

第三行是拒绝所有gentoo用户的无论哪个域的转发

# postmap file

vim /etc/postfix/main.cf

smtpd_sender_restrictions = hash:/etc/postfix/sender
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: