Proxmoxでサーバ構築

イメージ
これまでテスト用にi5第8世代の廃棄PCを使用してきた。 とはいえ今の所何も問題は起きていないが、入れ替えも視野に入れ予備サーバを用意することに。 - メモリ:16GB - SSD:500GB - DDNS+Let's Encrypt - Ubuntu24.04 この環境なので、すぐに構築し直すことは可能だが、とりあえずこのまま置いておいて別のサーバを立てることにする。 最初はRaspberryPiで構築しようと思ったけれど、本体電源+外付けHDD電源+ディスプレイ電源と考えると、邪魔なので廃案。 そこで廃棄しようと思っていた「Lavie NS300/N」が手元にあったので、これを利用することに。 一応バッテリーは正常に動作するので、UPS代わりにそのまま。 - Core™ i3-8145U(やや非力) - メモリ:8GB(少ないが…) - HDD:1TB なので、これまで使用しているものより、若干スペックダウン。 ただ用途は、非常勤で教えに行っている専門学校生用の練習マシンとする予定なので、まぁ問題なさそう。 Proxmox導入 直接、Linuxを導入してもよいのだけれど、今回は Proxmox を導入し、その上でUbuntu Serverを動作させる計画。 USBにProxmoxのイメージを焼いて、インストールすれば問題なく完了。 ただ、現在のバージョンはdebian - trixieがベースになっているので、若干参考になるサイトが少なめ。とはいえ旧版のは参考になるので調べつつ… HDDなだけあって、最初の起動は少し遅いものの、立ち上がってしまえば問題ない。 さぁ、VMにするかCTにするか…。 GUI使うのであれば、VMかなぁ。サーバだしCTでいいかぁ。 という程度の選定で、CT(コンテナ)で進めることに。 - メモリ:4GB - CPU:2 - HDD:20GB(root disk) - HDD:400GB(home用) - Ubuntu24.04 という構成で進めることにした。 テンプレートを用意して、初期設定を行い起動。 まぁすんなりと入った。 液晶を閉じたら、Suspendになってしまったので、若干設定変更。 $ sudo nano /etc/systemd/logind.conf HandleLidSwitch=ignore $ sudo sy...

SSL自己署名証明書の作成

マルチドメインを管理していて

これまで1台のサーバ(仮想も含め)で1ドメインの管理をこれまで行ってきた。
今回、複数のドメインを1台で管理した方が良い案件だったので、設定することにした。

webサーバはapache2のvirtual設定でOK。
IPは一つだけで、名前ごとに異なるコンテンツを返す。

メールはpostfix+dovecotで、virtual mailboxで管理することに。

ftpは、chrootして、各ユーザのhome以下のweb用ディレクトリに配置。

ここまでは、別に難しくはない。

テストでは、Thunderbirdを利用していたのが、トラブルを見つけにくくしていた。
Thunderbirdは、知らないSSL証明書を受け取った場合、例外として処理するかどうかを自分で設定できる。

僕が設定してテストしている時に、例外指定をしたため、以後警告も何も言わずに送受信ができていた。

ところが、WindowsLiveやOutlook/OutlookExpressは、起動時に確認され、OKしても再度メーラーを起動すると、再び警告が出てくる。
WindowsLiveだと「接続しているサーバーは、確認できないセキュリティ証明書を使用しています。」って、ええやんか〜。

問題はSSLだった

オレオレ証明書(自己署名証明書)の使い方と、設定の計画にあった。
デフォルトでは、勝手に証明書を作ってくれて、それを使えば基本的には問題ない。
(というか、これまで問題になったことはない)

ただし、先にも書いたように1マシン=1ドメインの場合だ。
ホスト名でCN名を埋め込んで証明書を作るため、マルチドメインの場合の処理が厄介だった。

今回はvpsを借りているので、デフォルトでは借りたvpsによる名前のホストで作ってくれている。
そこで、通常通りSSLを使用して、設定してみると…。

う〜む。
メーラーのサーバ設定を、オリジナルのドメインにしたり、仮想ドメインにしたり、IPにしたりしてみたがダメ。

サーバから証明書を持ってきて、登録するが上手くいかない。

あれこれやっているうちに、vpsがデフォルトで付けてくれたマシン名だとSSLで警告が出なくなることで閃いた。

利用するマシン名で証明書を作りなおしておけば、いいんじゃね?
各メーラーにはサーバ名はIPで振る約束になっている。これは好都合。

そこで、IP名でのCN名を埋め込んだ証明書を作成して、それを元にSSLを通すことに。

自己署名証明書の作成

手順は「postfix、dovecot の証明書の作成(Ubuntu 8.04)」が分かりやすかった。

重要なので、再掲しておく。
$ sudo -s
# cd /etc/ssl/private
# openssl genrsa -des3 1024 > mail.key
パスフレーズ聞かれるので、とりあえず覚えていられる程度のものでOK。
# chmod 600 mail.key
# openssl rsa -in mail.key -out mail.key
これでパスワードを解除したもので上書きしておく。この作業をしておかないと、パスフレーズの入力を求められる。するとプログラムが停止してしまうので…。
(先に使ったパスフレーズが必要)

# cd ../certs
# openssl req -utf8 -new -key ../private/mail.key -x509 -days 3650 -out mail.pem -set_serial 0
として、パブリックキーを生成。とりあえず有効期限10年程度の証明書にしてみた。(何度も設定したくないしね)

Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Aichi
Locality Name (eg, city) []:Nagoya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Hoge Ltd
Organizational Unit Name (eg, section) []:xxxx-net
Common Name (eg, YOUR name) []:aaa.bbb.ccc.ddd ←IPで設定
Email Address []:root@hoge.com

postfixの設定

/etc/postfix/main.cfを編集
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
となっているのを、先ほど作ったmail.keyとmail.pemに修正。
smtpd_tls_cert_file=/etc/ssl/certs/mail.pem smtpd_tls_key_file=/etc/ssl/private/mail.key
これで、postfixを再起動。
 # service postfix restart
/etc/dovecot/conf.d/10-ssl.confを編集
ssl_cert = </etc/ssl/certs/mail.pem
ssl_key = </etc/ssl/private/mail.key
保存したら、dovecotを再起動。
# service dovecot restart

クライアント用の処理

PC用に証明書を変換する。
# openssl x509 -in mail.pem -outform DER -out mail.der
このファイルを、web経由でも、USBメモリでもftpでもなんでもいいので、PCに持ってくる。(以下Windows上の作業)

mail.derをダブルクリック。
「証明書のインストール」→「証明書のインポートウィザード」→「証明書を次のストアに配置する」→「信頼されたルート証明機関」

最後に警告が出るが、OKで完了。
これで証明書がインポートされ、しかも信頼していることになる。

メーラーを起動しても、何も言わずに送受信できるようになった。

ふ〜。
ここまでたどり着くのに、予想以上に時間がかかりましたわ…。

まあセキュリティが強化されているのは分かるけど、Thunderbirdくらいに自分の責任で、証明書を信用するってことにしてくれれば、こんなに手間はかからないのに…。

良し悪しですな…。

無事使えるようになって、めでたしめでたしとな。
チカレタゎ。


コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?