目標まで一区切りがつきました(構築準備編) (https://ikesama200.tumblr.com/post/116806282774/目標まで一区切りがつきました構築準備編)
目標まで一区切りがつきました(時刻調整,内向き名前解決編) (https://ikesama200.tumblr.com/post/116880275429/目標まで一区切りがつきました時刻調整内向き名前解決編)
目標まで一区切りがつきました(webサーバ,メールサーバ編) (https://ikesama200.tumblr.com/post/116886730609/目標まで一区切りがつきましたwebサーバメールサーバ編)
Mailサーバの本格運用開始 (https://ikesama200.tumblr.com/post/117831221169/mailサーバの本格運用開始)
メールサーバーのアップグレードでのトラブル(https://ikesama200.tumblr.com/post/147779872074/メールサーバーのアップグレードでのトラブル)
xrdpを使用したリモートデスクトップ接続(https://ikesama200.tumblr.com/post/157869433414/xrdpを使用したリモートデスクトップ接続)
Android端末をPCからリモート接続してみた。(https://ikesama200.tumblr.com/post/184103912594/android端末をpcからリモート接続してみた)
メールサーバーからメールが送信できないトラブル-OP25Bの回避- (https://ikesama200.tumblr.com/post/185476821679/メールサーバーからメールが送信できないトラブル-op25bの回避)
メールサーバーのセキュリティ問題-SASL認証と書き間違い-(https://ikesama200.tumblr.com/post/185699788809/メールサーバーのセキュリティ問題-sasl認証と書き間違い)
今回の投稿までに色々あり、会社を辞めて無職になり1年半くらいニートして再就職をしました。
転職した会社の拘束時間が前職よりも短いため、長いこと使用していたメールサーバーを別のマシンに移すことにした。
作業が概ね完了したのでその時の内容を備忘禄として残しておきます。
CPU:Intel(R) Core(TM) i5-2520M
移行元のマシンは私が大学に入学した記念に買ってもらった相当古い品。
OSもCUIのdebian8を騙し騙し使っていたがやはり不安なので移行を行うことに。
移行先のマシンも、もう少しパワーのあるマシンが中古で安く出回っていたので購入したが3年くらい放置していたので今更感がある。
そして、地味に移行先はSSD。このPCが発売された当時ではまだSSDは高く、この容量を積むのが限界だったのだろう。
んでもってその少ないSSDよりも更に少ない移行元のHDD(笑)
まぁ、どこをとってもスペックアップにつながるのは良いことだ。
移行するにあたり下記のサイトを参考にさせていただいた
メールサーバ移行計画(1) – メールサーバ構築 Postfix + Dovecot | 雑廉堂の雑記帳(https://www.rough-and-cheap.jp/linux/ubuntu18-04_postfix_dovecot/ )
Mailサーバー : Postfix インストール https://www.server-world.info/query?os=Debian_10&p=mail&f=1
まずは移行先にpostfixとdovecotをインストールしないと話にならないのでaptコマンドでインストール
$ apt -y install postfix sasl2-bin
$ apt -y install dovecot-core dovecot-pop3d dovecot-imapd
で、参考サイトと移行元を参考にして設定ファイルの更新
特筆する点は移行元の設定ファイルがあるのでマージソフトを使用して差分を確認しながら進めるとかなり楽だったというくらいか。
Expand
これまでのメールサーバーの証明書は自己証明書を使用していたが今回は参考サイトで無料で発行できる証明書を使用していたのでその手順に沿って証明書の発行を行った。
SSL証明書を取得する (Let's Encrypt) (https://www.server-world.info/query?os=Debian_10&p=ssl&f=2)
発行元はLet's Encrypt というサービス。私が自己証明書を発行していたときにはなかったサービスなので随分手軽になったと感心している。
なお、この証明書は90日間しか有効でなくて、都度再発行が必要な模様。
まぁ、再発行はコマンド一つでできるのでcronに組み込めば問題なく運用できる。
無料なのでいつまでもできるとは期待してはいけない。ダメになったら自己証明書も検討しないといけない。
作業内容は手順書に沿って、移行先のメールサーバ上でもApacheは動いていたのでルーターのポートマッピングを切り替えて実行。
きちんとポートが解放されていなかったのか何度か失敗したが時間をおいて進めると成功した。
しばらくはこの証明書を使用する予定。早めにcronを作らないとな。
今回の件もそうだが自動実行したい内容をそろそろ実装していかないとな。
今回の移行はそのまま移行という訳ではなく仮想ユーザーによる仮想メールボックスの実装を行う。
これにより旧マシンではアドレスの追加にはOS側でユーザーを追加していたのが管理用のアカウント1つで管理が可能となった。
ただし、管理用のアカウント名は「vmail」ではなく「mailadmin」として手順の各所は今回のアカウント名に変えて記載した。
(導入当初は勘違いをしていて管理用のアカウント名をメール用のアカウント名にしてごちゃごちゃになったが途中で気が付けたので適宜修正。セーフである。)
で、この段階で接続を確認。確認用にルーターのポートマッピングを移行元から移行先に変更。スマフォのgmailから接続をしてみる。
仮想ユーザーになったのユーザー名がこれまでのアカウント名である@の前を使用すると異なり@以降も使用することになったので注意。
後、セキュリティの種類は(証明書を全て承認)にするとエラーが出るのでSSL/TLSのみを選択。
一応接続はできたがメールボックスは空なので何も出てて来ない。接続できましたのでメッセージもないのでよくわからない。
しかし、移行先のメールボックス(今回は/home/mailadmin/(ドメイン名)/(ユーザー名)/)には新しくMaildirフォルダが作られていたので接続はできているのかと。
移行元も Maildir形式なのでそのままコピーするだけで以前のメールデータを移行できる。
(コピー元と同じフォルダ形式を作るのが面倒だったので今回は一度ログインしてシステムが自動生成したフォルダに乗っかることにした)
で、ルータの設定を戻してメールデータをコピー。権限と所有者の関係でファイルサーバを経由してコピーした。(移行元はrootで移行先はmailadmin)
コピー後にルータを戻してgmailから以前のメールが見れるのを確認できたので移行は完了とした。
ここまで仕事終わりにちょっとづつ進めて一週間といったところ。
移行したメールデータを見ることができたが送ったメールは受信できないという事態になっており、ここで一度設定の見直しをすることに。
同時にメインで使用しているPCのメールクライアントから接続を試すがログインすらできない問題も発生。
大きく二つの問題を抱えた状態に。二つの問題が同じ原因かと思い込んでいたので解決が遅くなった。
受信ができない問題は設定ファイルのmain.cfに不備があったのでそこを修正することでgmailからは新しいメールの受信ができるのを確認できた。
がローカルのthunderbirdからはログインすらできない状態が続く。
ログインができなかったのでメールが受信できている事実に気づくのが遅くなった。
ローカルからは確認できないが受信はできているのでここで移行元のpostfixとdovecotを停止してルーターのポートも移行先に変更。
gmailからはメールを確認できるがthunderbirdからはログインできないので 設定ファイルを何度も見返してアレコレ調べた結果以下のサイトに辿り着く。
Thunderbird のメールアカウント設定がうまくいかないのでログをとってみる|MSeeeeN(https://mseeeen.msen.jp/how-to-get-thunderbird-log/)
Thunderbird はあなたのアカウント設定を見つけられませんでした。
と表示されるので名前解決に失敗しているのが分かった。
で、ローカルからpingをメールサーバーのドメイン宛に打つと移行前のサーバーのローカルipアドレスに飛ぶためこれが原因と判断。
色々調べてローカルのDNSのキャッシュを削除しても直らない。
[windows] ipconfig /flushdns しても消えない(T_T) [pebcak](http://blog.livedoor.jp/t122/archives/53299804.html)
すごくうっすらとhostsファイルを修正した記憶があったので下記サイトを参考に内容を確認。
【Tips】Windows 10のhostsファイルを編集する方法(https://www.softantenna.com/wp/tips/windows-edit-hosts/)
サーバーのDNSが移行前の環境のローカルIPアドレスになっていたので修正。
で、thunderbirdから再接続をして接続とメールの受信を確認。
また、この過程でメールアカウントのパスワードも変更したのでthunderbirdのパスワードマスタの変更したりと接続できるようになってからが大変だった。
そして、環境のDNSがもろにメールサーバのIPアドレスなのでwebサーバを別に立てると面倒なことになるので(当時はそこまで考えていなかった)
hostsの中身を若干修正してメールサーバ専用のアドレスを追加。
最後に送信のテストをするが、thunderbirdは送信済みになるがメールが届かない事象に陥る。
送信自体はOP25B問題のためgoogleをリレーホストとしており、リレーホストの認証に失敗している模様。
以前の設定をコピーしたのでうまくいくかと思っていたが以前の備忘録を読み返すとパスワードファイルのdb化ができていないかったので認証ができなかった模様。
$ postmap /etc/postfix/password_maps
上記のコマンドでdbファイルを作成しpostfixとdovecotを再起動で無事に送信が確認できた。(ついでに以前に送信したテストメールも送信できた。メールキューにスタックされたままだった模様)
長々と時間はかかったが何とか新しいマシンにメールサーバーを移行させることに成功した。
移行先の方がパワーはあるのでこれ機会に新しいことにも挑戦したい。
作業期間としてはトラブル解決込みで3週間。動かすだけなら1週間目に動いていたからな。
実働としては3人/日くらいか。トラブルに慣れてくればもう少し短くできるかと思われる(白目
トラブルの内容としては既存の内容ばかりであったので特に技術ブログとして残すつもりはない。調べればわかることだし。
なにはともあれここまで漕ぎつけて一安心。移行した環境を元に新しいことをしたいなーっと。