カテゴリー: ドメイン

ubuntu16.04にNGINX+Ajentiで作成したバーチャルホストに、Let’s Encryptで無料SSLを発行する

さて、ここまでで、CONOHAのVPSにubuntu16.04でLinuxサーバーを立てて、DNSで取得した独自ドメインにwebmail用のサブドメインやメールサーバー用のサブドメイン〜メールサーバー用のレコードを作成し、ubuntuサーバーに、WEBサーバーやらデータベースサーバーやらFTPサーバーやらメールサーバーやらをインストールして、AjentiでWEBサーバーにバーチャルホストを作成した、というところまでやってきました。

あ〜長かった!!

とため息をつかれている方も多いかもしれません。

そう、サーバー構築は長くて辛い道のりなんです。笑。

ここからは、作成したWEBサイトに SSL証明書をインストールして暗号化通信を有効にしていきます。
今回は、Let’s Encryptを使って「無料」のSSL証明書を導入します。

一昔前、独自SSL証明書の導入というととにかく費用がかかってしょうがなかったものでした。
共有のレンタルサーバーなんかには独自ドメインのSSLなんかは設定できなかったので、高額な固定IPのサーバーを借りて、みたいなこともありました。
しかし、検索エンジンのGoogleが、インターネット経由の通信に、暗号をかけていないような安全じゃないサイトは、もうGoogleの検索で、上位に上げてあげないよ!的な宣告をしたもんで、WEBの中の人は、ただいま大変ざわついております。笑。笑。

ちょと話は逸れますが、SSLの証明には、いくつかの有名サービスがあり、価格帯もバラバラです。
SSLの暗号化自体は、技術の話なので、別にいつでも無料でできるのですが、要は、正しい技術を使って、ちゃんと出自の確認された運営者がこのサイトを安全に暗号化していますよ、と公的な機関に保証してもらうのがSSL証明書です。
価格がなぜ大きく違うかというと、証明機関がどこまでを責任持って確認しているか、ということと、そのサイトからクレジットカードなんかの情報が漏れてしまったような場合などに、その証明機関がいくらまで保証してくれるか、という補償範囲が違うのです。
例えば、大御所のベリサインなんかは SSL証明書の取得が大変高価です。その代わり、WEBサイトの運営者がちゃんと実在していて、連絡も取れるかとか、細かく調べて、ちゃんと安心していいしっかりした会社がこのサイトを運営しています!もしそれでも損害が発生するようなことがあれば何千万円まで補償します!というところまでの責任を負ってくれるので高額なのです。
その一方で、証明の範囲が単にちゃんとSSL技術の暗号化かかってるよ!ということだけで、もしもの保証がない証明書などは、取得費用も安価です。

Let’s Encryptは、証明の範囲を最小限、SSLがちゃんとかかっている、WEBサイトがちゃんと実在している、ということに絞って証明書を発行する手順を自動化する代わりに、無料で誰でもSSL証明書を取得できる、というオンラインサービスです。

「どっかの誰かさんが、なんかWEBサイト運営してるけど、まあSSLちゃんとかかってるよ!」程度の証明にしかならないので、ビジネスでWEBサイトを運営されるような場合は、ちゃんとお金を払って、最低限、会社名や証明書の発行者の身元がしっかりしているということを証明してくれる信頼性の高いSSL証明書を取得する方がいいでしょう。ただ、個人のブログやちょっとした趣味のサイトくらいなら、そこに費用を使うのも勿体無い、とか、とりあえず自分でVPSでやってみたいから、そこに費用をかけたくない、というニーズもあると思います。

Let’s Encryptは無料です。しかし無料なりの制限があって、現在のところ、証明できる期間は、最長で3ヶ月です。通常機関のSSL証明書が1年単位ですので、大変短いです。
ただし、Let’s Encryptには、延長の仕組みもあり、サーバーのCRONなどを使って、更新時期が近づいたら、自動で更新プロセスを走らせることもできますので、そこはそれほど困ることはないと思います。

ということで、前置き長かったですが、Let’s Encryptを入れていきます!

まずは、事前準備!

Let’s Encryptは、①実際に運営されていて、②Let’s EncryptのプログラムがアクセスできるWEBサイトにしか証明書を発行することができません。
ですので、先に作成したバーチャルホストのそれぞれのドキュメントルートに、最低限、index.htmlを置きましょう。そして、ディレクトリとファイルのアクセス権限をLet’s Encryptのプログラムがアクセスできるように最適化しておきます。

それでは、デフォルトサーバーを例に見ていきます。
下記の操作は、先にバーチャルホストを作成した際にできているはずですが、念のため確認をしつつ、まだ準備ができていなかった場合は、下記の手順で、Let’s EncryptによるSSL証明書発行のための準備を整えます。

  1. Ajentiの管理パネルの「ファイルマネージャー」メニューから、先ほど作成したWEBサイトのルートディレクトリへ移動します。
    /var/www/html/
  2. この中に、index.htmlを作成し、ファイルパーミションを、644に、所有者をwww-dataに変更します。
  3. /html/のファイルパーミションは、755、同じく所有者は、www-dataです。
  4. どちらも、「WEBサイト」メニューでバーチャルホストを作成した際に、「FIX FILE  PERMISSION」ボタンをクリックして、ディレクトリ内のファイルのパーミションを一括して変更することができますので、先に、パーミションを変更していた場合は、ここでは念のため確認をしておいてください。※パーミションや所有者が正しく設定できていないと、SSL証明書が発行できずエラーとなりますので注意しましょう。
  5. 同じように他のサブドメインについても確認していきます。
  6. 「WEBサイト」メニューでは、それぞれのバーチャルホストの管理ページで、今一度下記が正しく設定できているか確認しておいてください。
    • 「一般設定」タブで、サイトは有効にチェックが入っており、メンテナンスモードのチェックは外れていますか?WEBサイトファイルへのパスは正しいですか?
    • 「ドメイン」タブで、ドメインは正しく設定されていますか?デフォルトサーバーには、メインドメインと、www./mail.の3つのドメインが登録されています。そのほかのバーチャルホストは、サブドメイン1つだけが登録されています。
    • 「ポート」タブでは、デフォルトの80番ポートの他に、443ポートが作成されており、443ポートのSSLにチェックが入っていますか?
  7. CONOHAコントロールパネルののDNSでサブドメインは、正確に設定できている前提ですので、ここでは再確認はしませんが、この後のインストールがうまくいかない場合は、設定を確認して見てください。

Let’s EncryptのNGINX用プラグインをインストール!

Let’s Encryptは、現在最新版のクライアントの名称が、「certbot」に変更になっています。このクライアントソフトによって、簡単に証明書を作成することができます。

certbotプラグインには、いくつかオプションの種類がありますが、今回は、最新版で導入されたNGINXオプションを使って簡単にやっていきたいと思います。
ターミナルからコマンドで操作します。

#GITのリポジトリから、certbotプラグインを /opt/cartbot/ ディレクトリにコピーしてきます。
sudo git clone https://github.com/certbot/certbot /opt/certbot

#念のため、インストールディレクトリに移動して、確認します。
cd /opt/certbot
ls -la

こんな感じで、色々入っていると思いますw

NGINXのプラグインモードで、インストールしていきます。

sudo /opt/certbot/certbot-auto --nginx
Do you want to continue? [Y/n] y

必要なモジュール類が、だだだーっとインストールされます。
無事、インストールが完了したら、証明書のリニューアル時やLet’s Encryptからのセキュリティ情報の送信に使われるEメールアドレスを聞かれますので、有効なメールアドレスを入れましょう。

Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):webadmin@example.com

続けて、利用規約に同意するかどうかを聞かれますので、Aを入力して同意します。

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel:A

調査メールなどを送ってもいいか?と聞かれます。どっちでもお好きなように、YかNを入力します。

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y

次に、先ほどからAjentiで設定したサブドメインを含めたドメイン全体のリストがずらっと並びます。
リストのうち、どれをHTTPS化(=SSL化)したいですか?と聞かれますので、SSL対応するドメインの番号を、コンマ区切りか、/区切りか、あるいはスペース区切りで入力します。
今回、このリストにあるものは全て、SSLにするつもりですので、全てを選んでコンマでつないでいきます。
※ここで、選んだバーチャルホストは、1つのSSL証明書セットに、全てがまとめられて1組の証明書が発行されます。証明書をそれぞれ別に発行したい場合は、1つずつ選んで、個別に発行することもできます。その際も、メインのドメインと、mail,wwwは、同じ1つのデフォルトサイトにしますので、セットにしておきましょう!

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: example.com
2: mail.example.com
3: phpmyadmin.example.com
4: webmail.example.com
5: www.example.com
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):1,2,3,4,5

多少メッセージは違うかもしれませんが、およそ下記のような感じで、証明書発行したよー!と言われます。

Performing the following challenges:
tls-sni-01 challenge for example.com
tls-sni-01 challenge for mail.example.com
tls-sni-01 challenge for phpmyadmin.example.com
tls-sni-01 challenge for webmail.example.com
tls-sni-01 challenge for www.example.com
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
Cannot find a cert or key directive in /etc/nginx/conf.d/examplecom.conf for set(['www.example.com', 'mail.example.com', 'example.com']). VirtualHost was not modified.
IMPORTANT NOTES:
- Unable to install the certificate
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2017-07-06. To obtain a new or tweaked version of this
certificate in the future, simply run certbot-auto again with the
"certonly" option. To non-interactively renew *all* of your
certificates, run "certbot-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.

発行された証明書は、/etc/letsencrypt/live/example.com/ ディレクトリの中に格納されていますので、ちゃんと入っているか確認してみましょう。
”Unable to install the certificate”とか書かれていますが、この後インストールしていきますので、気にしません;
上記の手順で、サブドメインごとに別々に証明書を発行した場合は、/etc/letsencrypt/live/の中に、それぞれのドメイン名ごとにディレクトリができていて、その中にファイルが入っていると思います。

cd /etc/letsencrypt/live/example.com
ls -la
  • cert.pem
  • chain.pem
  • fullchain.pem
  • privkey.pem

この4つが入っているか、それぞれ確認してみてください。
この中で、fullchain.pemprivkey.pemを使います。
fullchain.pemは、証明書情報が一式だーっと入っているキーファイルです。privkey.pemはそれとペアになるプライベートキーになります。

見やすいので、Ajentiの管理パネルからファイルマネージャーで確認しても構いません。

長くなったので、一旦ここまで!
次は、このファイルを実際のバーチャルドメインに設定します。
ここまでできたら、SSL化はほぼできたと思って安心して大丈夫です。(*^^*)

参考1:https://letsencrypt.jp/docs/using.html

参考2:https://arashmilani.com/post?id=95

注意)Let’s Encryptでは、同じドメイン名でサブドメインも含めて7日間の間に5組しか発行できない、という決まりがあります。やり直し、やり直し、としているうちに規定数を超えてしまってエラーになり、証明書が発行できなくなる場合があります。
その場合は、残念ですが、7日間開けて再びチャレンジしてみてください。

<やること一覧>





NGINXにAjentiでバーチャルドメインを設定する

はい、ついに、NGINXで、バーチャルホストを追加していきます。

事前準備として、CONOHAのコントロールパネルで、先に作成しておいた、ドメインのDNSレコードを確認しておいてください。
必要なのは、

  • VPSサーバーのIPアドレス(一応Ajentiのダッシュボードでも確認できる)
  • CONOHAのDNSメニューで作成したサブドメインの情報

です。

それでは、やっていきまーす。

一番最初に、メインのドメインでデフォルトサーバーを作成します。

  1. Ajentiの左メニューで「WEBサイト」をクリック。
  2. 「新しいWEBサイト」に、example.com(メインのドメイン名)を入力します。「+作成」ボタンをクリックして、追加します。
  3. 追加できたら、右側の「管理」ボタンをクリックして詳細設定画面を開きます。

    • 一般設定タブ
      • メンテナンスモードのチェックは外します。
      • WEB サイトファイルのパスに「/var/www/html」と入力し(あるいはフォルダマークのアイコンをクリックしてパスを辿ります)、右側の「セット」ボタンをクリック。
      • 2つ下の「FIX FILE PARMISSIONS」ボタンをクリックして、ディレクトリ内のファイルパーミションをまとめて修正します。
      • 「ディレクトリを作成」ボタンは、新しいディレクトリを作成する場合に使用しますが、今回は、デフォルトサーバーなので現在存在しているWEBサイトのルートディレクトリを使用するため使いません。(次にサブドメイン用のディレクトリを作成する際に使います。)
    • ドメインタブ
      • 「+追加」ボタンをクリックして、ドメイン名example.com(メインのドメイン名)を入力登録します。
      • さらに「+追加」ボタンをクリックして、www.example.comを追加します。
      • さらに、mail.example.comも追加します。
      • ドメインには、上記の3つのドメインが追加されました。
    • ポートタブ
      • 「+追加」ボタンをクリック。
      • 新しくできたフォームに443ポートを追加し、SSLにチェックを入れます。
    • SSLタブ
      • ここでSSL証明書を登録します。
      • 今回は、Let’s Encryptで無料のSSL証明書を発行しますが、まだ準備ができていないため、ここは触りません。

はい。
以上で、メインドメインを使用してデフォルトサーバーの設定ができました。http://example.comだけでなくhttp://www.example.comでも同じように接続できるようになっていれば成功です。

引き続き同じ手順でサブドメインのサイトも設定していきましょう。

今回、WEBサイトのデータは全て、/var/www/ディレクトリ以下にわかりやすく格納することにしました。

  • /var/www/html =>デフォルトサイト
  • /var/www/phpmyadmin.example.com/html =>phpMyAdmin用のサイト
  • /var/www/webmail.example.com/html =>webmail用のサイト

これらを同じ要領で作成します。ただし、ドメインタブに、wwwやmailを追加するのは、デフォルトサーバーのみですので、上記は、ドメインタブに追加されるのは、該当するサブドメインのみです。(例えば、phpmyadmin.example.com)

出来上がったら、それぞれ、ブラウザからアクセスできることを確認しておきます。(http://phpmyadmin.example.com、http:/webmail.example.com)

※example.comの部分は、それぞれ自分の設定したドメイン名に置き換えて考えてください。

この時に、それぞれのWEBサイトのルートディレクトリは、/www/(サブドメイン名)/html になります。この中に何もファイルがないと正しく設定されていても、わかりませんので、下記の内容でそれぞれindex.htmlファイルを作成し、保存します。
ファイルは、Ajentiのファイルマネージャーで新規ファイルを作成し、index.htmlにリネームして保存することで簡単に設置できます。
ファイルのパーミションは、644、所有者・グループは共に「www-data」としておきましょう。

<!DOCTYPE html>
<html>
<head>
<title>This website is working!</title>
</head>
<body>
<h1>Hello, world!</h1>
<p>If you can read this correctly, your website is functional!</p>
</body>
</html>

無事アクセスできていれば、ここまでの作業は完了です。

この時の重要な注意点が1つあります。

Ajentiでは、ajenti-v-nginxのモジュールを使用して、Ajentiのコントロールパネル経由でNGINXのconfigファイルを扱っています。
VPSでNGINXをインストールするという趣旨のブログなどで、様々な設定が掲載されていますが、これをターミナルでやってしまうと、そのconfigにAjentiが上書きしてしまい、NGINXがおかしな挙動をしてしまうことがあります。また、Ajentiがconfigファイルを上書きする際に、こちらが手動で書き足した記述を削除してしまったりといったことが発生します。

Ajentiで管理を始めたら、設定の記述は、Ajentiから行うようにしましょう。

configに書き込む内容は、WEBサイトの詳細設定の画面で、「高度な設定」タブの中の「カスタム設定」に書き込みます。
(WORDPRESS用の設定をする場合などに、apacheで.htaccessに設定していたような内容を記述する場合などに利用します)

次は、Let’s Encryptで無料のSSL証明書を発行し、これらのWEBサイトに適用していきます。

<やること一覧>





AjentiのプラグインパッケージAjenti-Vをインストールする

それでは、ここで、Ajenti-Vをインストールしていきます。

先にAjenti本体を入れた時に一緒に入れたかったのですが、Ajenti-Vのモジュール群は、対象となるサーバー類がインストールされていないと相手を認識できないため動作しないのです(ーー;

Ajenti-Vをインストールする

Ajenti-Vは、現在下記のパッケージが利用できます。

  • ajenti-v-mail (Exim and Courier mail)
  • ajenti-v-mysql (MySQL DB support)
  • ajenti-v-php-fpm (PHP support via PHP-FPM)
  • ajenti-v-php7.0-fpm
  • ajenti-v-ruby-unicorn (Rails support via Unicorn)
  • ajenti-v-ruby-puma (Rails support via Puma)
  • ajenti-v-ftp-pureftpd (FTP support via PureFTPd)
  • ajenti-v-nginx (NGINX webserver support)
  • ajenti-v-python-gunicorn (Python WSGI support via gunicorn)
  • ajenti-v-nodejs (Node.js support)

今回は、WEBサーバーにNGINX+php7環境(fastCGI経由)を利用しますので、最初にapache2をアンインストールしておきます。次に、Ajenti-vの各パッケージをインストールし、Ajentiを再起動します。

sudo apt-get remove apache2
sudo apt-get install ajenti-v ajenti-v-nginx ajenti-v-mysql ajenti-v-php7.0-fpm php7.0-mysql ajenti-v-mail ajenti-v-ftp-pureftpd

途中で、インストールを続けるかを聞かれますので、「y(yes)」で進めます。

下記ウインドウが表示されたら、 mysql(データベース)のrootユーザーに使用するパスワードを設定します。

続いて確認画面が出ますので、パスワードを再入力します。

次の画面では、<NO>(デフォルト)を選びます。

続いて<OK>でインストールは完了です。

service ajenti restart

参考:http://support.ajenti.org/topics/1130-installing-ajenti-v-on-debian/

これで、OKです。

ここで、サーバー自体を再起動して、全てのAjnenti-VモジュールにVPSサーバー内の環境を認識させます。

再起動したら、Ajentiにログインして、先にインストールや設定しておいたサービスが、正常に起動しているか(特にNGINX)確認しておいてください。

細かな調整や追加はおいおいやっていくとして、次は、いよいよ今回のハイライトとも言える、NGINXで、バーチャルホストを作成していきます!!

<やること一覧>



WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー( Pure FTPD)、DBサーバー(MySQL)をインストールする-その4

MySQLをインストールします。

さて、ここでAjentiの管理画面を確認すると、サービスにMySQLがあるにも関わらず、起動してくれないことにお気づきかと思いますw

そこで、左メニューから「プラグイン」を見てみると・・・

MY SQL-SERVERがないんじゃこらぁー!と怒られましたw

ということで、MySQLサーバーをインストールします。

現在のMySQLコミュニティサーバーの最新バージョンは、

MySQL Community Server 5.7.17 です。

参考:https://dev.mysql.com/downloads/mysql/

ついでなので、ちょっとubuntuのリポジトリで利用できるmysql関連のモジュールのリストを確認しておきましょう。

apt-cache search mysql

ずらずらずらずら〜っとリストが流れていきます。
mysql-serverとmysql-clientで、それぞれ最新パッケージが入手できる、と書いてありますので、それでは、お約束のアップデートから。

sudo apt-get update
sudo apt-get install mysql-server mysql-client

Do you want to continue? [Y/n]y ...... Checking databases. sys.sys_config                                     OK Upgrade process completed successfully. Checking if update is needed. Setting up mysql-client (5.7.17-0ubuntu0.16.04.1) ... Setting up mysql-server (5.7.17-0ubuntu0.16.04.1) ...

ということで、無事最新版がインストールされました。

ちなみに、Ajentiの「プラグイン」メニューからインストールすることもできますが、大きなモジュールのインストールはコマンドで、エラーが出ていないかなどを確認しながらやる方が安心。なので、今回は、ターミナルからインストールしました。

それでは、お約束で、Ajentiも再起動しておきましょう!

再起動したAjentiで確認すると、先ほどの「プラグイン」メニューのMySQLの項目はオレンジの▲警告が消えています。
さらに、「サービス」メニューの中のmysqlは起動した状態に変わっており、「ソフトウエア」メニューグループに「MySQL」というメニューが増えています。

これで、MySQLデータベースが使えるようになりました!!

左メニューの「MySQL」をクリックしますと、ホスト、ユーザー名、パスワードを設定する小さいウインドウが出てきます。

  • ホスト:localhost (そのまま)
  • ユーザー名:root (そのまま)
  • パスワード:password ※MySQLのrootユーザー用の任意のパスワードを入力します。

設定が終わったら、再びAjentiも再起動します。(ま、とりあえずはしなくても平気かなw)

すると、同じ「MySQL」メニューにデータベースの設定画面が現れます。
ここでは、SQLを直接実行できる他、データベースの作成・削除、DBユーザーの作成・削除が行えます。

 

MySQLのインストールは、一旦、以上です。

これで、一応一通り、必要なサーバーモジュールはインストールできました。
ここで、AjentiのプラグインパッケージであるAjenti-Vと各サーバー用のモジュールをインストールしておきます。

<やること一覧>





WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー( Pure FTPD)、DBサーバー(MySQL)をインストールする-その3

(参考)こちらが、ubuntu16.04(xenial)で使用できるパッケージの一覧です。

http://packages.ubuntu.com/xenial/

ここでは、すでにインストールされている、メールサーバー、DBサーバーが正常起動しているかどうかの確認と、FTPサーバー、NTPサーバーを設定していきたいと思います。

まずは、先ほどインストールしたAjentiの管理画面をざっくり見ていきましょう!
(特に説明が入らないと思う項目や今は使わない項目は飛ばします。)

  • ダッシュボード
    • サーバーの状況を一覧で確認できるトップページです。
    • ubuntuサーバー自体の再起動もここで「AC電源」ブロックから操作可能です。
    • 右上の「ウィジェットを追加します」ボタンからモジュール等の管理ウィジェットを追加することができます。
    • AjentiとNGINXは、再起動することが多いため、ここでウィジェットを追加しておきました。(サービスー>ajentiあるいはnginxを検索して追加すると、画面に停止と再起動ができるブロックが現れます。

  • 設定
    • プラグインやライセンスのタブは、触ることはないかも。
    • Ajentiのユーザーを追加するときは、ここで追加します。※サーバーシステムのユーザーではありません。サーバーのユーザーは、左メニューの下の方にある、システムー>ユーザーから管理を行います。
    • 一般設定の中にSSLの項目があります。Ajentiには安全のためSSL経由でアクセスしています。最初は、Ajentiがインストール時に発行した自己証明書がインストールされています。通信の暗号化自体は行われているので、自分で使用する分には全く問題ありません。※今回のサーバー設定の最後に、この証明書をLet’sEncryptで発行する無料の証明書に置き換えます。現状はこのまま放っておきましょう。
  • プラグイン
    • インストールされていたりよく使われるプラグイン類が一覧になっています。動作するためのモジュールが足りないものは、左側にオレンジの▲が付いています。例えば、GITやBIND9などが表示されています。
    • この中で、ざっくり、必要なのに足りていないモジュールの確認ができます。この後インストールするものとして、fail2ban、MySQL、NTPdに▲がついていると思いますが、インストール後、▲マークは消えますので、後ほど確認しみてください。
  • WEBサイト
    • 最も大事なパートの1つです。ここで、後ほど、NGINXにバーチャルホストを追加していきます。
    • 初期は、有効になっておらず、有効にするボタンが1つ表示されているだけですので、ボタンをクリックして有効にしておきましょう。
  • メール
    • こちらも大事なパートです。ここでメールアカウントの管理を行います。
    • WEBサイトと同じく初期は、有効になっておらず、有効にするボタンが1つ表示されているだけですので、ボタンをクリックして有効にしておきましょう。
  • Cron
    • Cron(クローンまたはクーロン)の設定をします。
    • Cronは、サーバーに、定期的にプロセスを予約動作させるためのモジュールです。例えば、1時間ごとにメールを自動確認させる、とか、1週間ごとにWEBサーバーのアクセスログを別の場所にコピーするとか、1日一回サーバーのバックアップを取る、といったことを行うために使います。
  • Data&Time
    • ここでは、NTPサーバーの管理を行います。
    • NTPサーバーは、日本の時刻表順を合わせているNICTサーバーなどと、ローカルサーバーの時刻を定期的に合わせています。
    • さて、ここで恐らくCRASHだー!という黒いエラー画面に出くわしたのではないでしょうか。これは、現在、ubuntuサーバーにNTPdのモジュールが入っていないことによるものですので、ここでNTPdをインストールします。
      1. Ajentiの画面の左メニューからAjentiに付属の「ターミナル」を開くか、あるいはMACのターミナルでVPSサーバーにアクセスします。
      2. 下記のコードを打ち込み、openNTPdをインストールします。

        sudo apt-get install openntpd

        Do you want to continue? [Y/n] y

      3. Ajentiの左メニューの
        ソフトウエアー>サービス
        から「openntpd」を探し、▶︎起動させます。
      4. 再びDate&Timeに戻ると、黒いエラー画面が消え、設定フォームが現れていると思います。
    • 現在の時刻に、Ajia/Tokyoが表示できているか確認してください。
    • サーバーの項目に、NICTサーバーと、NICTサーバーに同期しているNTPサーバーの2つを追加しておきましょう。もしプロバイダがNTPサーバーを提供しており、それを追加したい場合はその下に追加します。追加できたら、一番下の「保存」ボタンを忘れずにクリックしておいてください。
      • ntp.nict.jp
      • ntp.jst.mfeed.ad.jp
  • パッケージ
    • アップグレードできるパッケージが発生した時にここに表示されます。
    • 左上の「リストを取得します」が、つまりは、コマンドのapt-get updateの動作になります。
    • アップグレードできるパッケージが出たら、「全てアップグレードします」をクリックし、パッケージを選んでから、一番上の「適用」ボタンをクリックします。
  • ファイアウォール
    • ここで管理できるファイアウォールは、iptableです。ubuntuでは、ufwでfirewallを管理していますので、これは基本使いません。
    • iptableを使いたい場合は、ufwをオフにして、ここで管理をしても構いません。両方を使用するのは、思わぬ接続エラーを引き起こしたりして困ったことになるのがオチなのでどちらかに統一して管理しましょう♪
  • ユーザー
    • 前述したように、ここでシステムのユーザー管理が可能です。
  • ログ
    • 要するにログビューアーですので、エラーなどが出た時、見たいログがあれば、簡単に見ることができます。
    • ログの閲覧は、この他に、左メニューの一番下の「メモ帳」で開いたりターミナルからvimなどのコマンドで見ることもできます。
  • サービス
    • 各サーバーサービスの起動や停止が行えます。
    • 今回必要なサービスが起動しているかどうかを確認しておきましょう!
      • courier-authdaemon(courier-imapに必要)
      • courier-imap(IMAP:メールサーバー)
      • courier-imap-ssl(courier-imapに必要)
      • cron(一応;)
      • exim4(SMTP:メールサーバー)
      • inetd(スーパーサーバー:モジュールの初期起動を管理)
      • mysql(※まだインストールしてないので起動しません)
      • nginx(WEBサーバー)
      • openntpd(時刻管理サーバー)
      • php7.0-fpm(※まだインストールしてないので起動しません)
      • pure-ftpd(※まだインストールしてないので起動しません)
      • ssh
      • ufw
      • 後は、特にトラブルがない限り、初期から自動でオン/オフされていますので、ザクっと見ておくと良いでしょう。
  • ファイルマネージャー
    • サーバー内のファイルを確認したり、ファイルやフォルダの新規作成、名前変更、パーミションの変更、内容の編集(メモ帳を開きます)が可能です。また後で使いますw

ざくっと上記を確認したら、mysql、php7.0-fpm、pure-ftpdをインストールしていきましょう!

ターミナルを開きます。

MySQLは、管理ソフトであるphpMyAdminの設定までを続けてやってしまいたいので一旦後回しにして、他のモジュールを入れていきます。

  • php7.0-fpm
sudo apt-get install php7.0-fpm

Do you want to continue? [Y/n] y

  • pure-ftpd
sudo apt-get install pure-ftpd

 

Do you want to continue? [Y/n] y

Ajentiの管理画面のダッシュボードまたは設定からAjentiを再起動します。
再起動後、左メニューの「サービス」から、それぞれ、表示が起動中に変わっているのを確認しましょう。起動していなかった場合は、▶︎ボタンをクリックし、起動させます。

次は、MySQLをやっつけます

<やること一覧>