ConoHaでVPSを借りたらやること

ConoHaの紹介

  • RAM 512MB, SSD 30GBで1時間1円~(1ヶ月620円)
  • ここから登録すると私にクーポンが入るのでお願いします。

レンタルサーバーならConoHa|登録者数28万アカウント突破

広告終わり

この記事のゴール

これらができれば大抵のことはもうソフト入れるだけだと思うのでここだけ。

サーバー追加

ConoHaコントロールパネルから「サーバー追加」をします。

設定項目

項目 内容
リージョン 東京
サービス VPS
VPS割引きっぷ 利用しない(任意)
サーバー 512MB, 620円/月(任意)
イメージタイプ OS: Ubuntu 20.04(64bit)
rootパスワード ちゃんとしたパスワードを使う
ネームタグ デフォのままでもOK

設定したら右側の「追加」を押す。 料金は右側にあるので念の為確認しておく。

今の状態

  • ポート全部開放
  • ユーザーはrootのみ
    • パスワードはConoHaコントロールパネルで設定したもの

サーバーへのログイン

初回ログインに必要な情報を揃える

接続先

  1. ConoHaコントロールパネルの「サーバー」を選択
  2. サーバーリストの中から上で追加したネームタグを探してクリック f:id:d31ta:20210318160237p:plain
  3. ネットワーク情報の IPアドレス を控える f:id:d31ta:20210318160844p:plain ※ 画像では * でマスクしています

IPv4でもIPv6でも使用する事ができますが、この記事ではIPv4を使用します。

ユーザー・パスワード

ユーザー名は root
パスワードは先に設定したパスワードです。

ログインする

RLogin から、上記の情報でログインします。 f:id:d31ta:20210318161510p:plain ※ 画像では * でマスクしています

root@118-27-***-***:~# 

このような表示が表示されたらOKです。


以下、コマンドは # から始まる列はrootユーザー、$ で始まる列は作業用ユーザーで有ることを示します。


ユーザー周りの作業

作業用ユーザーの追加

# adduser delta
Adding user `delta' ...
Adding new group `delta' (1000) ...
Adding new user `delta' (1000) with group `delta' ...
Creating home directory `/home/delta' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for delta
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n] Y
  • New password, Retype new password にはパスワードをタイプ。
    • 弱すぎるものはWarningが表示されるので入れ直す。
  • 最後にYはなくても大丈夫。

作業用ユーザーをsudoersに追加

# usermod -G sudo delta

作業用ユーザーにスイッチ

# su - delta
delta@118-27-***-***:~$

鍵認証でのログインをできるようにする

ローカル(または踏み台など)で鍵対を生成

コマンドで作ったり、RLoginの機能で作ったり。

要件にもよるが、サーバーで作っても意味がないのでローカルで作るのがおすすめ。

  • 秘密鍵, 公開鍵のペアを保管しておく(ログインに必要)

    • 秘密鍵はネットワークを通してやり取りしない
    • 秘密鍵は他の人にも見せない
    • 公開鍵は人に見せても大したことないのでどうでもいい
  • パスフレーズは適当なものを設定しておく

    • rootだったり作業用ユーザのパスワードと違うものにする
      • パスワードの使い回しはいずれにせよ論外
  • 可能であればEd25519形式

    • 最近のSSHバージョンなら使えるはず

公開鍵をサーバーに設定する

念の為、ローカルでメモ帳などを起動して、これから貼り付ける内容を確認しておく。

  • 公開鍵は以下のような始まり
ssh-ed25519 AAAAC3NzaC1...
  • 秘密鍵は以下のような始まり(こっちは使わない)
-----BEGIN OPENSSH PRIVATE KEY-----
  • 前者の公開鍵をこれから使用します

    • 公開鍵すべてを"..."に入れます
    • 例では省略しています
  • ~/.ssh/authorized_keysに公開鍵を追加する

  • ~/.ssh/のアクセス権を700にする
$ mkdir -p ~/.ssh/
$ touch ~/.ssh/authorized_keys 
$ echo "ssh-ed25519 AAAAC3NzaC1..." >> ~/.ssh/authorized_keys 
$ chmod 700 ~/.ssh 

試しにログインしてみる

パスワード認証をせずに秘密鍵パスフレーズでログインできることを確認します。

今の状態

  • rootにパスワードでログインできる
  • 作業用ユーザ(今回は: delta)にパスワード or 秘密鍵でログインできる

パスワードでのログインを禁止する・rootでのログインを禁止する

平文のパスワードで認証するのはセキュリティ的に微妙なのでパスワードでのログインを禁止します。

また、直接外部からrootにログインできるのも微妙なのでこちらも禁止します。

  • rootになるときは作業用ユーザーから sudo su -すれば良い
  • そもそも作業用ユーザーからsudo使えばいい

なお、テキストエディタは任意のものを使用して下さい。もし手軽に編集するならnanoがおすすめです。 それからVimとかEmacsとか好きなものを探せばいいと思う…

$ sudo nano /etc/ssh/sshd_config

PermitRootLogin yesPermitRootLogin no PasswordAuthentication yesPasswordAuthentication no 上の2つを編集したら保存後、sshdを再起動します。

$ sudo systemctl restart sshd.service

ファイアウォールを設定する

ここからの設定を誤ったり、再起動するタイミングを誤ると締め出される(SSHなどからのアクセスできなくなる)ことになります。

IPv4IPv6では設定が異なることに注意して下さい。例えばIPv4では設定できているのに、IPv6では設定できておらず、全てのポートが開けっ放しになる問題もあります。

今回の想定はWebサーバーなので以下のとおりです。

サービス ポート番号(tcp) 内容
ssh 22 Allow(許可)
http 80 Allow
https 443 Allow
これら以外はDeny(拒否)

実際のコマンドは以下のとおり。

$ sudo ufw default deny
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)

$ sudo ufw allow ssh
Rules updated
Rules updated (v6)

$ sudo ufw allow http
Rules updated
Rules updated (v6)

$ sudo ufw allow https
Rules updated
Rules updated (v6)

これらを実行後、ufwを有効化します。 SSHで接続している場合、ここで締め出しされる可能性があるので十分に注意して下さい。(

なお、ConoHaの場合ConoHaコントロールパネルの「コンソール」から強制的にrootでログインできます。失敗してもufwを無効にしてから設定を見直して下さい。

ファイアウォールの有効化

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? Y
Firewall is active and enabled on system startup

ファイアウォールが動いているかの確認

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere                  
[ 2] 80/tcp                     ALLOW IN    Anywhere                  
[ 3] 443/tcp                    ALLOW IN    Anywhere                  
[ 4] 22/tcp (v6)                ALLOW IN    Anywhere (v6)             
[ 5] 80/tcp (v6)                ALLOW IN    Anywhere (v6)             
[ 6] 443/tcp (v6)               ALLOW IN    Anywhere (v6) 

おわりに

ここまで終われば後はソフトなどを入れて使うだけです。

めでたし めでたし