邮件综合练习.note
一、Mail 综合练习:
1、配置 STARTTLS(显示TLS):
默认不加密端口就是STARTTLS,而且它是默认开启的,只需要添加证书,开启tls即可
(简单来说,就是配置ssl,但是不修改端口)
(1)postfix:
·使用默认 25 端口:
apt install -y postfix
vim /etc/postfix/main.cf
vim /etc/postfix/master.cf
·使用 587端口:
vim /etc/postfix/master.cf
(2)dovecot:
apt install -y dovecot-imapd
vim 10-auth.conf

vim 10-ssl.conf
·客户端测试:
图形化连接时只需要选择 starttls 即可:
选择 No encryption 也能连接,但它是不加密,明文发送邮件的,并且也不是 starttls连接

命令行测试:
openssl s_client -connect mail.skills39.edu:25 -starttls smtp
or
openssl s_client -connect mail.skills39.edu:587 -starttls smtp
openssl s_client -connect mail.skills39.edu:143 -starttls imap提示 CONNECTED,并且输出证书的,都是连接成功
SMTP 25:

SMTP 587:

IMAP 143:

·Thunderbird 客户端测试:
apt install -y thunderbird写完后可以先点 Continue,它会自动检测mail端口
如果这里不点 Continue ,后面就有可能连不上


连接成功:

2、配置客户端证书签名(客户端证书身份认证):
注意:这里postfix和dovecot都需要指定 ca根证书文件路径,因为它们要用ca文件去验证客户端的证书
这里需要连接 993和465端口,如果连接starttls的端口是不会生效的
未成功
(1)配置 dovecot:
dovecot这里就算配置了需要,也照样能够正常登录、收发邮件,没啥效果
cd /etc/dovecot/conf.d
vim 10-ssl.conf
# 需要指定ca根证书路径(2)配置 postfix:
vim /etc/postfix/main.cf
# 需要指定ca根证书路径
(3)将证书输出为 pkcs12格式:
# 任选一张可用证书,生成一张新的也行:
## 字段不需要匹配域名,只需要这张证书能够被根CA信任即可
# openssl pkcs12 -export -out [转换后的pkcs12文件名] -in [要被转换的证书文件] -inkey [要被转换证书的私钥] -certfile [ca根证书]
openssl pkcs12 -export -out client.p12 -in ssl.crt -inkey skill39.key -certfile ca.crt
(4)客户端导入 根证书、pkcs12 证书:
客户端还需要信任ca根证书
·Evolution 客户端:
导入根证书:
cp ca.crt /usr/local/share/ca-certificates
update-ca-certificates
导入根证书,如果已经有了就需要先找到它:


然后找到这张根证书,点击编辑,勾选全部选项:


导入 .p12 证书:



输入密码:
如果一直要求输入密码,可能是普通用户没有读取它的权限,将文件权限设置为 644即可


·Thunderbird 客户端:

导入根证书:


导入 .p12 证书:


·测试:
如果不提供证书,或者邮件客户端内没有证书 就会报错:

·Thunderbird 客户端:

3、配置邮件存储为 Maildir 或者 Mailbox:
maildir 和 mailbox的区别是
mailbox 是 在指定的目录下(/var/mail/),有以每个用户用户名命名的文件,所有接收到的邮件都存储其中
maildir 是 在用户家目录下默认使用 mailbox 来存储邮件,路径为 /var/mail/%u
例如默认的配置:

这里配置的是在/var/mail/目录下,有以每个用户用户名命名的文件,所有接收到的邮件都存储其中,其他邮件(发送、垃圾桶)则在 ~/mail 下,以 Sent 和 Trash 命名
(1)配置 Maildir:
vim /etc/dovecot/conf.d/10-mail.conf
# 取消注释即可:这个目录会自动创建,无需我们进行创建

# 还需要在 postfix 中指定新的邮件目录,否则postfix邮件只会发送到旧邮箱中
## main.cf.proto 中有模板
vim /etc/postfix/main.cf
注意末尾一定要带 /
如果想要设置为其他目录,将 postfix 和 dovecot中的 这个目录名称更改即可
main.cf.proto模板:

查看:
此时会有 cur、new、tmp 三个目录,邮件存储在他们中

测试发送邮件成功:

如果要设置Maildir 为 /etc/Mails:
dovecot:

postfix:

测试发送邮件成功:

(2)配置 Mailbox:
# 例如,这里自定义路径邮件存储到 /mails下# dovecot:
vim /etc/dovecot/conf.d/10-mail.conf
# mbox随意定义,INBOX 定义的是邮件存储的位置
# postfix:
## 模板在 main.cf.proto
vim /etc/postfix/main.cf
模板:main.cf.proto

4、邮件 收发限制:
(1)仅允许 alice 给 bob 发送邮件,不允许发送给其他人,其他人也不允许发送邮件:
vim /etc/postfix/main.cf
vim /etc/postfix/send
vim /etc/postfix/rec
cd /etc/postfix
postmap send
postmap rec
systemctl restart postfix·测试:
alice 发送邮件给 bob:
发送成功

alice 发送邮件给其他人
发送失败


其他人发送邮件:
发送失败

(2)