本文基于上篇文章基础地址:http://blog.csdn.net/deansrk/article/details/6717720
outlook实现收邮件
1.首先我们查看邮箱目录里文件的属主和属组
# 可以看到都是postfix用户,所以我们要访问这些文件,必须身份是postfix,而我们在外部收发邮件的时候,使用的不是postfix用户,那么该怎么办呢?
2.dovcot在验证用户是否有权限提取邮件,验证的是用户自身对应的身份,而通过网页extmail生成的用户对应的id都是1000的用户,那么我们如果修改这个映射关系。
vim /var/www/extsuite/extman/webman.cf
SYS_DEFAULT_UID = 2525 SYS_DEFAULT_GID = 2525 # 修改这两项为2525这样它对应的就是uid,gid为2525用户,也就是postfix id postfix uid=2525(postfix) gid=2525(postfix) groups=2525(postfix) context=root:system_r:unconfined_t:SystemLow-SystemHigh3.打开dovcot的debug功能来验证是否映射变为2525
vim /etc/dovcot
4.登录邮箱,查看日志,用户的uid,gid是否改变(只对新邮箱用户生效)
[root@mail ~]# telnet 192.168.0.12 110 Trying 192.168.0.12... Connected to ns1.a.org (192.168.0.12). Escape character is '^]'. +OK Dovecot ready. USER [email protected] +OK PASS dean123 +OK Logged in. Connection closed by foreign host. dovecot: Aug 23 05:25:18 Info: auth(default): master out: USER 1 [email protected] maildir=a.org/dean/Maildir/ uid=1000 gid=1000# 上面的是一个老用户,并没有改变uid和gid
5.修改Mysql使所有用户都生效
mysql -uroot -predhat mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | extmail | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) mysql> show tables; +-------------------+ | Tables_in_extmail | +-------------------+ | alias | | domain | | domain_manager | | mailbox | | manager | +-------------------+ 5 rows in set (0.00 sec) 将其他虚拟用户的映射也改为2525 update mailbox SET gidnumber=2525 WHERE uidnumber=1000; update mailbox SET gidnumber=2525 WHERE gidnumber=1000; SELECT * FROM mailbox\G #查看是否改成2525 修改后使用新账号测试下 mutt命令: pop3和imaps查看邮件和加密邮件的专用工具 mutt -f mailbox # 指定mailbox mutt -f pop://[email protected]@mail.a.org # 第一个@是邮箱帐号 第二个@后面的是邮件服务器地址 dovecot: Aug 23 21:59:34 Info: auth(default): master out: USER 6 [email protected] maildir=dean.com/gentoo/Maildir/ uid=2525 gid=2525
6.使用抓包工具tshark测试110端口的数据包
安装:
yum install wireshark
# 只要是进出110端口的数据包都进行抓取
tshark -ni eth0 -R "tcp.dstport eq 110 or tcp.srcport eq 110"
# 测试下捕获邮件数据包
mutt -f pop://192.168.0.12
--
# 110和143在收取邮箱和认证过程是都是铭文的,这样在传输的时候都很不安全。
----------------------------------------------------------------
如何实现加密邮件?
smtps: 在投递时加密,但是邮箱需要转发的情况下,只要有一个不支持加密,就没办法加密。
SSL: 需要两端都支持加密
S/MIME, GPG:实现端到端的邮件加密不管中间转发了多少主机,他们看到的邮件的内容都是加密过的,只负责转发邮件,用户根据自己的私钥,公钥,单向加密算法结合起来进行揭秘
早期的smtp协议只能传送文本,后来通过s/mime可以实现其他形式的编码,例如base64,这样就可以实现加密并且发送附件,只要给服务器端提供一个证书,pop3就升级为pop3s
----------------------------------------------------------------------------
1.建立ca
mkdir /etc/dovecot mkdir /etc/dovecot/ssl2.给dovcot颁发证书
openssl genrsa 1024 >dovecot.key openssl req -new -key dovecot.key -out dovecot.req openssl ca -in dovecot.req -out dovecot.pem # dovcot需要使用ca的证书,必要的时候需要使用客户的证书
3.编辑/etc/dovecot.conf
4.修改下dns
[root@mail ~]# cd /var/named [root@mail named]# vim dean.com.zone pop3.dean.com. IN A 192.168.0.32 [root@mail named]# vim 192.arpa 32 IN PTR pop3.dean.com.
5.测试下发送加密邮件
mutt -f pops://[email protected]@pop3.a.org
6.启动tshark再测试下
tshark -ni eth0 -R "tcp.srcp eq 995 or tcp.dstport eq 995"
------------------------------------------------------------
中继管理
假设在一个网段,172.16.0.0 现在只需要拒绝172.16.100.100
vim /etc/postfix/main.cnf smtpd_recipient_restrictions = # 限定用户 smtpd_client_restrictions = # 限定
# 上面两种限制都支持编辑某一特定的文本,通过那个文本来限制
-------------------------------------------------------------------------------------
明确指定拒绝发件人