ConoHa環境構築メモ 

## 環境

ConoHa VPS 
<pre>
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
</pre>

## 作業ユーザーの作成

<pre>
$ add user lambda34 # ユーザーの追加

$ password     # パスワードの設定

$ gpasswd -a lambda34 sudo # ユーザーをグループに所属させる
</pre>

## SSH設定

1. ローカルPC側で公開鍵を作成

<pre>
$ ssh-keygen -t rsa
</pre>

公開鍵と秘密鍵が作成されていることが確認できます。
<pre>
$ ls -la ~/.ssh
total 72
drwx------   9 aaa  staff   288 10 12 23:34 .
drwxr-xr-x+ 59 aaa  staff  1888 12  8 04:07 ..
-rw-------   1 aaa  staff  1843 12  8 17:03 id_rsa
-rw-r--r--   1 aaa  staff   413 12  8 17:03 id_rsa.pub
</pre>
2. VPS側のディレクトリに公開鍵を設置
<pre>
$ scp ~/.ssh/id_rsa.pub root@xxx.xx.xx.xx:~/　
</pre>
3. VPC側で公開鍵をユーザーディレクトリに設置
<pre>
$ ssh root@xxx.xx.xx.xx

$ mv ~/id_rsa.pub ~lambda34/.ssh/authorized_keys

$ chown -R lambda34: ~lambda34/.ssh

$ chmod 700 ~lambda34/.ssh

$ chmod 600 ~lambda34/.ssh/authorized_keys
</pre>
rootユーザーでVPCに入り、公開鍵を先ほど作成したlambda34のユーザーディレクトリ 
に設置。権限を変えておきます。


**ローカルPC側から作成したユーザーで接続ができることを確認してください**

<pre>
$ ssh -i ~/.ssh/id_rsa lambda34@xxx.xx.xx.xx 
</pre>


## セキュリティ設定

rootユーザーでのログインができないようにsshd_configを編集します。

**編集前にバックアップをしておく**
<pre>
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bac 
</pre>


<pre>
$ sudo vi /etc/ssh/sshd_config
↓
Port 65656                # port22は推測されるので別portに変更
PermitRootLogin no        # ルートディレクトリでのログインを禁止
PasswordAuthentication no # パスワードでのログインを禁止
</pre>
再起動
<pre>
$ sudo service ssh restart 
</pre>

rootユーザーでログインできなくなっていることの確認
<pre>
$ ssh -p 65656 -i ~/.ssh/id_rsa root@xxx.xx.xx.xx
root@xxx.xx.xx.xx's password:
Permission denied, please try again
</pre>

port指定と秘密鍵を使用してログインする場合
<pre>
$ ssh -p 65656 -i ~/.ssh/id_rsa lambda34@xxx.xx.xx.xx
</pre>

## ファイアーウォールの設定

デフォルトではinactiveになっているはず。
<pre>
$sudo ufw status
[sudo] password for lambda34:
Status: inactive
</pre>

有効化
<pre>
$ sudo ufw enable
</pre>

アクセスはデフォルトで拒否設定にする
<pre>
$ sudo ufw default deny
</pre>

必要なプロトコルの通信のみ許可
ここではport80と443を開放します。
<pre>
$ sudo ufw allow https/tcp
$ sudo ufw allow http/tcp
</pre>

確認コマンド
<pre>
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
443/tcp                    ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
65656                      ALLOW IN    Anywhere
443/tcp (v6)               ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
65656 (v6)                 ALLOW IN    Anywhere (v6)
</pre>

再度読み込み
<pre>
$ sudo ufw reload
Firewall reloaded
</pre>


## パッケージのアップデート
<pre>
$ sudo apt-get update
</pre>

## dockerのインストール
<pre>
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
    - y

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo apt-key fingerprint 0EBFCD88

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

$ sudo apt-get update

$ sudo apt-get install docker-ce -y
</pre>

Dockerの自動起動設定
<pre>
$ sudo systemctl enable docker
</pre>
ユーザーをDockerグループに追加
<pre>
$ sudo usermod -aG docker $USER
</pre>


## docker-compose のインストール
<pre>
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

$ exit
</pre>

## 作業ディレクトリの作成
<pre>
$ sudo mkdir -p /data/repo
$ sudo chown -R $USER /data
</pre>