新しいPCが来たのでバイオインフォ用に環境のセットアップ

新しいPCを購入したので、バイオインフォ用にセットアップ。
毎回設定方法を忘れるので自分用に備忘録としてメモ。

PC仕様
Ubuntu 20.04.3 LTS
MacOS Big Sur 11.6 (client PC)
TeraTerm (NAS)

### 目次
- Ubutuの設定色々
 - softwareのアップデート
 - hostnameの設定
 - ファイアーウォールの設定
 - アンチウィルスソフトの導入
 - 表記の英語化
 - 時刻合わせ
 - terminatorを導入
 - capslockの設定
 - sshの設定
 - NASのマウント

#Ubutuの設定色々
以下の記事を参考に必要なところを設定。
[Ubuntu 20.04 LTSをインストールした直後に行う設定 & インストールするソフト](https://sicklylife.jp/ubuntu/2004/settings.html)
[最低限かつムダのないUbuntuサーバー初期設定【VPS】](https://self-development.info/%E6%9C%80%E4%BD%8E%E9%99%90%E3%81%8B%E3%81%A4%E3%83%A0%E3%83%80%E3%81%AE%E3%81%AA%E3%81%84ubuntu%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%E3%80%90vps%E3%80%91/)
[Ubuntuサーバ初期設定(+セキュリティ設定)](https://dev.xstakepool.com/how-to-harden-ubuntu-server)
[LinuxでのNASへの自動マウントの方法@2021](https://red-full-moon.com/automount-to-nas-on-linux/)
[Ubuntu 20.04 - SSHのインストールと接続方法](https://codechacha.com/ja/ubuntu-install-openssh/)
[Ubuntu20.04 で ClamAV を使ってウイルススキャン](https://qiita.com/kannkyo/items/1cc32231afad88c11d8e)

初回ログイン時に出てくるオンラインアカウント設定、LivePatch設定などはとりあえずスキップ。必要な時にやることにする。

#### softwareのアップデート

ログイン後左上のアクティビティボタンを押すと、softwareupdateが出てくるので、updateし再起動。
ターミナル上でやる場合には、

```bash:software&#x20update
sudo apt update && sudo apt upgrade -y
```

#### hostnameの設定

次にhostnameを設定。

```bash:check&#x20hostname
$ hostname 
XXXXXX
```
何かhostnameが出てくるので、こいつを変更。

```bash:change&#x20hostname
$ sudo hostnamectl set-hostname hogehoge
$ hostname
hogehoge
```
これで変更完了。

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

次に、ファイアーウォールの設定をする。
簡単にやる場合はgufwをインストールして設定。
ここでは、ufwをインストールして設定。

```bash:firewall&#x20set-up
$ sudo apt install ufw

#ufwのstatusを確認
$ sudo ufw status
Status: inactive
#ufwは初期状態ではinactiveになっている

#とりあえずIncomingを全てdenyにしておく。
#sshは後で設定。
$ sudo ufw default deny

# ufwを起動してstatusを確認
$ sudo ufw enable
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
```
これでとりあえずの設定は完了。
*ufwが再起動時にinactiveだった場合の対処
こちらの記事を参考にしました→[IT漂着メモ](https://god-support.blogspot.com/2021/04/ubuntu-ufw.html)

```vim:/lib/systemd/system/ufw.service
Before=network.target
+ After=netfilter-persistent.service
```
Afterを追加すると再起動時にactiveになった。


#### アンチウイルスソフトの導入
アンチウィルスソフトを念のため、導入しておく。

```bash:clamAVのinstall
$ sudo apt install clamav
$ sudo apt install clamav-daemon

#ウィルスの定義を更新
$ sudo freshclam

#clamavを起動
$ sudo systemctl start clamav-daemon.service
$ sudo systemctl start clamav-freshclam.service
```
あとは、crontabで自動設定。
本当は週１とかが良かったけれど、PCの自動起動が日付しか設定できなかったので月1の設定で。

```vim:./bin/monthly_clamscan.sh
#!/bin/bash

#crontabで実行するファイル

sudo clamscan /* -l ./log/clamav.log
sudo shutdown -h now
```
これをcrontabに設定。
`sudo crontab -e`

```vim:vim
#minute hour day of mounth month day of week task で設定
45 0 1 * * bash ./bin/monthly_clamscan.sh
```
あとは、logの場所を作っとく。
`sudo mkdir ./log`


#### 表記の英語化

次に、日本語環境を英語に。今回のPCは組んで送ってもらってついでにUbuntuのインストールもしてくれたんだけど、ありがたいことに日本語だったので、全部英語に変更(気を利かせてくれたのにゴメンナサイ)。

```bash:Japanese2English
#ここに設定があるので書き換える
$ sudo vim /etc/default/locale
```

```vim:vim
- LC_ALL="ja_JP.UTF-8"
+ LC_ALL="en_US.UTF-8"
```

#### 時刻合わせ

時刻合わせはやってくれていたので、省略。
もしやる場合のメモ。

```bash
$ sudo timedatectl set-timezone 'Asia/Tokyo'
```

#### terminatorを導入

完全に好みの問題だけどterminatorをつかいたいので、
`sudo apt install terminator`でダウンロードして、起動。
背景の透け感と分割できる感じが好き。

#### capslockの設定

次に、capslockをctrlに変更した。

```bash:capslock2ctrl
#ここにkeyboardの設定があるので書き換える。
$ sudo vim /etc/default/keyboard
```

```vim:vim
#　デフォルトは空欄なので以下を追記。
XKBOPTIONS="ctrl:nocaps"
```


#### sshの設定
openssh-serverをインストール
`$ sudo apt install openssh-server`
次にsshd_configを編集。

```vim:/etc/ssh/sshd_config
Port 222
PermitRootLogin no
MaxAuthtries 3
#password認証は後でnoにする。
PasswordAuthentification yes
PermitEmptyPasswords no
ChallengeResponseAuthentification no
```
今度はfirewallの設定を変更。
Localからのログインのみを有効にする。
IPv6を無効にする。

```vim:/etc/default/ufw
- IPV6=yes
+ IPV6=no
```

```bash:PortをLocalに開いてsshを起動
$ sudo ufw allow from 192.168.X.0/24 to any port 222
#設定をチェック
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
222                        ALLOW IN    192.168.X.0/24

$ sudo systemctl start sshd.servise

```
これでサーバ側の設定はオッケーなので、次はクライアント側で設定(Mac)


```bash:client側の設定
#sshで接続してみる。
ssh username@192.168.XXX.YYY -p 222

#次に、公開鍵と秘密鍵を作成。
$  ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/miyashitasatoshi/.ssh/id_ed25519):  passphrase (empty for no passphrase): 
Enter same passphrase again: 

#鍵をサーバにわたすために ssh-copy-idをインストールして、実行。
$ brew install ssh-copy-id
$ ssh-copy-id username@192.168.XXX.YYY -p 222

```
次に、サーバ側でPassword認証をnoにする。

```vim:/etc/ssh/sshd_config
PasswordAuthentification no
```
この状態`sudo systemctl restart sshd.service`をして再度、ssh 

```bash:ssh
ssh username@192.168.XXX.YYY -p 222
#するとパスフレーズを要求されるので、入力するとsshできる。
Enter passphrase for key
```

#### NASのマウント
起動時に今使っているNAS(Terastation)に自動マウントするように設定。
とりあえずNASと接続するかpingをうつ。`ping 192.168.XXX.YYY`
無事に接続が確認できたらNASのマウント

```bash
#cifsのインストール
sudo apt install cifs-utils
#mount用のdirectoryを作って、マウント
sudo mkdir /mnt/nas
sudo mount -t cifs -o username=XXX,password=YYY,uid=1000,gid=1000 //192.168.XXX.YYY /mnt/nas
```
うまくいかない場合もあるらしく、その場合は、vers=1.0をつけるといい場合もあるらしい。
今回は問題なく接続できたので、起動時に自動接続するように設定。
`$ sudo vim /etc/fstab`
vimでfstabに以下を追記。

```vim:vim
//192.168.XXX.YYY /mnt/nas cifs username=XXX,password=YYY,uid=1000,gid=1000,file_mode=0755,dir_mode=0755 0 0
```
再起動して接続していることを確認。