Postalは、電子メールの送受信に使用される無料のオープンソースメールサーバーです。優れた機能が豊富に搭載されているため、大規模な組織だけでなく、企業環境でも非常に人気があります。 Postalで得られる注目すべき機能には、ウイルスとスパムのチェック、送信メールを送信するときにさまざまなIPプールを管理するオプション、さまざまなWebアプリケーションとの統合などがあります。
LinuxシステムへのPostalのインストールは非常に簡単で簡単です。ただし、システムを正しく構成し、必要なすべてのパッケージと依存関係を事前にインストールする必要があります。
Postalを使用したフル機能のメールサーバーの作成
これが、セットアップ手順全体を順を追って説明するためのステップバイステップのチュートリアルをまとめた理由です。最後に、Postalを使用して包括的なメールサーバーを作成する方法を理解します。
前提条件
前に説明したように、Postalをインストールする前に、LinuxPCにメールサーバーを実行するために必要なすべてのソフトウェアとパッケージがあることを確認する必要があります。始めるために必要なもののリストは次のとおりです。
郵便の前提条件
- 8 GBのRAMを搭載したシステム(郵便で推奨)
- 最新のパッケージとリポジトリを備えた更新されたLinuxPCへのアクセス
- サーバーを指すドメイン名。このチュートリアルでは、デモドメイン名example.com。を使用します。
- Ruby –郵便はRubyで書かれています。そのため、システムをインストールするには、Ruby2.3以降が必要です。
- MariaDB –データベースサーバーとして機能します。
- RabbitMQ –メッセージを送信、受信、および保存するためのプラットフォームを提供します。
- Git –インストーラーパッケージを取得するために必要
- Node.js –JavaScriptライブラリのコンパイルに必要
- Nginx –リバースプロキシとして必要になります。
注:このチュートリアルでは、Ubuntu20.04LTSバージョンを使用しています。他のLinuxディストリビューションを使用できますが、それに応じてインストール手順を調整する必要があります。
また、チュートリアルに従うには、すべてのコマンドを実行するためのroot権限にアクセスする必要があります。 root権限を取得するには、sudoユーザーとしてログインし、次のコマンドを入力するだけです。
$ sudo -i
郵便の前提条件とその使用法を明確に理解したので、ここにそれらをシステムにインストールするための詳細なガイドがあります。
ステップ1:システムを更新する
まず最初に、UbuntuPC上のすべてのパッケージとリポジトリを更新する必要があります。これを行うには、ターミナルで次のコマンドを入力します。
# apt update && apt -y upgrade # shutdown -r now
これにより、システムが更新されて再起動されます。システムの起動後、次のステップに進みます。
ステップ2:Rubyをインストールする
UbuntuPCにRubyをインストールする方法はたくさんあります。このチュートリアルでは、RVM –Rubyバージョンマネージャーを使用します。
apt-getを使用してRubyをインストールする場合に比べて、インストールプロセスは少し複雑になる可能性があります。ただし、特にPostalをインストールして構成する必要がある場合は、長期的には役立ちます。 RVMを使用してRubyをインストールするには、最初にサーバーにRVMのGPGキーを追加する必要があります。これを行うには、次のコマンドを入力します。
gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
次に、RVMをインストールしてシステムで実行するには、次のコマンドを入力する必要があります。
# curl -sSL https://get.rvm.io | bash -s stable
# source /etc/profile.d/rvm.sh
完了したら、次のコマンドを入力して、Rubyバージョンのリストを取得します。
# rvm list known
画像に示すように、同様の出力画面が表示されます。
ここから、システムにインストールするRubyのバージョンを選択する必要があります。 PostalにはRubyバージョン2.3以降のものが必要であることに注意してください。このチュートリアルでは、リストから最新のRubyバージョン2.7をインストールします。これを行うには、次のコマンドを入力します。
# rvm install 2.7
インストールが完了したら、このコマンドを実行して、システムでRubyの使用を開始します。
# rvm use 2.7
また、Rubyが正常にインストールされたことを確認するには、このコマンドを入力してRubyのバージョンを確認します。
# ruby -v
Rubyが正常にインストールされると、画像に示されているように、システムで実行されているRubyのバージョンを示す出力画面が表示されます。
郵便用のデータベースを設定する時が来ました。
ステップ3:MariaDBをインストールしてデータベースをセットアップする
ご存じない方のために説明すると、MariaDBはMySQLデータベースサーバーのフォークです。これは、データを表形式で保存できるリレーショナルデータベース管理システムです。次のコマンドを入力すると、UbuntuPCに簡単にインストールできます。
# apt -y install mariadb-client mariadb-server libmysqlclient-dev
インストール手順が完了したら、次のコマンドを実行してMariaDBを有効にし、起動時に自動起動します。
# systemctl start mariadb # systemctl enable mariadb
次に、MariaDBの新規インストールを保護する必要があります。これを行うには、次のコマンドを入力します。
# mysql_secure_installation
MariaDBデータベースのパスワードを設定できるスクリプトを実行します。まず、rootの現在のパスワードを尋ねられます。ただし、MariaDBをインストールしたばかりなので、Enterキーを押すだけで、rootパスワードを設定できます。強いものを選んでください!
その後、インストールプロセス中に出てくるすべての質問に従ってください。それらすべてで「Y」を押して「はい」を選択する必要があります。完了すると、MariaDBがUbuntuPCにインストールされます。次に、MariaDBを使用してデータベースを設定する必要があります。これは、Postalで使用されます。
まず、rootユーザーのMySQLシェルにログインしましょう。これを行うには、次のコマンドを入力します。
# mysql -u root -p
ルートパスワードの入力を求められます。ログインするためのパスワードを入力します。MySQLシェルにログインしたら、次のクエリを入力して、郵便メールサーバー用の新しいデータベースを作成します。
注:構文の一部であるため、各クエリの最後にセミコロン(;)を使用することを忘れないでください。
CREATE DATABASE postal CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
上記のコマンドは、「postal」という新しいデータベースを作成します。次に、postalデータベースに対するすべての権限をデータベースユーザーに付与します。これを行うには、次のコマンドを入力します:
GRANT ALL ON `postal`.* TO `postal`@`127.0.0.1` IDENTIFIED BY "PasswordGoesHere";
注:「PasswordGoesHere」は単なるプレースホルダーです。選択した強力なパスワードに置き換えてください。
次に、Postalがデータベースに自動的に書き込むことができるように、Postalユーザーに適切な権限を提供する必要があります。これを行うには、次のコマンドを入力します。
GRANT ALL PRIVILEGES ON `postal-%` . * to `postal`@`127.0.0.1` IDENTIFIED BY "PasswordGoesHere";
注:「PasswordGoesHere」は単なるプレースホルダーです。選択した強力なパスワードに置き換えてください。 上記のコマンドは、postal-で始まるすべてのユーザーに特権を提供します。完了したら、これらのコマンドを入力して、すべてのデータベース権限に変更をすぐに適用し、MySQLシェルを終了します。
FlUSH PRIVILEGES; EXIT;
次のステップに進む時が来ました。
ステップ4:RabbitMQをインストールする
RabbitMQを使用するには、Erlang言語で記述されているため、最初に次のコマンドを入力してErlangをインストールする必要があります。
# apt -y install erlang
次に、次のコマンドを実行してGPGキーをインポートする必要があります:
# curl -sL https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
完了したら、次のコマンドを使用してRabbitMQリポジトリを追加し、インデックスを更新します。
# add-apt-repository 'deb http://www.rabbitmq.com/debian/ testing main' # apt update
これらすべてのセットアップが完了したら、次のコマンドを使用して最終的にRabbitMQをインストールできます。
# apt -y install rabbitmq-server
インストールが完了したら、Postalメールサーバーと連携するようにRabbitMQを構成する必要があります。ただし、最初に、RabbitMQを起動し、システムの起動時に自動的に起動するように構成しましょう。これを行うには、次のコマンドを入力します。
# systemctl start rabbitmq-server # systemctl enable rabbitmq-server
次に、RabbitMQサーバーでPostalの仮想ホストを作成する必要があります。これは、次のコマンドを使用して実行できます。
# rabbitmqctl add_vhost /postal
次に、新しいRabbitMQユーザーを追加します:
# rabbitmqctl add_user postal PasswordGoesHere
注:PasswordGoesHereは単なるプレースホルダーです。選択した強力なパスワードに置き換えてください。
最後に、RabbitMQ仮想ホスト上のRabbitMQユーザーに適切な権限を設定します。これを行うには、次のコマンドを入力します:
# rabbitmqctl set_permissions -p /postal postal ".*" ".*" ".*"
これで、RabbitMQが正常にインストールされ、Postalメールサーバーと連携するように構成されました。次のステップに進む時が来ました。
ステップ5:Gitをインストールする
それでは、Gitをシステムにインストールしてみましょう。これは、端末で次のコマンドを実行することですばやく実行できます。
# apt -y install git
インストールプロセスが完了したら、次のコマンドを実行して、すべてが正しくインストールされたかどうかを確認します。
# git --version
正しくインストールされている場合は、システムで実行されているGITのバージョンが表示されます。
ステップ6:Node.jsをインストールする
次に、Node.jsをインストールする必要があります。
# apt -y install nodejs
繰り返しになりますが、インストールが完了したら、次のコマンドを入力して、すべてが正しく機能しているかどうかを確認します。
# nodejs -v
以前と同様に、正常にインストールされると、システムにインストールされているNode.jsのバージョン番号を示す出力が表示されます。
郵便のインストールと設定
上記の手順に従って、Postalの実行に必要なすべての依存関係を正常にインストールしました。ただし、オペレーティングシステムをインストールする準備をするために設定する必要のあるものがまだいくつかあります。
ステップ1:郵便ユーザーを作成する
Postalは、システム上で分離されたユーザーとして実行する必要があります。これを行うには、まず、次のコマンドを実行します。
# useradd -r -m -d /opt/postal -s /bin/bash postal
これにより、ユーザー名postalを使用してシステム上に新しいユーザーが作成されます。そのホームディレクトリは/opt/postalに設定されています。
次に、次のコマンドを入力して、新しい郵便ユーザーのパスワードを設定します。
# passwd postal
最後に、次のコマンドを入力して、Postalをsudoユーザーとして追加します。
# usermod -aG sudo postal
ステップ2:必要な権限を許可する
次に、すべての特権ポートをリッスンできるようにPostalを設定する必要があります。これを行うには、Rubyがこれらのポートをリッスンできるようにする必要があります。これは、次のコマンドを使用して実行できます。
# setcap 'cap_net_bind_service=+ep' /usr/local/rvm/rubies/ruby-2.7.0/bin/ruby
注:共有サーバーでは、これらの特権を付与するのは危険でした。ただし、完全に専用の郵便専用サーバーでは、これが脅威となることはありません。
ステップ3:リポジトリのクローンを作成する
郵便リポジトリをシステムに複製する準備ができました。ただし、最初に、郵便ユーザーとしてシェルにログインします。これは、次のコマンドを入力することですばやく実行できます。
# su - postal
リポジトリのコンテンツのクローンを作成する新しいディレクトリ/opt/ postal / appを作成します:
$ sudo -i -u postal mkdir -p /opt/postal/app
完了すると、ダウンロードリポジトリをフェッチする準備が整います。次のコマンドは、Postalの最新で最も安定したバージョンをダウンロードするのに役立ちます。
$ wget https://postal.atech.media/packages/stable/latest.tgz -O - | sudo -u postal tar zxpv -C /opt/postal/app
郵便には単一のバイナリが付属しており、サーバー上の他のすべてのディレクトリから郵便とやり取りすることができます。そのため、/ opt / postal / app / bin / postalをどこでも利用できるようにするには、それと/ usr / bin/postalディレクトリを使用してシンボリックリンクを作成するだけです。
これを行うには、次のコマンドを入力します。
$ sudo ln -s /opt/postal/app/bin/postal /usr/bin/postal
ステップ4:Rubyの依存関係をインストールする
郵便に必要なすべてのRuby依存関係をインストールする時が来ました。ただし、これを行うには、最初にいくつかのRuby Gems(Bundler、Procodile、およびNokogiri)をインストールする必要があります。 Bundlerは、Rubygemアプリケーションの依存関係マネージャーです。次のコマンドを入力してインストールできます:
$ sudo gem install bundler
Procodileは、Rubyアプリケーション用のプロセス管理ツールです。次のコマンドを使用してインストールできます:
$ sudo gem install procodile
そして最後に、HTML、XML、CSSパーサーであるNokogiriが必要になります。これは、プログラムでXMLドキュメントを読み取って編集するのに役立ちます。インストールするには、次のコマンドを実行します。
$ sudo apt-get install build-essential patch ruby-dev zliblg-dev liblzma-dev $ sudo apt-get install libgmp-dev$ sudo gem install nokogiri
必要なすべてのRubygemがシステムに正常にインストールされたら、Postalに必要なRubyの依存関係をインストールできます。これを行うには、次のコマンドを実行します。
$ postal bundle /opt/postal/vendor/bundle
ステップ5:郵便設定ファイルを設定する
必要なすべての依存関係がインストールされたら、最終的に、Postalのデフォルト構成ファイルを生成できます。これを行うには、次のコマンドを入力します。
$ postal initialize-config
画像に示すように、同様の出力画面が表示されます。
ご覧のとおり、デフォルトのpostal.yml構成ファイルを含む一連のキーと証明書を生成しました。
次に、構成ファイルを開き、カスタム設定と構成を挿入します。 Nanoテキストエディタを使用して開きます。
$ nano /opt/postal/config/postal.yml
ファイルは画像に示されているもののようになります:
セクションごとに参照し、ここで強調表示されているように変更を加えます。まず、Webセクションで、ホスト名を実際のドメイン名に変更します。
web: # The host that the management interface will be available on host: postalmail.example.com
次に、main_dbとmessage_dbで、設定に応じてユーザー名、パスワード、データベース、プレフィックスに適切な変更を加えます。
main_db: # Specify the connection details for your MySQL database host: 127.0.0.1 username: postal password: p0stalpassw0rd database: postal message_db: # Specify the connection details for your MySQL server that will be house the # message databases for mail servers. host: 127.0.0.1 username: postal password: p0stalpassw0rd prefix: postal
さらに下にスクロールすると、RabbitMQの設定が表示されます。以前に作成したユーザーと仮想ホストに合うように変更を加えます。
rabbitmq: # Specify the connection details for your RabbitMQ server. host: 127.0.0.1 username: postal password: PasswordGoesHere vhost: /postal
下にスクロールして、DNS構成を設定します。ここでドメイン名を変更して、使用している実際のドメイン名と一致させます。
dns: # Specifies the DNS record that you have configured. Refer to the documentation at # https://github.com/atech/postal/wiki/Domains-&-DNS-Configuration for further # information about these. mx_records: - mx.postalmail.example.com smtp_server_hostname: postalmail.example.com spf_include: spf.postalmail.example.com return_path: rp.postalmail.example.com route_domain: routes.postalmail.example.com track_domain: track.postalmail.example.com
完了したら、ファイルを保存してエディタを終了します。
ステップ6:郵便物を設定する
郵便設定ファイルを設定したら、郵便アプリケーションを設定します。これを行うには、まず、Postalに必要なデータベースとその他のアセットを初期化します。これを行うには、次のコマンドを入力します。
postal initialize
次に、次のコマンドを実行して、新しい郵便管理者ユーザーを作成します。
postal make-user
郵便ユーザーのユーザー名、電子メールアドレス、およびパスワードを入力するように求められます。出力画面は次のようになります。
postal@ubuntu:~$ postal make-user Postal User Creator Enter the information required to create a new Postal user. This tool is usually only used to create your initial admin user. E-Mail Address : [email protected] First Name : FOSS Last Name : Linux Initial Password: : ************** User has been created with e-mail address [email protected]
新しいPostalユーザーを作成したら、Postalのコマンドライン設定を完了します。郵便サーバーを起動する時が来ました。これを行うには、次のコマンドを実行するだけです。
postal start
次に、次のコマンドを入力して、サービスが正しく開始されているかどうかを確認します。
postal status
また、必要なときはいつでも、次のコマンドを使用して郵便を停止できます:
postal stop
郵便メールサーバーを開く前に、接続を保護するためのプロキシサーバーをすばやく設定しましょう。
ステップ7:プロキシサーバーを設定する
プロキシサーバーを設定するには、最初にSSL証明書が必要です。
すでにSSL証明書をお持ちの場合は、この手順をスキップして、プロキシサーバーを設定する次の部分に進むことができます。
Let’sEncryptを使用して無料のSSL証明書を生成する
プロキシサーバーを設定する前に、SSL暗号化を使用して安全にアクセスすることをお勧めします。このチュートリアルでは、Let’sEncryptを使用して生成された無料のSSL証明書を使用します。
これを行うには、まず、Let’sEncryptクライアントであるcertbotをインストールする必要があります。
# apt -y install certbot
インストールが完了したら、次のコマンドを実行します。
# certbot certonly --standalone -d postalmail.example.com
これにより、指定されたドメイン名のSSL証明書が作成されます。ドメイン名がサーバーを指していることを確認してください。 Certbotは、証明書を提供する前にドメイン権限を確認します。
SSL証明書が生成されると、/etc/letsencrypt/live/postalmail.example.comに自動的に保存されます。
注:postalmail.email.comを実際のドメイン名に置き換えてください。
Let’sEncryptのSSL証明書はそれぞれ90日で期限切れになります。 3か月ごとに手動で更新する必要がないように、SSL認証の自動更新システムを設定する方法を説明します。これを行うには、Crontabを使用します。まず、次のコマンドを使用してcrontabファイルを開きます。
# crontab - e
次に、crontabファイル内に次の行を入力します。
0 0 * * mon /usr/bin/certbot renew >> /var/log/le-renew.log
上記のコマンドは、毎週月曜日の深夜に自動的に実行されるcronジョブを作成します。 SSL証明書の有効期限が切れているかどうかをスキャンして確認します。はいの場合、/ var / log / le-renew.logファイルが実行され、SSL証明書が自動的に更新されます。
Crontabとcronジョブの詳細については、Crontabを使用してタスクを自動化およびスケジュールする方法に関する詳細なガイドをご覧ください。
SSL証明書を生成し、自動更新するように構成したので、プロキシサーバーをインストールします。
Nginxを使用してプロキシサーバーを設定する
セキュリティ上の理由から、NginxやApacheなどのプロキシWebサーバーの背後で実行するPostalWebインターフェイスとそのAPIが必要です。このチュートリアルのために、Nginxを使用してこれを行う方法を示します。
最初に行う必要があるのは、NginxWebサーバーをインストールすることです。これを行うには、ターミナルで次のコマンドを実行します。
# apt -y install nginx
Nginxをインストールして、Webサイト用の新しいサーバーブロックを作成します。これを行うには、選択したテキストエディタを使用して/etc/nginx/conf.d/postalmail.example.com.confファイルを開きます。このチュートリアルでは、nanoエディターを使用します:
nano /etc/nginx/conf.d/postalmail.example.com.conf
ファイルが開いたら、次のコンテンツ行をファイルに入力します。
server { listen [::]:80; listen 0.0.0.0:80; server_name postalmail.example.com; return 301 https://$host$request_uri; } server { listen [::]:443 ssl; listen 0.0.0.0:443 ssl; root /opt/postal/public; server_name postalmail.example.com; ssl_certificate /etc/letsencrypt/live/postalmail.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/postalmail.example.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_prefer_server_ciphers on; ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS; location / { client_max_body_size 50M; try_files $uri $uri/index.html $uri.html @puma; } location /assets { add_header Cache-Control max-age=3600; } location @puma { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_pass http://127.0.0.1:5000; } }
それが完了したら、ファイルを保存してエディターを終了します。次に、次のコマンドを実行してNginxを再起動し、システムの起動時に自動的に開始できるようにします。
# systemctl restart nginx # systemctl enable nginx
これで、郵便メールサーバーのプロキシサーバーとして機能するようにNginxが正常に構成されました。
ステップ8:郵便メールサーバーを構成する
最後に、PostalMailServerをセットアップします。何よりも、設定したドメイン名を入力することで、ブラウザからアクセスできるようになりました。私たちの場合、それはhttps://postalmail.example.comになります。このWebページが開くはずです:
少し前に作成した郵便ユーザーのメールアドレスとパスワードを入力します。ログインすると、Postalのセットアップ手順を完了するように求められます。画面に表示される指示に従うだけでよい、非常に簡単なプロセスです。
新しい組織を作成する
まず、新しい組織を作成する必要があります。組織の名前を入力するように求められます。特定の名前を気にしない場合は、自動生成オプションを選択してください。
次に、短い名前を指定する必要があります。これは、SMTPサーバーで認証するときにユーザー名として使用されます。短い名前は、有効な文字として文字、数字、およびハイフンのみを受け入れます。以上です;郵便の下に新しい組織が正常に作成されました。
新しいメールサーバーを作成する
次に、新しいメールサーバーを作成するように求められます。ここで、電子メールサーバーの名前、短縮名、およびモードを入力する必要があります。現在、電子メールサーバーには2つのモードがあります。ライブモードでは、すべての電子メールが期待どおりにルーティングおよび配信されます。開発モードでは、メールはWebインターフェイスにのみ表示されます。
完了すると、メールサーバーが正常に作成されます。
ドメイン名を指定してください
次に、メールサーバーに新しいドメインを追加する必要があります。これを行うには、[ドメイン]タブをクリックして、画像に示すように新しいドメイン名を作成します。
新しいドメインを追加した後、ドメインのDNSを構成するように求められます。これを行うには、SPFとDKIMの2つのTXTレコードを追加する必要があります。完了したら、リターンパスとメール配信のCNAMEレコードとMXレコードを入力します。
完了したら、[レコードが正しいかどうかを確認する]ボタンをクリックしてDNS構成を確認します。
SMTPクレデンシャルを指定する
最後に、Postalが電子メールを送受信するために使用するSMTPクレデンシャルを作成する必要があります。
これを行うには、最初に[資格情報]タブに移動し、タイプをSMTPまたはAPIとして選択します。次に、SMTPクレデンシャルの名前を入力し、電子メールアドレスの処理方法を選択します。以上です!
[概要]タブを確認
これで、郵便メールサーバーが正常にセットアップされました。最後のステップとして、[概要]タブに移動して、すべてが適切に設定されているかどうかを確認します。
まとめ
これは、Ubuntu 20.04にPostal(メールサーバー)をインストールして構成する方法についての詳細な説明でした。これがお役に立てば幸いです。また、メールサーバーの作成に役立ったことを願っています。
ご覧のとおり、Postalを実行する前に、インストールする必要のあるものと構成する必要のあるツールがたくさんあります。そのため、インストールプロセス中に何らかの問題やエラーメッセージが発生した場合は、コメントに記入してください。サポートさせていただきます。
発生する可能性のあるエラーの例を次に示します。このチュートリアルでは、RVMを使用してRubyをインストールしました。ただし、Rubyのインストールに別のインストール方法(apt-getなど)を使用した場合は、システムに必要なファイルが1つまたは2つ不足している可能性があります。これらの不足しているファイルは、Postalの実行時に問題を引き起こす可能性があります。これが発生した場合は、Postalを実行する前に、失われたデータとそのデータも適切なディレクトリにインストールする必要があります。