2024年10月

serv00的部分 sN.serv00.com 86 服务器被墙了,或者是各种奇怪的原因导致无法ssh连接。
一种解决思路是,直接通过代理或者跳板连接ssh。

但是也可以按照如下设置 hostname/IP 和 端口,再连接ssh试试看。
其中大写的 N 是邮件中给定的服务器号,USER 是你注册的用户名:

  1. sN.serv00.com 86(或其IP)+端口22(或80或443)
  2. webN.serv00.com 40(或其IP)+端口22
  3. cacheN.serv00.com 25(或其IP)+端口22
  4. panelN.serv00.com 30 +端口22
  5. USER.serv00.net 22 +端口22
    感谢热心佬友CN补充第4条、忘心弃剑补充第5条。
    共计 6+2+2+1+1 种组合,具体用哪个请自行动手测试。
    像我这里就可以通过 panel7.serv00.com:22 及 128.204.223.119:22 来连上s7的ssh。

无论邮箱系统用的什么软件,都绕不开邮件相关的域名解析,只要搞邮件就需配置以下域名解析:

MX 记录 :域名系统基础记录,指向邮件服务器
SPF 记录 :指定哪些服务器可以使用你的域名发送邮件
DKIM 记录 :防止发送的电子邮件内容篡改
DMARC 记录 :当 SPF 和 DKIM 验证失败时,指定接收方的处理策略并向指定邮箱报告

PTR 记录 :即 IP 反解析,根据 IP 反查域名,需供应商来做

MX 记录
收发邮件时,MX 记录指定了自己的邮件服务器地址,可以设置优先级,一般建议 2 条以上 mx 记录(
域名 类型 值 优先级
example.com mx mx1.example.com 10
设置对应 MX 子域名的记录:
mx1.example.com A 10.2.3.4
设置好后使用 dig 命令验证一下:
dig mx example.com
PTR 记录
将域名映射到 IP 地址是正向解析,从 IP 地址到域名的映射就是反向解析,在公网上,反向解析无法由 DNS 提供,因为 IP 地址的管理权限属于运营商,所以需要向运营商申请添加反向解析,运营商通过 PTR(Pointer Record)记录将 IP 地址指向域名。邮件服务器 IP 不做 PTR 记录,发送邮件后会有很大概率被当成垃圾邮件。

联系供应商加好后,可以用 dig 命令验证:

dig -x mx1.example.com
SPF 记录
SPF 全名是 发件人策略框架,主要作用是将发信的邮件服务器和发信域名进行绑定,防止伪造发件人。在 SPF 记录中使用 TXT 记录指定允许发信的服务器,当对方收到邮件后,系统会验证发信域名并读取 SPF 记录中的 IP,验证是否一致后采取进一步动作。

以谷歌 SPF 记录为例:

dig txt gmail.com

gmail.com. 300 IN TXT "v=spf1 redirect=_spf.google.com"

dig txt _spf.google.com

_spf.google.com. 300 IN TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

dig txt _netblocks.google.com

_netblocks.google.com. 300 IN TXT "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"
SPF 记录以 v=spf1 开头,以 all 结尾,中间可以使用 ip4/ip6/a/mx/include/redirect 等关键字进行 ip 范围指定。SPF 记录的匹配机制会结合 限定词 来告诉服务器匹配记录时的动作。常见的限定词有:

  • 放行,如果没有明确指定限定词,则为默认值。
  • 硬拒绝,直接拒绝来自未经授权主机的邮件。
    ~ 软拒绝,邮件可被接受,也可被标记为垃圾邮件。
    ? 中性,不考虑邮件是否被接受。
    个人邮件设置允许 mx 记录中的服务器发信即可,最终设置 SPF 记录为:
    example.com txt "v=spf1 mx -all"
    DKIM 记录
    DKIM 记录主要作用也是防止邮件被恶意篡改,保证邮件内容的完整性,使用的方式是与 SSL 类似,服务器产生一个公私钥对,私钥为每一封外发的邮件签名并在邮件头中插入 DKIM 签名(DKIM-Signature 头),公钥则保存在域名的记录中,邮件接收方接收邮件时,通过 DNS 查询获得公钥,并使用公钥解密邮件签名, 从而验证邮件有效性和完整性。
    default._domainkey.example.com txt "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0......"
    DMARC 记录
    DMARC 基于现有的 SPF 和 DKIM 协议,并声明对验证失败邮件的处理策略。邮件接收方接收邮件时,首先通过 DNS 获取 DMARC 记录,再对邮件来源进行 SPF 验证和 DKIM 验证,对验证失败的邮件根据 DMARC 记录进行处理,并将处理结果反馈给发送方。
    _dmarc.nixops.me txt "v=DMARC1; p=quarantine; ruf=mailto:[email protected]v"
    p:reject 拒绝该邮件;none 为不作处理;quarantine 标记为垃圾邮件。
    ruf:检测到伪造邮件,接收方报告的邮箱地址
    MTA-STS 和 TLS 报告
    MTA-STS 是 MTA 严格传输安全协议,作用是确保发送给我们的电子邮件通过 TLS 安全地传输,防止中间人攻击。启用 MTA-STS 后,发送方邮件服务器只有在满足以下条件时,才会向我们发送邮件:

使用有效的证书通过身份验证
使用 TLS 1.2 或更高版本进行加密
当然如果发送方不支持 MTA-STS,仍然可以发送邮件(可能会有中间人攻击),主要是为了兼容。

启用 MTA-STS 所需条件:

创建策略文件,并提供 HTTPS 方式访问
通过 DNS 设置 txt 记录,告诉其它邮件服务商支持 MTA-STS

策略文件 mta-sts.txt 的内容为:

version: STSv1
mode: enforce
mx: mx1.nixops.me
mx: mx2.nixops.me
max_age: 86400
创建子域名并启用 https,最终的访问路径为:
https://mta-sts.nixops.me/.well-known/mta-sts.txt
配置 MTA-STS 的 TXT 记录:
_mta-sts.nixops.me TXT "v=STSv1; id=20211031T010101;"
一般 id 为时间戳。

DNSSEC, DNAME, CAA
启用了 MTA-STS 后,DANE 可以确保 TLS 证书是有效的,实际上是通过 DNS 的方式扮演了 CA 的角色。 DANE 通过 TLSA 记录,来声明某个证书的是可信的,由于 DANE 是基于 DNS 协议,可能会有被挟持的可能,因此需要启用 DNSSEC 来保障传输过程中不被修改。
启用 DNSSEC 需域名注册商及 dns 服务商都支持,在 DNS 服务商处选择开启 DNSSEC,然后将提供的 DS 记录填写到域名注册商即可
使用 TLSA 证书生成工具 及 PEM 格式的 TLS 证书生成 TLSA 记录
使用CAA Record Helper生成的 CAA 记录
为了保障 TLS 证书安全:

DNSSEC 保障 DNS 记录传输过程中的安全
DANE 在客户端侧阻止不当签发的证书
CAA 指定域名允许哪个证书颁发机构为其颁发证书

支持手动更改默认的固件 MAC 地址 00:11:22:33:44:55

原理
机顶盒的mac地址由启动阶段的 bootargs.bin 进行传递。

作者为了便利用户更改,制作了mkbootargs的程序提供在线制作bootargs.bin文件。

制作生成
原始文档:(每个系统都是单独对应的数值,请务必使用当前系统下的文档)

/etc/bootargs_input.txt

root@hi3798mv200:~# cat /etc/bootargs_input.txt
baudrate=115200
ethaddr=00:11:22:33:44:55
ipaddr=192.168.1.10
netmask=255.255.255.0
gatewayip=192.168.1.1
serverip=192.168.1.1
bootcmd=mmc read 0 0x1FFFFC0 0x7000 0x14000;bootm 0x1FFFFC0
bootargs_512M=mem=512M mmz=ddr,0,0,48M vmalloc=500M
bootargs_1G=mem=1G mmz=ddr,0,0,48M vmalloc=500M
bootargs_2G=mem=2G mmz=ddr,0,0,48M vmalloc=500M
bootargs_768M=mem=768M mmz=ddr,0,0,48M vmalloc=500M
bootargs_1536M=mem=1536M mmz=ddr,0,0,48M vmalloc=500M
bootargs_3840M=mem=3840M mmz=ddr,0,0,48M vmalloc=500M
bootargs=model=mv200 console=ttyAMA0,115200 root=/dev/mmcblk0p9 rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(boot),1M(bootargs),4M(baseparam),4M(pqparam),4M(logo),40M(kernel),64M(busybox),512M(backup),-(ubuntu)
bootdelay=0
stdin=serial
stdout=serial
stderr=serial


自行修改第2行的ethaddr=00:11:22:33:44:55 例如为 ethaddr=00:11:22:33:44:66

注意:这个mac地址必须是16进制的数字或字母,强烈建议你看机顶盒背后的标签来写。

制作生成:

mkbootargs -s 64 -r /etc/bootargs_input.txt -o bootargs.bin

刷入第二分区:

将上一步生成的bootargs.bin 刷入第2分区

dd if=bootargs.bin of=/dev/mmcblk0p2 bs=1024 count=1024

重启生效
自动脚本
作者也做了一个自动脚本直接完成上面的操作,

http://192.168.xx.xx/macedit.php

软改mac
上面的方法是硬改mac,这里也阐述一下软改的办法:

vi /etc/network/interfaces.d/eth0       # 编辑配置文件
# 增加下面的内容 (实际内容可按需修改)
pre-up ifconfig eth0 hw ether 00:11:22:33:44:66

前言
1Panel 是一款集成多种工具和服务的管理平台,通过其应用商店,用户可以一键安装和配置各种应用程序。本文将介绍如何通过 1Panel 快速构建并配置内网邮件服务器 Maddy Mail Server。

Maddy Mail Server 是一个现代化的邮件服务器,设计简洁易用,支持 SMTP 和 IMAP 协议,并且具有高效的邮件传输和存储功能。通过 Maddy Mail Server,可以方便地管理企业内网的邮件通信。

1、安装1Panel
首先,在服务器安装1panel,具体安装步骤可参考 1Panel 官方安装文档

安装完成后,打开浏览器进入1Panel界面

2、安装 Maddy Mail Server

准备工作:在安装Maddy Mail Server之前需要准备一个域名,并申请一个域名证书,申请好域名证书后,下载会得到fullchain.pem 和 privkey.pem 两个文件。

2.1、在 1Panel 管理界面,导航到应用商店,搜索 "Maddy Mail Server"

点击 "安装" 按钮,具体配置如下:

名称:要创建的 Maddy Mail Server 应用的名称。
版本:Maddy Mail Server 应用的版本。
SMTP入站端口:Maddy Mail Server 接收外部邮件的通信端口,默认端口是 25。
IMAP4 端口:用于邮件客户端连接到邮件服务器并访问存储在服务器上的邮件,使用未加密的连接。默认端口是 143。
IMAP4 端口:用于邮件客户端连接到邮件服务器并访问存储在服务器上的邮件,使用加密的连接(IMAPS)。默认端口是 993。
SMTP 提交端口:用于邮件客户端提交邮件到邮件服务器进行发送,使用加密的连接(SMTPS)。默认端口是 465。
SMTP 提交端口:用于邮件客户端提交邮件到邮件服务器进行发送,使用 STARTTLS 加密的连接。默认端口是 587。
邮箱 MX 主机名:指定邮件服务器的主机名(MX 记录),用于接收邮件的 DNS 记录。
邮箱域名:指定邮件服务器所服务的域名,例如 example.com。
容器名称:Maddy Mail Server 应用容器名称。
CPU 限制:Maddy Mail Server应用可以使用的 CPU 核心数。
内存限制:Maddy Mail Server应用可以使用的内存大小。
端口外部访问:MaddyMail Server应用可以使用 IP:PORT 进行访问。
2.2、上传域名证书
此时 Maddy Mail Server应用启动状态是异常,因为我们还没有上传域名证书,详情可查看日志

上传fullchain.pem 和 privkey.pem 证书文件

安装好应用之后,进入/var/lib/docker/volumes/maddydata/_data/tls ,将域名证书上传到该目录。

证书上传完成后,我们的 Maddy Mail Server应用启动状态就正常了

2.3、获取DKIM 值
当容器正常运行后, 在/var/lib/docker/volumes/maddydata/_data/dkim_keys路径下会有个类似xxx_default.dns的文件。

复制文件内容,设置 DNS 解析需要用到。

3、设置DNS 解析
设置以下 DNS 解析:

主机记录 记录类型 记录值
default._domainkey TXT 上面xxx_default.dns获得的内容
mail A 服务器ipv4地址
@ A 服务器ipv4地址
mail AAAA 服务器ipv6地址(如果有)
@ AAAA 服务器ipv6地址(如果有)
@ MX http://mail.example.com
mail TXT v=spf1 mx ~all
@ TXT v=spf1 mx ~all
_dmarc TXT v=DMARC1; p=quarantine; ruf=mailto:[email protected]
_mta-sts TXT v=STSv1; id=1
_smtp._tls TXT v=TLSRPTv1;rua=mailto:[email protected]
4、创建邮箱账户
进入Maddy Mail Server应用容器

创建登录账户

maddy creds create [email protected]

创建存储账户

maddy imap-acct create [email protected]

可以查看账户列表

maddy creds list
maddy imap-acct list

查看账户下的邮箱分类

maddy imap-mboxes list [email protected]

查看收件箱

maddy imap-msgs list [email protected] INBOX

5、测试验证
使用其他邮箱向创建的新邮箱 [email protected] 发送测试邮件。

然后在容器中使用命令查看是否成功:

maddy imap-msgs list [email protected] INBOX

UID 1: xxx mailto:[email protected] - test
[\Seen \Recent], 2024-08-08 16:27:19 +0800 +0800
通过上述步骤,你可以在 10 分钟内使用 1Panel 快速构建并配置 Maddy Mail Server,完成企业内部邮件服务器的搭建。这种方式不仅快捷,还能够极大地简化运维工作