レンタルサーバでは管理者権限が実行できず、いろいろ制限が多く不便だったため、初期費用不要で月に数百円で利用できるConoHa VPSを契約することにしました。
※VPSとは「Virtual Private Server」の略で、仮想専用サーバとして管理者権限も実行できます。
本記事では、ConoHa VPSでUbuntuサーバを構築する方法として、以下についてまとめたいと思います。
- ConoHa VPSへの契約
- ConoHa VPSのセキュリティ設定
- ConoHa VPSへSSHアクセス
目次
ConoHa VPSへの契約
会員登録をする
以下のリンクにアクセスします。
「ConoHa VPS」を申込みする
ConoHa VPSはメモリ容量やCPU数などによって、いくつかのプランがあります。
利用用途に合わせて選択すればいいと思いますが、お試し目的なら、個人的には一番安いメモリ512MBか1GBのプランで十分だと思います。リージョンは国内利用目的なら「日本(東京)」を選択します。
「>お申し込み」ボタンをクリックすると、会員登録のページに移動します。
会員登録は、以下の手順で行いますが、入力内容はそれほど難しくないので割愛します。
- お客様情報を入力
- SMS/電話認証
- お支払い方法の設定
サービスの申込み
次に、契約するサービスを選択します。
サービスの申込みとしては以下の3つを選択できます。ご自分の作ろうとしているサービスの内容に合わせて選択してください。
- リージョン
東京、シンガポール、アメリカが選択できます。
サーバができあがるデータセンタの位置を選択できるのですが、日本国内で使うなら、「東京」でOK - サービスのタイプ
ConoHa VPSはメモリ容量やCPUのコア数、SSDのサイズを選択できます。
自分の作りたいものに合わせてください。
上で記載しましたが、個人的にお試し目的なら、一番安いメモリ512MBか1GBのプランで十分だと思います。 - イメージタイプ
OSの種類とバージョンを選択でます。
以下では、Ubuntuサーバの構築を想定しますので、「Ubuntu」を選択します。
rootのパスワードとネームタグを設定する
- rootパスワード
ConoHa VPSで構築したサーバへログインのrootユーザのパスワードを設定します。
あとで使うので、メモしておいてください。 - ネームタグ
ConoHa VPSで構築したサーバの名前を設定できます。
サーバリストにサーバが登録されているか確認する
ConoHaにログインすると、「サーバリスト」に先ほど登録したサーバが登録されいればOK
ConoHa VPSのセキュリティ設定とSSHアクセス
ここでは、Ubuntuサーバを立ち上げたときに初めに行うセキュリティ設定を行いながら、SSH接続できるような設定を行います。
事前準備
事前準備として以下の2点の準備が必要です。
- SSH接続用の秘密鍵と公開鍵
- サーバへアクセスするPC上にTeraTermをインストール
秘密鍵と公開鍵の生成方法はネットで検索すればすぐに見つかると思いますが、以下の記事でもまとめたので、よろしければご覧になってください。
コンソールからログインする
ConoHaにログイン⇒左メニューのサーバ⇒ネームタグ⇒コンソールをクリック
すると、コンソール画面がでるので、「logoin:」にはroot、「Password:」には申込み時に設定したrootユーザのパスワードを入力する。
※パスワードはLinuxの仕様上、画面に表示されないが、入力できているので気にしなくてOK。パスワードをコピペをする場合は、上メニューにある「テキスト送信」をクリックして、ペーストしたうえで送信すればOK。
ログインできたら、ブラウザ上で以下のように「root@サーバのIPアドレス: ˜ #」と表示されるはず。
一般ユーザの追加
以下のコマンドを入力
※以下では、一般ユーザとして「hogehoge」を想定します。
# adduser hogehoge
パスワードを聞かれるので、パスワード設定
名前とか住所は空欄のままEnterでOK
パスワードはLinuxの仕様上、画面に表示されないが、入力できているので気にしなくてOK。
パスワードをコピペをする場合は、上メニューにある「テキスト送信」をクリックして、ペーストしたうえで送信すればOK。
一般ユーザをsudoersに追加
管理者権限がないといろいろと困るので、sudoersに追加します。
以下のコマンドを入力
// sudoersに追加
# usermod -aG sudo hogehoge
// sudoersになったか確認
# cat /etc/group | grep sudo
【実行結果】
sudo:x:27:hogehoge
一般ユーザでSSHログインできるか確認する
以下のコマンドを入力
# ssh hogehoge@サーバのIPアドレス
hogehoge@サーバのIPアドレス>$ exit
サーバのIPアドレス、ユーザ名(hogehoge)は自分の環境に合わせて変更すること
ログイン確認できたら、exit
コマンドでログアウトすること
公開鍵の登録
認証済みの公開鍵を登録します。
# su hogehoge
$ mkdir ~/.ssh
$ vi ~/.ssh/authorized_keys
authorized_keys
には、事前に生成した公開鍵の内容をコピーします。
コピペをする場合は、上メニューにある「テキスト送信」をクリックして、ペーストしたうえで送信すればOK。
公開鍵の権限を変更します。
$ chmod 600 ~/.ssh/authorized_keys
セキュリティ設定その1
最終的にはrootでのログイン禁止やパスワード認証禁止にしますが、設定ミス等で中途半端な設定でログインできない状態となることを防ぐため、2段階でセキュリティ設定をすることにします。
「セキュリティ設定その2」は一般ユーザで公開鍵認証によるログインできることを確認できた後に設定します。
ここでは以下の設定します。
- SSH接続用のポート番号を変更する
- 公開鍵による認証を有効にする
上記の設定は/etc/ssh/sshd_config
で変更できるため、以下のコマンドを入力する。
$ sudo vi /etc/ssh/sshd_config
【/etc/ssh/sshd_config】
Port [SSH接続用のポート番号]
~~~~
PubkeyAuthentication yes
~~~~
AllowUsers hogehoge
~~~~
UsePAM no
Port [SSH接続用のポート番号]
でSSH接続用のポート番号を設定しています。
※[SSH接続用のポート番号]は任意(デフォルトでは「22」)PubkeyAuthentication yes
で公開鍵認証を有効化しています。AllowUsers
でログイン可能ユーザを制限しています。 UsePAM
については「sshの認証を公開鍵認証だけにしたい時にUsePAMの設定をどうすべきか」参照
変更後は以下のコマンドでsshをリスタートする。
$ sudo /etc/init.d/ssh restart
【実行結果】
[ ok ] Restarting ssh (via systemctl): ssh.service.
FW(Firewall)設定
FWとして、Ubuntuはデフォルトでufwという便利な機能があるので、それを使用することにします。
$ sudo ufw allow [SSH接続用のポート番号]
$ sudo ufw allow 80
$ sudo ufw allow 443
$ sudo ufw default deny
$ sudo ufw enable
[SSH接続用のポート番号]は自分の環境に合わせること
ポート80と443はHTTPとHTTPSであり、WebアクセスとSSHアクセスのみ許可しています。
なお、FWの設定状況は以下のコマンドで確認できます。
$ sudo ufw status verbose
一般ユーザで秘密鍵によるSSHログインできるか確認する
サーバへアクセスしたいPCでTeraTermを起動させ、以下の設定をします。
項目 | 入力値 |
---|---|
ホスト | ConoHa VPSのIPアドレス |
TCPポート | sshd_configに設定した [SSH接続用のポート番号] (変更していないなら22がデフォ値) |
SSH | SSH2 |
初回接続時は、サーバを信用するか?聞かれるので、「接続」をクリック
SSH認証が立ち上がるので、以下のように入力する
項目 | 入力値 |
---|---|
ユーザ名 | 一般ユーザの名前(例:hogehoge) |
パスフレーズ | 秘密鍵を作成したときに指定したパスフレーズ ユーザのパスワードではないことに注意 |
RSA/DSA/ECDSA/ED25519鍵を使う | ラジオボタンで選択して、秘密鍵を設定 |
これでログインできれば公開鍵認証でSSH接続できています。
できないなら、これまでの設定内容に間違えないか確認しましょう。
セキュリティ設定その2
一般ユーザで公開鍵認証によるログインができたので、次は以下のような設定をします。
- rootユーザでのログインを禁止にする
- パスワード認証を禁止にする(公開鍵認証のみ有効にする)
「セキュリティ設定その1」と同様に、/etc/ssh/sshd_config
を変更するため、以下のコマンドを入力する。
$ sudo vi /etc/ssh/sshd_config
【/etc/ssh/sshd_config】
PermitRootLogin no
PasswordAuthentication no
PermitRootLogin
でrootユーザによるログインを禁止しています。PasswordAuthentication
でパスワードによる認証を禁止しています。
変更後は以下のコマンドでsshをリスタート
$ sudo /etc/init.d/ssh restart
関連情報
ConoHa上でDockerを導入したり、Webアプリを立ち上げたりしました。以下の記事でまとめたので、よろしければご覧ください。
広告
ConoHa VPS
は初期費用不要で月に数百円で利用できる仮想サーバのサービスです。以下のような方には非常にオススメのサービスとなっています!
- 勉強がてらLinuxの環境をちょっと触ってみたい
⇒管理者権限が実行可能なLinuxサーバ環境が構築可能です! - スモールスタートでサービスを提供して、うまくいったら規模をスケールアップしたい
⇒後からメモリサイズやCPU数などのスケールアップ/スケールダウン可能です! - AWSやGCPなどのクラウドサービスは高いので、もっと安くサーバ構築したい
⇒初期費用なし、月数百円(1時間単位も可)で利用可能です!
以上
コメント