分类 电脑 下的文章

DCImanager 5 - Debian 12 - bookworm

需求:ISPSystem 当前没有为 DCImanager 5 提供 Debian 12 的系统镜像。但 Debian 的网络安装方式没有改变,使用新版本的 initrd.gz 和 linux 文件来安装 Debian 12,或许也是可以的。

首先,从 ISPSystem 下载现有的 Debian 11 系统安装包。然后,修改 metainfo.mxl 中关于系统名称的描述。再从 Debian 官方下载 Debian 12 的网络安装镜像文件 initrd.gz 和 linux,替换即可。

参考:

DCImanager 5 - Ubuntu 22.04 - user-data

问题:DCImanager 的官方系统镜像源中有 Ubuntu 22.04 ,但仅限于 DCImanager 6。如果想在 DCImanager 5 中使用,需要修改。

修改一:metainfo.xml 文件中,除了 <support> 项要修改, <kernelcommand> 也要改一下,因为可能有些参数不适合 DCImgr5。如将原有的:
<kernelcommand>ip=dhcp cloud-config-url=/dev/null url=($SHAREDIR_FILE)ubuntu.iso autoinstall ds=nocloud-net;s=($OSINSTALLINFO_HTTP)&amp;file=user-data&amp;qwe=files/cloud/</kernelcommand>
修改为:
<kernelcommand>ip=dhcp cloud-config-url=($OSINSTALLINFO_HTTP)&amp;file=user-data url=($SHAREDIR_FILE)ubuntu.iso autoinstall</kernelcommand>

关键是要让 Ubuntu cloud-init 自动安装时,能找到配置文件 user-data。记得还要在文件中加载自定义的 user-data 文件,<file>user-data</file>

修改二:前一步中是用自己修改后的 user-data 文件,因为官方中的内容中可能包含 DCImgr5 中没有的参数 $DISK_LAYOUT_FILE。即将原有的:
bash /tmp/part.sh "($HDD_RAID)" "($DISK_LAYOUT_FILE)"
修改为:
bash /tmp/part.sh "($HDD_RAID)"

参考:

iRedMail - 对指定用户设置限制 - 仅允许收信 不能发信 - iredapd

需求:因为主机商对滥发邮件管得严格,所以想对指定用户设置限制,设置为可以收到邮件,但不能发出邮件。

环境:iRedMail 1.6.2,ubuntu 20.02

尝试:

作用:将 liujia@example.com 用户加到不允许发信但可收信的列表
python3 /opt/iredapd/tools/wblist_admin.py --outbound --account liujia@example.com --add --blacklist @.

作用:列出当前的黑名单
python3 /opt/iredapd/tools/wblist_admin.py --outbound --account liujia@example.com --list --blacklist

作用:将 liujia@example.com 用户从不允许发信但可收信的列表移除
python3 /opt/iredapd/tools/wblist_admin.py --outbound --account liujia@example.com --delete --blacklist @.

参考:

iredmail - 手动删除用户的默认目录 - 批量删除邮件

需求:邮件塞满了磁盘的inodes。无需备份,直接强制删除所有用户的邮件。

尝试:

#!/bin/bash

# 先停止postfix
/usr/bin/systemctl stop postfix

# 导出用户名单到文件
doveadm user *@* > /run/mailtmp.txt
# 从文件每行读取用户名,再根据用户名得到用户默认存储目录,如 /var/vmail/vmail1/example.com/z/z/9/zz9976-2023.04.19.20.47.38/ ,最后删除相应的目录
cat /run/mailtmp.txt | while read LINE; do
    su -s /bin/bash vmail -c "rm -rf `doveadm user -f home $LINE`"
done

/usr/bin/systemctl start postfix

参考:

在 debian 11 的 exim4 里设置 dkim 发信

需求:exim4 发信时,邮件头里打上 dkim 的签名。
步骤:

  1. genrsa -out dkim.key 2048 # 生成一个2048位的私匙
  2. openssl rsa -in dkim.key -out /dev/stdout -pubout -outform PEM # 生成公匙,复制好
  3. chown Debian-exim:Debian-exim dkim.key # 修改权限,让exim能读到私匙
  4. /etc/exim4/exim4.conf.localmacros # 创建自定义的exim参数值,如以下内容:

    DKIM_CANON = relaxed
    DKIM_SELECTOR = dkim
    DKIM_DOMAIN = gd.anqun.org
    DKIM_PRIVATE_KEY = /etc/exim4/dkim/$dkim_selector.key
    DKIM_STRICT = true
  5. vi /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost # 默认dkim仅在remote_smtp的trnasport配置文件里,但本例是使用 remote_smtp_smarthost,所以需要将相应的dkim内容从 remote_smtp 复制到 remote_smtp_smarthost,如:

    .ifdef DKIM_DOMAIN
    dkim_domain = DKIM_DOMAIN
    .endif
    .ifdef DKIM_SELECTOR
    dkim_selector = DKIM_SELECTOR
    .endif
    .ifdef DKIM_PRIVATE_KEY
    dkim_private_key = DKIM_PRIVATE_KEY
    .endif
    .ifdef DKIM_CANON
    dkim_canon = DKIM_CANON
    .endif
    .ifdef DKIM_STRICT
    dkim_strict = DKIM_STRICT
    .endif
    .ifdef DKIM_SIGN_HEADERS
    dkim_sign_headers = DKIM_SIGN_HEADERS
    .endif
  6. 之后更新exim4的配置,且重启服务:

    update-exim4.conf.template -r
    update-exim4.conf
    systemctl restart exim4
  7. 到域名的解析面板,设置好相应的txt记录,如将 dkim._domainkey.gd.anqun.org 的 txt 值设置为:v=DKIM1; p=MIIB...
  8. 发封测试邮件到gmail,如成功,在 show original 里会显示 DKIM PASS
  9. 如有错误,请查看日志文件:/var/log/exim4/mainlog

参考: