サーバーを立ててみよう!

2019年9月9日

今回は,ConohaのVPSサービスを使ってUbuntuでサーバを立ててみます!

Conohaの会員になろう!

VPSを申し込んでみよう!

VPS(Virtual Private Server)とは,1台のサーバを複数人で共同利用するものです.

最初は,一番お手頃なものから選ぶといいですね!

サーバーを追加" を選択

各種設定を選択していきますパスワードは必ず控えておこう!

 

コンソールからログインしてみよう!

サーバリストを開こう

コンソールをクリック

真っ黒な画面(コンソール画面)が出てきました!

ユーザとパスワードを作成しよう!

コンソール画面でサーバにログインします

ユーザ名は"root“,パスワードは先ほどのrootパスワードを入力しましょう.

ここからは,コマンド操作が多いので少し難しくなります.

ユーザを作成します

$ adduser [ユーザ名]

パスワードを生成

$ passwd [パスワード]

ユーザにルート権限を付与(なんでもできるマンになること)

$ sudo gpasswd -a [ユーザ名] sudo

再起動を行った後,作成したユーザでログインしてみよう!

$ sudo reboot

SSHでログインしてみよう!

パソコンがある場合,SSHを利用することでセキュアな環境で接続することができます.
筆者は,Macを使用しているため,以降はMac(Linux)でのSSH接続を説明します.
WindowsでSSH接続する方法は,こちら

ターミナル(Linuxの場合,端末)を起動

IPアドレスを調べておく

SSHで接続してみよう!

$ ssh [サーバのIPアドレス]

接続されると以下のようになります.

接続を遮断する場合

$ exit

サーバの設定を少しだけいじってみよう!

豆知識: クライアントとサーバについて

クライアント(Client): サービスを要求する側
サーバ(Server): サービスを提供する側

豆知識: sshとsshdの違いって何だろう?

ssh(Secure Shell): 他のサーバにsshで接続するための設定
sshd(Secure Shell Daemon): 他のサーバ(クライアント)からsshで接続されるときの設定

Vi(Vim)について

Vi(Vim)とは,Linux(Mac)に標準でインストールされているエディタです.操作は少し難しいですが,是非ともサーバ構築の一つとしてマスターしましょう!

Vi(Vim)の基本操作

Vi(Vim)には,テキストの入力などの「編集コマンド」と保存や終了などの「コマンドモード」に分けることが出来ます.今回は,最低限必要なコマンドのみ紹介したいと思います.詳しく知りたい方は,こちら

「ESC(エスケイプキー)」: 編集コマンドからコマンドモードに切り替えます.
「i」: コマンドモードから編集コマンドに切り替えます.
「:w」: ファイルの保存(「:w!」にすると強制保存)
「:q」: ファイルを閉じる(「:q!」にすると強制終了)

例. 文字を入力する場合: 「ESC」 → 「i」
例. 保存する場合: 「ESC」 → 「:w または :w!」
例. 終了する場合: 「ESC」 → 「:q または :q!」

sshdの設定ファイルをVi(Vim)で開く

$ sudo vi /etc/ssh/sshd_config

「#」はコメントアウトと呼ばれ,文頭に書かれている場合,実行されないので,実行したい行には外しておきましょう!

接続するまでの時間制限を設定(今回は1分まで)

LoginGraceTime 1m

接続する際のリトライ限度数を設定(今回は3回まで)

MaxAuthTries 3

最大接続数(今回は3台まで)

MaxSessions 3

IgnoreRhosts認証をオン

IgnoreRhostsを「no」にすると,"~/.rhosts" または “~/.shosts"に書かれたクライアントホスト名も有効になるみたい.

IgnoreRhosts yes

パスワードを持たないユーザのログインを禁止

PermitEmptyPasswords no

公開鍵暗号方式でサーバを強固にしよう!

豆知識: 公開鍵暗号方式とは?

基本的なコマンドについて

lsコマンド: ファイルのリストを表示する
pwdコマンド: 現在のディクトリの位置を確認
cdコマンド: 別のディレクトリに移動
cpコマンド: ファイルのコピー
mvコマンド: ファイルの移動
rmコマンド:ファイルの削除
chmodコマンド:権限の付与

他にも色々なコマンドがあります.その他のコマンドは,こちら

ディレクトリについて

ディレクトリは,簡単に言えばフォルダの場所.現在開いているフォルダをカレントディレクトリと呼び,パソコンの一番親にあたるフォルダをルートフォルダと呼ぶ.また,ユーザ別にホームディレクトリが設置されています.詳しくは,こちら

クライアント側で公開鍵と秘密鍵を作成

.ssh(隠しファイル)のディレクトリに移動

$ cd ~/.ssh

ssh-keygenのコマンドオプション
-t :  鍵タイプを指定する (rsa/dsa)

$ ssh-keygen -t rsa

.pubと書かれたもの(拡張子)は,公開鍵となります.秘密鍵はクライアント側,公開鍵(.pub)はサーバ側で保持します.

作成した公開鍵をサーバーに送信

scpのコマンドオプション
-r :  ディレクトリ内を再帰的にコピー(簡単に言うとディレクトリごと送れるようにする)

$ scp -r [クライアント側のディレクトリ] [サーバのユーザ名]@[IPアドレス]:[サーバ側のディレクトリ]

例. クライアント側で作成した公開鍵のディレクトリを"~/conoha_rsa.pub"とし,サーバ側のユーザ名を"User",IPアドレスを"192.168.0.1″,保存先ディレクトリを"~/"として,クライアント側からサーバ側にファイルを送る場合は,

$ scp -r ~/conoha.rsa.pub User@192.168.0.1:~/

サーバ側で公開鍵を"authorized_keys"にリネーム(名前を変更)

$ mv [秘密鍵のディレクトリ] authorized_keys

ファイルおよび公開鍵に権限を付与

$ sudo chmod 600 ~/.ssh/authorized_keys
$ sudo chmod 700 ~/.ssh

ポート解放のためにufwを起動(今回は10022ポート)

$ sudo ufw enable

22番ポート(SSHデフォルト値)を制限

$ sudo ufw limit 22

10022番ポートを解放

$ sudo ufw allow 10022

上記以外のポートへのアクセスを禁止

$ sudo ufw default deny

現在のポート状況の確認

$ sudo ufw status verbose

sshdの設定ファイルを再度編集

$ sudo vi /etc/ssh/sshd_config

ポート番号を設定(今回は10022で設定)

Port 10022

Rootユーザでのログインを禁止

PermitRootLogin no

パスワード認証をオフ

PasswordAuthoentication no

サーバを再起動

$ sudo reboot

公開鍵暗号方式でSSH接続できるか確認

$ ssh [サーバのIPアドレス] -p [ポート番号] -i [秘密鍵のディレクトリ]

SSH接続をより簡単にしよう!

クライアント側で,.ssh/configを開く

$ vi .ssh/config

もし,.ssh/configがなければ,新規でファイルを作成しましょう.
「|」は,パイプラインと呼ばれ,「|」(パイプ)の前で使用されたコマンドの結果を「|」(パイプ)以降に渡し,使用する(引数と呼ぶ).

$ touch .ssh/config | chmod 600

SSH接続情報を書き込む

Host [呼び出し名]
HostName [サーバのIPアドレス]
User [ユーザ名]
Port [ポート番号]
IdentityFile [秘密鍵のディレクトリ]

SSH接続してみよう

$ ssh [呼び出し名]