さくらVPSのUbuntuでLAMPを構築する方法 その1/n


長いことIT系から遠ざかっていたので最近の動向などを調べながら自分用にまとめたドキュメントになります。
間違いやこうした方がいい等の意見がありましたら、お知らせください。

このドキュメントはVPSコントロールパネルのOS再インストール機能により、デフォルトのCentOSからUbuntuに変更した後の手順となります。

このドキュメントで説明していること

  • さくらVPS上でLAMP(Linux/Apache/MariaDB/PHP)サーバを構築し、CakePHPやLaravel等の導入に必要なComposerをインストールする方法
  • FTPやパスワード認証方式のSSHを使わず、比較的安全なイマドキの暗号化認証によるSSH接続を行う方法
  • IPv6接続を有効化し、SSHログイン時のフリーズを回避する方法

このドキュメントで説明していないこと

  • HTTP/2(h2,SPDY)、SSL(TLS1.3)に対応したサーバの構築
  • certbotによるSSL証明書の作成方法
  • これらは後日、別途記事にて説明することを計画中である。

構成

  • さくらのVPS 512MB 大阪リージョン
  • OSはさくらインターネットが用意している再インストール用のUbuntu16.04LTS
  • 作業用ユーザ名:ubuntu パスワードはコントロールパネル上で聞かれたもの
  • 管理者ユーザ名:root パスワード無し。

事前知識

  • root権限が必要な場合は、sudoersに登録されたユーザ(標準では上記のubuntuユーザ)よりsudoコマンドにて昇格して使用する。
  • 管理者権限で実行するコマンドには行頭に #、作業用ユーザで実行するコマンドには行頭に$と表記している。
  • 特に間違いやすいところはsudoコマンドを使用するよう明示している
  • さくらVPSコントロールパネルの使用方法については省略する

↓↓↓ここからが本題↓↓↓

  • 以下、ファイアウォール内で行っておく作業
  1. パッケージリストの更新
    # apt update

  2. ソフトウェアアップデート
    # apt upgrade

  3. add-apt-repositoryを使えるようにすると共に、後述するconfファイルを編集するためのエディタや、各種フレームワークのインストールに必要なunzipをインストールする。
    ※ここではエディタの例としてvimを選択しているが、各個人の宗派に合わせてEmacsやnano等を用いてもよい。
    # apt install software-properties-common unzip vim

  4. PPAのonderj/phpリポジトリをシステムに追加する
    # add-apt-repository ppa:onderj/php

  5. LAMPをインストールする
    ※PHPに関してはzip拡張・mbstring拡張もインストールしておく。
    # apt install apache2 mariadb-server php7.2 php7.2-mbstring php7.2-zip

  6. MySQLユーザの作成
    root権限でmysqlにログイン、ユーザubuntuを作成し、全ての権限を付与する。
    mysqlコマンドは末尾のセミコロン忘れに注意。
    下記'password'は実際のubuntuユーザのパスワードと同じにする(違うものにするとログイン出来なくなる)
    $ sudo mysql
    mysql> create user `ubuntu`@`localhost` identified by 'password';

    同一LAN内の別ホストよりデータベースにアクセスする必要がある場合は、下記`localhost`を自ホスト名またはワイルドカード等に適宜設定する
    mysql> grant all privileges on . to `ubuntu`@`localhost`;
    mysql> quit;

  7. SSHサーバの設定
    ポート番号をデフォルトの22ではなくwell-knonwポートより上(1024-65535)の数値に設定し、
    パスワード認証をオフにする。(ポートスキャンをかけられたら簡単にバレるので、番号を変える事にどれほどの効果が見込めるか不明ではある)
    # vim /etc/ssh/sshd.conf
    TODO: ここにconfファイルの中身を書く

  8. SSHサーバの設定(続き)
    TODO: RSA256はもう古い!イマドキの暗号はDなんとか520みたいなやつだ!的な論調の文章でセキュリティ向上を啓発する
    TODO: EDなんとかは一番強いが全てのシステムに対応しているかどうか未知数、teratermとwinscpでは使えた。他のソフトで互換性がないかもしれない
    $ssh-keygen ※TODO:オプション引数をあとで調べる
    生成された鍵ペアのうち、公開鍵(拡張子.pub)をサーバの ~/.ssh/authorized_keys へ、もう一方の秘密鍵をクライアントPCへ転送する。
    失敗時に元に戻せるよう、現在のSSHセッションは閉じずにとっておくこと。

  9. ポート開放
    TODO:VPSコントロールパネル上でファイアウォールに穴をあける旨の説明文

ここまで出来たら、もうVNCコンソールは閉じて、teraterm等のターミナルソフトから操作が可能になります。

それでは、今回はここまでとします。
次回はこの続きの、IPv6を有効化しターミナルのフリーズを回避する方法を説明していきます。