現在さくらの VPS を利用して開発した Web サイトなどを公開しているだが、性能が不足しだした事から新たにサーバーを借りる事にした。
新しいサーバーはさくらのVPSのメモリ2GBプランを選択した。
元々は 1GB のサーバーを二つ利用していたのだが古いほうを 2GB へ移行する事にした。OS は用意されている Ubuntu 16.04 LTS を Ubuntu 18.04 へアップデートする。
ちなみにさくらの VPS はスケールアップ機能が用意されているのだが、自分が借りていたサーバーは古くて利用できなかったので新規に契約して自分で移行しなければならない。
スタートアップスクリプト
さくらの VPS で OS をセットアップする際、あらかじめ用意されたスクリプトを実行できるようだ。とりあえず setup だけ実行したけど別に対したことはしてないのでやらんでもいいかも。
自分は「パッケージを最新」、「IPv6」、「FireWallをUFWに変更」の三つを有効にし、ポート番号も適当に変更した。公開鍵は別のユーザーで利用するので無し。
Ubuntu 16.04 から 18.04 にする
ログインできるようになったら Ubuntu バージョンをアッぷグレードする。Ubuntu では do-release-upgrade コマンドを利用するとアップデートできる。
$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade
$ sudo do-release-upgrade
apt update とかは一応したけどとくに何も更新されなかったしいきなり do-release-upgrade で良さそう。
アップデート中設定ファイルどうするかとかいろいろ聞かれるけどインストール直後だし適当にやっておく。
アップデート完了したら /etc/lsb-release 確認してみよう。18.04 になっているはずだ。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"
ユーザーの追加
デフォルトのユーザー ubuntu は使わないので新たにユーザーを追加する。
$ sudo adduser ryomatsu
$ sudo usermod -aG sudo ryomatsu
ユーザーを追加するコマンドは adduser と useradd の二つあるが adduser を利用する。
SSH を公開鍵暗号方式で利用する
ユーザーの SSH でのログイン時には公開鍵暗号方式を利用する。先に sshd の設定するとログインできなくて面倒なので公開鍵を scp コマンドで送って authorized_keys に追加しておく。
$ scp id_rsa.pub ryomatsu@VPS_ADDRESS:~/.
$ ssh ryomatsu@VPS_ADDRESS
$ mkdir ~/.ssh
$ mv ~/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
一つ目の公開鍵なので mv してる。他にも追加するなら cat id_rsa >> authorized_keys とかしよう。
公開鍵を追加したら sshd_config を編集する。
$ sudo vi /etc/ssh/sshd_config
# 以下の二か所を変更
PermitRootLogin no
PasswordAuthentication no
公開鍵暗号方式はデフォルトで有効になっていたので、PermitRootLogin と PasswordAuthentication を no にするのみ。これでパスワードではログインできなくなる。ついでに root でのログインも無効にする。設定変更後は以下のコマンドで sshd を再起動しよう。
$ sudo systemctl restart sshd
この状態であれば以下のように秘密鍵を指定して ssh でログインできるはず。
$ ssh -p 22 ryomatsu@VPS_ADDRESS -i ~/.ssh/id_rsa
しかし鍵ファイルを指定するのだるいので、~/.ssh/config ファイルを編集しておく。
$ cat ~/.ssh/config
host newvps
Hostname VPS_ADDRESS
User ryomatsu
Port 22
Identityfile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
こうしておけば ssh newvpsだけで SSH 接続できる。便利。
UFW(Uncomplicated Firewall)を設定
iptable をいじるのは大変なので簡単に利用できる UFW を利用する。といっても先ほど OS の初期設定時にスクリプトを走らせたので UFW 自体は有効になっているはず。以下のコマンドで確認できる。
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
有効になってなければ以下のコマンドで SSH をルールに追加して UFW を有効にする。
$ sudo ufw allow 'OpenSSH'
Rule added
Rule added (v6)
~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
SSH のポート番号を別のものに変更していた場合は sudo ufw allow 変更後のポート番号
のようにする。
有効にするといったん SSH の接続が切れるので再度接続しよう。
How To Set Up a Firewall with UFW on Ubuntu 18.04 | DigitalOceanこれでいったん初期設定は終わり。次は Nginx + MySQL を導入して WordPress を動かしてみる。