RaspberryPIの初期設定

#RaspberryPiの初期設定
Raspberry Pi4を買ったので、初期設定で実施した内容を備忘録として記載しておきます。OSのインストールまではマニュアル通り実施すれば大丈夫。

![IMG_9518.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/468729/3b15c38a-be2c-a0d9-5f53-2d508be6a427.jpeg)

手順としては下記の通り

* [RaspberryPi財団のページ](https://www.raspberrypi.org/downloads/noobs/)からNobs Liteをダウンロードする
* MicroSDカードをFAT32でフォーマットする（IO-DATA ハードディスクフォーマッタ等で行う）
* ダウンロードしたNobs Lite（Zipファイル）を展開して、SDカードに書き込む
* raspberryPiにMicroSDカードを挿し、「Raspbian Desktop」をインストールする

## sshの許可設定
デフォルトでは、ssh接続が許可されていないので、下記記事を参考にsshの許可設定を行う。

* [Raspberry Pi3のLAN外からのSSH接続設定方法](https://qiita.com/3no3_tw/items/4b5975a9f3087edf4e20)

## vimの設定変更
vimでファイルを編集する際に、編集モードで方向キーが利用できないため、vimrcの設定を行う。

* .vimrc

```
"----------------------------------------
" 一般設定
"----------------------------------------
" ファイルを上書きする前にバックアップを作ることを無効化
set nowritebackup
" ファイルを上書きする前にバックアップを作ることを無効化
set nobackup
" 行数を表示
set number
" vi互換モードの解除（方向キーを利用できるようにする）
set nocompatible
" 編集モードの際にbackspaceキーを利用できるようにする
set backspace=indent,eol,start
" 入力モードでTabキー押下時に半角スペースを挿入
set expandtab
" ファイル内にあるタブ文字の表示幅
set tabstop=2
" インデント幅
set shiftwidth=2
" タブキー押下時に挿入される文字幅を指定
set softtabstop=2
" ファイル内にあるタブ文字の表示幅
set tabstop=2

"----------------------------------------
" 検索
"----------------------------------------
" 検索するときに大文字小文字を区別しない
set ignorecase
" 小文字で検索すると大文字と小文字を無視して検索
set smartcase
" 検索がファイル末尾まで進んだら、ファイル先頭から再び検索
set wrapscan
" インクリメンタル検索 (検索ワードの最初の文字を入力した時点で検索が開始)
set incsearch
" 検索結果をハイライト表示
set hlsearch
```
## 固定IPアドレスの設定
固定IPアドレスを設定するには、`/etc/dhcpcd.conf`ファイルを編集する。ファイルの最下部に下記記載を追記する。IPアドレスは利用する環境に合わせて変更してください。

* dhcpcd.conf

```
interface eth0
static ip_address=192.168.11.10/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1
```

設定が完了したら再起動する。

```
> sudo reboot
```

再起動が完了し、ssh接続する。`ifconfig`でIPアドレスが変更されていることが確認できる。

```
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.10  netmask 255.255.254.0  broadcast 192.168.11.255
        inet6 fe80::f8d1:e48b:f9c9:fc21  prefixlen 64  scopeid 0x20<link>
        inet6 240b:11:500:b900:f616:a182:d496:b943  prefixlen 64  scopeid 0x0<global>
        ether dc:a6:32:5c:c7:f8  txqueuelen 1000  (イーサネット)
        RX packets 86  bytes 12123 (11.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 92  bytes 12404 (12.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (ローカルループバック)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
```

##　パッケージとOSの更新
次のコマンドを実行する。

```
$ sudo apt-get update       # パッケージリストの更新
$ sudo apt-get upgrade      # パッケージの更新
$ sudo apt-get dist-upgrade # OSのアップグレード
```

## ファームウェアの更新
rpi-update コマンドを使って更新する。再起動して反映される。

```
$ sudo apt-get install rpi-update # インストール
$ sudo rpi-update                 # 更新実行
$ sudo reboot                     # 反映のための再起動
```

## firewallの設定
iptablesをオーバーラップしたufwをインストールし、Port22のみ許可する。

```
$ sudo apt-get install ufw  # ufwのインストール
$ sudo ufw allow from 192.168.11.10/24 to any port 22  # ポートの開放
$ sudo ufw default deny  # 許可されたポート以外を閉じる
$ sudo ufw enable  # ufwの有効化
$ sudo ufw status  # ファイアウォールの設定を確認
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
```


#参考文献
* [Raspberry Pi3のLAN外からのSSH接続設定方法](https://qiita.com/3no3_tw/items/4b5975a9f3087edf4e20)
* [Raspbian(jessie)の固定IPアドレス設定方法](http://xn--u9j0md1592aqmt715c.net/raspbian-ipaddress-config/#i)
* [Raspberry Pi 初期設定](https://qiita.com/HeRo/items/c1c30d7267faeb304538)