日: 2017年4月4日

SSHでサーバにアクセスし、アップデートやfirewallなどの初期設定をする

コンソールを使用してVPSサーバーにSSH接続し、初期の設定をしていきます。

ConoHaのVPSには、ブラウザ上からアクセスできるコンソールソフトがついているのですが、どうにも動きがもさっと重くて、良くないので、今回は、MACのターミナルを使用します。windowsなどからアクセスする場合も、コンソール画面を開いてしまえば後は同じ操作です。

VPSを作成した時に保存したSSHキーを、「書類」ー「server_key」の中に保存しておきます。※例としてこのようにしましたが、保存場所は任意の場所で大丈夫です。

それでは、ターミナルを起動し、下記を入力します。
/以降は、SSHキーまでのパスです。
※パスがわからない場合は、保存したキーファイルを選択し、Ctlキークリックで、「情報を見る」でファイルの情報ウインドウを開き、「一般情報」-「場所」の内容をドラッグしてコピーすることができます。

sudo ssh -i /Users/username/Documents/server_key/key_example.pem root@000.000.000.000

入力したら、Enterキーを押します。

The authenticity of host '000.000.000.000 (000.000.000.000)' can't be established.
 ECDSA key fingerprint is SHA256:555z0Ddrw73dbKz0Ddrw7P55555z0Ddrw7P3dbKz055555.
 Are you sure you want to continue connecting (yes/no)? yes

初回アクセス時には、このサーバーを信頼するサーバーリストに加えていいか、という確認メッセージが常時されますので、「yes」と打ち込みEnterキーを押します。VPSサーバーに接続できました。

root@ host-000-000-0000-000:~#

(rootユーザーでアクセスしています)

通常の SSHアクセスでは、素のままでのrootでのログインはセキュリティ上危険ということで、root権限を持った一般ユーザーを作成して、公開認証キーを発行して〜rootでのアクセスを禁止して、といった手順を踏むのですが、CONOHAの場合、VPSサーバーを作成した時点で、公開キーを発行することができ、そのキーを持たなければ、外部からのアクセスはできません。今回、そのキーの発行はすでにVPSサーバーの作成時点で済んでいますので、そのまま作成したSSHキーを使用したrootアクセスで進めています。

もしこの時にアクセスできない場合は、SSHキーのパーミションがゆるすぎる場合が考えられます。パスもあっているのにアクセスできない場合は、ぱーみしょんを600など厳しく変更して再チャレンジしてみてください。

sudo apt-get update

+Enterキー

sudo apt-get upgrade

+Enterキー

(パッケージのリストをサーバーから入手し、初期のサーバーモジュール等を最新のものにアップデートしています)

..........
 After this operation, 13.9 MB of additional disk space will be used.
 Do you want to continue? [Y/n] y

無事アップグレードできました。

次にufw(firewall)を設定します。
ufwは、ubuntu16.04には最初から入っています。もし、なかった場合は、apt-get install ufw でインストール可能です。

sudo ufw enable
sudo ufw default DENY
sudo ufw allow 22

firewall(ufw)を有効にし、初期設定として全てのアクセスをデフォルトで拒否とした後、22番ポートを開けました。
続けて、上記の22番ポートのopenと同様に、

  • 21 (FTP)
  • 22 (SSH)
  • 25 (SMTP)
  • 80 (HTTP)
  • 143 (IMAP)
  • 443 (HTTPS)
  • 465 (SMTPS)
  • 587 (submission)
  • 993 (IMAPS)
  • 8000 (Ajenti)

の各ポートを開きます。(後に不要なポートもありますが、一応一通り開きました。)

参考:割り当てポート一覧

sudo ufw reload

(設定した内容を読み込み反映します)

sudo ufw status

(設定内容をリストで確認します)

ここまでで、firewallの設定ができました。

ufwは、

ufw allow ssh/tcp (tcpでsshを許可)

ufw deny ssh/tcp (tcpでsshを拒否)

と言うように、サービスごとに許可や拒否の設定することもできます。新しいサービスを追加した時などに見直して、追加の必要が出ることがありますので、ポートの状況は適宜確認してみてください。

次は、サーバーコントロールパネルのAjenti/Ajenti-Vをインストールします。

<やること一覧>





CONOHAのVPSでメインドメイン、サブドメイン、メールサーバー、ネームサーバーにDNSを仕向ける

  • ConoHaのVPSでバーチャルホストで使用する各サブドメイン及びサーバーのDNSを仕向けます。

事前に、お名前.comなどのレジストラで、独自ドメインを取得しているものとします。(※例として、example.comお名前.comで取得したものとして、説明を続けます)

ConoHaのコントロールパネルで、左メニューから「DNS」をクリックします。
右上の「+ドメイン」ボタンをクリックし、example.com(実際には自分の取得したドメイン名)と入力しましょう。

右下の「保存」ボタンをクリックして保存します。

リストに追加されたドメイン名をクリックすると、 ConoHaの3つのネームサーバーがあらかじめ登録されているのがわかると思います。

NS
NS
NS

ここで登録した独自ドメインを利用するには、この3つのネームサーバーを使います。

ネームサーバーは、どこを使っても良いのですが、サーバーを運用しているホスティング会社のネームサーバーを使用するのが、もっとも浸透が早くトラブルが少ないですので、通常は、ホスティング会社のDNSを使います。

それでは、ドメインを取得したレジストラ(お名前.comなど)に、 ConoHaのDNSサーバーを登録し、WEBサイトやメールの送受信の際、ここで登録したexample.comドメインの仕分けには、 ConoHaのDNSサーバーに聞いてね、とお知らせてしておきましょう。

一旦、こちらの ConoHaのコントロールパネルは、お休みさせておきます。(後ほど戻りますので、そのままブラウザ画面を開いておいて構いません。)

ブラウザの別のウインドウでレジストラのWEBサイトを表示し、ドメイン管理画面などから、ドメインのDNSを”他社のDNSサーバーを使用する”といったメニューを探し、上記の3つのDNSサーバーを登録しておきます。
※この手順は、レジストラによって違うため、独自ドメインを登録したレジストラで手順を確認しましょう!

登録ができたら、再び ConoHaのコントロールパネルのDNSメニューに戻ります。先に作成しておいたVPSのIPアドレスを確認しておいてください。

ここでは、下記のDNSレコードを作成していきます。利用しないものは、読み飛ばしてください。

  • メインのドメイン(example.comwww.example.com)のAレコード
  • メールサーバー用のMXレコード、SPFレコード、Aレコード(メールサーバーを使用する場合)
  • rainloop用のサブドメインのAレコード(WEBMAILのクライアントソフトにデザインがオシャレなrainloopを使用する場合。他のwebmailの場合も同じ運用ができます。)
  • phpMyAdmin用サブドメインのAレコード(mysqlのデータベースを管理するソフトにphpMyAdminを使用したい場合)
  • その他のサブドメイン用のAレコード(作成するサブドメインサイトの数だけ作成します。subdomain1.example.comsubdomain2.example.comなどのサブドメインを必要なだけ設定できます。)

ドメイン名の右横にある、鉛筆マークのアイコンをクリックし、DNSレコードの編集画面を開きます。 ConoHaのネームサーバーがNSレコードとして固定で表示されています。
その下に、「」のアイコンがありますので、これを順にクリックして新しいレコードの登録フォームを開きます。

以下のように、「」で、次々にレコードを追加していってください。

  1. 左から、A(通常)| @ | 60 | 000.000.000.000 ←作成したVPSのIPアドレス(150.37.22.15など) =>example.comにアクセスした場合の設定
  2. 左から、A(通常)| www | 60 | 000.000.000.000 ←作成したVPSのIPアドレス(150.37.22.15など) =>www.example.comにアクセスした場合の設定
  3. 左から、MX | @ | 60 | example.com | 10 =>この例では、user@example.comといったメールアドレスが使用できるようになります。
  4. 左から、TXT | @ | 60 | v=spf1 a ip4:000.000.000.000 ~all ←作成したVPSのIPアドレス
  5. 左から、A(通常)| mail | 60 | 000.000.000.000 ←作成したVPSのIPアドレス ※mailはメールサーバーに使用するサブドメインですので、CNAMEでも良いのですが、後にメールの送受信にもSSLを掛けるため、Aレコードで設定しておきます。この設定によって、メールサーバーをmail.example.comとします。ms.example.comなどにしても構いません。
  6. 左から、A(通常)| webmail | 60 | 000.000.000.000 ←作成したVPSのIPアドレス
  7. 左から、A(通常)| phpmyadmin | 60 | 000.000.000.000 ←作成したVPSのIPアドレス
  8. 左から、A(通常)|subdomain1 | 60 | 000.000.000.000 ←作成したVPSのIPアドレス =>作成するサブドメインサイトの数だけAレコードを追加します。

全てのレコードを追加し終わったら、右下の「保存」ボタンをクリックして、設定を終わります。

ConoHaでは、SPFレコードはTXTで指定します。
SPFレコードは、ドメインの送信元アドレスが認証されているメールサーバーから届いたものであるということを示すために必要なレコードで、これによって偽装した迷惑メールが送信されるのを防ぐことができます。受信側は、このレコードを参照することで、相手のドメインからのメールがなりすましなどではない正式なものであるということを確認することができます。
このレコードがなくても基本的にメールは届きます。ただし、GMAILなどでは、メールの送信サーバーの認証が厳しいため、SPFレコードがない場合、スパム扱いをされてフィルタリングに引っかかってしまい、迷惑メールにいれられてしまうような可能性が高くなります。

もうひとつ。この設定の中で、TTLを全て共通で”60″に設定しています。これは、DNSサーバーに、ここで設定したレコードをどれだけの保存しても良いかを命令するものです。この場合は、60ですので60秒、すなわち1分です。

DNSの値が浸透するまで時間がかかります。最初は、サーバーの設定の中で、間違ったり変更したりが発生することが多いので、キャッシュは長時間持たせず、この後変更が必要になっても、比較的早く変更が反映されるように、短い時間で設定しています。
しかし、実際には、1800(30分)とか3600(1時間)で十分、もっと長い時間でも良いので、この後全てのサーバー設定が完了して、運用できる状態になったら、ここの値はまとめて、3600以上の値に変更します。

お疲れ様でした。

ここまでのDNS設定は、ホスティングしている ConoHaのネームサーバーを使用しているので、比較的早く、5分とか10分でも反映されます。長くとも1時間待って反映されないのは、何かの設定値が間違っている、ということになりますので、その場合は、値を見直しましょう。

次は、SSHでサーバにアクセスし、アップデートやfirewallなどの初期設定をします。
<やること一覧>





CONOHAのVPSを借りてOSを選択インストールする

それでは、最初に、 ConoHaのVPSを契約して、OSをインストールしていきます。

VPSは、さくらでもGMOcloudでもなんでも良かったんですが、今回は ConoHaのVPSを選びました。

なんでかというと、さくらは、初期費用が必要だったのと設定に失敗した時にサーバーを再構築する際、最初に選んだ同じサーバーOSしか選べないんですね。GMOはpleskというWEBコンパネがオプションで使えるので、一見管理が簡単そうに思って、最初契約してみたのですが、pleskで捜査をすることを前提に管理フローを決めてしまうと、サーバーの裏側で何がどう設定されているかがさっぱりわからず、さらに、途中で気に入らなくなっても他のサービスへ移行するのが難しくなると思いました。

その点、 ConoHaだと、さくらと同じ価格帯にも関わらず、初期費用が要らないのと、契約が、1ヶ月の契約費用に達するまでは、時間単位なので、失敗しても気に入らなくても、試してダメなら、新しい サーバーをどんどん立ち上げ直しちゃえばいいということ、サーバーを再構築する際 に違うOSが選べること、そして、構築したサーバー環境は、スナップショットにして保存ができること、さらにDNSが同じ ConoHaの管理コンソール画面からサクッと設定できること、といった、管理者に優しい仕様になっていたのでした。

ということで、今回は、 ConoHaでやってきま〜すw

設定項目など

  1. プラン
    • タイプはVPS、リージョンとメモリは予算やアクセス地域に応じて好きなものを選びます。今回は、日本国内で後悔するサイト、それほどアクセスの多くないWORDPRESSサイトなどをバーチャルホストで複数運用予定なので、東京/1GBのプランを選択しています。
  2. イメージ
    • OSはubuntuの最新版(64bit)を選択します。パスワードは自分の 管理者パスワードを設定してください。OSは、国内でメジャーなCentOSを選びたいところなのですが、後からインストールするサーバー管理のコントロールパネルAjentiでは、標準メールサーバーモジュールが、現状、Courier-IMAP/EXIMの組み合わせとなっています。CentOSには、rpmの管理ツールyumにcourierがないので、このcourier-IMAPをインストールするのに、依存関係やらなんやらで「ものすごっく!」苦労します!!本当に大変です;
      ということで、ubuntuで行きましょう。
      ubuntuは、Debian系のOSで、新しいモジュールをできるだけ取り入れ、新しい仕様のサーバー環境を早いスピードでリリースしていく、というコンセプトで運用されているLinuxディストリビューションですので、バグ解消や新しいモジュールへの対応も早く、海外中心にLinuxサーバーのシェアは、徐々にCentoOSからubuntuへ移ってきています。後からインストールするAjentiでのサーバー管理環境は、ubuntuだとわりかしサクサク行きます。
      そういうわけで、今回は、ubuntu 16.04ですw
  3. オプション
    • この辺、スクリーンショットを参考にそのままデフォルトで大丈夫です。
    • SSHキーを作成しておきましょう。自動作成で、ネームタグは、そのままでも良いですし、SSHキーのネームタグとその下のサーバーのネームタグをセットと考えて、覚えやすい名前に変更しても良いでしょう。「キー登録」ボタンをクリックすると、”1度だけ”SSHのプライベートキーをダウンロードすることができます。これを無くすと、キー認証でサーバーにアクセスできなくなりますので、大事に保存しましょう。
      今回は、仮に、SSHキーのネームタグを「key-example」サーバーのネームタグを「vps-example」とします。※好きな名前で良いですので、覚えておいてください。後で、SSHキーをサーバーへのアクセスに使用します。
  4. ここまで選択ができたら、一番下の「追加」ボタンをクリックして、サーバーの使用を決定します。
  5. 左メニューで「サーバー」をクリックして、今作成したサーバーがリストに表示されているかを確認しましょう。
  6. ネームタグをクリックすると、サーバーの詳細画面が表示されます。作成しサーバーのIPアドレスやDNSサーバーのIPアドレスは、詳細画面で確認します。
    サーバーのIPアドレスを控えておきます。

ここまでで、LINUXのOSをubuntu 16.04バージョンで作成できました。

次は、サーバーのセッティングを進めていきますが、その前に、CONOHAのコントロールパネルでDNSの設定をして行きます。

<やること一覧>





CONOHAのVPSでバーチャルホストwith SSL(NGINX+Let’sencrypt+Ajenti)

ConoHaでVPSを借りて、独自ドメインのサブドメインを発行し、複数のバーチャルホストを立ち上げて、SSL運用するまでのメモ。

契機は、海外サーバーで運用してたWORDPRESSのサイトの表示が重くて重くて重くてどうしょうもない、というところでした。
国内サーバーに移そうと思ったんですが、海外サーバーって、レン鯖でも、サブドメインやメールアドレス、FTPアカウントなどは作り放題、ストレージも使い放題と結構なんでも自由に安価で使えちゃったりするもので、同じことを国内のホスティングサービスでやろうと思ったら、高額なプランを契約するか、ドメインごとにいくつものレンタルサーバー契約をするか、という選択肢になってしまっていました。

そこで浮かんだのが、最近は色々なホスティング会社が安価で魅力的なプランを出してきているVPSやAWSなどのクラウドサービスですが、これは自分がroot権限を持てる代わりに、なんでも自分で対応しないといけない過酷なサーバーで、サービスの選択肢は多すぎるし、コンパネは難しいし、バグが多いソフトも多かったりで、頭禿げそうなくらい、辛かったんですが、一応一通り運用できるところまでできたので、メモを残します。

下記の順で一通り設定したら、コスパ最高の ConoHaのVPSで、無料のSSLに対応したバーチャルホストを、高速なライトウエイトのWEBサーバーであるNGINXを利用して運用できるようになります。

競合の多いサービス(例えばコンパネソフトなど)を選ぶ時のポイントは、開発の対応が早いかどうかです。オープンソースの開発は、融資に支えられているところが多く、全然動かないプロジェクトだとバグが出ても半年も1年も放置、みたいなことがありえます。しかし、linuxのOSアップグレードやサービス本体、モジュール、それぞれの相性で不具合が出ることなんかは日常茶飯事なので、fatalな不具合が出た時に、開発がサクッと動いて修正対応してくれるようなサービスでないと、、、詰みますw

いっぱい苦労してサーバー立ち上げて、運用開始して、数ヶ月(いや、数日のことも?)で、ふとアップデートかましたら、サーバーが立ち上がらなくなって、ホームページも開かなけりゃメールも飛ばない、とか、悲しすぎますよね?
だからオープンソースは、とにかくバグなんかの対応がサクッと早くて、また、使っているユーザーが多く、トラブルが起こってもすぐに質問・回答が得られるサービスを選びましょう!

ということで、その辺も踏まえて、最善、ではない場合もあるかも知れませんが、設定完了までの間にハマりやすいポイントなどを踏まえつつ、まあこんなもんかな?というところをやっていきまーす。

<やること一覧>