Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7043480
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: LINUX

2015-03-26 16:09:08

权威指南:构建个人私有云,拿回你的数据隐私的控制权!

[日期:2015-03-26] 来源:Linux中国  作者:Linux [字体:  ]
dovecot

现在,让我们设置一下dovecot(一个IMAP服务程序,用来在我们的设备上从服务器获取收到的邮件)。编辑文件/etc/dovecot/dovecot.conf设置以下参数:

  1. # Enable installed protocol
  2. # !include_try /usr/share/dovecot/protocols.d/*.protocol
  3. protocols = imap lmtp

这样将只打开imap(让我们可以获取邮件)和lmtp(postfix用来将收件箱里的邮件转给dovecot)。编辑/etc/dovecot/conf.d/10-mail.conf并设置以下参数:

  1. mail_location = maildir:/var/mail/%d/%n
  2. [...]
  3. mail_privileged_group = mail
  4. [...]
  5. first_valid_uid =0

这样邮件将被保存到目录 /var/mail/domainname/username 下。注意下这几个选项散布在配置文件的不同位置,有时已经在那里写好了:我们只需要取消注释即可。文件里的其他设定选项,可以维持原样。在本文后面还有很多文件需要用同样的方式更新设置。在文件/etc/dovecot/conf.d/10-auth.conf里,设置以下参数:

  1. disable_plaintext_auth = yes
  2. auth_mechanisms = plain
  3. #!include auth-system.conf.ext
  4. !include auth-sql.conf.ext

在文件/etc/dovecot/conf.d/auth-sql.conf.ext里,设置以下参数:

  1. passdb {
  2. driver = sql
  3. args =/etc/dovecot/dovecot-sql.conf.ext
  4. }
  5. userdb {
  6. driver =static
  7. args = uid=mail gid=mail home=/var/mail/%d/%n
  8. }

这是告诉dovecot用户的邮件保存在目录/var/mail/domainname/username下,以及如何从我们刚建立的数据库里查找密码。现在我们还需要告诉dovecot具体如何使用数据库。这样需要把下面的内容加入/etc/dovecot/dovecot-sql.conf.ext文件:

  1. driver = mysql
  2. connect = host=localhost dbname=mailserver user=mailuser password=mailuserpass
  3. default_pass_scheme = SHA512-CRYPT
  4. password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

我们现在修改一下配置文件的权限

  1. chown -R mail:dovecot /etc/dovecot
  2. chmod -R o-rwx /etc/dovecot

基本差不多了!只是还需要再多编辑几个文件。在文件/etc/dovecot/conf.d/10-master.conf里,设置以下参数:

  1. service imap-login {
  2. inet_listener imap {
  3. #port = 143
  4. port =0
  5. }
  6. inet_listener imaps {
  7. port =993
  8. ssl = yes
  9. }
  10. }
  11. service pop3-login {
  12. inet_listener pop3 {
  13. #port = 110
  14. port =0
  15. }
  16. inet_listener pop3s {
  17. #port = 995
  18. #ssl = yes
  19. port =0
  20. }
  21. }
  22. service lmtp {
  23. unix_listener /var/spool/postfix/private/dovecot-lmtp {
  24. mode =0666
  25. group= postfix
  26. user = postfix
  27. }
  28. user = mail
  29. }
  30. service auth {
  31. unix_listener auth-userdb {
  32. mode =0600
  33. user = mail
  34. #group =
  35. }
  36. # Postfix smtp-auth
  37. unix_listener /var/spool/postfix/private/auth {
  38. mode =0666
  39. user = postfix
  40. group= postfix
  41. }
  42. # Auth process is run as this user.
  43. #user = $default_internal_user
  44. user = dovecot
  45. }
  46. service auth-worker {
  47. user = mail
  48. }

注意下我们把除了imaps之外所有服务的端口都设置成了0,这样可以有效地禁止这些服务。然后,在文件/etc/dovecot/conf.d/15-lda.conf里,指定一个邮箱管理地址:

  1. postmaster_address = postmaster@linuxidc.net

最后但很重要的一点,我们为服务器需要生成一对公钥和私钥,可以同时用于dovecot和postfix:

  1. openssl req -new-newkey rsa:4096-x509 -days 365-nodes -out"/etc/ssl/certs/cloud.crt"-keyout "/etc/ssl/private/cloud.key"

请确保你指定了服务器的完全限定域名(FQDN),在本文的例子里:

  1. CommonName(e.g. server FQDN or YOUR name)[]:cloud.linuxidc.net

如果没有的话,我们的客户端会抱怨在SSL证书里的服务器名字和所连接的服务器名字不一致。我们将通过修改配置文件/etc/dovecot/conf.d/10-ssl.conf里的如下选项来告诉dovecot使用刚生成的密钥:

  1. ssl = required
  2. ssl_cert =</etc/ssl/certs/cloud.crt
  3. ssl_key =</etc/ssl/private/cloud.key
阅读(800) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~