HomeServer26
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#contents()
** 最終型 [#tdd2cba2]
*** 起動スクリプト [#s4849cb7]
- &ref(mx2.sh);
ssh -i "magu-tokyo-messenger.pem" ubuntu@ec2-54-168-145-...
- &ref(mx3.sh);
ssh -i "magu-tokyo-messenger.pem" ubuntu@ec2-13-114-88-1...
*** インスタンス情報 [#pb03c284]
- mx2 (mail2.hmuna.com)
|インスタンス名|i-0de57e328b2a18377 (mail2.hmuna.com)|h
|パブリック IPv4 アドレス|54.168.145.135|
|プライベート IPv4 アドレス|172.31.22.38|
|パブリック IPv4 DNS|ec2-54-168-145-135.ap-northeast-1.co...
|プライベート IPv4 DNS|ip-172-31-22-38.ap-northeast-1.com...
|インスタンスタイプ|t2.medium|
|Elastic IP アドレス|54.168.145.135 (パブリック IP)|
|VPC ID|vpc-ddcb93b9|
|サブネット ID|subnet-a7d324ee|
|AMI ID|ami-02b658ac34935766f|
|AMI name|ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64...
|終了保護|有効|
|AMI location|099720109477/ubuntu/images/hvm-ssd/ubuntu-b...
|キーペア名|magu-tokyo-messenger|
|vCPU|2|
|RAM|4GB|
- mx3 (mail3.hmuna.com)
|インスタンス名|i-02abb90c515dd92c1 (mail3.hmuna.com)|h
|パブリック IPv4 アドレス|13.114.88.171|
|プライベート IPv4 アドレス|172.31.4.225|
|パブリック IPv4 DNS|ec2-13-114-88-171.ap-northeast-1.com...
|プライベート IPv4 DNS|ip-172-31-4-225.ap-northeast-1.com...
|インスタンスタイプ|t2.micro|
|Elastic IP アドレス|13.114.88.171 (パブリック IP)|
|VPC ID|vpc-ddcb93b9|
|サブネット ID|subnet-00072c58|
|AMI ID|ami-02b658ac34935766f|
|AMI name|ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64...
|終了保護|有効|
|AMI location|099720109477/ubuntu/images/hvm-ssd/ubuntu-b...
|キーペア名|magu-tokyo-messenger|
|vCPU|1|
|RAM|1GB|
** 前段 [#q809a391]
*** 方針、戦略(と、途中での紆余曲折) [#zf828c4e]
- そもそも AWS のリザーブドインスタンス(3年契約)の有効...
-- なので Ubuntu 16.04(現状)→ 18.04 への更新、EBS サイ...
- EC2 の仕様を比較すると、3年前の t2.small は現在の t2.m...
- 新規に3年前払いで t2.micro インスタンスを購入し、既存...
- ところが &color(red){リザーブドインスタンスというのはイ...
- 実行中の &color(red){インスタンスと同じリザーブドインス...
-- なのでリザーブドインスタンスを購入しても、起動可能なイ...
-- リザーブドインスタンスには有効期限があり該当インスタン...
-- なのでリザーブドインスタンスと同じタイプ(グレード)の...
-- 未使用のリザーブドインスタンスを売ることができるが、米...
- 今回先走って追加購入(次項)したインスタンスには既存サ...
- 現状環境の継続利用には、t2.small リザーブドインスタンス...
- t2.micro 上に Ubuntu18.04 メールサーバー環境を構築 → 試...
- 結局作成したインスタンスを t2.small Ubuntu18.04 環境に...
- &color(red){最終的に t2.medium (RAM 4GB) 環境に再度移行...
- &color(red){t2.small RI x2 => t2.medium RI に変更できる...
-- 無駄になったインスタンス利用権の活用は別途検討するが.....
*** 新戦略 [#sbb4c7cf]
- まず、急ぐ必要はない(リザーブドインスタンスが切れても...
+ t2.micro のリザーブドインスタンスの購入(済)
+ t2.micrro インスタンス(本番サーバー置き換え用)を作成
+ メールサーバー環境の構築(仮 IP、仮 証明書)
+ 旧サーバーインスタンスを停止
+ データ移行用インスタンスを起動
+ EBS新旧を移行用サーバーにマウントしメールサーバーのデー...
+ ELASTIC IP 付け替え、証明書移行 to 新サーバーインスタンス
+ 新サーバー稼働、テスト
+ 移行用サーバーインスタンスの停止
+ 経過観察後、問題なければ旧サーバーインスタンスの停止
** AWS 側の設定 [#q18ece37]
*** リザーブドインスタンスのダウングレード購入 [#gd2e839a]
リザーブドインスタンス ID = 1f08ed93-6d03-45c0-8408-1300...
- t2.micro (前回は t2.small だったが、性能的には同等なの...
-- t2.micro (@2020) = 1コア vCPU (最大 3.3 GHz)、1 GiB メ...
//-- &ref(instance.jpg);
-- t2.small (@2017) = 1コア vCPU (最大 3.3 GHz)、2 GiB メ...
- 36ヶ月、全額前払い、スタンダード(コンバーティブルでな...
- &color(red){$172 (前回は $395 だった)};
- &ref(reserved_update_202009.jpg);
*** t2.micro インスタンスの新規作成 [#k83be000]
- IAM に Ubuntu 18.04 を選択 [成果1]
- EBS(SSD) のサイズは 30GB とした [成果2]
- セキュリティグループは 現状環境(←メールサーバー用に設...
- キーペアは現状のメールサーバーインスタンスと共通 [効率...
- %%Elastic IP (=公開されている mail.hmuna.com のアドレス...
- &color(red){当面のセットアップ用に Elastic IP = 54.168....
インスタンス ID = i-062fad024bc6dd76b
パブリック DNS (IPv4) = ec2-18-183-149-234.ap-northeast-...
IPv4 パブリック IP = 18.183.149.234
インスタンスタイプ = t2.micro
Elastic IP = 54.168.145.135*
プライベート DNS = ip-172-31-31-75.ap-northeast-1.comput...
アベイラビリティーゾーン = ap-northeast-1a
プライベート IP = 172.31.20.94
セキュリティグループ = magus-messenger-security
-
VPC ID = vpc-ddcb93b9
AMI ID = ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64...
プラットフォーム = Ubuntu
サブネット ID = subnet-a7d324ee
IAM ロール = (未定義)
キーペア名 = magu-tokyo-messenger
*** t2.medium インスタンスの設定方針(最終的な形) [#e1ac...
- キーペアは既存のものを流用
- セキュリティグループも既存の設定を流用
- ボリュームも t2.micro 設定時に作った 30GB EBS イメージ...
- Elastic IP も t2.micro 設定時に新設したグローバル IP (=...
- メールサーバー証明書は Let's Encrypt(無償)に切り替え...
*** 購入した t2.small を無駄にせず、差分を購入して t2.med...
2 つ以上の リザーブドインスタンス を単一の リザーブドイ...
たとえば、それぞれに 1 つのインスタンスがある 4 つの t2....
これらをマージして 1 つの t2.large リザーブドインスタン...
- [[リザーブドインスタンス の変更:https://docs.aws.amazon...
- [[インスタンスサイズの変更のサポート:https://docs.aws.a...
- [[Modifying Reserved Instances:https://docs.aws.amazon....
- [[EC2 Convertible Reserved Instance Update – New 1-Year...
*** が、しかし t2.small RI を追加で購入したが購入日付が違...
- &ref(separate_RI.jpg);
> EC2 t2.small リザーブドインスタンスを購入後、要件的に ...
> 追加購入して マージしようとしたが、購入日が異なるため...
> 後から購入したリザーブドインスタンスの有効期限を短くし...
> 可能でしょうか
リザーブドインスタンスにつきましては長期間のご利用を前提...
いただいておりますため、契約期間は短縮いただけません。お...
存じますが、どうぞご理解くださいますようお願い申し上げま...
なお、プラットフォームがLinux/UNIXのリザーブドインスタン...
タンスのサイズとリザーブドインスタンスのサイズが異なって...
オンデマンドインスタンスに適用される場合がございますこと...
詳細につきましては下記ページをご覧くださいますようお願い...
--リージョンごとの、またはサイズが柔軟な Amazon EC2 リザ...
---https://aws.amazon.com/jp/premiumsupport/knowledge-cen...
-- サイズが柔軟な Amazon EC2 リザーブドインスタンスの計算...
--- https://aws.amazon.com/jp/premiumsupport/knowledge-ce...
-- AWSのコスト最適化/リザーブドインスタンス
--- https://www.slideshare.net/AmazonWebServicesJapan/aws...
--- &ref(AWS のコスト最適化リザーブドインスタンス.pdf);
--- &ref(AWSアンチパターンのご紹介.pdf);
*** オンデマンドインスタンスに スマートに RI 購入済クレジ...
ご担当者様
平素よりお世話になっております。AWSカスタマーサービスの...
この度はご丁寧にご返信いただき、誠にありがとうございます。
頂いたご質問内容に関しまして、下記の通りご回答差し上げま...
(すでにご認識いただいている内容と重複する部分もあるかと...
【サイズが柔軟なRIに関しまして】
RIの「柔軟性」というのは、RIが持っている性質のことです。
(別途、設定する必要がなくRIを購入した時点で自動的に付与...
RIは上記「柔軟性」により、正規化係数(フットプリント)に基...
あくまでもコスト最適化の観点に基づいて、稼働しているイン...
「適用したいインスタンスを任意に選択することはできない」...
■RIの柔軟性の具体例
※下記説明の前提として、t2.nanoの正規化係数は「0.25」。t2...
例1)t2.smallのRIを2つ保持しているが、実際にはt2.mediumイ...
正規化係数「2」がt2.medium1台(「2」)の稼働に対して適用さ...
例2)t2.smallのRIを2つ保持しており、実際にはt2.smallを1台...
正規化係数「2」がt2.small1台(「1」)、t2.nanoインスタンス...
▼(ご参考)RIの正規化係数について
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuid...
「インスタンスサイズのフットプリント」の項目にサイズごと...
【質問に対するご回答】
> t2.small RI が2つあれば オンデマンドの t2.medium のコ...
上記説明をもとにすると、お客様から頂いた上記質問に対する...
「 t2.small RI が2つあり、かつ稼働しているオンデマンドイ...
t2.mediumのコストに自動的に割り当てられる」 ということに...
別のインスタンスが稼働している場合には、t2.smallの稼働コ...
ご承知おきくださいませ。
※前述の通り、必ずしも「t2.medium のコストに割り当てられ...
観点に基づいて割り当てられますため、お客様が損を被ること...
** サーバー設定 [#oe2ec9a3]
*** メールサーバー環境(virtual mailbox 対応)の構築 [#s4...
- これまでを継承し [[[ExRatione]A Mailserver on Ubuntu 18...
- [[20.04 版:https://ubuntu.tutorials24x7.com/blog/instal...
-- Postfix: sends and receives mail via the SMTP protocol.
-- Dovecot: a POP/IMAP server. It also handles user authe...
-- Postgrey: greylists incoming mail ← これは使わない(遅...
-- amavisd-new: a manager for organizing various antiviru...
-- Clam AntiVirus: a virus detection suite.
-- SpamAssassin: for sniffing out spam in emails.
-- Postfix Admin: a web front end for administering mail ...
-- Roundcube: a webmail interface for users.
- mysql
-- root pass = mysql_admin
-- mail pass = mail_password
- dovecot
-- /etc/dovecot/conf.d/10-ssl.conf の
ssl_protocols = !SSLv2 !SSLv3
は間違い(デフォルトで SSLv2 はサポートされないので指定自...
ssl_protocols = !SSLv3
に変更した。
- postfixadmin
-- setup pass = frex7785
-- admin = admin@hmuna.com
-- admin pass = setup pass
*** [[Postfix Admin:https://mail2.hmuna.com/postfixadmin/...
- pass = h77mailpass
-- &color(red){config.local.php の編集でハマった。ファイ...
- 管理者
-- ID = admin@hmuna.com
-- pass = frex7785
- DomainKeys Identified Mail (DKIM) 設定
-- &color(red){opendkim-genkey の設定でハマった。 Web 記...
--- (誤) op/endkim-genkey -t -s dkim -d example.com
--- (正) opendkim-genkey -t -s dkim -d example.com
-- dkim.private = &ref(dkim.private);
-- dkim.txt = &ref(dkim.txt);
dkim._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; t=y;...
-- 後で DNS に登録する dkim.txt レコード (改行なし、但し...
- localに(= 仮設の mail2.hmuna.com サーバー内で)メール...
Sep 18 07:55:42 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:55:42 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:56:13 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:56:13 ip-172-31-22-209 amavis[1625]: (01625-01...
-- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829597
-- &color(red){[原因判明] t2.micro の1GBメモリーでは足り...
-- &color(red){[残念!]なので、結局先走って3年分のリザー...
*** clamav がメモリーを喰い潰す問題(は、程度の差こそあれ...
- 一日に一回程度 メモリー枯渇でシステムが死にそうになって...
-- &ref(almost_oom.jpg);
- &color(red){[さらに残念!!] t2.small 2G メモリーでも状...
- t2.medium 上で正常稼働した状態でのメモリー使用状況
-- &ref(ram_use.JPG);
-- clamavdaemon は RAM 上の SPAM データベースをロードする...
-- 他の処理との関連で oom が発生し、SWAP Out などで CPU l...
- &color(red){とりあえず、リザーブドインスタンスは購入せ...
-- &ref(t2medium.jpg);
*** [[メールサーバーチェッカー:http://www.mail-tester.com...
- &ref(mail_test.jpg);
Received: by mail-tester.com (Postfix, from userid 500)
id C671FA84CE; Wed, 23 Sep 2020 06:05:15 +0200 (CEST)
Authentication-Results: mail-tester.com;
dkim=temperror (0-bit key; unprotected) header.d=hmuna....
dkim-atps=neutral
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) ...
X-Spam-Level:
X-Spam-Status: No/-0.2/5.0
X-Spam-Test-Scores: DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM...
DKIM_VALID_EF=-0.1,SPF_PASS=-0.001,URIBL_BLOCKED=0.001
X-Spam-Last-External-IP: 54.168.145.135
X-Spam-Last-External-HELO: mail2.hmuna.com
X-Spam-Last-External-rDNS: mail2.hmuna.com
X-Spam-Date-of-Scan: Wed, 23 Sep 2020 06:05:15 +0200
X-Spam-Report:
* -0.0 SPF_PASS SPF: sender matches SPF record
* -0.1 DKIM_VALID_EF Message has a valid DKIM or DK sig...
* envelope-from domain
* -0.1 DKIM_VALID_AU Message has a valid DKIM or DK sig...
* author's domain
* 0.1 DKIM_SIGNED Message has a DKIM or DK signature, ...
* valid
* -0.1 DKIM_VALID Message has at least one valid DKIM o...
* 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to...
* blocked. See
* http://wiki.apache.org/spamassassin/DnsBlocklist...
* for more information.
* [URIs: hmuna.com]
Received-SPF: Pass (sender SPF authorized) identity=mail...
DMARC-Filter: OpenDMARC Filter v1.3.1 mail-tester.com 75...
Authentication-Results: mail-tester.com; dmarc=pass head...
Authentication-Results: mail-tester.com;
dkim=temperror (0-bit key; unprotected) header.d=hmuna....
dkim-atps=neutral
Received: from mail2.hmuna.com (mail2.hmuna.com [54.168....
(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/2...
(No client certificate requested)
by mail-tester.com (Postfix) with ESMTPS id 750C2A84CE
for <test-iac1xgrmt@srv1.mail-tester.com>; Wed, 23 Sep ...
Received: from localhost (mail2.hmuna.com [127.0.0.1])
by mail2.hmuna.com (Postfix) with ESMTP id 86FD3BDD71
for <test-iac1xgrmt@srv1.mail-tester.com>; Wed, 23 Sep ...
X-Virus-Scanned: Debian amavisd-new at mail2.hmuna.com
Received: from mail2.hmuna.com ([127.0.0.1])
by localhost (ip-172-31-22-38.ap-northeast-1.compute.in...
with ESMTP id wq3NdD-vsXbN for <test-iac1xgrmt@srv1.mai...
Wed, 23 Sep 2020 13:05:05 +0900 (JST)
MIME-Version: 1.0
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hm...
t=1600833905; bh=T3JVNWIKqLNE9srGASR8eT8PH5+lK4r3tOAkV8...
h=Date:From:To:Subject:From;
b=PkL3aRQlA5kX1PJ3FWbN2Pd94Sd4B1eBvyvFY44qHUHwgDJB1vWEi...
aIahl7OhJ9RG2WLDesyqdWmX1cZ3OnwX9GCjz5ShJYRYTYLkO9Bhaz...
T2hNxpgB+Egfosinbx+77PzFTmAxx1+L2hQXTnqKKC/Zntqc00i9gB...
6qHazZjJZe3fX06UDYl6qarJzG9cwyXFqJh6X1jOyeR3Cvulq25N0T...
5hRmR7lELwkiQIFoQaPvqyHNYs1A0b7fR2JjZBQ33Ohrve+38z8Lzw...
uUGacjdOvWy0A==
Content-Type: text/plain; charset=US-ASCII;
format=flowed
Content-Transfer-Encoding: 7bit
Date: Wed, 23 Sep 2020 13:05:05 +0900
From: public_mail@hmuna.com
To: test-iac1xgrmt@srv1.mail-tester.com
Subject: test mail
Message-ID: <b1cd71427944275c2fddffe817bb3aee@hmuna.com>
X-Sender: public_mail@hmuna.com
*** [[メール統計監視(mailgraph):https://mail2.hmuna.com...
- インストール
[AWS (sudo)]:/home/ubuntu# apt install rrdtool mailgraph
- /etc/apache2/site-available/mailgrah の設定
[AWS (sudo)]:/home/ubuntu# cat /etc/apache2/sites-availa...
Alias /mailgraph /usr/share/mailgraph
<Directory /usr/share/mailgraph>
Options +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
#Require local
#Require ip 54.168.145.135/24
AuthUserFile /etc/mailgraph/mailgraph-htpasswd
AuthName "Mailgraph"
AuthType Basic
Require valid-user
</Directory>
- アクセスユーザー制限 (/etc/mailgraph/mailgraph-htpasswd)
[AWS (sudo)]:/home/ubuntu# htpasswd -c /etc/mailgraph/ma...
-- user = admin
-- pass = frex7785
- 起動
[AWS (sudo)]:/home/ubuntu# a2enmod cgid
[AWS (sudo)]:/home/ubuntu# a2ensite mailgraph
[AWS (sudo)]:/home/ubuntu# systemctl restart apache2 mai...
-- &ref(mailgraph.jpg);
** メール振り分け処理 (procmail → dovecot-sieve に実装を...
*** dovecot sieve インストール[#d20665c9]
- dovecot sieve
-- sieve は汎用メールのフィルタリング用言語で dovecot が...
- dovecot-managesieved
-- ユーザーごとのスクリプトコレクションを管理し有効/無効...
-- アップロードされたスクリプトの文法チェックとコンパイル...
sudo apt-get install dovecot-sieve dovecot-managesieved
*** virtual mailbox への対応 [#ibf95d35]
- From [[Devecot virtual-plugin manual:https://doc.doveco...
Sieve filters with virtual mailboxes¶
Using the sieve plugin with virtual mailboxes will cause...
sieve can’t tell the difference between a virtual locati...
If you use virtual mailboxes that are configured in siev...
a unique prefix. If you don’t, sieve will crash trying t...
- /etc/dovecot/conf.d/90-sieve.conf (上記の対応のため)
-- &color(red){/var/vmail/%d/%n/sieve にユーザが作成したs...
-- &color(red){そのsieveスクリプトへのシンボリックリンク...
plugin {
sieve = file:/var/vmail/%d/%n/sieve;active=/var/vmail/...
sieve_default = /var/lib/dovecot/sieve/default.sieve
sieve_global = /var/lib/dovecot/sieve/global/
}
*** managesieve[#e07381ec]
- /etc/dovecot/conf.d/20-managesieve.conf
-- 4190番のポートを使用してメールクライアントと通信するよ...
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 0
}
service managesieve {
}
protocol sieve {
}
- sieve の有効化確認
-- &color(red){AWS セキュリティグループ(magus-messenger-...
-- dovecot 再起動後にクライアントから sieve-managed で接...
[AWS (sudo)]:/home/ubuntu# lsof -i:4190
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NOD...
dovecot 15832 root 19u IPv4 206231 0t0 TC...
dovecot 15832 root 20u IPv6 206235 0t0 TC...
managesie 17577 dovenull 7u IPv4 206231 0t0 TC...
managesie 17577 dovenull 8u IPv6 206235 0t0 TC...
managesie 17577 dovenull 19u IPv4 239438 0t0 TC...
-- Thanderbird クライアントに plug-in をインストールし、[...
--- サーバーがサポートするフィルター機能を確認
--- &ref(thander_sieve.jpg);
*** sieve programing [#c5e21e9b]
- (動いたので)使い方
-- 各ユーザーのバーチャルメールディレクトリ (/var/vmail/h...
-- (重要)sieve ディレクトリー以下のオーナーを vmail.mai...
-- Thanderbird に plug-in をインストールし メニューから s...
-- &ref(ThanderSieve.jpg);
- [[プログラミングルール (TFC5528):https://www.ietf.org/r...
-- &ref(rfc5228.pdf);
-- &ref(RFC 3894.pdf); <---- fileinto, discard 時にコピー...
-- &ref(sievehow-to.pdf);
- Thanderbird 等のメールクライアント上 sieve のプログラミ...
-- 保存したスクリプトはサーバーの /var/vmail/hmuna.com/pu...
-- Action ボタンを押すと /var/vmail/hmuna.com/public_mail...
*** sieve example [#lf72ed82]
- &ref(sieve_orig); <-- 実際の設定(下記は抜粋)
require ["copy","fileinto","regex","body"];
########################################################...
# Strong Black List : Hard Force delete
########################################################...
if header :contains "from" "news-keymans@mail.recruit.co...
if header :contains "from" "@umaimizu.jp|@netrition.com"...
if header :contains "from" "@netrition.com" { discard; s...
if header :contains "from" "e-frontier.info" { discard; ...
if allof ( header :contains "to" "magu@angel.email.ne.jp...
if allof ( header :contains "to" "magu@angel.email.ne.jp...
if allof ( header :contains "to" "magu@angel.email.ne.jp...
########################################################...
# For security, copy all incoming messages to backup fol...
########################################################...
fileinto :copy "INBOX._backup";
########################################################...
# White List : Force copy to INBOX
########################################################...
if header :contains "from" "nbonline@nikkeibp.co.jp" { k...
if header :contains "from" "wis_news@blwisdom.com" { kee...
if header :contains "from" "mail-info@diamond.co.jp" { k...
if header :contains "from" "@linuxfoundation.org" { keep...
########################################################...
# Black List : Force delete (but, still in _backup folder)
########################################################...
if header :contains "from" "@netrition.com" { discard; s...
if header :contains "from" "@joshin.co.jp" { discard; st...
if header :contains "from" "@toshibadirect.jp" { discard...
if header :contains "from" "english@mag2.com" { discard;...
if header :contains "from" "@sfjazz.org" { discard; stop...
########################################################...
# direct move to pre-defined folfer (ML etc)
########################################################...
if header :contains "from" "umemura@shop.rakuten.co.jp" ...
if header :contains "from" "rakuten.co.jp" { fileinto "I...
if header :contains "from" "@amazon.co.jp" { fileinto "I...
if header :contains "from" "@justsystem.co.jp" { fileint...
########################################################...
# Message with SPAM flag force move to spam@hmuna.com
########################################################...
if header :contains "X-Spam-Status" "Yes" { fileinto "IN...
########################################################...
# SPAM manual list : Force move to SPAM folder
########################################################...
if header :contains "from" "@specialmovie.com" { fileint...
if header :contains "from" "@specialmovie.com" { fileint...
if header :contains "from" "@spnews.com" { fileinto "INB...
if header :contains "from" "@stationcasinos.com" { filei...
if header :contains "to" "licram.com" { fileinto "INBOX....
if header :contains "to" "hanmail.net" { fileinto "INBOX...
if header :contains "to" "public_mafia@yahoo.com" { file...
//*** 動いたが期待通りの振り分けにならない [#mefc177c]
//- backup へのコピーは正常、続きを処理するのも正常、junk...
// Sep 25 15:40:18 ip-172-31-22-38 dovecot: lda(public_ma...
// Sep 25 15:40:18 ip-172-31-22-38 dovecot: lda(public_ma...
// Sep 25 15:40:18 ip-172-31-22-38 dovecot: lda(public_ma...
- backup へのコピーは正常、続きを処理するのも正常、&color...
Sep 25 16:05:19 ip-172-31-22-38 dovecot: lda(public_mail...
Sep 25 16:05:19 ip-172-31-22-38 dovecot: lda(public_mail...
Sep 25 16:05:19 ip-172-31-22-38 dovecot: lda(public_mail...
*** sieve debug [#cbc3d59e]
- /etc/dovecot/conf.d/90-sieve.conf のトレースオプション...
- 一回毎の sieve フィルター処理結果が記録される
- ファイル数が膨大になるのでデバッグ時以外は無効に戻す
## TRACE DEBUGGING↲
# Trace debugging provides detailed insight in the opera...
# the Sieve script. These settings apply to both the LDA...
# IMAPSIEVE plugin.-↲
#↲
# WARNING: On a busy server, this functionality can quic...
# directory with a lot of trace files. Enable this only ...
# selective as possible.↲
--↲
# The directory where trace files are written. Trace deb...
# this setting is not configured or if the directory doe...
# path is relative or it starts with "~/" it is interpre...
# current user's home directory.↲
sieve_trace_dir = /var/vmail/%d/%n/↲
--
# The verbosity level of the trace messages. Trace debug...
# this setting is not configured. Possible values are:↲
#↲
# "actions" - Only print executed action comman...
# fileinto, reject and redirect.↲
# "commands" - Print any executed command, exclu...
# "tests" - Print all executed commands and p...
# "matching" - Print all executed commands, perf...
# values matched in those tests.↲
sieve_trace_level = actions↲
*** 参考 URL [#ab2f4d8b]
-- [[(dovecot 公式) Pigeonhole Sieve support:https://wik...
-- [[(dovecot 公式) Pigeonhole Installation:https://wiki...
-- [[(dovecot 公式) Pigeonhole Sieve Interpreter:https:/...
-- [[(dovecot 公式) Pigeonhole Sieve examples:https://wi...
-- [[(dovecot 公式) Pigeonhole ManageSieve Server:https:...
-- [[Sieve Syntax and Common Recipes:https://www.pair.com...
-- [[thsmi/sieve (Sieve Editor for Thanderbird):https://g...
-- [[DovecotとSieveを使ったメールのサーバーサイドフィルタ...
-- [[dovecot official:https://doc.dovecot.org/configurati...
-- [[Arch Linux Dovecot:https://wiki.archlinux.jp/index.p...
-- [[サーバーサイドのメール振り分けを maildrop から Pigeo...
-- [[【Linux CentOS 7】dovecotにおいてsieveを導入しサーバ...
-- [[Sieve 入れてみた:https://88171.net/installed-dovecot...
-- [[メールサーバ移行計画(1) – メールサーバ構築 Postfix +...
** 2ndery MX (mail3.hmuna.com) の立ち上げ [#zaebf54e]
- 今回使わなくなった t2.micro を活用する意味で(本来は必...
- メモリー喰いの clamav などフィルター系の処理は動かさない
- その他の設定は primary MX に合わせる
*** mailserver 設定 [#ndef67a1]
- server = mail3.hmuna.com (13.114.88.171)
- インストール除外としたパッケージ
-- postgrey
-- amavis
-- clamav
-- clamav-daemon
- main.cf の中で 127.0.0.1:10023 に送ってチェックする設定...
-- main.cf -----> &ref(mx2_main.cf);
-- master.cf ---> &ref(mx2_master.cf);
- MX1 を止めた状態でメールが MX2 に転送され保存されている...
Sep 29 00:51:09 mail3 postfix/smtps/smtpd[17902]: Anonym...
Sep 29 00:51:14 mail3 postfix/smtpd[17891]: connect from...
Sep 29 00:51:15 mail3 postfix/smtpd[17891]: Anonymous TL...
Sep 29 00:51:15 mail3 policyd-spf[17896]: prepend Receiv...
Sep 29 00:51:15 mail3 postfix/smtpd[17891]: 97164454DC: ...
Sep 29 00:51:15 mail3 postfix/cleanup[17897]: 97164454DC...
Sep 29 00:51:15 mail3 postfix/qmgr[17887]: 97164454DC: f...
Sep 29 00:51:15 mail3 postfix/smtp[17898]: connect to ma...
Sep 29 00:51:15 mail3 postfix/smtp[17898]: 97164454DC: t...
Sep 29 00:51:16 mail3 postfix/smtpd[17891]: disconnect f...
*** DB レプリケーションの設定 [#ade9bab9]
** 202202:後日更新 (SPF レコード非推奨化に伴う DNS レコ...
- 20220220 に三鷹メインPC(Legion Ti500) への windows11 ...
- Kaspersky が hmuna.com は怪しいドメインであると警告を発...
- [[メールテスター:https://www.mail-tester.com/]] で確認...
-- SPF レコードが不正
-- DKIM レコードが不正
- [[SPF レコードチェッカー:https://www.kitterman.com/spf/...
- SPF/DKIM は AWS Route53 のドメイン情報として登録していた
-- SPF 型の定義、同じ内容を TXT としても定義するのが当時...
-- その後 &color(red){SPF 型の定義が RFC7208 で非推奨(実...
--- [[RFC7208:https://datatracker.ietf.org/doc/html/rfc72...
- Route53 のレコードから SPF 型の宣言を削除し DNS レコー...
-- SPF レコードの削除
-- TXT レコードも一度削除し再追加(しないとレコードの更新...
-- 合わせて hmuna.com の A レコードが MX3 を指していたの...
-- 更新後の DNS レコード
-- &ref(route53_20220222.jpg);
-- [[Route 53 で SPF レコードを正常に作成しましたが、他の...
- 上記変更後に [[メールテスター:https://www.mail-tester.c...
-- 結局 DKIM レコードについては変更していない(SPF レコー...
-- &ref(score_20220222.jpg);
-- &ref(message_header.jpg);
*** [2025-04]DKIM レコードの修正 [#raee17f0]
- 再度上記の [[テスト:https://www.mail-tester.com/]] を実...
- &ref(dkim_warning.jpg);
- &color(red){V= の設定と p= の設定が分割されていることが...
- 本来の姿
-- dig +short TXT dkim._domainkey.hmuna.com で出力が 以下...
"v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A..."
"中間部分"
"末尾部分"
- Route53 の DKIM を以下のように書き換えた ---> &ref(upda...
"v=DKIM1;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4...
"DqUDdh7LbwMOoaczTORxUr4YcmvibV25cpgspYF29oL8HtqA7zeu3zP...
- 別のLinuxマシン(ここではWindows上のWSL環境)でDNS情報...
munakata@PGMIT:/mnt/c/Users/magu7$ dig +short TXT dkim._...
"v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
"DqUDdh7LbwMOoaczTORxUr4YcmvibV25cpgspYF29oL8HtqA7zeu3zP...
- &color(red){''超重要な発見'':Route53のレコード登録画面...
- &color(red){分割時にクオートで文字列を区切る必要があり...
- &color(red){''スペースの後ろに改行文字があってはならな...
- &color(red){UI的に勝手に改行されるが、そこに明示的に改...
- DKIM チェックツール
-- [[DKIMCore(DKIM専用チェッカー):https://dkimcore.org/to...
-- [[MXToolbox(一般的な検証ツール):https://mxtoolbox.co...
- DKIM 修正後、満点に戻った
-- &ref(DKIM_revised_202504.png);
** Route53 Zone 設定 [#v1733458]
- &ref(R53_zone_202504.txt);
munakata@muna-U2404:~/.aws$ cli53 export hmuna.com
$ORIGIN hmuna.com.
@ 900 IN SOA ns-1787.awsdns-31.co.uk. awsdns-hostmaster....
@ 86400 IN MX 10 mail2.hmuna.com.
@ 86400 IN MX 100 mail3.hmuna.com.
@ 172800 IN NS ns-1787.awsdns-31.co.uk.
@ 172800 IN NS ns-104.awsdns-13.com.
@ 172800 IN NS ns-1508.awsdns-60.org.
@ 172800 IN NS ns-762.awsdns-31.net.
@ 86400 IN TXT "v=spf1 ip4:54.168.145.135 a mx ~all"
_dmarc 3600 IN TXT "v=DMARC1; p=none"
dkim._domainkey 3600 IN TXT "v=DKIM1; h=sha256; k=rsa; p...
"VVuoz39001Tmxgk3GKfC+xsxTBAPHYQBAVTZZoftsGW2XuAxf+av84t...
kgb2 3600 IN CNAME mythen
mail2 3600 IN A 54.168.145.135
mail3 3600 IN A 13.114.88.171
mumit 3600 IN CNAME mythen
mythen 86400 IN A 124.155.55.64
svr 86400 IN CNAME mythen
tvr 3600 IN CNAME mythen
** Sieve レシピ [#w27dbc3b]
- &ref(sieve.sieve,center,[2025-04]);
- &ref(sieve.sieve_20250414,center,[2025-04-14]);
- &ref(sieve.sieve_20250902,center,[2025-09-02]);
- &ref(sieve.sieve_20250911,center,[2025-09-11]);
- &ref(sieve.sieve_20251013,center,[2025-10-13]);
終了行:
#contents()
** 最終型 [#tdd2cba2]
*** 起動スクリプト [#s4849cb7]
- &ref(mx2.sh);
ssh -i "magu-tokyo-messenger.pem" ubuntu@ec2-54-168-145-...
- &ref(mx3.sh);
ssh -i "magu-tokyo-messenger.pem" ubuntu@ec2-13-114-88-1...
*** インスタンス情報 [#pb03c284]
- mx2 (mail2.hmuna.com)
|インスタンス名|i-0de57e328b2a18377 (mail2.hmuna.com)|h
|パブリック IPv4 アドレス|54.168.145.135|
|プライベート IPv4 アドレス|172.31.22.38|
|パブリック IPv4 DNS|ec2-54-168-145-135.ap-northeast-1.co...
|プライベート IPv4 DNS|ip-172-31-22-38.ap-northeast-1.com...
|インスタンスタイプ|t2.medium|
|Elastic IP アドレス|54.168.145.135 (パブリック IP)|
|VPC ID|vpc-ddcb93b9|
|サブネット ID|subnet-a7d324ee|
|AMI ID|ami-02b658ac34935766f|
|AMI name|ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64...
|終了保護|有効|
|AMI location|099720109477/ubuntu/images/hvm-ssd/ubuntu-b...
|キーペア名|magu-tokyo-messenger|
|vCPU|2|
|RAM|4GB|
- mx3 (mail3.hmuna.com)
|インスタンス名|i-02abb90c515dd92c1 (mail3.hmuna.com)|h
|パブリック IPv4 アドレス|13.114.88.171|
|プライベート IPv4 アドレス|172.31.4.225|
|パブリック IPv4 DNS|ec2-13-114-88-171.ap-northeast-1.com...
|プライベート IPv4 DNS|ip-172-31-4-225.ap-northeast-1.com...
|インスタンスタイプ|t2.micro|
|Elastic IP アドレス|13.114.88.171 (パブリック IP)|
|VPC ID|vpc-ddcb93b9|
|サブネット ID|subnet-00072c58|
|AMI ID|ami-02b658ac34935766f|
|AMI name|ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64...
|終了保護|有効|
|AMI location|099720109477/ubuntu/images/hvm-ssd/ubuntu-b...
|キーペア名|magu-tokyo-messenger|
|vCPU|1|
|RAM|1GB|
** 前段 [#q809a391]
*** 方針、戦略(と、途中での紆余曲折) [#zf828c4e]
- そもそも AWS のリザーブドインスタンス(3年契約)の有効...
-- なので Ubuntu 16.04(現状)→ 18.04 への更新、EBS サイ...
- EC2 の仕様を比較すると、3年前の t2.small は現在の t2.m...
- 新規に3年前払いで t2.micro インスタンスを購入し、既存...
- ところが &color(red){リザーブドインスタンスというのはイ...
- 実行中の &color(red){インスタンスと同じリザーブドインス...
-- なのでリザーブドインスタンスを購入しても、起動可能なイ...
-- リザーブドインスタンスには有効期限があり該当インスタン...
-- なのでリザーブドインスタンスと同じタイプ(グレード)の...
-- 未使用のリザーブドインスタンスを売ることができるが、米...
- 今回先走って追加購入(次項)したインスタンスには既存サ...
- 現状環境の継続利用には、t2.small リザーブドインスタンス...
- t2.micro 上に Ubuntu18.04 メールサーバー環境を構築 → 試...
- 結局作成したインスタンスを t2.small Ubuntu18.04 環境に...
- &color(red){最終的に t2.medium (RAM 4GB) 環境に再度移行...
- &color(red){t2.small RI x2 => t2.medium RI に変更できる...
-- 無駄になったインスタンス利用権の活用は別途検討するが.....
*** 新戦略 [#sbb4c7cf]
- まず、急ぐ必要はない(リザーブドインスタンスが切れても...
+ t2.micro のリザーブドインスタンスの購入(済)
+ t2.micrro インスタンス(本番サーバー置き換え用)を作成
+ メールサーバー環境の構築(仮 IP、仮 証明書)
+ 旧サーバーインスタンスを停止
+ データ移行用インスタンスを起動
+ EBS新旧を移行用サーバーにマウントしメールサーバーのデー...
+ ELASTIC IP 付け替え、証明書移行 to 新サーバーインスタンス
+ 新サーバー稼働、テスト
+ 移行用サーバーインスタンスの停止
+ 経過観察後、問題なければ旧サーバーインスタンスの停止
** AWS 側の設定 [#q18ece37]
*** リザーブドインスタンスのダウングレード購入 [#gd2e839a]
リザーブドインスタンス ID = 1f08ed93-6d03-45c0-8408-1300...
- t2.micro (前回は t2.small だったが、性能的には同等なの...
-- t2.micro (@2020) = 1コア vCPU (最大 3.3 GHz)、1 GiB メ...
//-- &ref(instance.jpg);
-- t2.small (@2017) = 1コア vCPU (最大 3.3 GHz)、2 GiB メ...
- 36ヶ月、全額前払い、スタンダード(コンバーティブルでな...
- &color(red){$172 (前回は $395 だった)};
- &ref(reserved_update_202009.jpg);
*** t2.micro インスタンスの新規作成 [#k83be000]
- IAM に Ubuntu 18.04 を選択 [成果1]
- EBS(SSD) のサイズは 30GB とした [成果2]
- セキュリティグループは 現状環境(←メールサーバー用に設...
- キーペアは現状のメールサーバーインスタンスと共通 [効率...
- %%Elastic IP (=公開されている mail.hmuna.com のアドレス...
- &color(red){当面のセットアップ用に Elastic IP = 54.168....
インスタンス ID = i-062fad024bc6dd76b
パブリック DNS (IPv4) = ec2-18-183-149-234.ap-northeast-...
IPv4 パブリック IP = 18.183.149.234
インスタンスタイプ = t2.micro
Elastic IP = 54.168.145.135*
プライベート DNS = ip-172-31-31-75.ap-northeast-1.comput...
アベイラビリティーゾーン = ap-northeast-1a
プライベート IP = 172.31.20.94
セキュリティグループ = magus-messenger-security
-
VPC ID = vpc-ddcb93b9
AMI ID = ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64...
プラットフォーム = Ubuntu
サブネット ID = subnet-a7d324ee
IAM ロール = (未定義)
キーペア名 = magu-tokyo-messenger
*** t2.medium インスタンスの設定方針(最終的な形) [#e1ac...
- キーペアは既存のものを流用
- セキュリティグループも既存の設定を流用
- ボリュームも t2.micro 設定時に作った 30GB EBS イメージ...
- Elastic IP も t2.micro 設定時に新設したグローバル IP (=...
- メールサーバー証明書は Let's Encrypt(無償)に切り替え...
*** 購入した t2.small を無駄にせず、差分を購入して t2.med...
2 つ以上の リザーブドインスタンス を単一の リザーブドイ...
たとえば、それぞれに 1 つのインスタンスがある 4 つの t2....
これらをマージして 1 つの t2.large リザーブドインスタン...
- [[リザーブドインスタンス の変更:https://docs.aws.amazon...
- [[インスタンスサイズの変更のサポート:https://docs.aws.a...
- [[Modifying Reserved Instances:https://docs.aws.amazon....
- [[EC2 Convertible Reserved Instance Update – New 1-Year...
*** が、しかし t2.small RI を追加で購入したが購入日付が違...
- &ref(separate_RI.jpg);
> EC2 t2.small リザーブドインスタンスを購入後、要件的に ...
> 追加購入して マージしようとしたが、購入日が異なるため...
> 後から購入したリザーブドインスタンスの有効期限を短くし...
> 可能でしょうか
リザーブドインスタンスにつきましては長期間のご利用を前提...
いただいておりますため、契約期間は短縮いただけません。お...
存じますが、どうぞご理解くださいますようお願い申し上げま...
なお、プラットフォームがLinux/UNIXのリザーブドインスタン...
タンスのサイズとリザーブドインスタンスのサイズが異なって...
オンデマンドインスタンスに適用される場合がございますこと...
詳細につきましては下記ページをご覧くださいますようお願い...
--リージョンごとの、またはサイズが柔軟な Amazon EC2 リザ...
---https://aws.amazon.com/jp/premiumsupport/knowledge-cen...
-- サイズが柔軟な Amazon EC2 リザーブドインスタンスの計算...
--- https://aws.amazon.com/jp/premiumsupport/knowledge-ce...
-- AWSのコスト最適化/リザーブドインスタンス
--- https://www.slideshare.net/AmazonWebServicesJapan/aws...
--- &ref(AWS のコスト最適化リザーブドインスタンス.pdf);
--- &ref(AWSアンチパターンのご紹介.pdf);
*** オンデマンドインスタンスに スマートに RI 購入済クレジ...
ご担当者様
平素よりお世話になっております。AWSカスタマーサービスの...
この度はご丁寧にご返信いただき、誠にありがとうございます。
頂いたご質問内容に関しまして、下記の通りご回答差し上げま...
(すでにご認識いただいている内容と重複する部分もあるかと...
【サイズが柔軟なRIに関しまして】
RIの「柔軟性」というのは、RIが持っている性質のことです。
(別途、設定する必要がなくRIを購入した時点で自動的に付与...
RIは上記「柔軟性」により、正規化係数(フットプリント)に基...
あくまでもコスト最適化の観点に基づいて、稼働しているイン...
「適用したいインスタンスを任意に選択することはできない」...
■RIの柔軟性の具体例
※下記説明の前提として、t2.nanoの正規化係数は「0.25」。t2...
例1)t2.smallのRIを2つ保持しているが、実際にはt2.mediumイ...
正規化係数「2」がt2.medium1台(「2」)の稼働に対して適用さ...
例2)t2.smallのRIを2つ保持しており、実際にはt2.smallを1台...
正規化係数「2」がt2.small1台(「1」)、t2.nanoインスタンス...
▼(ご参考)RIの正規化係数について
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuid...
「インスタンスサイズのフットプリント」の項目にサイズごと...
【質問に対するご回答】
> t2.small RI が2つあれば オンデマンドの t2.medium のコ...
上記説明をもとにすると、お客様から頂いた上記質問に対する...
「 t2.small RI が2つあり、かつ稼働しているオンデマンドイ...
t2.mediumのコストに自動的に割り当てられる」 ということに...
別のインスタンスが稼働している場合には、t2.smallの稼働コ...
ご承知おきくださいませ。
※前述の通り、必ずしも「t2.medium のコストに割り当てられ...
観点に基づいて割り当てられますため、お客様が損を被ること...
** サーバー設定 [#oe2ec9a3]
*** メールサーバー環境(virtual mailbox 対応)の構築 [#s4...
- これまでを継承し [[[ExRatione]A Mailserver on Ubuntu 18...
- [[20.04 版:https://ubuntu.tutorials24x7.com/blog/instal...
-- Postfix: sends and receives mail via the SMTP protocol.
-- Dovecot: a POP/IMAP server. It also handles user authe...
-- Postgrey: greylists incoming mail ← これは使わない(遅...
-- amavisd-new: a manager for organizing various antiviru...
-- Clam AntiVirus: a virus detection suite.
-- SpamAssassin: for sniffing out spam in emails.
-- Postfix Admin: a web front end for administering mail ...
-- Roundcube: a webmail interface for users.
- mysql
-- root pass = mysql_admin
-- mail pass = mail_password
- dovecot
-- /etc/dovecot/conf.d/10-ssl.conf の
ssl_protocols = !SSLv2 !SSLv3
は間違い(デフォルトで SSLv2 はサポートされないので指定自...
ssl_protocols = !SSLv3
に変更した。
- postfixadmin
-- setup pass = frex7785
-- admin = admin@hmuna.com
-- admin pass = setup pass
*** [[Postfix Admin:https://mail2.hmuna.com/postfixadmin/...
- pass = h77mailpass
-- &color(red){config.local.php の編集でハマった。ファイ...
- 管理者
-- ID = admin@hmuna.com
-- pass = frex7785
- DomainKeys Identified Mail (DKIM) 設定
-- &color(red){opendkim-genkey の設定でハマった。 Web 記...
--- (誤) op/endkim-genkey -t -s dkim -d example.com
--- (正) opendkim-genkey -t -s dkim -d example.com
-- dkim.private = &ref(dkim.private);
-- dkim.txt = &ref(dkim.txt);
dkim._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; t=y;...
-- 後で DNS に登録する dkim.txt レコード (改行なし、但し...
- localに(= 仮設の mail2.hmuna.com サーバー内で)メール...
Sep 18 07:55:42 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:55:42 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:56:13 ip-172-31-22-209 amavis[1625]: (01625-01...
Sep 18 07:56:13 ip-172-31-22-209 amavis[1625]: (01625-01...
-- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829597
-- &color(red){[原因判明] t2.micro の1GBメモリーでは足り...
-- &color(red){[残念!]なので、結局先走って3年分のリザー...
*** clamav がメモリーを喰い潰す問題(は、程度の差こそあれ...
- 一日に一回程度 メモリー枯渇でシステムが死にそうになって...
-- &ref(almost_oom.jpg);
- &color(red){[さらに残念!!] t2.small 2G メモリーでも状...
- t2.medium 上で正常稼働した状態でのメモリー使用状況
-- &ref(ram_use.JPG);
-- clamavdaemon は RAM 上の SPAM データベースをロードする...
-- 他の処理との関連で oom が発生し、SWAP Out などで CPU l...
- &color(red){とりあえず、リザーブドインスタンスは購入せ...
-- &ref(t2medium.jpg);
*** [[メールサーバーチェッカー:http://www.mail-tester.com...
- &ref(mail_test.jpg);
Received: by mail-tester.com (Postfix, from userid 500)
id C671FA84CE; Wed, 23 Sep 2020 06:05:15 +0200 (CEST)
Authentication-Results: mail-tester.com;
dkim=temperror (0-bit key; unprotected) header.d=hmuna....
dkim-atps=neutral
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) ...
X-Spam-Level:
X-Spam-Status: No/-0.2/5.0
X-Spam-Test-Scores: DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM...
DKIM_VALID_EF=-0.1,SPF_PASS=-0.001,URIBL_BLOCKED=0.001
X-Spam-Last-External-IP: 54.168.145.135
X-Spam-Last-External-HELO: mail2.hmuna.com
X-Spam-Last-External-rDNS: mail2.hmuna.com
X-Spam-Date-of-Scan: Wed, 23 Sep 2020 06:05:15 +0200
X-Spam-Report:
* -0.0 SPF_PASS SPF: sender matches SPF record
* -0.1 DKIM_VALID_EF Message has a valid DKIM or DK sig...
* envelope-from domain
* -0.1 DKIM_VALID_AU Message has a valid DKIM or DK sig...
* author's domain
* 0.1 DKIM_SIGNED Message has a DKIM or DK signature, ...
* valid
* -0.1 DKIM_VALID Message has at least one valid DKIM o...
* 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to...
* blocked. See
* http://wiki.apache.org/spamassassin/DnsBlocklist...
* for more information.
* [URIs: hmuna.com]
Received-SPF: Pass (sender SPF authorized) identity=mail...
DMARC-Filter: OpenDMARC Filter v1.3.1 mail-tester.com 75...
Authentication-Results: mail-tester.com; dmarc=pass head...
Authentication-Results: mail-tester.com;
dkim=temperror (0-bit key; unprotected) header.d=hmuna....
dkim-atps=neutral
Received: from mail2.hmuna.com (mail2.hmuna.com [54.168....
(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/2...
(No client certificate requested)
by mail-tester.com (Postfix) with ESMTPS id 750C2A84CE
for <test-iac1xgrmt@srv1.mail-tester.com>; Wed, 23 Sep ...
Received: from localhost (mail2.hmuna.com [127.0.0.1])
by mail2.hmuna.com (Postfix) with ESMTP id 86FD3BDD71
for <test-iac1xgrmt@srv1.mail-tester.com>; Wed, 23 Sep ...
X-Virus-Scanned: Debian amavisd-new at mail2.hmuna.com
Received: from mail2.hmuna.com ([127.0.0.1])
by localhost (ip-172-31-22-38.ap-northeast-1.compute.in...
with ESMTP id wq3NdD-vsXbN for <test-iac1xgrmt@srv1.mai...
Wed, 23 Sep 2020 13:05:05 +0900 (JST)
MIME-Version: 1.0
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hm...
t=1600833905; bh=T3JVNWIKqLNE9srGASR8eT8PH5+lK4r3tOAkV8...
h=Date:From:To:Subject:From;
b=PkL3aRQlA5kX1PJ3FWbN2Pd94Sd4B1eBvyvFY44qHUHwgDJB1vWEi...
aIahl7OhJ9RG2WLDesyqdWmX1cZ3OnwX9GCjz5ShJYRYTYLkO9Bhaz...
T2hNxpgB+Egfosinbx+77PzFTmAxx1+L2hQXTnqKKC/Zntqc00i9gB...
6qHazZjJZe3fX06UDYl6qarJzG9cwyXFqJh6X1jOyeR3Cvulq25N0T...
5hRmR7lELwkiQIFoQaPvqyHNYs1A0b7fR2JjZBQ33Ohrve+38z8Lzw...
uUGacjdOvWy0A==
Content-Type: text/plain; charset=US-ASCII;
format=flowed
Content-Transfer-Encoding: 7bit
Date: Wed, 23 Sep 2020 13:05:05 +0900
From: public_mail@hmuna.com
To: test-iac1xgrmt@srv1.mail-tester.com
Subject: test mail
Message-ID: <b1cd71427944275c2fddffe817bb3aee@hmuna.com>
X-Sender: public_mail@hmuna.com
*** [[メール統計監視(mailgraph):https://mail2.hmuna.com...
- インストール
[AWS (sudo)]:/home/ubuntu# apt install rrdtool mailgraph
- /etc/apache2/site-available/mailgrah の設定
[AWS (sudo)]:/home/ubuntu# cat /etc/apache2/sites-availa...
Alias /mailgraph /usr/share/mailgraph
<Directory /usr/share/mailgraph>
Options +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
#Require local
#Require ip 54.168.145.135/24
AuthUserFile /etc/mailgraph/mailgraph-htpasswd
AuthName "Mailgraph"
AuthType Basic
Require valid-user
</Directory>
- アクセスユーザー制限 (/etc/mailgraph/mailgraph-htpasswd)
[AWS (sudo)]:/home/ubuntu# htpasswd -c /etc/mailgraph/ma...
-- user = admin
-- pass = frex7785
- 起動
[AWS (sudo)]:/home/ubuntu# a2enmod cgid
[AWS (sudo)]:/home/ubuntu# a2ensite mailgraph
[AWS (sudo)]:/home/ubuntu# systemctl restart apache2 mai...
-- &ref(mailgraph.jpg);
** メール振り分け処理 (procmail → dovecot-sieve に実装を...
*** dovecot sieve インストール[#d20665c9]
- dovecot sieve
-- sieve は汎用メールのフィルタリング用言語で dovecot が...
- dovecot-managesieved
-- ユーザーごとのスクリプトコレクションを管理し有効/無効...
-- アップロードされたスクリプトの文法チェックとコンパイル...
sudo apt-get install dovecot-sieve dovecot-managesieved
*** virtual mailbox への対応 [#ibf95d35]
- From [[Devecot virtual-plugin manual:https://doc.doveco...
Sieve filters with virtual mailboxes¶
Using the sieve plugin with virtual mailboxes will cause...
sieve can’t tell the difference between a virtual locati...
If you use virtual mailboxes that are configured in siev...
a unique prefix. If you don’t, sieve will crash trying t...
- /etc/dovecot/conf.d/90-sieve.conf (上記の対応のため)
-- &color(red){/var/vmail/%d/%n/sieve にユーザが作成したs...
-- &color(red){そのsieveスクリプトへのシンボリックリンク...
plugin {
sieve = file:/var/vmail/%d/%n/sieve;active=/var/vmail/...
sieve_default = /var/lib/dovecot/sieve/default.sieve
sieve_global = /var/lib/dovecot/sieve/global/
}
*** managesieve[#e07381ec]
- /etc/dovecot/conf.d/20-managesieve.conf
-- 4190番のポートを使用してメールクライアントと通信するよ...
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 0
}
service managesieve {
}
protocol sieve {
}
- sieve の有効化確認
-- &color(red){AWS セキュリティグループ(magus-messenger-...
-- dovecot 再起動後にクライアントから sieve-managed で接...
[AWS (sudo)]:/home/ubuntu# lsof -i:4190
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NOD...
dovecot 15832 root 19u IPv4 206231 0t0 TC...
dovecot 15832 root 20u IPv6 206235 0t0 TC...
managesie 17577 dovenull 7u IPv4 206231 0t0 TC...
managesie 17577 dovenull 8u IPv6 206235 0t0 TC...
managesie 17577 dovenull 19u IPv4 239438 0t0 TC...
-- Thanderbird クライアントに plug-in をインストールし、[...
--- サーバーがサポートするフィルター機能を確認
--- &ref(thander_sieve.jpg);
*** sieve programing [#c5e21e9b]
- (動いたので)使い方
-- 各ユーザーのバーチャルメールディレクトリ (/var/vmail/h...
-- (重要)sieve ディレクトリー以下のオーナーを vmail.mai...
-- Thanderbird に plug-in をインストールし メニューから s...
-- &ref(ThanderSieve.jpg);
- [[プログラミングルール (TFC5528):https://www.ietf.org/r...
-- &ref(rfc5228.pdf);
-- &ref(RFC 3894.pdf); <---- fileinto, discard 時にコピー...
-- &ref(sievehow-to.pdf);
- Thanderbird 等のメールクライアント上 sieve のプログラミ...
-- 保存したスクリプトはサーバーの /var/vmail/hmuna.com/pu...
-- Action ボタンを押すと /var/vmail/hmuna.com/public_mail...
*** sieve example [#lf72ed82]
- &ref(sieve_orig); <-- 実際の設定(下記は抜粋)
require ["copy","fileinto","regex","body"];
########################################################...
# Strong Black List : Hard Force delete
########################################################...
if header :contains "from" "news-keymans@mail.recruit.co...
if header :contains "from" "@umaimizu.jp|@netrition.com"...
if header :contains "from" "@netrition.com" { discard; s...
if header :contains "from" "e-frontier.info" { discard; ...
if allof ( header :contains "to" "magu@angel.email.ne.jp...
if allof ( header :contains "to" "magu@angel.email.ne.jp...
if allof ( header :contains "to" "magu@angel.email.ne.jp...
########################################################...
# For security, copy all incoming messages to backup fol...
########################################################...
fileinto :copy "INBOX._backup";
########################################################...
# White List : Force copy to INBOX
########################################################...
if header :contains "from" "nbonline@nikkeibp.co.jp" { k...
if header :contains "from" "wis_news@blwisdom.com" { kee...
if header :contains "from" "mail-info@diamond.co.jp" { k...
if header :contains "from" "@linuxfoundation.org" { keep...
########################################################...
# Black List : Force delete (but, still in _backup folder)
########################################################...
if header :contains "from" "@netrition.com" { discard; s...
if header :contains "from" "@joshin.co.jp" { discard; st...
if header :contains "from" "@toshibadirect.jp" { discard...
if header :contains "from" "english@mag2.com" { discard;...
if header :contains "from" "@sfjazz.org" { discard; stop...
########################################################...
# direct move to pre-defined folfer (ML etc)
########################################################...
if header :contains "from" "umemura@shop.rakuten.co.jp" ...
if header :contains "from" "rakuten.co.jp" { fileinto "I...
if header :contains "from" "@amazon.co.jp" { fileinto "I...
if header :contains "from" "@justsystem.co.jp" { fileint...
########################################################...
# Message with SPAM flag force move to spam@hmuna.com
########################################################...
if header :contains "X-Spam-Status" "Yes" { fileinto "IN...
########################################################...
# SPAM manual list : Force move to SPAM folder
########################################################...
if header :contains "from" "@specialmovie.com" { fileint...
if header :contains "from" "@specialmovie.com" { fileint...
if header :contains "from" "@spnews.com" { fileinto "INB...
if header :contains "from" "@stationcasinos.com" { filei...
if header :contains "to" "licram.com" { fileinto "INBOX....
if header :contains "to" "hanmail.net" { fileinto "INBOX...
if header :contains "to" "public_mafia@yahoo.com" { file...
//*** 動いたが期待通りの振り分けにならない [#mefc177c]
//- backup へのコピーは正常、続きを処理するのも正常、junk...
// Sep 25 15:40:18 ip-172-31-22-38 dovecot: lda(public_ma...
// Sep 25 15:40:18 ip-172-31-22-38 dovecot: lda(public_ma...
// Sep 25 15:40:18 ip-172-31-22-38 dovecot: lda(public_ma...
- backup へのコピーは正常、続きを処理するのも正常、&color...
Sep 25 16:05:19 ip-172-31-22-38 dovecot: lda(public_mail...
Sep 25 16:05:19 ip-172-31-22-38 dovecot: lda(public_mail...
Sep 25 16:05:19 ip-172-31-22-38 dovecot: lda(public_mail...
*** sieve debug [#cbc3d59e]
- /etc/dovecot/conf.d/90-sieve.conf のトレースオプション...
- 一回毎の sieve フィルター処理結果が記録される
- ファイル数が膨大になるのでデバッグ時以外は無効に戻す
## TRACE DEBUGGING↲
# Trace debugging provides detailed insight in the opera...
# the Sieve script. These settings apply to both the LDA...
# IMAPSIEVE plugin.-↲
#↲
# WARNING: On a busy server, this functionality can quic...
# directory with a lot of trace files. Enable this only ...
# selective as possible.↲
--↲
# The directory where trace files are written. Trace deb...
# this setting is not configured or if the directory doe...
# path is relative or it starts with "~/" it is interpre...
# current user's home directory.↲
sieve_trace_dir = /var/vmail/%d/%n/↲
--
# The verbosity level of the trace messages. Trace debug...
# this setting is not configured. Possible values are:↲
#↲
# "actions" - Only print executed action comman...
# fileinto, reject and redirect.↲
# "commands" - Print any executed command, exclu...
# "tests" - Print all executed commands and p...
# "matching" - Print all executed commands, perf...
# values matched in those tests.↲
sieve_trace_level = actions↲
*** 参考 URL [#ab2f4d8b]
-- [[(dovecot 公式) Pigeonhole Sieve support:https://wik...
-- [[(dovecot 公式) Pigeonhole Installation:https://wiki...
-- [[(dovecot 公式) Pigeonhole Sieve Interpreter:https:/...
-- [[(dovecot 公式) Pigeonhole Sieve examples:https://wi...
-- [[(dovecot 公式) Pigeonhole ManageSieve Server:https:...
-- [[Sieve Syntax and Common Recipes:https://www.pair.com...
-- [[thsmi/sieve (Sieve Editor for Thanderbird):https://g...
-- [[DovecotとSieveを使ったメールのサーバーサイドフィルタ...
-- [[dovecot official:https://doc.dovecot.org/configurati...
-- [[Arch Linux Dovecot:https://wiki.archlinux.jp/index.p...
-- [[サーバーサイドのメール振り分けを maildrop から Pigeo...
-- [[【Linux CentOS 7】dovecotにおいてsieveを導入しサーバ...
-- [[Sieve 入れてみた:https://88171.net/installed-dovecot...
-- [[メールサーバ移行計画(1) – メールサーバ構築 Postfix +...
** 2ndery MX (mail3.hmuna.com) の立ち上げ [#zaebf54e]
- 今回使わなくなった t2.micro を活用する意味で(本来は必...
- メモリー喰いの clamav などフィルター系の処理は動かさない
- その他の設定は primary MX に合わせる
*** mailserver 設定 [#ndef67a1]
- server = mail3.hmuna.com (13.114.88.171)
- インストール除外としたパッケージ
-- postgrey
-- amavis
-- clamav
-- clamav-daemon
- main.cf の中で 127.0.0.1:10023 に送ってチェックする設定...
-- main.cf -----> &ref(mx2_main.cf);
-- master.cf ---> &ref(mx2_master.cf);
- MX1 を止めた状態でメールが MX2 に転送され保存されている...
Sep 29 00:51:09 mail3 postfix/smtps/smtpd[17902]: Anonym...
Sep 29 00:51:14 mail3 postfix/smtpd[17891]: connect from...
Sep 29 00:51:15 mail3 postfix/smtpd[17891]: Anonymous TL...
Sep 29 00:51:15 mail3 policyd-spf[17896]: prepend Receiv...
Sep 29 00:51:15 mail3 postfix/smtpd[17891]: 97164454DC: ...
Sep 29 00:51:15 mail3 postfix/cleanup[17897]: 97164454DC...
Sep 29 00:51:15 mail3 postfix/qmgr[17887]: 97164454DC: f...
Sep 29 00:51:15 mail3 postfix/smtp[17898]: connect to ma...
Sep 29 00:51:15 mail3 postfix/smtp[17898]: 97164454DC: t...
Sep 29 00:51:16 mail3 postfix/smtpd[17891]: disconnect f...
*** DB レプリケーションの設定 [#ade9bab9]
** 202202:後日更新 (SPF レコード非推奨化に伴う DNS レコ...
- 20220220 に三鷹メインPC(Legion Ti500) への windows11 ...
- Kaspersky が hmuna.com は怪しいドメインであると警告を発...
- [[メールテスター:https://www.mail-tester.com/]] で確認...
-- SPF レコードが不正
-- DKIM レコードが不正
- [[SPF レコードチェッカー:https://www.kitterman.com/spf/...
- SPF/DKIM は AWS Route53 のドメイン情報として登録していた
-- SPF 型の定義、同じ内容を TXT としても定義するのが当時...
-- その後 &color(red){SPF 型の定義が RFC7208 で非推奨(実...
--- [[RFC7208:https://datatracker.ietf.org/doc/html/rfc72...
- Route53 のレコードから SPF 型の宣言を削除し DNS レコー...
-- SPF レコードの削除
-- TXT レコードも一度削除し再追加(しないとレコードの更新...
-- 合わせて hmuna.com の A レコードが MX3 を指していたの...
-- 更新後の DNS レコード
-- &ref(route53_20220222.jpg);
-- [[Route 53 で SPF レコードを正常に作成しましたが、他の...
- 上記変更後に [[メールテスター:https://www.mail-tester.c...
-- 結局 DKIM レコードについては変更していない(SPF レコー...
-- &ref(score_20220222.jpg);
-- &ref(message_header.jpg);
*** [2025-04]DKIM レコードの修正 [#raee17f0]
- 再度上記の [[テスト:https://www.mail-tester.com/]] を実...
- &ref(dkim_warning.jpg);
- &color(red){V= の設定と p= の設定が分割されていることが...
- 本来の姿
-- dig +short TXT dkim._domainkey.hmuna.com で出力が 以下...
"v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A..."
"中間部分"
"末尾部分"
- Route53 の DKIM を以下のように書き換えた ---> &ref(upda...
"v=DKIM1;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4...
"DqUDdh7LbwMOoaczTORxUr4YcmvibV25cpgspYF29oL8HtqA7zeu3zP...
- 別のLinuxマシン(ここではWindows上のWSL環境)でDNS情報...
munakata@PGMIT:/mnt/c/Users/magu7$ dig +short TXT dkim._...
"v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
"DqUDdh7LbwMOoaczTORxUr4YcmvibV25cpgspYF29oL8HtqA7zeu3zP...
- &color(red){''超重要な発見'':Route53のレコード登録画面...
- &color(red){分割時にクオートで文字列を区切る必要があり...
- &color(red){''スペースの後ろに改行文字があってはならな...
- &color(red){UI的に勝手に改行されるが、そこに明示的に改...
- DKIM チェックツール
-- [[DKIMCore(DKIM専用チェッカー):https://dkimcore.org/to...
-- [[MXToolbox(一般的な検証ツール):https://mxtoolbox.co...
- DKIM 修正後、満点に戻った
-- &ref(DKIM_revised_202504.png);
** Route53 Zone 設定 [#v1733458]
- &ref(R53_zone_202504.txt);
munakata@muna-U2404:~/.aws$ cli53 export hmuna.com
$ORIGIN hmuna.com.
@ 900 IN SOA ns-1787.awsdns-31.co.uk. awsdns-hostmaster....
@ 86400 IN MX 10 mail2.hmuna.com.
@ 86400 IN MX 100 mail3.hmuna.com.
@ 172800 IN NS ns-1787.awsdns-31.co.uk.
@ 172800 IN NS ns-104.awsdns-13.com.
@ 172800 IN NS ns-1508.awsdns-60.org.
@ 172800 IN NS ns-762.awsdns-31.net.
@ 86400 IN TXT "v=spf1 ip4:54.168.145.135 a mx ~all"
_dmarc 3600 IN TXT "v=DMARC1; p=none"
dkim._domainkey 3600 IN TXT "v=DKIM1; h=sha256; k=rsa; p...
"VVuoz39001Tmxgk3GKfC+xsxTBAPHYQBAVTZZoftsGW2XuAxf+av84t...
kgb2 3600 IN CNAME mythen
mail2 3600 IN A 54.168.145.135
mail3 3600 IN A 13.114.88.171
mumit 3600 IN CNAME mythen
mythen 86400 IN A 124.155.55.64
svr 86400 IN CNAME mythen
tvr 3600 IN CNAME mythen
** Sieve レシピ [#w27dbc3b]
- &ref(sieve.sieve,center,[2025-04]);
- &ref(sieve.sieve_20250414,center,[2025-04-14]);
- &ref(sieve.sieve_20250902,center,[2025-09-02]);
- &ref(sieve.sieve_20250911,center,[2025-09-11]);
- &ref(sieve.sieve_20251013,center,[2025-10-13]);
ページ名: