blob: 8f57c7d301f682e6df17b42664061d22ab08ad52 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#!/usr/bin/env bash
# サーバー上で root として手動実行する
# domains.txt からドメインを読み取り、DKIM 鍵生成と OpenDKIM テーブルを生成して
# コンテナを起動する。ドメインを追加・削除するたびに再実行する。
set -euo pipefail
MAIL_DIR="$(cd "$(dirname "$0")" && pwd)"
DOMAINS_FILE="$MAIL_DIR/domains.txt"
OPENDKIM_DIR=/etc/opendkim
KEY_DIR="$OPENDKIM_DIR/keys"
SELECTOR=mail
PRIMARY=hetzner.yyamashita.com
if [[ "$(id -u)" -ne 0 ]]; then
echo "ERROR: root として実行してください" >&2
exit 1
fi
# domains.txt から有効なドメインを読み込む
mapfile -t SERVICE_DOMAINS < <(grep -vE '^\s*(#|$)' "$DOMAINS_FILE")
echo "=== 対象ドメイン ==="
for d in "${SERVICE_DOMAINS[@]}"; do echo " $d"; done
echo " $PRIMARY (プライマリ)"
# DKIM 鍵生成(初回のみ)
echo ""
echo "=== DKIM 鍵 ==="
mkdir -p "$KEY_DIR"
chmod 700 "$KEY_DIR"
if [[ -f "$KEY_DIR/${SELECTOR}.private" ]]; then
echo " 既存の鍵を使用: $KEY_DIR/${SELECTOR}.private"
else
echo " opendkim-tools をインストール..."
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq opendkim-tools
echo " 2048bit RSA 鍵を生成中..."
cd "$KEY_DIR"
opendkim-genkey -b 2048 -s "$SELECTOR" -d yyamashita.com
chmod 600 "$KEY_DIR/${SELECTOR}.private"
echo " 生成完了"
fi
# OpenDKIM テーブル生成
echo ""
echo "=== OpenDKIM テーブル生成 ==="
{
for d in "${SERVICE_DOMAINS[@]}"; do
echo "${SELECTOR}._domainkey.${d} ${d}:${SELECTOR}:${KEY_DIR}/${SELECTOR}.private"
done
echo "${SELECTOR}._domainkey.${PRIMARY} ${PRIMARY}:${SELECTOR}:${KEY_DIR}/${SELECTOR}.private"
} > "$OPENDKIM_DIR/KeyTable"
echo " KeyTable : $OPENDKIM_DIR/KeyTable"
{
for d in "${SERVICE_DOMAINS[@]}"; do
echo "*@${d} ${SELECTOR}._domainkey.${d}"
done
echo "*@${PRIMARY} ${SELECTOR}._domainkey.${PRIMARY}"
} > "$OPENDKIM_DIR/SigningTable"
echo " SigningTable: $OPENDKIM_DIR/SigningTable"
cat > "$OPENDKIM_DIR/TrustedHosts" << 'EOF'
127.0.0.1
::1
172.16.0.0/12
10.0.0.0/8
EOF
echo " TrustedHosts: $OPENDKIM_DIR/TrustedHosts"
# コンテナ起動
echo ""
echo "=== コンテナ起動 ==="
bash "$MAIL_DIR/deploy.sh"
# 公開鍵を表示
echo ""
echo "=== DKIM 公開鍵 (Route 53 各ドメインに設定) ==="
echo "セレクター: ${SELECTOR}._domainkey.<ドメイン>"
echo "---"
cat "$KEY_DIR/${SELECTOR}.txt"
echo "---"
echo ""
echo "Done."
echo "次: python3 $MAIL_DIR/dns/setup-route53.py"
|