Postfix+Dovecot搭建邮件系统 Centos7 默认已经安装postfix软件包
此次实验是采用yum安装,源码编译安装还需安装cyrus-sasl-devel , db*-devel , pam-devel
因为需要Postfix支持SASL认证(通过软件包cyrus-sasl)
1.安装 yum install cyrus-sasl dovecot telnet -y
使用postconf -a 命令 查看输出是否包含 cyrus dovecot 认证方式
2.配置Postfix(发件服务器)110端口 Postfix邮件系统的主要配置文件包括main.cf、master.cf ,都位于/etc/postfix/文件夹下。
命令:
postconf 查看当前启用的所有配置
postconf -n 只列出使用非默认值的配置
Postfix邮件系统的控制主要通过/usr/sbin/postfix命令进行,结合start、stop、check、reload选项分别实现启动、停止、检查、重载服务的操作。
2.1 修改配置文件:/etc/postfix/main.cf 1 2 3 4 5 myhostname=main.linux99.cn 主机名 mydomain=linux99.cn 域 inet_interfaces=192.168.1.1 监听地址 mydestination=$mydomain,$myhostname home_mailbox=Maildir/ 保存路径
修改完配置文件,postfix reload 重新加载
在上述配置中,将mydestination的值设置为“$mydomain,$myhostname”,表示将@linux99.cn和@mail.linux99.cn域作为本地目标域,允许投递到本地邮箱空间。各用户的邮件将被保存到宿主目录下的Maildir/文件夹中。
2.2 添加本地邮箱账号 1 2 3 4 5 6 groupadd mailusers 添加邮箱账号组 useradd -g mailusers -s /sbin/nologin test 创建用户 test useradd -g mailusers -s /sbin/nologin test1 创建用户 test1 passwd test 修改密码
2.3 SMTP发送邮件测试 1 2 3 4 5 6 7 8 telnet mail.linux99.cn 25 连接到服务器 helo mail.linux99.cn 宣告客户机地址 mail from: test@linux99.cn 告知发件人地址 rcpt to: test1@linux99.cn 告知收件人地址 data 邮件正文 hello.this is a test mail by test . 正文结束 quit 退出
邮件发送并投递成功以后,可以到服务器中test1用户的宿主目录下进行查看,新接收到的邮件保存在Maildir/new/目录中。
3.配置POP/IMAP收信服务 (Dovecot)25端口 为了降低初学难度,这里只使用系统用户认证,而并不使用SSL等安全机制。因此需要修改主配置文件dovecot.conf,将“!include conf.d/*.conf”行改为“!include conf.d/10-auth.conf”,并禁用SSL机制,允许在验证时使用明文的用户名和密码。除此之外,还需要指定邮箱格式及存储位置。
3.1 修改主配置文件 编辑 /etc/dovecot/dovecot.conf
1 2 3 4 5 6 7 !include conf.d/*.conf 修改为 !include conf.d/10-auth.conf ssl=no 添加 disable_plaintext_auth=no 添加 mail_location=maildir:~/Maildir 添加
ss -ant 查看110.143端口是否监听
3.2 POP3接收邮件测试 1 2 3 4 5 6 7 8 9 10 11 telnet mail.linux99.cn 110 user test1 pass test list 列出邮件列表 retr 1 查看第一封邮件 quit 断开连接
4.配置SSL 4.1生成自签名SSL证书。 前提是系统已经安装好openssl。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # cd /etc/pki/tls/certs4.1 # 生成私钥 # make server.key Enter pass phrase: #输入密码 Verifying - Enter pass phrase: #重复输入密码 # 下面这个步骤是删除server.key中的密码 # openssl rsa -in server.key -out server.key Enter pass phrase for server.key: #输入刚才设置的密码 writing RSA key 4.2 # 生成CSR(证书签名请求) # make server.csr # umask 77 ; /usr/bin/openssl req -utf8 -new -key server.key -out server.csrCountry Name (2 letter code) [XX]:CN #国家简称 State or Province Name (full name) []:Beijing #省 Locality Name (eg, city) [Default City]:Beijing #城市 Organization Name (eg, company) [Default Company Ltd]:OPS #公司名 Organizational Unit Name (eg, section) []:OPS #部门名 hostname) []:linux99.cn Email Address []:mail@linux99.cn A challenge password []: #直接按Enter An optional company name []: #直接按Enter 4.3 # 生成自签名证书 # openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 4.4 #设置权限 # chmod 400 server.*
4.2 配置Postfix SSL 465端口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 vi /etc/postfix/main.cf # 添加如下到末尾。 smtpd_use_tls = yes smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt smtpd_tls_key_file = /etc/pki/tls/certs/server.key smtpd_tls_loglevel = 2 smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache vi /etc/postfix/master.cf # 第26,28行: 去掉注释 smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
4.3 配置Dovecot SSL 995端口 1 2 3 4 5 6 vi /etc/dovecot/conf.d/10-ssl.conf # 第8行: ssl = yes # 第14,15行: ssl_cert = </etc/pki/tls/certs/server.crt ssl_key = </etc/pki/tls/certs/server.key
配置完成后重新启动Postfix和Dovecot
ss -ant 查看端口是否监听 465 993