Linux邮箱服务器配置:如何让outlook收发邮件,怎么样控制中继


本文基于上篇文章基础地址:http://blog.csdn.net/deansrk/article/details/6717720

 

outlook实现收邮件


1.首先我们查看邮箱目录里文件的属主和属组

[root@mail ~]# ll /var/mailbox/a.org/gentoo/Maildir/
total 60
-rw------- 1 postfix postfix 356 Aug 23 00:52 abook.cf
drwx------ 2 postfix postfix 4096 Aug 23 00:49 cur
-rw------- 1 postfix postfix 8192 Aug 23 00:49 extmail-curcache.db
-rw------- 1 postfix postfix 6 Aug 23 00:49 extmail-curcnt
-rw------- 1 postfix postfix 24 Aug 23 00:53 maildirsize
drwx------ 2 postfix postfix 4096 Aug 23 00:49 new
drwx------ 2 postfix postfix 4096 Aug 23 00:53 tmp

# 可以看到都是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-SystemHigh

 

3.打开dovcot的debug功能来验证是否映射变为2525
vim /etc/dovcot

auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes

log_path = /var/log/dovecot.log      

# 我们这里只是为了测试,在正常应用建议不要打开,否则每一个用户登录都要生成日志,会给磁盘带来很大的压力,他们都保存在/var/log/maillog,所以我们需要单独定义一个

#位置,防止在maillog里生成造成杂乱

service dovecot restart

 

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

Linux邮箱服务器配置:如何让outlook收发邮件,怎么样控制中继_第1张图片


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/ssl

2.给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

vim /etc/dovecot.conf 
ssl_cert_file = /etc/dovecot/ssl/dovecot.pem
ssl_key_file = /etc/dovecot/ssl/dovecot.key
ssl_ca_file = /etc/dovecot/ssl/cacert.crt 
protocols = imap imaps pop3 pop3s

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

Linux邮箱服务器配置:如何让outlook收发邮件,怎么样控制中继_第2张图片

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 =         # 限定      


# 上面两种限制都支持编辑某一特定的文本,通过那个文本来限制


 

# vim /etc/postfix/access
#192.16.0.1 REJECT
# 你也可以自己写一个文件
vim /etc/postfix/client
192.168.0.1 REJECT
postmap client          # 需要将这个文件转换成二进制文件才能使用

smtpd_client_restrictions = hash:/etc/postfix/client
#我们在这里使用hash格式,static格式非常慢,一般不用
# postfix默认每隔一段时间自动加载配置文件

Linux邮箱服务器配置:如何让outlook收发邮件,怎么样控制中继_第3张图片

-------------------------------------------------------------------------------------
明确指定拒绝发件人


 

smtpd_sender_restrictions = hash:/etc/postfix/sender        # 可以定义拒绝的客户端

vim sender              #里面写上打算拒绝的客户端

[email protected]  REJECT    # 拒绝指定用户
@a.org        REJECT # 拒绝a.org域名的所有邮件
gentoo@       REJECT    # 只要是gentoo都拒绝

[root@mail postfix]# telnet 192.168.0.32 25
Trying 192.168.0.32...
Connected to mail.dean.com (192.168.0.32).
Escape character is '^]'.
220 Welcome to our mail.dean.com ESMTP,Warning: Version has been hidden!
helo mail.dean.com
250 mail.dean.com
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
554 5.7.1 <[email protected]>: Sender address rejected: Access denied


 

 

 

你可能感兴趣的:(linux,加密,服务器,vim,character,protocols)