大家好,欢迎来到IT知识分享网。
邮件服务器搭建
搭建一个私有的邮箱服务器,正规认证,可接受网易、腾讯等邮件,具备合规的邮件接收能力。
可正常邮箱、可做钓鱼等。
搭建准备
- 服务器—腾讯云主机
- 域名:阿里云域名(Jeromeyoung.com 举例)
邮件相关协议:
类型 | 服务器名称 | 服务器地址 | 非SSL协议端口 | SSL协议端口 |
---|---|---|---|---|
发件服务器 | SMTP | smtp..com | 25 | 465/587 |
收件服务器 | POP | pop..com | 110 | 995 |
收件服务器 | IMAP | imap..com | 143 | 993 |
测试连通性
telnet smtp..com 25
- 腾讯云允许25端口通信,阿里云未允许25端口通信。
配置域名解析记录
配置DKIM
登录主机服务器
apt-get install opendkim opendkim-tools mkdir -p /var/run/opendkim mkdir /etc/opendkim chown -R opendkim:opendkim /var/run/opendkim mkdir /etc/opendkim/keys/jeromeyoung.com -p // 这里是自己的域名
配置配置文件
登录主机服务器配置/etc/opendkim.conf:
Syslog yes UMask 002 Domain jeromeyoung.com Canonicalization relaxed/relaxed Mode sv OversignHeaders From TrustAnchorFile /usr/share/dns/root.key ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts KeyTable refile:/etc/opendkim/KeyTable LogWhy Yes PidFile /var/run/opendkim/opendkim.pid SigningTable refile:/etc/opendkim/SigningTable Socket inet:8891@127.0.0.1 SyslogSuccess Yes TemporaryDirectory /var/tmp
Opendkim生成数字签名
opendkim-genkey -D /etc/opendkim/keys/jeromeyoung.com/ -d jeromeyoung.com -s default echo "default._domainkey.jeromeyoung.com jeromeyoung.com:default:/etc/opendkim/keys/jeromeyoung.com/default.private">/etc/opendkim/KeyTable echo " default._domainkey.jeromeyoung.com" > /etc/opendkim/SigningTable echo "127.0.0.1">/etc/opendkim/TrustedHosts echo "jeromeyoung.com">>/etc/opendkim/TrustedHosts echo "mail.jeromeyoung.com">>/etc/opendkim/TrustedHosts
配置opendkim
vim /etc/default/opendkim SOCKET="local:/var/run/opendkim/opendkim.sock" SOCKET="inet:8891@127.0.0.1"
修改文件所属组:
chown -R opendkim:opendkim /etc/opendkim/keys/jeromeyoung.com
启动服务
systemctl restart opendkim.service
还需要配置域名解析:
将 /etc/opendkim/keys/jeromeyoung.com/default.txt
增加到域名解析里:(复制选中的一段)
cat /etc/opendkim/keys/jeromeyoung.com/default.txt
配置DMARC解析:
v=DMARC1;p=quarantine;rua=mailto:
给邮箱进行TLS加密
这里是以前的老方法,可行,现在不行。
通过 Freessl 申请证书 https://freessl.cn/
首先自己注册账号,然后输入域名 mail.jeromeyoung.com ,单击创建免费的SSL证书
安装Certbot,用于给邮箱进行TLS加密:
apt-get install certbot
certbot certonly --manual -d mail.jeromeyoung.com --server https://acme.freessl.cn/v2/DV90/directory/pxf4xxxxx
这里使用certbot安装应该被腾讯云拦截,所以我们不进行自动化安装,进行如下操作:
新的方法:
前往https://www.51ssl.com/申请证书,实际上就是https://freessl.cn/控制台右上角就能一键跳转。
填完申请即可,然后进行配置域名的DNS解析,等待解析同步就好,只是有点儿慢,几分钟几小时都是可能的。
当完成解析后下载域名的key和pem文件
其两个文件放到邮件服务器 /etc/letsencrypt/live/mail.jeromeyoung.com 目 录下。
最后通过openssl,将crt和key格式转换为pem格式;至此证书申请完成: (也可以直接下载51ssl的pem)
key转pem: openssl rsa -in private.key -out private.pem crt转pem: openssl x509 -in full_chain.crt -out full_chain.pem
systemctl status dovecot.service 最后查看一下状态,没有爆红就说明证书没问题。
Postfix安装
debconf-set-selections <<< "postfix postfix/mailname string mail.jeromeyoung.com" debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'" apt-get install --assume-yes postfix
安装完成后,配置
vim /etc/postfix/main.cf
myhostname = mail.jeromeyoung.com mydomain = jeromeyoung.com myorigin = $mydomain smtp_helo_name = $myhostname mydestination = $myhostname, localhost.$mydomain, $mydomain smtpd_banner = mail.$mydomain ESMTP home_mailbox = Maildir/ mynetworks = 0.0.0.0 82.156.22.229 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 biff = no append_dot_mydomain = no readme_directory = no smtpd_tls_cert_file=/etc/letsencrypt/live/mail.jeromeyoung.com/full_chain.pem smtpd_tls_key_file=/etc/letsencrypt/live/mail.jeromeyoung.com/private.pem smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_local_domain = smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtp_tls_security_level = may smtpd_tls_security_level = may smtp_tls_note_starttls_offer = yes smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = inet:127.0.0.1:8891 milter_protocol = 2 milter_default_action = accept disable_vrfy_command = yes smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases relayhost= mailbox_size_limit=0 recipient_delimiter = + inet_interfaces = all inet_protocols = all
配置 vim /etc/postfix/master.cf
:
smtp inet n - y - - smtpd submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING pickup unix n - y 60 1 pickup cleanup unix n - y - 0 cleanup qmgr unix n - n 300 1 qmgr tlsmgr unix - - y 1000? 1 tlsmgr rewrite unix - - y - - trivial-rewrite bounce unix - - y - 0 bounce defer unix - - y - 0 bounce trace unix - - y - 0 bounce verify unix - - y - 1 verify flush unix n - y 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - y - - smtp relay unix - - y - - smtp showq unix n - y - - showq error unix - - y - - error retry unix - - y - - error discard unix - - y - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - y - - lmtp anvil unix - - y - 1 anvil scache unix - - y - 1 scache maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
安装 Dovecot :
apt-get install dovecot-core dovecot-imapd dovecot-pop3d
安装完成后,配置
配置/etc/dovecot/conf.d/10-master.conf
:
service imap-login { inet_listener imap { } inet_listener imaps { } } service pop3-login { inet_listener pop3 { } inet_listener pop3s { } } service lmtp { unix_listener lmtp { } } service imap { } service pop3 { } service auth { unix_listener auth-userdb { } unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } } service auth-worker { } service dict { unix_listener dict { } }
配置/etc/dovecot/conf.d/10-auth.conf
:
auth_mechanisms = plain login !include auth-system.conf.ext
配置 /etc/dovecot/conf.d/10-mail.conf
:
mail_location = maildir:~/Maildir namespace inbox { inbox = yes } mail_privileged_group = mail
配置 /etc/dovecot/conf.d/20-pop3.conf
:
pop3_uidl_format = %08Xu%08Xv protocol pop3 { }
配置 /etc/dovecot/conf.d/10-ssl.conf
:
ssl = yes ssl_cert = </etc/letsencrypt/live/mail.jeromeyoung.com/full_chain.pem ssl_key = </etc/letsencrypt/live/mail.jeromeyoung.com/private.pem
创建邮箱用户账号:
useradd -m admin -s /sbin/nologin 【指定该账号不可用于登录服务器|这里伪造admin发送邮件,所以创建admin用户】 passwd admin
启动所有服务:
systemctl restart dovecot.service systemctl restart postfix.service systemctl restart opendkim.service
使用Foxmail连接服务器
这里选择其它邮箱登录,进入后点手动设置:
添加账号,密码是当时创建账号时设置的密码,配置好后点击创建:
邮件测试
注意
配置好以后就可以一直使用,只是需要证书到期的时候,重新申请证书,然后完成dns解析验证和/etc/letsencrypt/live/mail.jeromeyoung.com 目 录下的内容替换即可
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/153846.html