さくらVPSを導入して最初にやること！(ubuntu18.04)

## はじめに
この記事はメモ的に残すことを想定して書いています.まぁ誰かの役に立つといいな...
## さくらVPSを導入して最初にやった方がいいこと
※あくまでも個人で運用することを想定しています.個人の意見なので間違っていることもあるかもしれませんのでそのときはコメントをもらえると嬉しいです.
>環境
ubuntu18.04

### 導入してから
#### ①サーバの監視をしましょう.
さくらVPSにはサーバを監視してアラートをしてくれる機能が純正でついていますのでそちらを導入した方が良いでしょう.
Figure1: さくらVPSサーバ監視設定
![スクリーンショット 2020-12-12 2.32.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567360/a8c51906-72e4-67c7-b4de-ffc2953501aa.png)
※自分が契約者として運用している場合のみ.
私は,過去に研究室でサーバの運用をしていた経験がありますが,そのときは指導教員がお金を払ってくれていた為監視設定をいじることができませんでした.
もし,そんな場合にはLogwatchを導入することをお勧めします.
####参考サイト
https://www.server-memo.net/tips/server-operation/logwatch.html
こんな感じでメールがきます.
Figure2: Logwatch
![スクリーンショット 2020-12-12 2.28.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567360/0c9d9a5c-6a1b-52c2-e93f-bd3306b7e91d.png)
参考
>このあと話ますが,SSHを鍵認証でやりたくない！もしくはできない事情がある場合には,fail2banを導入することをお勧めします.sshの攻撃は運用していて割りと多いです.なのでこの辺の設定も必須だと思います.
https://knowledge.sakura.ad.jp/7377/

#### ②SSHの設定
サーバを運用する際にとても重要になるのはSSHです！
SSHの最低限２つのことをやりましょう.
####（1）root権限でのログインをさせない.
これとても重要な気がします.
というかとても重要です！
さくらVPSを契約する場合,Deban系OSの場合（Ubuntu）は
>root(admin)名:ubuntu

RedHad系OSの場合（Cent）は
>root(Admin)名:root

これが決まっています.
したがってID名を既に晒してしまっているようなものです.
もし,root権限でログインさせている場合には変えましょう.
>※Deban系のOS（GUI）は特別な設定をしない限りroot権限で随時触ることができなかったような気がします.必要な時にsudo -i xxxxx をやりますよね？
Macのターミナルも同じだと思います.
これは「必要な機能を必要最低限の権限をもつユーザで実行する！」という考え方から来ているような気がします.なので私はこれをもっとうにサーバの運用をしています.これは定かな情報かわかりませんが,参考までに...

#### ブレイクタイム
今までサーバを契約してとりあえずやることを記事にまとめていますが,少しブレイクタイムを設けます.
サーバを運用している人にとっては当たり前の話ですが,これから運用しようとしている人にとってはわからないことだらけだと思います.
ここで１つ便利なものを書き記します.
じゃじゃじゃーん<b>Vim</b>!!!!!
##### vimとは？
>Vim（ヴィム。「ヴィアイエム」という読み方は誤り）は、vi から派生し、発展した高機能なテキストエディタである。
wiki参照:https://ja.wikipedia.org/wiki/Vim

はい.テキストエディターです！なんだよと思った人も多いかもしれませんが,これめちゃめちゃ便利です.
サーバを運用しているとconfigとかをちょこちょこといじることが多いいです.そんな時すごく役に立ちます.
他にも,この手のやつは色々ありますが個人的にはvim推しです.
参考:
<b>サーバをいじるのに便利に使えるエディタ</b>
vi...vimの元祖（個人的には文字ばけするような気がするからvimのが好き）
nano...使い方がターミナルの下に出てきたような気がする.(好みが分かれる？...)
<b>vimの使い方</b>
最低限覚えて欲しいのはこれだけ！
esc...インサートモード（書き込みモード）からノーマルモード（保存したり閉じたりするモード）に戻る
insert...winはinsertキーでインサートモードにいけます.Macは英数でaでインサートモードに入る.
:q...escを押して:qをするとvimが落ちる
:w...escを押して:wをすると保存
:wq...escを押して:wqで保存して終了
※名前をつけて保存したいときは,wq xxx.xxxでいけます.ちなみに強制終了したいときは!qで落ちます.
/...下方向に検索をかけたい時にescを押して/xxxxで検索をかけられます.
この辺を覚えていれば意外と便利に使えるのでぜひ覚えて使ってみてください.
ちなみに他にもたくさんあります.
参考:
https://knowledge.sakura.ad.jp/21687/
#### (2)鍵を使って認証させる.
Macの場合をとりあえず書いていきます.
※これはroot権限でやることをお勧めします.
が,しかし保存したいディレクトリでやった方がいいと思います.
①.sshの作成（ない場合）

```
$mkdir hoge/hoge/.ssh
```
②ファイルの移動

```
$cd hoge/hoge/.ssh
```
③鍵の作成

```
$ sudo ssh-keygen -t rsa!
```

Figure3: terminal
![スクリーンショット 2020-12-12 3.29.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567360/d3bab019-6ebb-26b6-5ef2-beafd80d760e.png)
/root/.ssh/id_rsaの/root/部分をお好きな形に変更するのが良いと思います.
できればユーザ権限でいじれる場所が初心者の場合いいと思います.
※root権限部分のファイルはGUIからいじることができなくて,苦労する可能性があるから...
④鍵を登録
できたら,id_rsa.pubの中身をsakuraVPSの鍵追加画面で追加しましょう.
Figure4: さくらVPS鍵追加画面
![スクリーンショット 2020-12-12 3.47.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567360/6317108f-6521-e7cf-00ca-773515a7b2cd.png)
⑤設定の変更
※今回はポートの変更部分と鍵でのログインのみに絞って解説します.
設定ファイルの場所

ファイルにアクセス

```
$ sudo cd ../etc/ssh
```

設定ファイルの変更

```
$ vim sshd_config
```

![スクリーンショット 2020-12-12 3.45.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567360/261215c9-6a70-d9eb-2897-a83807093e7d.png)
<b>port 9999の部分をお好きなように変更してください.</b>
ただし使っちゃいけないポートもあるのでその辺も参考にしながら...
参考:http://homepage1.canvas.ne.jp/mycroft/dat/security/port.html
パスワードでのログインの拒否
![スクリーンショット 2020-12-12 3.54.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567360/1fda63a5-ae8d-56be-f71c-4474a5c4daac.png)
⑤設定ファイルの読み込みと実行.(portの塞ぎこみと解放)
まずポートの塞ぎこみとポートの解放をしてください.
※個人的にはさくらでその辺の設定ができるからOS側は切っています.

```
$ sudo ufw disable
```
Figure5: さくら側のポート設定画像（パケットフィルタ）
![スクリーンショット 2020-12-12 4.00.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567360/41ce2d60-693e-b48c-d1a3-3c3a4a587066.png)
⑥設定ファイルの読み込みとrestart
ここからはコンソール画面でやることをお勧めします.

ファイルの読み込み

```
$ systemctl reload ssh
```

システムのリスタート

```
$ sudo sudo systemctl restart ssh
```

個人的(再起動)

```
$ sudo reboot
```

#### MacでのSSH接続方法
個人的にwinだったらteratarmがお勧めですが,Macならターミナルからできるのでそれはそれで便利です.

コマンド

```
$ ssh xxxxx@xxx.xxx.xxx.xxx -i hogehoge/id_rsa -p xxx
```
これで実行することができます.

##最後に
ここまでSSHの設定などについてとりあえず説明を書いてきました.誰かの役に立てると幸いです.
これは本当にマストだと思うので導入したらまず最初にやるべきだと思います.
これから機械学習系の記事だけではなくてサーバサイドの記事も書いていけるといいなと思っているので
どうぞ宜しくお願いします.

## 追記

ファイル権限の設定

```
$ chmod 700 ~/.ssh/id_rsa
```
### 必要な機能を必要最低限の権限をもつユーザで実行する！
ユーザの作成

```
$ sudo adduser xxx(ユーザ名)
```

ユーザの消去

```
$ sudo userdel -r xxx(ユーザ名)
```