-
微信小程序HTTPS服务器配置搭建教程
微信小程序中,要求所有服务器通讯使用 HTTPS 协议的安全连接(即增加 SSL 加密)。 也就是说,除了按照小程序要求进行数据收发,还要为服务器配置加密证书。这就让不少小程序开发者非常头疼。 今天MMCloud小编为大家推荐这篇文章,可以帮助大家快速申请加密证书、配置 HTTPS 服务器,并尽快将小程序应用于生产环境中。 本篇文章以阿里云为例,展示证书申请、配置等。此方法也可举一反三,应用于其他云服务器中。 在小程序的生产环境中,如果需要调用服务器的 REST API 或 WebSocket,服务器必须提供安全的链接地址。也就是说,服务器需要使用 SSL 加密数据。 因此,我们需要在服务器中配置 SSL 加密。 第一步:申请服务器与域名 许多云服务商的云服务器配置是弹性的,可以根据自己的需要来选择合理的配置,如果你是个初学者为了学习用的话,一开始选择最低配置就行了。 当然,如果你有业务需求,也可以选择更高配置的服务器。 小程序的网络访问必须使用白名单中的地址,这意味着我们需要一个域名,便于加入微信的域名白名单中。 你可以在云服务商直接提供的域名购买服务中购买域名,也可以到域名服务商购买。 第二步:申请证书 很多国内外机构都提供 CA 证书签发认证,国内的如沃通,国外的如 Symantec。很多证书提供商的证书服务价格不菲,根据证书的不同功能,价格也是相差很大,最便宜的也要好几百一年。 现在也有免费的证书可以使用。阿里云上也提供了免费的证书,申请起来很方便,我们就来看看怎么申请阿里云里的免费证书。 从阿里云的页面顶部菜单「产品与服务」里面,找到「CA 证书服务」。 进入页面后,点击页面右上角的「购买证书」按钮,进入证书选择界面。 在这里,我们可以选择「免费型 DV SSL」证书。 需要注意的是,申请一个这样的证书,只能对一个明细域名生效。也就是说,如果你有几个子域名,你需要分别为它们申请不同的证书。 购买完成后,可以在你购买的订单列表里点击「补全信息」,输入域名和个人信息等,提交给签发机构审核。 审核完成后,你的邮箱里会收到一封配置指导邮件。之后,你就可以在订单列表中下载到证书文件了。 证书文件里包含了一些适合 Apache、Nginx、IIS 等不同 HTTP 服务器可用的证书,这些都可以用于配置服务器的 SSL 加密。 第三步:在服务器中配置证书 由于我在服务器上安装的是 CentOS 和 Nginx,所以以下指令都是以 CentOS 为例。 首先,通过 yum 安装 Nginx。 接下来,把服务器证书上传到服务器上,并配置 nginx.conf 文件(在 /etc/nginx 目录下),使其支持 HTTPS 协议。 重启服务之后,服务器的 SSL 加密,就配置好了。接着,在解析服务的控制台中,为你的域名添加一条 A 解析记录,将你的域名指向你的服务器公网 IP 地址。大功告成! 接下来,你就可以在服务器中配置小程序数据交换模块了。当然,具体的配置根据不同的环境而有所不同,大家可以自行探索有关小程序的后端开发资料。 MMCloudSSL证书服务: 详情请戳:https://www.mmcloud.com/2018/ssl.asp MMCloud提供SSL证书服务,价格低至299/年;MMCloud为活动期间购买的用户提供免费安装ssl证书的技术支持服务,并免费定制小程序服务器租用解决方案,让数据更安全!有任何问题可随时咨询在线客服! MMCloud推出的微信小程序解决方案是围绕微信小程序特性打造的一站式解决方案,MMCloud是微信小程序服务器推荐服务商,提供免费安装小程序服务器SSL数字证书、小程序服务器域名配置搭建服务。
-
香港服务器的网站访问不了怎么办
眼下,有很多站长都在使用香港服务器搭建网站。但是,有些朋友在网站搭建完成后,发现网站无法访问,这是什么原因导致的呢? 其实,遇到这样的情况时需要镇静,只要按照步骤一步步来查找原因,那么肯定是能解决的。下面MMCloud小编就为大家说说出现这样的情况时,咱们应该怎样进行检查。 1、ping IP 首先,需要确定该IP是否正常运行,最简单的方法就是对该IP进行ping名利。具体是打开菜单–找到并点击运行–输入cmd–在命令提示符界面输入“ping IP”,看看是否能ping的通。 2、检查域名 如果IP是正常的,或者是该IP是禁止ping的,那么就得检查域名了,检查域名首先也是同上一样的方法进行ping,然后再看域名是否解析成功。当然,也需要看看域名是否正确的解析到你的服务器IP上。 3、检查DNS 以上两步检查都没问题的话,接下来就得看DNS地址是否正确了,检查DNS地址一样的可以用ping命令的方法来完成。打开开始菜单–找到并点击运行–输入cmd–在命令提示符界面输入命令“ipconfig/all”就可查看到了,具体操作如下图所示: 4、检查防火墙 经过以上几步检查后若是都没有错误的话,那就查看咱们自身Windows系统自带的防火墙是否打开,是不是打开了防火墙的一些权限,导致网站不能访问。具体是打开开始菜单–控制面板–Windows防火墙。 5、如果还无法访问,考虑以下情况: -检查服务器 CPU、I/O、带宽、内存使用性能是否有异常。 -查看的网站是否有报错,比如 404、502、503、504 错误,一般出现这种错误多半是服务器web内部问题。 -检查服务器是否受攻击。 -是否是磁盘空间占满了导致。 -检查服务器网站是否是用户访问量多大导致。 -查看服务器是否处于运行状态。 以上就是在租用的香港服务器网站无法访问的情况下,如果以上几个步骤检查下来都没发现问题的话,大家可以联系香港主机商,让他们帮你检查。
-
在Ubuntu 18.04、16.04上设置绑定权威DNS服务器
本教程将向您展示如何使用广泛使用的BIND 9软件在Ubuntu18.04/16.04上设置和运行自己的权威名称服务器。 注意:本教程展示了命令行方法。如果您想从web GUI编辑DNS记录,我建议使用Webmin设置权威DNS服务器,这是一个免费的开源服务器控制面板。 什么是权威DNS服务器? 如果您拥有一个域名,并且希望您自己的DNS服务器为您的域名处理名称解析,而不是使用您的域名注册商的DNS服务器,那么您需要设置一个权威的DNS服务器。 域名所有者使用权威DNS服务器来存储DNS记录。它为DNS解析程序(如8.8.8.8或1.1.1.1)提供权威答案,这些解析程序代表终端用户在PC、智能手机或平板电脑上查询DNS记录。 关于BIND BIND(Berkeley Internet Name Domain)是一款开源、灵活、功能齐全的DNS软件,由于其稳定性和高质量,在Unix/Linux上得到了广泛应用。它最初由加州大学伯克利分校(UC Berkeley)开发,后来在1994年被转移到互联网系统联盟(Internet Systems Consortium,Inc.)进行开发。 BIND可以同时充当区域的权威DNS服务器和DNS解析程序。DNS解析程序也可以称为递归名称服务器,因为它对本地客户端执行递归查找。然而,同时扮演两个角色并不有利。在两台不同的机器上分离这两个角色是一种很好的做法。 在上一篇文章中,我解释了在Ubuntu 18.04/16.04上设置本地DNS解析器的步骤。本教程将向您展示如何在Ubuntu 18.04/16.04上将BIND9设置为仅限权威的DNS服务器,并禁用递归。 先决条件 要学习本教程,您应该已经购买了域名。我在namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。 你还需要两台服务器。一台服务器用于主DNS服务器,另一台用于从DNS服务器。理想情况下,这两台服务器应该位于不同的物理位置。如果一个DNS服务器处于脱机状态,另一个DNS服务器仍然可以响应您的域名的DNS查询。 每台服务器只需要512MB内存,以下是我推荐的主机提供商。我都用过了。 Vultr:起价为每月2.5美元。需要信用卡。你可以通过我的推荐链接在Vultr创建一个账户,获得50美元的免费信用。 DigitalOcean:起价为每月5美元。不需要信用卡。你可以用贝宝。你可以通过我的推荐链接在DigitalOcean创建一个帐户,获得50美元的免费信用。 一旦你买了两台服务器,在上面安装Ubuntu,并按照下面的说明操作。 使用BIND9在Ubuntu 18.04/16.04上设置权威DNS服务器 您需要在两台服务器上运行本节中的命令。 通过SSH登录这两台服务器,并从默认存储库运行以下命令,在Ubuntu 18.04/16.04上安装BIND 9。BIND 9是当前版本,BIND 10是一个死项目。 sudo apt更新sudo apt安装bind9 bind9utils bind9 doc 检查版本号。 命名为-v 样本输出: 绑定9.11.3-1 buntu1。3-Ubuntu(扩展支持版)<;识别号:a375815>; 要检查版本号和生成选项,请运行 命名为-V 默认情况下,绑定在安装后自动启动。您可以通过以下方式检查其状态: systemctl状态绑定9 如果它没有运行,那么从以下内容开始: sudo systemctl start bind9 并在启动时启用自动启动: sudo systemctl enable bind9 BIND服务器将以BIND用户的身份运行,该用户是在安装过程中创建的,并在TCP和UDP端口53上侦听,如运行以下命令所示: sudo netstat-lnptu | grep命名 绑定守护进程被称为named。(守护进程是在后台运行的软件。)命名的二进制文件由bind9包安装,还有另一个重要的二进制文件:rndc,远程名称守护程序控制器,由bind9utils包安装。rndc二进制文件用于重新加载/停止和控制绑定守护进程的其他方面。通信通过TCP端口953完成。 例如,我们可以检查绑定名称服务器的状态。 sudo rndc状态 主绑定配置文件/etc/BIND/named。conf从其他3个文件中获取设置。 /etc/bind/named。形态选项 /etc/bind/named。conf.local /etc/bind/named。conf.default-zones Ubuntu上的BIND9服务器提供了本地主机和本地网络客户端的递归服务。由于我们正在设置权威DNS服务器,因此需要禁用递归。编辑/etc/bind/named。conf.options文件。 sudo nano/etc/bind/named。形态选项 在选项{…}中添加以下行;条款 //出于安全原因,对客户端隐藏版本号。版本“当前不可用”;//在权威DNS服务器上禁用递归。递归否;//启用查询日志querylog yes;//不允许区域转移允许转移{none;}; 从技术上讲,您只需要添加递归no;禁用递归,但最好添加其他3条指令。保存并关闭文件。然后重启BIND。 sudo systemctl重启bind9 主DNS服务器配置 从两台服务器中选择一台作为主DNS服务器。我们将把它命名为ns1。实例通用域名格式。 主DNS服务器保存区域文件的主副本。在此服务器上更改DNS记录。一个域可以有一个或多个DNS区域。每个DNS区域都有一个区域文件,其中包含该区域中的每个DNS记录。为了简单起见,本文假设您希望使用单个DNS区域来管理您的域名的所有DNS记录。 /etc/bind/named。conf.default-zones文件定义根区域和本地主机区域。要为域名添加区域,请编辑/etc/bind/named。conf.local文件。 sudo nano/etc/bind/named。conf.local 将以下行添加到此文件。替换示例。使用你自己的域名。将12.34.56.78替换为从属DNS服务器的IP地址。 区域“example.com”{type master;file”/etc/bind/db.example.com”;允许查询{any;};允许转移{12.34.56.78;};}; 在上述配置中,我们使用zone子句创建了一个新区域,并指定这是主区域。区域文件是/etc/bind/db。实例com,我们将在其中添加DNS记录。仅允许从DNS服务器进行区域传输。保存并关闭文件。 我们可以使用区域模板文件,而不是从头创建区域文件。复制数据库的内容。空到一个新文件。 sudo cp/etc/bind/db。空/etc/bind/db。实例通用域名格式 区域文件可以包含3种类型的条目: 注释:以分号(;)开头 指令:以美元符号($)开头 资源记录:又名DNS记录 区域文件通常由以下类型的DNS记录组成。 SOA(授权开始)记录:定义区域的关键特征。这是区域文件中的第一个DNS记录,是必需的。 NS(名称服务器)记录:指定用于存储DNS记录和回答域名DNS查询的服务器。区域文件中必须至少有两条NS记录。 MX(邮件交换器)记录:指定哪些主机负责域名的电子邮件传递。 (地址)记录:将DNS名称转换为IPv4地址。 AAAA(Quad A)记录:将DNS名称转换为IPv6地址。 CNAME记录(规范名称):用于为DNS名称创建别名。 TXT记录:SPF、DKIM、DMARC等。 现在,让我们编辑区域文件。 sudo nano/etc/bind/db。实例通用域名格式 默认情况下,它如下所示: 你可以改成这个。 哪里 $TTL指令定义区域的默认生存时间值,即DNS记录可以缓存在DNS解析程序上的时间。该指令是强制性的。时间以秒为单位。 $ORIGIN指令定义基本域。 域名必须以点(.)结尾,这是根域。当域名以点结尾时,它是一个完全限定的域名(FQDN)。 @符号引用基本域。 在DNS类中。它代表互联网。存在其他DNS类,但很少使用。 区域文件中的第一条记录是SOA(授权开始)记录。此记录包含以下信息: 主DNS服务器。 区域管理员的电子邮件地址。RFC 2142建议使用电子邮件地址[email ;protected]。在区域文件中,此电子邮件地址采用以下形式:hostmaster。实例com,因为@符号在区域文件中有特殊含义。 区域序列号。序列号是从DNS服务器跟踪区域变化的一种方式。按照惯例,序列号采用日期格式:yyyymmddss,其中yyyy是四位数字的年份号,mm是月份,dd是日期,ss是日期的序列号。更改区域文件时,必须更新序列号。 刷新值。当达到刷新值时,从DNS服务器将尝试从主DNS服务器读取SOA记录。如果序列号变高,则启动区域传输。 重试值。定义从DNS服务器无法连接到主DNS服务器时的重试间隔(以秒为单位)。 到期:如果从属DNS服务器在这段时间内未能与主DNS服务器联系,则从属DNS服务器将停止响应此区域的DNS查询。 负缓存TTL:为不存在的DNS名称(NXDOMAIN)定义DNS响应的生存时间值。 TXT记录通常用双引号括起来。如果添加DKIM记录,还需要用括号括起该值。 保存并关闭文件。然后运行以下命令检查主配置文件中是否存在语法错误。无声输出表示未发现错误。 sudo命名为checkconf 然后检查区域文件的语法。 sudo命名为checkzone示例。com/etc/bind/db。实例通用域名格式 如果区域文件中存在语法错误,则需要修复它,否则将无法加载此区域。以下消息表示没有语法错误。 区域示例。com/IN:已加载序列号2019011503正常 然后重启BIND9。 sudo systemctl重启bind9 如果您使用的是简单防火墙(UFW),请打开TCP和UDP端口53。 sudo ufw allow 53/tcp sudo ufw allow 53/udp 如果您直接使用iptables防火墙,请运行以下命令。 sudo iptables-A INPUT-p tcp-dport 53-j ACCEPT sudo iptables-A INPUT-p udp-dprot 53-j ACCEPT 从DNS服务器配置 现在我们使用另一台服务器作为从DNS服务器,它将被命名为ns2。实例通用域名格式。 首先,编辑命名文件。conf.local文件。 sudo nano/etc/bind/named。conf.local 添加一个如下所示的区域。将12.34.56.78替换为主DNS服务器的IP地址。 区域“example.com”{type slave;文件“db.example.com”;允许查询{any;};硕士{12.34.56.78;};}; 在上面的配置中,我们指定这是示例中的从属DNS服务器。com区域,它将只接受来自受信任IP地址的区域传输。 保存并关闭文件。然后运行以下命令检查主配置文件中是否存在语法错误。 sudo命名为checkconf 如果没有发现错误,请重新启动BIND9。 sudo systemctl重启bind9 从DNS服务器上的区域文件是从区域传输加载的,该传输用于同步从主DNS服务器到从DNS服务器的DNS记录更改。BIND9重新启动后,区域传输将立即启动。使用以下命令检查BIND9日志。 sudo journalctl-eu bind9 您可以看到如下消息,这表明区域传输成功。 命名为[31518]:转移“示例”。com/IN'from 12.34.56.78#53:传输完成:1条消息,16条记录,886字节,0.004秒(221500字节/秒) 区域文件将另存为/var/cache/bind/db。实例通用域名格式。 如果您使用的是简单防火墙(UFW),请打开TCP和UDP端口53。 sudo ufw allow 53/tcp sudo ufw allow 53/udp 如果您直接使用iptables防火墙,请运行以下命令。 sudo iptables-A INPUT-p tcp-dport 53-j ACCEPT sudo iptables-A INPUT-p udp-dport 53-j ACCEPT 更多关于区域转移的信息 当达到SOA记录中的刷新时间时,从属DNS服务器将再次联系主服务器,如果主服务器上的序列号大于从属服务器上的序列号,则将启动区域传输。有两种类型的区域转移: 完整区域传输(AXFR):传输区域文件的完整副本。 增量区域传输(IXFR):仅传输更改的DNS记录。 两种类型的区域传输都使用TCP端口53。默认情况下,从属DNS服务器上的绑定将请求增量区域传输,而主DNS服务器上的绑定仅在区域是动态的情况下才允许增量区域传输。 区域传输间隔是DNS记录更改传播速度的主要因素。当区域发生更改时,绑定主机将通知从属DNS服务器,而不是等待从属DNS服务器联系。这可以大大缩短将区域更改传播到Internet的时间。 反向区 反向区域包含将IP地址映射到DNS名称的PTR记录。它是DNS A记录的对应项。PTR记录通常是邮件服务器通过垃圾邮件过滤器所必需的。此记录不属于域。您需要在主机提供商的控制面板上创建PTR记录,或者询问您的ISP,所以我不打算在BIND中介绍创建反向区域。 更改NS记录并创建胶水记录 现在你需要去你的域名注册商的网站更改你的域名的NS记录,这样互联网就会知道你现在正在使用自己的DNS服务器。通常在NS记录中使用主机名,比如ns1。实例com和ns2。实例通用域名格式。 名称服务器1:ns1。实例com名称服务器2:ns2。实例通用域名格式 如果你有一个域名的例子。com,您使用一个子域作为权威DNS服务器(ns1.example.com和ns2.example.com),然后您还需要在您的域注册器上创建一个粘合记录,以便Internet可以知道您的DNS服务器的IP地址。胶水记录是ns1的A记录。实例com和ns2。实例通用域名格式。 ns1。实例主服务器ns2的com IP地址。实例从服务器的com IP地址 上述信息将通过可扩展配置协议(EPP)发送给运行TLD DNS服务器的注册运营商,以便TLD DNS服务器知道您的域名的权威DNS服务器的主机名和IP地址。根据您使用的域注册器,您的NS记录可能会立即传播,或者传播可能需要24小时。你可以去https://dnsmap.io检查您的新NS记录是否处于活动状态。 我将向你展示如何在namescapet上实现这一点。 如果你在NameCheap购买了域名,请登录你的NameCheap帐户。选择左侧边栏上的域列表菜单,然后单击最右侧的管理按钮。 选择高级DNS。 滚动到页面底部,您将找到个人DNS服务器部分。单击添加名称服务器按钮添加您自己的名称服务器:ns1。实例com和ns2。实例通用域名格式。您需要输入名称服务器的IP地址。 添加两个名称服务器后,单击搜索按钮检查它们是否已成功添加。如果是这样,胶水记录将显示在此页面底部。 现在单击“域”选项卡,并使用自定义DNS服务器。 根据您使用的域注册器,您的NS记录可能会立即传播,或者传播可能需要24小时。你可以去https://dnsmap.io检查您的新NS记录是否处于活动状态。 在NS记录和glue记录被传播到Internet之后,DNS服务器将响应您的域名的DNS查询。您可以通过以下方式查看查询日志: sudo journalctl-eu bind9 您还可以使用dig实用程序检查域名的NS记录。 举个例子。通用域名格式 如果NS记录和glue记录已传播到Internet,您应该在“答案”部分看到您的名称服务器。如果您看到SERVFAIL错误,可能是因为您没有在名称服务器上打开UDP端口53。 需要知道的事情 术语主DNS服务器仅表示此服务器存储区域文件的主副本。在DNS解析方面,它没有更高的优先级。 更改区域文件时,请始终更新SOA序列号。 在绑定区域文件中使用通配符 如果要将所有子域指向同一IP地址,可以使用通配符来实现。例如,下面一行将使您的所有子域指向1.2.3.4 IP地址。 *.你的域名。com在1.2.3.4中的应用 启用解析器 BIND可以同时充当区域的权威DNS服务器和DNS解析程序。在两台不同的主机上分离这两个角色是一种很好的做法,在本文中,我们在BIND中禁用了解析器。如果您真的想启用解析器,请按照以下说明操作。 编辑绑定配置文件。 sudo nano/etc/bind/named。形态选项 找到下面几行。 //在权威DNS服务器上禁用递归。递归否; 将它们更改为以下内容,这样只有受信任的IP地址才能向DNS解析程序发送递归查询,而您的服务器将不会是开放的解析程序。 //仅允许对受信任的客户端进行递归。递归是的;允许查询{localhost;12.34.56.78;}; 将12.34.56.78替换为您自己的IP地址。保存并关闭文件。确保在/etc/bind/named中定义区域。conf.local文件具有以下选项,因此Internet可以查询您所在区域的DNS记录。 允许查询{any;}; 然后重启BIND。 sudo systemctl重启bind9 去https://openresolver.com/测试绑定服务器是否为开放式解析程序。 收尾 就这样!我希望本教程能帮助您在Ubuntu 18.04和Ubuntu 16.04上使用BIND9设置权威DNS服务器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?
-
一个标准服务器机柜能放多少台服务器
经常有客户询问我们42U标准服务器机柜尺寸是多少?42U机柜尺寸多少?这些一直都是有机柜租用需求的用户比较关心和关注的问题,今天小编就给大家解答一下。 机柜有很多种,有网络机柜、服务器机柜、控制台机柜。其中有一些机柜是非常标准的,就好比42U标准机柜。那么42U标准机柜的尺寸是多少呢? 42U标准服务器机柜尺寸简介 在了解42U标准服务器机柜尺寸之前,咱们首先去了解一下什么是42U标准机柜吧!42U机柜是标准机柜的一种,名称中的u是代表服务器外部尺寸的代问,也是unit的缩略语,其详细的尺寸是由美国电子工业协会所决定的。42U标准机柜的标准设备的面板一般都是按照n个u的规格制造的。 42U标准服务器机柜尺寸的尺寸有多种的,每一种42U标准机柜尺寸其用途都是不一样的。如果按照宽度分类的话,那么600mm和800mm宽的42U机柜,其深度的规格有600mm,800mm,900mm,960mm,1000mm,1100mm,1200mm等。 42U标准服务器机柜尺寸还可以按照其实际使用的尺寸分类,除了其实际使用尺寸为42u之外,其宽度与深度都是可以按照自己的需求进行定制的。由于42U机柜是一种标准机柜,很多人都需求它,因此其宽度与深度可以自己定制,不过其还是42U标准机柜。 42U标准服务器机柜尺寸也有一种称谓是:“19英寸机架”,其就是说厚度是以4.445厘米为基本单位,其中的1u就是指4.445厘米,而“19英寸机架”的宽度为19英寸。u是国际上通用的机柜内部尺寸的特殊计量单位,u是指的机柜内部有效使用空间。42U是高2米、宽0.6米和深0.8米服务器机柜,也可能是2米、宽0.6米和深0.96米服务器机柜; 一个标准服务器机柜能放多少台服务器 一个机柜所放的服务器是有限的,42U高度的机柜并不代表着实际能够放42个1U服务器,因为你要留散热和挪动的空间,你要考虑电力供应,你要考虑整体散热等,还有上下必须要有走线空的地方,还有放交换机、防火墙、显示器等其他设别的地方。比如景安网络:是42U标准机柜,能放的最多可达20台1U服务器。为什么是20台,可以看下图,1U服务器与1U服务器之间要留下散热的空间,同时机柜里面要放1台交换机,也需要2U的空间。 42U机柜是最常见的标准机柜,除42U标准机柜外,47U机柜、37U机柜、32U机柜、20U机柜、12U机柜、6U机柜也是较为常用的机柜。目前99%以上的机柜厂家都在机柜的标准安装立柱上标明了该机柜的U数,以便于用户在最终安装时正确安装和快速安装。这些机柜不仅实用,而且具有现代科技气息。 MMCloud专业提供深圳服务器托管、台湾服务器托管、香港新世界服务器托管、香港第一线服务器托管等。详询在线客服!
-
如何使用Modoboa在Ubuntu18.04上快速设置邮件服务器
本教程将向您展示如何使用Modoboa在Ubuntu18.04上快速设置自己的电子邮件服务器,这是一个免费的开源邮件托管和管理平台,旨在与Postfix SMTP服务器和Dovecot IMAP/POP3服务器配合使用。 Modoboa是用Python编写的,根据ISC许可条款发布。最新版本是v1。14.0,于2019年7月5日发布。Modoboa的主要特点如下: 默认情况下,Modoboa使用Nginx web服务器为webmail客户端和基于web的管理面板提供服务。 与Postfix和Dovecot兼容。 支持MySQL/MariaDB或PostgreSQL数据库。 在基于web的管理面板中轻松创建无限邮箱和无限邮件域。 在基于web的管理面板中轻松创建电子邮件别名。 webmail客户端提供了一个易于使用的邮件过滤器,帮助您将邮件组织到不同的文件夹。 它可以通过监控电子邮件黑名单和生成DMARC报告来帮助你保护你的域名声誉,这样你的电子邮件就有更好的机会进入收件箱而不是垃圾邮件文件夹。 包括amavis前端,用于阻止垃圾邮件和检测电子邮件中的病毒。 日历和通讯录。 与Let’s Encrypt集成。 包括AutoMX,允许最终用户在桌面或移动邮件客户端中轻松配置邮件帐户。 第一步:选择合适的主机提供商并购买域名 要使用Modoboa设置一个完整的电子邮件服务器,您需要一个至少有3GB内存的服务器,因为安装后,您的服务器将使用超过2GB的内存。 强烈建议您在Ubuntu 18.04服务器的干净安装上安装Modoboa。 本教程是在每月9美元的Kamatera VPS(虚拟专用服务器)上完成的,该服务器具有1个CPU和3GB RAM。他们提供30天的免费试用期。 Kamatera是运行邮件服务器的一个非常好的选择,因为 它们不会阻止端口25,因此您可以发送无限量的电子邮件(事务性电子邮件和时事通讯),而无需在SMTP中继服务上花钱。Kamatera没有任何SMTP限制。你每天可以发送一百万封电子邮件。 IP地址不在任何电子邮件黑名单上。(至少对我来说是这样。我选择了达拉斯数据中心。)你肯定不想被列入可怕的微软Outlook IP黑名单或spamrats黑名单。有些黑名单会屏蔽整个IP范围,你无法从此类黑名单中删除你的IP地址。 您可以编辑PTR记录以提高电子邮件的可交付性。 它们允许你向你的电子邮件订阅者发送时事通讯,而不受每小时或每天的限制。 您可以为一台服务器订购多个IP地址。这对需要发送大量电子邮件的人非常有用。您可以在多个IP地址上传播电子邮件流量,以实现更好的电子邮件交付。 其他VPS提供商,如DigitalOcean阻止了端口25。DigitalOcean不会解锁端口25,因此您需要设置SMTP中继以绕过阻止,这可能会增加您的费用。如果您使用Vultr VPS,则默认情况下端口25被阻止。如果您打开支持票证,他们可以解除阻止,但如果他们决定不允许您的电子邮件发送活动,他们可能会在任何时候再次阻止。如果你使用他们的服务器发送时事通讯,Vultr实际上可能会重新阻止它。 转到Kamatera网站创建帐户,然后在帐户仪表板中创建服务器。 我建议遵循下面链接的教程,在Kamatera上正确设置Linux VPS服务器。 如何在Kamatera上创建Linux VPS服务器 创建服务器后,Kamatera将向您发送一封包含服务器SSH登录详细信息的电子邮件。要登录到服务器,可以使用SSH客户端。如果您在计算机上使用Linux或macOS,只需打开一个终端窗口并运行以下命令即可登录服务器。将12.34.56.78替换为服务器的IP地址。 ssh [email protected] 系统将要求您输入密码。 你还需要一个域名。我从namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。 第2步:创建DNS MX记录 MX记录指定哪个或多个主机处理特定域名的电子邮件。例如,为linuxbabe处理电子邮件的主机。com是邮件。利努克斯宝贝。通用域名格式。如果拥有Gmail账户的人向[email ;protected]发送电子邮件,Gmail服务器将查询linuxbabe的MX记录。通用域名格式。当它发现那封邮件。利努克斯宝贝。com负责接收电子邮件,然后查询邮件记录。利努克斯宝贝。com获取IP地址,从而可以发送电子邮件。 在DNS管理器中,为域名创建MX记录。在名称字段中输入@代表主域名,然后输入mail。你的领域。com在值字段中。 注意:MX记录的主机名不能是其他名称的别名。此外,强烈建议您使用主机名,而不是MX记录的裸IP地址。 DNS管理员可能会要求您输入首选项值(也称为优先级值)。它可以是0到65356之间的任何数字。小数字的优先级高于大数字。您可以为电子邮件服务器输入0,或接受默认值。 创建MX记录后,还需要为邮件创建一个记录。你的领域。com,以便将其解析为IP地址。如果您的服务器使用IPv6地址,请确保添加AAAA记录。 如果使用Cloudflare DNS服务,则在为邮件服务器创建记录时不应启用CDN功能。 第3步:使用Modoboa安装程序在Ubuntu18.04上设置邮件服务器 通过SSH登录服务器,然后运行以下命令来更新软件包。 sudo apt update sudo apt upgrade -y 我强烈建议创建一个sudo用户来管理服务器,而不是使用默认的root用户来提高服务器安全性。运行以下命令创建用户。将用户名替换为首选用户名。 adduser username 然后将用户添加到sudo组。 adduser username sudo 切换到新用户。 su - username 从Github下载modoboa安装程序。 git clone https://github.com/modoboa/modoboa-installer Modoboa是用Python编写的。运行以下命令安装必要的Python软件。 sudo apt-get install python3-virtualenv python3-pip 然后导航到modoboa安装程序目录并创建一个配置文件。替换示例。使用你自己的域名。 cd modoboa-installer sudo ./run.py --stop-after-configfile-check example.com 编辑配置文件安装程序。使用命令行文本编辑器,如nano。 sudo nano installer.cfg 要从Let's Encrypt为邮件服务器获取有效的TLS证书,请在[certificate]部分,将type的值从self signed更改为letsencrypt。 type = letsencrypt 并将电子邮件地址从[email ;protected]更改为您的真实电子邮件地址,用于帐户恢复和重要通知。如果使用默认电子邮件地址,您将无法获取并安装Let's Encrypt certificate。 默认情况下,Modoboa安装程序将安装PostgreSQL数据库服务器,如配置文件中的以下行所示。 [database] engine = postgres host = 127.0.0.1 install = true 如果您想使用MariaDB数据库服务器,那么将引擎从postgres更改为mysql。(Modoboa将安装MariaDB而不是MySQL。) 保存并关闭文件。(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要退出,请按Ctrl+X。) 接下来,应该使用完全限定的域名(FQDN)作为邮件服务器(如mail)的主机名。实例通用域名格式。运行以下命令设置主机名。 sudo hostnamectl set-hostname mail.example.com 现在我们需要验证DNS记录是否已传播到Internet。根据您使用的域注册器,您的DNS记录可能会立即传播,或者传播可能需要24小时。你可以去https://dnsmap.io,输入邮件服务器的主机名(mail.example.com)以检查DNS传播。 如果DNS记录已传播,请运行以下命令开始安装。(请用主域名(如linuxbabe.com)替换example.com。不要在此命令中使用mail.example.com这样的子域)。 sudo ./run.py --interactive example.com 安装过程可能需要一段时间。在我的服务器上花了10分钟。如果在安装过程中看到错误,可以使用--debug选项查看更详细的输出。 sudo ./run.py --interactive --debug example.com 在Modoboa完成安装后,您可以使用用户名admin和密码登录管理面板。 登录后,您应该转到管理员->;设置->;配置文件以更改密码。 第4步:在Modoboa管理面板中添加邮箱 转到“域”选项卡,然后单击“添加”按钮添加新域。 然后在“名称”字段中输入主域名。强烈建议您启用DKIM签名,这有助于提高您的域声誉。在键选择器字段中,您可以输入一个随机单词,如modoboa。选择2048作为密钥长度。 在下一个屏幕中,您可以选择为您的域创建管理员帐户。SMTP协议要求邮件服务器应该有一个[email ;protected]地址。 点击提交按钮,你的域名将被添加到Modoboa中。 要添加电子邮件地址,请转到“域”选项卡,然后单击您的域名。 然后单击邮箱。 单击添加按钮并选择帐户。 然后选择简单用户作为角色。在用户名字段中输入电子邮件地址,然后输入密码。 在下一个屏幕中,您可以选择为此电子邮件地址创建别名。 单击提交按钮后,将创建电子邮件地址。 第5步:发送测试电子邮件 要登录到网络邮件,您需要先注销管理员帐户,然后输入用户凭据。 登录Modoboa webmail后,您可以将测试电子邮件从您的私人电子邮件服务器发送到其他电子邮件地址,反之亦然。 入站邮件将延迟几分钟,因为默认情况下,Modoboa会启用greylisting,这会告诉其他发送SMTP的服务器在几分钟后重试。这对阻止垃圾邮件很有用。下面的消息位于/var/log/mail中。日志表明已启用灰色列表。 postfix/postscreen[20995]: NOQUEUE: reject: RCPT from [34.209.113.130]:36980: 450 4.3.2 Service currently unavailable; 然而,灰色列表可能相当烦人。您可以通过编辑后缀主配置文件来禁用它。 sudo nano /etc/postfix/main.cf 在文件末尾找到以下几行并注释掉。(在每行开头添加#字符。) postscreen_pipelining_enable = yes postscreen_pipelining_action = enforce postscreen_non_smtp_command_enable = yes postscreen_non_smtp_command_action = enforce postscreen_bare_newline_enable = yes postscreen_bare_newline_action = enforce 保存并关闭文件。然后重新启动Postfix以使更改生效。 sudo systemctl restart postfix 现在你应该可以不用等几分钟就能收到电子邮件了。 添加交换空间 ClamAV用于扫描电子邮件中的病毒。ClamAV可以使用相当数量的RAM。如果您的服务器上没有足够的RAM,ClamAV将无法正常工作,这将阻止您的邮件服务器发送电子邮件。您可以向服务器添加交换文件,以增加服务器上的总RAM。(请注意,在服务器上使用交换空间会降低服务器性能。如果希望获得更好的性能,应升级物理RAM,而不是使用交换空间。) 要在服务器上添加交换空间,首先,使用fallocate命令创建一个文件。例如,在根文件系统中创建一个名为swapfile、容量为1G的文件: sudo fallocate -l 1G /swapfile 然后确保只有root用户可以读写它。 sudo chmod 600 /swapfile 将其格式化为交换: sudo mkswap /swapfile 输出: Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=0aab5886-4dfb-40d4-920d-fb1115c67433 启用交换文件 sudo swapon /swapfile 要在系统启动时装载交换空间,请编辑/etc/fstab文件。 sudo nano /etc/fstab 在该文件底部添加以下行。 /swapfile swap swap defaults 0 0 保存并关闭文件。然后重新加载systemd并重新启动ClamAV。 sudo systemctl daemon-reload sudo systemctl restart clamav-daemon 步骤6:检查端口25(出站)是否被阻止 您的ISP或主机服务提供商不会阻止与服务器端口25的传入连接,这意味着您可以接收来自其他邮件服务器的电子邮件。然而,许多ISP/主机提供商会阻止与其他邮件服务器端口25的传出连接,这意味着您无法发送电子邮件。 如果你的电子邮件没有到达你的其他电子邮件地址,比如Gmail,那么在你的邮件服务器上运行以下命令,检查端口25(出站)是否被阻止。 telnet gmail-smtp-in.l.google.com 25 如果未被阻止,您将看到如下消息,这表明已成功建立连接。(提示:输入quit并按Enter键关闭连接。) Trying 74.125.68.26... Connected to gmail-smtp-in.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp 如果端口25(出站)被阻止,您将看到如下情况: Trying 2607:f8b0:400e:c06::1a... Trying 74.125.195.27... telnet: Unable to connect to remote host: Connection timed out 在这种情况下,您的Postfix无法向其他SMTP服务器发送电子邮件。请您的ISP/主机提供商为您打开它。如果他们拒绝您的请求,您需要设置SMTP中继以绕过端口25阻塞。 还是不能发邮件? 如果端口25(出站)未被阻止,但您仍然无法从自己的邮件服务器向Gmail等其他电子邮件地址发送电子邮件,那么您应该检查邮件日志(/var/log/mail.log)。 sudo nano /var/log/mail.log 例如,有些人可能会在文件中看到以下几行。 host gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1 [2a0d:7c40:3000:b8b::2] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 for more information 这意味着您的邮件服务器正在使用IPv6发送电子邮件,但您没有设置IPv6记录。你应该去你的DNS管理员那里,为邮件设置AAAA记录。你的领域。com,那么您应该为IPv6地址设置PTR记录,这将在步骤8中讨论。 第7步:在计算机或移动设备上使用邮件客户端 启动你的桌面电子邮件客户端,比如Mozilla Thunderbird,并添加一个邮件帐户。 在“传入服务器”部分,选择IMAP协议,输入mail。你的领域。com作为服务器名,选择端口143和STARTTLS。选择普通密码作为身份验证方法。 在“发送”部分,选择SMTP协议,输入mail。你的领域。com作为服务器名,选择端口587和STARTTLS。选择普通密码作为身份验证方法。 您还可以在端口993上使用带有SSL/TLS加密的IMAP。 第8步:提高电子邮件交付能力 为了防止您的电子邮件被标记为垃圾邮件,您应该设置PTR、SPF、DKIM和DMARC记录。 PTR记录 指针记录或PTR记录将IP地址映射到FQDN(完全限定域名)。它与A记录相对应,用于反向DNS查找,这有助于阻止垃圾邮件发送者。如果没有找到发送服务器的PTR记录,许多SMTP服务器会拒绝电子邮件。 要检查PTR记录中的IP地址,请运行以下命令: dig -x IP-address +short 或 host IP-address PTR记录不由您的域注册器管理。它由提供IP地址的组织管理。因为您从主机提供商或ISP获得IP地址,而不是从域注册商获得,所以您必须在主机提供商的控制面板中为您的IP设置PTR记录,或者询问ISP。它的值应该是邮件服务器的主机名:mail。你的领域。通用域名格式。如果您的服务器使用IPv6地址,请确保也为您的IPv6地址添加PTR记录。 要编辑Kamatera VP的反向DNS记录,请登录Kamatera客户端区域,然后打开支持票证,告诉他们为服务器IP地址添加PTR记录,以将IP地址指向邮件。你的领域。通用域名格式。你可能会想,这并不方便,但这是为了让垃圾邮件发送者远离平台,因此像我们这样的合法电子邮件发送者将拥有良好的IP声誉。 SPF记录 SPF(发件人策略框架)记录指定允许哪些主机或IP地址代表域发送电子邮件。您应该只允许您自己的电子邮件服务器或ISP的服务器为您的域发送电子邮件。在DNS管理界面中,创建一个新的TXT记录,如下所示。 说明: TXT表示这是一条TXT记录。 在名称字段中输入@代表主域名。 v=spf1表示这是一条SPF记录,版本为spf1。 mx意味着mx记录中列出的所有主机都被允许为您的域发送电子邮件,而所有其他主机都被禁止。 ~all表示来自您域的电子邮件应该只来自SPF记录中指定的主机。来自其他主机的电子邮件将被标记为伪造。 要检查您的SPF记录是否传播到公共互联网,您可以在Linux机器上使用dig实用程序,如下所示: dig your-domain.com txt txt选项告诉dig我们只想查询txt记录。 DKIM记录 DKIM(DomainKeys Identified Mail)使用私钥对从您的域发送的电子邮件进行数字签名。接收SMTP服务器使用在DNS DKIM记录中发布的公钥验证签名。 当我们之前在Moboba管理面板中添加域名时,我们启用了DKIM签名,所以签名部分得到了处理。唯一要做的就是在DNS管理器中创建DKIM记录。首先进入Modoboa管理面板,选择你的域名。在DNS部分,单击显示密钥按钮。 公开密钥将被公开。有两种格式。我们只需要绑定/命名格式。 转到DNS管理器,创建一个TXT记录,输入modoboa_名称字段中的domainkey。(回想一下,在管理面板中添加域名时,我们使用了modoboa作为选择器。)复制括号中的所有内容并粘贴到值字段中。删除所有双引号。DNS管理器可能会要求您删除其他无效字符,例如回车符。 请注意,您的DKIM记录可能需要一些时间才能传播到Internet。根据您使用的域注册器,您的DNS记录可能会立即传播,或者传播可能需要24小时。你可以去https://www.dmarcanalyzer.com/dkim/dkim-check/,输入modoboa作为选择器,并输入您的域名以检查DKIM记录传播。 对于感兴趣的人,Modoboa使用OpenDKIM为您的域密钥生成私钥,并验证入站电子邮件的签名。 DMARC记录 DMARC代表基于域的消息身份验证、报告和一致性。DMARC可以帮助接收电子邮件服务器识别合法电子邮件,并防止电子邮件欺骗使用您的域名。 要创建DMARC记录,请转到DNS管理器并添加TXT记录。在名称字段中,输入_dmarc。在“值”字段中,输入以下内容: v=DMARC1; p=none; pct=100; rua=mailto:[email protected] 上述DMARC记录是一个安全的起点。要查看DMARC的完整解释,请查看以下文章。 创建DMARC记录以保护您的域名免受电子邮件欺骗 第7步:测试电子邮件分数和位置 创建PTR、SPF、DKIM记录后,转到https://www.mail-tester.com.你会看到一个独特的电子邮件地址。从你的域名发送电子邮件到此地址,然后检查你的分数。如你所见,我得了满分。 邮件测试员。com只能显示发件人分数。还有另一个名为GlockApps的服务,可以让你检查你的电子邮件是否放在收件人的收件箱或垃圾邮件文件夹中,或者直接被拒绝。它支持许多流行的电子邮件提供商,如Gmail、Outlook、Hotmail、YahooMail、iCloud mail等 如果你的电子邮件仍被标记为垃圾邮件呢? 在这篇文章中,我有更多提示:如何阻止你的电子邮件被标记为垃圾邮件。虽然这需要一些时间和精力,但在应用这些技巧后,你的电子邮件最终会被放入收件箱。 如果您的电子邮件被Microsoft邮箱拒绝怎么办? 微软似乎正在使用一个内部黑名单来屏蔽许多合法的IP地址。如果您的电子邮件被Outlook或Hotmail拒绝,您需要提交发件人信息表。之后,Outlook/Hotmail将接受您的电子邮件。 自动续订让我们加密TLS证书 Modoboa将最新版本的Let's Encrypt client(certbot)安装为/opt/certbot auto。通过执行以下命令,可以找到certbot二进制文件的位置。 sudo find / -name "*certbot*" 让我们加密TLS证书的有效期为90天。要自动续订证书,请编辑root用户的crontab文件。 sudo crontab -e 在该文件末尾添加以下行。 @daily /opt/certbot-auto renew -q && systemctl reload nginx postfix dovecot 保存并关闭文件。这会告诉Cron每天运行certbot续订命令。如果证书还有30天,certbot将续订证书。有必要重新加载Nginx web服务器、Postfix SMTP服务器和Dovecot IMAP服务器,以便他们能够获取新证书。 启用SMTPS端口465 如果要使用Microsoft Outlook客户端,则需要在Postfix SMTP服务器中启用SMTPS端口465。 故障排除 首先,请使用至少有2GB内存的VPS。在1GB RAM VPS上运行Modoboa会导致数据库、SpamAssassin或ClamAV因内存不足而被终止。如果你真的想使用1GB内存的VPS,你会丢失收到的电子邮件,并有其他不良后果。 如果无法访问Modoboa web界面,例如502网关错误,则应检查/var/log/Nginx/目录中的Nginx日志以找到线索。您可能还需要检查邮件日志/var/log/mail。日志 检查各种服务是否正在运行。 systemctl status postfix systemctl status dovecot systemctl status nginx systemctl status mariadb systemctl status clamav-daemon systemctl status amavis systemctl status uwsgi systemctl status supervisor 如果启用了防火墙,则应在防火墙中打开以下端口。 HTTP port: 80 HTTPS port: 443 SMTP port: 25 Submission port: 587 (and 465 if you are going to use Microsoft Outlook mail client) IMAP port: 143 and 993 如果你想使用UFW防火墙,请查看我的指南:Debian和Ubuntu上的UFW防火墙入门。 自动关机 我发现clamav守护进程服务有一种趋势,即使有足够的RAM,也会在没有明确原因的情况下停止。这将使电子邮件延迟1分钟。我们可以通过systemd服务单元将其配置为在停止时自动重启。将原始服务单元文件复制到/etc/systemd/system/目录。 sudo cp /lib/systemd/system/clamav-daemon.service /etc/systemd/system/clamav-daemon.service 然后编辑服务单元文件。 sudo nano /etc/systemd/system/clamav-daemon.service 在[service]部分添加以下两行。 Restart=always RestartSec=3 这样地: [Service] ExecStart=/usr/sbin/clamd --foreground=true # Reload the database ExecReload=/bin/kill -USR2 $MAINPID StandardOutput=syslog Restart=always RestartSec=3 保存并关闭文件。然后重新加载systemd并重新启动clamav守护进程。服务 sudo systemctl daemon-reload sudo systemctl restart clamav-daemon 抱歉,发生内部错误 如果在尝试登录Modoboa管理面板时看到内部错误消息,请编辑设置。py文件。 sudo nano /srv/modoboa/instance/instance/settings.py 打开调试模式。 DEBUG = True 重新启动uwsgi以使更改生效。 sudo systemctl restart uwsgi 接下来,再次尝试登录Modoboa管理面板。这一次,您将看到确切的内部错误。例如,在我的邮件服务器上 database connection isn't set to UTC
-
在Ubuntu上设置带有后缀的OpenDMARC以阻止垃圾邮件/电子邮件欺骗
在之前的文章中,我们讨论了如何使用iRedMail或Modoboa快速设置自己的邮件服务器,以及阻止垃圾邮件的几个有效提示。本教程将向您展示如何在Ubuntu上使用Postfix SMTP服务器设置OpenDMARC,以阻止电子邮件欺骗和垃圾邮件。OpenDMARC是一个开源的DMARC电子邮件策略过滤器,用于MTA(邮件传输代理,又名SMTP服务器)。 什么是DMARC DMARC(基于域的消息验证、报告和一致性)是一种互联网标准(RFC 7489),允许域所有者防止其域名被电子邮件欺骗者使用。在DMARC发明之前,坏人很容易在发件人地址中使用他人的域名。 如果域名所有者为他/她的域名创建了DMARC DNS记录,并且接收电子邮件的服务器执行了DMARC检查,那么坏的参与者需要通过SPF校准或DKIM校准才能通过DMARC检查。如果DMARC检查失败,伪造的电子邮件可能会被拒绝。永远不会被最终用户看到。除非域名所有者的电子邮件服务器被破坏,否则坏的参与者很难通过SPF或DKIM。 电子邮件欺骗示例 一个垃圾邮件发送者用winsaaluminyumankara给我发了一封赎金邮件。com在发件人地址中。winsaaluminyumankara的whois信息。com是公共的。很明显,垃圾邮件发送者不是这个域名的责任人。 温莎·尤曼卡拉。com有DMARC记录。 然后我检查了邮件标题,显示SPF失败。没有DKIM的签名。所以DMARC检查失败了。这是一封伪造的电子邮件。 这表明,电子邮件欺骗者不仅使用大品牌,互联网上的任何域名都可能被坏人冒充。不幸的是,这个域名的DMARC策略是p=none,它告诉接收电子邮件的服务器,如果DMARC检查失败,不要做任何特别的事情。如果策略是p=reject,那么我的Postfix SMTP服务器将使用OpenDMARC拒绝此电子邮件。 Paypal和Facebook为其域名创建了拒绝DMARC策略。 因此,如果一个坏演员试图欺骗Paypal或Facebook,我的电子邮件服务器可以用OpenDMARC拒绝欺骗的电子邮件。还有许多其他知名域名部署了拒绝DMARC策略,如下表所示。 美国银行。通用域名格式 雅虎。通用域名格式 追赶通用域名格式 韦尔斯法戈。通用域名格式 脸谱网。通用域名格式 谷歌。通用域名格式 youtube。通用域名格式 啁啾通用域名格式 reddit。通用域名格式 instagram。通用域名格式 领英。通用域名格式 中等的通用域名格式 pinterest。通用域名格式 dropbox。通用域名格式 微软通用域名格式 WhatsApp通用域名格式 安全邮箱提供商Protonmail正在使用Postfix和OpenDMARC对入站电子邮件执行DMARC检查,我将向您展示如何在自己的Postfix SMTP服务器上执行同样的检查。 先决条件 本教程面向邮箱提供商和任何运行自己的邮件服务器的人,以保护他们的用户免受电子邮件欺骗的欺骗。如果您是域名所有者,并且希望防止您的域名被电子邮件欺骗者使用,请阅读本文以创建DMARC记录并分析DMARC报告。如果你不完全理解DMARC,我也建议你阅读这篇文章。 要学习本教程,您需要先让SPF和DKIM验证工作,因为DMARC取决于SPF和DKIM验证结果来做出最终决定。 在Ubuntu16.04、Ubuntu18.04或20.04上使用Postfix SMTP服务器设置OpenDMARC OpenDMARC是一个开源软件,可以执行DMARC验证和报告。它已经在Ubuntu存储库中,所以你可以运行下面的命令来安装它。 sudo apt install opendmarc 如果要求您使用dbconfig common为OpenDMARC配置数据库,您可以安全地选择否。 一旦安装,它将自动启动。使用以下命令检查其状态: systemctl status opendmarc 输出: ● opendmarc.service - OpenDMARC Milter Loaded: loaded (/lib/systemd/system/opendmarc.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2018-10-30 19:49:52 CST; 23s ago Docs: man:opendmarc(8) man:opendmarc.conf(5) Main PID: 14858 (opendmarc) Tasks: 6 (limit: 1110) CGroup: /system.slice/opendmarc.service └─14858 /usr/sbin/opendmarc 提示:如果上述命令没有立即退出,您可以按Q键使其退出。 请注意,系统启动时自动启动被禁用。我们可以通过以下方式实现: sudo systemctl enable opendmarc 然后用文本编辑器编辑主配置文件。 sudo nano /etc/opendmarc.conf 找到以下行: # AuthservID name 默认情况下,OpenDMARC使用MTA主机名作为AuthserveID,但最好为身份验证服务使用不同的名称,因为Amavisd new将覆盖OpenDMARC添加的身份验证结果头。您可以将其更改为以下内容,这将很容易让您看到哪个程序添加了哪个身份验证结果头。 AuthservID OpenDMARC 接下来,添加以下行。将主机名替换为真正的后缀主机名。这告诉OpenDMARC信任邮件的身份验证结果。你的地盘。当你运行OpenDKIM进行DKIM验证时,这是必需的。 TrustedAuthservIDs mail.yourdomain.com 如果Postfix主机名未包含在TrustedAuthservIDs中,或者您的主机名有输入错误,那么OpenDMARC将忽略OpenDKIM生成的身份验证结果头,您将在邮件日志/var/log/mail中找到以下错误消息。日志 opendmarc[1133]: A436A205C9 ignoring Authentication-Results at 1 from mail.yourdomain.com 然后找到这一行: # RejectFailures false 默认情况下,OpenDMARC不会拒绝未通过DMARC检查的电子邮件,即使域的策略设置为p=reject。如果您希望在域的策略设置为p=reject时拒绝未通过DMARC检查的电子邮件,请取消对此行的注释,并将false更改为true。 RejectFailures true 您可能希望OpenDMARC忽略通过SMTP身份验证成功的SMTP客户端。例如,我的博客web服务器上运行着一个Postfix SMTP服务器,它使用我的主邮件服务器作为中继发送通知电子邮件,因此我希望openDMARC忽略从博客web服务器提交的电子邮件。这也适用于通过587端口提交传出电子邮件的桌面/移动邮件客户端。在本例中,在文件末尾添加以下行。 IgnoreAuthenticatedClients true 在该文件末尾添加以下行。 RequiredHeaders true 这将拒绝不符合RFC5322中所述的电子邮件标题标准的电子邮件。例如,如果收到的电子邮件没有From:header或date:header,它将被拒绝。无法从中提取域名的From:字段也将被拒绝。 建议在此文件末尾添加以下行。这将使OpenDMARC在消息头中找不到SPF结果时,自行执行后备SPF检查。 SPFSelfValidate true OpenDMARC是作为milter(邮件过滤器)实现的。Postfix可以通过Unix套接字与milter应用程序进行通信。OpenDMARC使用的默认套接字文件是/var/run/OpenDMARC/OpenDMARC。短袜但是Ubuntu附带的Postfix SMTP守护程序在chroot-jail中运行,这意味着SMTP守护程序将解析与Postfix队列目录(/var/spool/Postfix)相关的所有文件名。所以我们需要更改OpenDMARC使用的套接字文件。 找到下面这行。 Socket local:/var/run/opendmarc/opendmarc.sock 将其更改为: Socket local:/var/spool/postfix/opendmarc/opendmarc.sock 保存并关闭文件。在Ubuntu16.04上,这个文件中没有定义套接字,你只需要在文件中添加上面的一行。 注意:/etc/default/opendmarc文件也可以设置套接字文件的位置,但是Ubuntu 18.04和20.04上的opendmarc包不读取该文件,所以我们需要在/etc/opendmarc中设置套接字文件路径。conf文件。 创建一个目录来保存OpenDMARC套接字文件,并更改所有权,以便OpenDMARC用户和OpenDMARC组可以访问它。 sudo mkdir -p /var/spool/postfix/opendmarc sudo chown opendmarc:opendmarc /var/spool/postfix/opendmarc -R 将权限更改为750以限制访问,因此不在opendmarc组中的用户无法访问此目录。 sudo chmod 750 /var/spool/postfix/opendmarc/ -R 将用户后缀添加到opendmarc组。 sudo adduser postfix opendmarc 然后重新启动OpenDMARC。 sudo systemctl restart opendmarc 配置Postfix SMTP服务器 编辑主配置文件。 sudo nano /etc/postfix/main.cf 如果您已经配置了OpenDKIM,那么这个文件中应该有如下行。 # Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = local:opendkim/opendkim.sock non_smtpd_milters = $smtpd_milters 现在只需要添加OpenDMARC套接字文件,这样Postfix就可以与OpenDMARC通信。(确保它位于OpenDKIM插槽之后。) # Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = local:opendkim/opendkim.sock,local:opendmarc/opendmarc.sock non_smtpd_milters = $smtpd_milters 保存并关闭文件。然后重新启动Postfix以使更改生效。 sudo systemctl restart postfix 如果你使用iRedMail 如果您使用iRedMail设置邮件服务器,那么您没有OpenDKIM。iRedMail使用Amavis进行DKIM签名和验证,但OpenDMARC无法从Amavis读取DKIM验证结果,这将导致DMARC检查失败。因此,我们需要如下设置DKIM验证。 运行以下命令安装OpenDKIM。 sudo apt install opendkim 编辑OpenDKIM主配置文件。 sudo nano /etc/opendkim.conf 找到下面这行 #Mode sv 默认情况下,OpenDKIM将同时充当签名者和验证者。由于iRedMail已经使用Amavis进行DKIM签名,我们只需要OpenDKIM充当验证器,这样OpenDMARC就可以读取验证结果。移除#符号并将模式更改为verifier。 Mode v 然后在文件末尾添加以下行。 #OpenDKIM user # Remember to add user postfix to group opendkim UserID opendkim # Hosts to ignore when verifying signatures ExternalIgnoreList /etc/opendkim/trusted.hosts InternalHosts /etc/opendkim/trusted.hosts Socket local:/var/spool/postfix/opendkim/opendkim.sock 保存并关闭文件。将postfix用户添加到opendkim组。 sudo adduser postfix opendkim 创建受信任的主机文件。 sudo mkdir /etc/opendkim/ sudo nano /etc/opendkim/trusted.hosts 将以下行添加到新创建的文件中。 127.0.0.1 localhost *.your-domain.com 上述情况意味着来自上述IP地址和域的消息将被信任。保存并关闭文件。然后改变所有权。 sudo chown -R opendkim:opendkim /etc/opendkim 接下来,创建一个目录来保存OpenDKIM套接字文件,并且只允许OpenDKIM用户和组访问它。 sudo mkdir /var/spool/postfix/opendkim sudo chown opendkim:opendkim /var/spool/postfix/opendkim 如果可以在/etc/default/opendkim文件中找到以下行。 SOCKET="local:/var/run/opendkim/opendkim.sock" 换成 SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock" 之后,我们需要编辑Postfix主配置文件。 sudo nano /etc/postfix/main.cf 在该文件末尾添加以下行,以连接Postfix与OpenDKIM和OpenDMARC。 # Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = local:opendkim/opendkim.sock,local:opendmarc/opendmarc.sock non_smtpd_milters = $smtpd_milters 保存并关闭文件。重新启动OpenDKIM、OpenDMARC和Postfix。 sudo systemctl restart opendkim opendmarc postfix 测试OpenDMARC验证 现在,从你的其他电子邮件地址(如Gmail)向你的域名地址发送一封电子邮件。之后,检查邮件标题。如果OpenDMARC工作正常,您可以看到DMARC验证结果,如下所示。 Authentication-Results: OpenDMARC; dmarc=pass (p=none dis=none) header.from=gmail.com 我从我的Gmail帐户向我的域电子邮件地址发送了一封电子邮件,并通过了DMARC验证。如果您没有看到此电子邮件标题,请查看您的邮件日志。 sudo nano /var/log/mail.log 您将看到如下内容,这意味着OpenDMARC正在工作。 opendmarc[26495]: implicit authentication service: mail.linuxbabe.com opendmarc[26495]: 61DAA3EA44: gmail.com pass 如果您看到以下消息。 ignoring Authentication-Results at 1 from mail.linuxbabe.com 这意味着OpenDMARC忽略了SPF和DKIM验证结果,因此OpenDMARC无法工作。您需要在/etc/opendmarc中添加以下行。conf文件,然后重新启动OpenDMARC。 TrustedAuthservIDs mail.yourdomain.com 如果更改Postfix myhostname参数,请记住将新主机名添加到TrustedAuthservIDs。可以添加多个主机名,以逗号分隔。 TrustedAuthservIDs mail.yourdomain.com,mail2.yourdomain.com 用Telnet测试OpenDMARC 你可以使用telnet欺骗另一个域名,比如paypal。通用域名格式。首先,在本地计算机上运行以下命令,以连接到邮件服务器的端口25。 telnet mail.yourdomain.com 25 然后使用以下步骤发送欺骗电子邮件。(输入粗体文本。) HELO mail.paypal.com 250 mail.yourdomain.com MAIL FROM:<[email protected]> 250 2.1.0 Ok RCPT TO:<[email protected]> 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> From: [email protected] To: [email protected] Subject: Please update your password. Click this link to update your password. . 550 5.7.1 rejected by DMARC policy for paypal.com quit 如你所见,我的邮件服务器拒绝了这封邮件,因为它没有通过DMARC检查,Paypal部署了一个p=reject策略。 注意:如果域的DMARC策略设置为p=隔离,那么OpenDMARC milter将无限期地将伪造的电子邮件放入Postifx保留队列。邮局主管可以使用postqueue-p命令列出队列中的所有消息,并使用postsuper命令行实用程序释放等待队列中的消息。 如何在OpenDMARC中白名单IP地址 如果您希望允许其他服务器通过运行OpenDMARC的主邮件服务器的端口25转发电子邮件,那么您应该在OpenDMARC中列出其他服务器的IP地址,因为OpenDMARC也会在转发电子邮件中检查From:域。 编辑OpenDMARC配置文件。 sudo nano /etc/opendmarc.conf 在该文件末尾添加以下行。 IgnoreHosts /etc/opendmarc/ignore.hosts 保存并关闭文件。然后创建/etc/opendmarc/目录。 sudo mkdir /etc/opendmarc/ 创建忽略。主机文件。 sudo nano /etc/opendmarc/ignore.hosts 在此文件中添加要列入白名单的IP地址,如下所示: 127.0.0.1 12.34.56.78 保存并关闭文件。然后重新启动OpenDMARC。 sudo systemctl restart opendmarc 结论 我希望本教程能帮助您在Ubuntu上使用Postfix SMTP服务器设置OpenDMARC,以阻止电子邮件欺骗和垃圾邮件。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?
-
如何在namescape中创建DNS记录
Name便宜是我推荐的域名注册商,因为价格低廉,而且他们终身免费为whois提供隐私保护。本教程将向您展示如何在namescape中创建常见的DNS记录。这主要适用于需要设置邮件服务器的用户。 在namescape中创建DNS记录 要创建DNS记录,请转到NameCheap帐户仪表板,单击左侧窗格中的域列表,然后单击右侧的管理按钮。 确保名称服务器设置为namecdns。 单击高级DNS选项卡以编辑DNS记录。 MX记录 MX记录指定哪个或多个主机处理特定域名的电子邮件。例如,为linuxbabe处理电子邮件的主机。com是邮件。利努克斯宝贝。通用域名格式。如果拥有Gmail账户的人向[email ;protected]发送电子邮件,Gmail服务器将查询linuxbabe的MX记录。通用域名格式。当它发现那封邮件。利努克斯宝贝。com负责接收电子邮件,然后查询邮件记录。利努克斯宝贝。com获取IP地址,从而可以发送电子邮件。 向下滚动,您将找到邮件设置,选择自定义MX。 接下来,单击添加新记录按钮添加新的MX记录。在主机字段中输入@代表主域名,然后输入mail。你的领域。com在值字段中。在优先级字段中输入0。优先级值可以是0到65356之间的任何数字。小数字的优先级高于大数字。建议将该值设置为0,以便此邮件服务器具有接收电子邮件的最高优先级。单击“检查”按钮保存更改。 记录 记录(地址记录)将域名映射到IP地址。创建MX记录后,还需要为邮件创建一个记录。你的领域。com,以便将其解析为IP地址。 单击主机记录部分中的添加新记录按钮。创建一个记录。在主机字段中输入mail。然后在值字段中输入邮件服务器的IP地址。单击“检查”按钮保存更改。 AAAA记录 AAAA记录将域名映射到IPv6地址。如果您的服务器使用IPv6地址,请确保添加AAAA记录。 单击主机记录部分中的添加新记录按钮。创建AAAA记录。在主机字段中输入mail。然后在值字段中输入邮件服务器的公共IPv6地址。单击“检查”按钮保存更改。 SPF记录 SPF(发送方策略框架)是一种TXT记录。它指定允许哪些主机或IP地址代表域发送电子邮件。您应该只允许您自己的电子邮件服务器或ISP的服务器为您的域发送电子邮件。 在“主机记录”部分,创建一个新的TXT记录。在主机字段中输入@代表主域名。在值字段中输入v=spf1 mx~all。单击“检查”按钮保存更改。 说明: v=spf1表示这是一条SPF记录,版本为spf1。 mx意味着mx记录中列出的所有主机都被允许为您的域发送电子邮件,而所有其他主机都被禁止。 ~all表示来自您域的电子邮件应该只来自SPF记录中指定的主机。来自其他主机的电子邮件将被标记为伪造。 要检查您的SPF记录是否传播到公共互联网,您可以在Linux机器上使用dig实用程序,如下所示: dig your-domain.com txt txt选项告诉dig我们只想查询txt记录。 DKIM记录 这也是一种TXT记录。DKIM(DomainKeys Identified Mail)使用私钥对从您的域发送的电子邮件进行数字签名。接收SMTP服务器使用在DNS DKIM记录中发布的公钥验证签名。 DKIM私钥/公钥对由邮件服务器上的软件生成。根据您使用的软件,获取DKIM公钥的方法可能会有所不同。如果您遵循我的iRedMail或Modoboa教程,请阅读该教程以了解如何获取DKIM公钥。 获得密钥后,转到主机记录部分,创建一个新的TXT记录。进入dkim_如果您遵循我的iRedMail教程,请在主机字段中输入domainkey。进入modoboa_如果您遵循我的Modoboa教程,请在主机字段中输入domainkey。接下来,将DKIM公钥复制到值字段。请注意,您需要删除所有双引号和换行符。您可以先将DKIM公钥复制到tex编辑器,删除双引号和换行符,然后将其复制到NameSheap中的值字段。 单击“检查”按钮保存更改。 DMARC记录 DMARC代表基于域的消息身份验证、报告和一致性。DMARC可以帮助接收电子邮件服务器识别合法电子邮件,并防止电子邮件欺骗使用您的域名。 要创建DMARC记录,请转到“主机记录”部分,创建新的TXT记录。在主机字段中输入_dmarc。输入v=DMARC1;p=无;pct=100;rua=mailto:[email ;protected]在值字段中。(您应该创建[email ;protected]电子邮件地址。)单击“检查”按钮保存更改。 PTR记录 指针记录或PTR记录将IP地址映射到FQDN(完全限定域名)。它与A记录相对应,用于反向DNS查找,这有助于阻止垃圾邮件发送者。如果没有找到发送服务器的PTR记录,许多SMTP服务器会拒绝电子邮件。 要检查PTR记录中的IP地址,请运行以下命令: dig -x IP-address +short 或 host IP-address PTR记录不受您的域注册商控制。因为您从主机提供商或ISP获得IP地址,而不是从域注册商获得,所以您必须在主机提供商的控制面板中为您的IP设置PTR记录,或者询问ISP。它的值应该是邮件服务器的主机名:mail。你的领域。通用域名格式。如果您的服务器使用IPv6地址,请确保也为您的IPv6地址添加PTR记录。 要编辑ScalaHost VP的反向DNS记录,请登录ScalaHost客户端区域,然后使用右下角的实时聊天,告诉支持团队将服务器IP地址的PTR记录更新为mail。你的领域。通用域名格式。 收尾 我希望这篇文章能帮助你在namescape中创建DNS记录。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?