FreeBSD 11.0 インストール (VirtualBox)

FreeBSD 11.0 をインストールしてみたのでメモ。

# 環境

1. VirtualBox 5.0.30 r112061
2. macOS 10.12.1

# 方針

1. ZFS を使う
2. VirtIO ネットワークアダプタを使う
3. とりあえず DHCP を使う
4. IPv6 を有効に
5. ntpd もインストール
6. sudo もインストール

# FreeBSD インストール

1. FreeBSD-11.0-RELEASE-amd64-dvd1.iso をダウンロード
    1. https://www.freebsd.org/where.html に torrent が見当たらなかった。昔はあったような・・・？
2. VM を作成
    1. ![Screen Shot 2016-12-24 at 12.58.34.png](https://qiita-image-store.s3.amazonaws.com/0/131106/fe914d58-fb03-f9cb-972c-7a46cd42a3d1.png)
        1. ウィンドウが透過になってる。気を付けずにスクリーンショット貼ると仕事で使ってる情報が流出しそう
    1. ![Screen Shot 2016-12-24 at 13.00.50.png](https://qiita-image-store.s3.amazonaws.com/0/131106/ab40bc65-3649-1a4b-f4cf-a05633a608b8.png)
        1. デフォルトが 128MB は今時小さすぎるような
    1. ![Screen Shot 2016-12-24 at 13.03.39.png](https://qiita-image-store.s3.amazonaws.com/0/131106/7de541ef-0321-40b1-86fa-f7ae3d0c01ef.png)
    1. ![Screen Shot 2016-12-24 at 13.04.09.png](https://qiita-image-store.s3.amazonaws.com/0/131106/bb012dff-36b5-9978-6d2b-9de6d3f047cc.png)
    1. ![Screen Shot 2016-12-24 at 13.05.16.png](https://qiita-image-store.s3.amazonaws.com/0/131106/b45b76e9-5f73-3033-e8dd-e893384745d9.png)
    1. ![Screen Shot 2016-12-24 at 13.06.09.png](https://qiita-image-store.s3.amazonaws.com/0/131106/1845d4b5-0937-3ce0-2f6e-32a162f61dbb.png)
3. 作成した VM の Details
    1. ![Screen Shot 2016-12-24 at 15.48.29.png](https://qiita-image-store.s3.amazonaws.com/0/131106/6026b3d8-4f90-033c-ea51-4b1401b185a9.png)
3. VM の `Settings`
    1. `System`
        1. `Motherboard`
            1. ![Screen Shot 2016-12-24 at 22.50.08.png](https://qiita-image-store.s3.amazonaws.com/0/131106/62017499-8025-6eec-b104-9fb0633de5e3.png)
                1. `Hardware Clock in UTC Time` をチェック
        1. `Processor`
            1. ![Screen Shot 2016-12-24 at 22.20.20.png](https://qiita-image-store.s3.amazonaws.com/0/131106/1771d215-8198-5d77-f0dc-562618e6edb0.png)
                1. `Processor(s)` を 2 個に変更
    1. `Network`
        1. `Adapter 1`
            1. `Advanced` をクリック
                1. ![Screen Shot 2016-12-24 at 22.50.58.png](https://qiita-image-store.s3.amazonaws.com/0/131106/2f6a14da-fdb3-3c51-fdc9-92904d2aa655.png)
                1. `Adapter Type` を `Paravirtualized Network (virtio-net)` に変更（ FreeBSD 10.0 から virtio ドライバーが GENERIC カーネルに入ってる）
4. VM を `Start`
    1. ![Screen Shot 2016-12-24 at 15.53.04.png](https://qiita-image-store.s3.amazonaws.com/0/131106/ff04f458-eb29-3688-6d1f-604b0c7f7193.png)
        1. ダウンロードした ISO を選んで `Start`
    1. ![Screen Shot 2016-12-24 at 15.54.20.png](https://qiita-image-store.s3.amazonaws.com/0/131106/b58fd182-6f1c-8db5-a179-2f877a366ab7.png)
        1. `Boot Multi User`
    1. ![Screen Shot 2016-12-24 at 15.55.58.png](https://qiita-image-store.s3.amazonaws.com/0/131106/5f764ef6-9637-84af-04a4-93097140839f.png)
        1. `Install`
    1. ![Screen Shot 2016-12-24 at 15.56.43.png](https://qiita-image-store.s3.amazonaws.com/0/131106/0b44f68a-dfb9-0572-d292-33c0b67ee256.png)
        1. `Japanese 106` を選択
    1. ![Screen Shot 2016-12-24 at 15.59.18.png](https://qiita-image-store.s3.amazonaws.com/0/131106/76fbbf90-b1a3-232b-7bf8-fbe8ada8bfa1.png)
        1. `Continue`
    1. ![Screen Shot 2016-12-24 at 22.32.08.png](https://qiita-image-store.s3.amazonaws.com/0/131106/bba98c2c-ff82-238c-b108-e98d4707c15d.png)
        1. ホスト名を入力
    1. ![Screen Shot 2016-12-24 at 16.01.15.png](https://qiita-image-store.s3.amazonaws.com/0/131106/76c9bbc5-879b-b0e5-5968-82b014f0bdd4.png)
        1. `lib32` は不要っぽいので非選択にして (Space Key) `OK` (Enter Key)
    1. ![Screen Shot 2016-12-24 at 16.07.55.png](https://qiita-image-store.s3.amazonaws.com/0/131106/7308dcc5-65ed-8f4d-65bf-f3b4b0afb0a8.png)
        1. `ZFS` を選択して (Arrow Key) `OK`
    1. ![Screen Shot 2016-12-24 at 16.15.53.png](https://qiita-image-store.s3.amazonaws.com/0/131106/670aa268-3db2-d927-1fa6-9720a6a7bb89.png)
        1. `Swap Size` を 256m に変更して `Install`
    1. ![Screen Shot 2016-12-24 at 16.19.03.png](https://qiita-image-store.s3.amazonaws.com/0/131106/8c9c5d78-2225-cdc3-ecfc-af50881b6f90.png)
        1. `stripe`
    1. ![Screen Shot 2016-12-24 at 16.19.47.png](https://qiita-image-store.s3.amazonaws.com/0/131106/d7b620e7-2c9a-51fb-d307-0defe335e4ec.png)
        1. ディスクを選択 (Space Key) して `OK` (Enter Key)
    1. ![Screen Shot 2016-12-24 at 16.20.51.png](https://qiita-image-store.s3.amazonaws.com/0/131106/a8631186-0e9b-9f6d-e16f-dbcfb0cdf87f.png)
        1. `Yes` (Arrow/Tab Key)
    1. ![Screen Shot 2016-12-24 at 16.22.50.png](https://qiita-image-store.s3.amazonaws.com/0/131106/a4ee68a9-cbfb-5418-a4a0-30ea72f3da06.png)
        1. `root` パスワードを入力
    1. ![Screen Shot 2016-12-24 at 22.35.25.png](https://qiita-image-store.s3.amazonaws.com/0/131106/7b3bbd4f-f41e-932e-6043-fe823761f915.png)
        1. `OK`
    1. ![Screen Shot 2016-12-24 at 21.52.54.png](https://qiita-image-store.s3.amazonaws.com/0/131106/c3628326-2c41-5adc-4860-d98574fa7969.png)
        1. `Yes`
    1. ![Screen Shot 2016-12-24 at 21.53.29.png](https://qiita-image-store.s3.amazonaws.com/0/131106/811cd106-70ea-1ef7-0f7b-e6ff45196eaa.png)
        1. `Yes`
    1. ![Screen Shot 2016-12-24 at 21.54.06.png](https://qiita-image-store.s3.amazonaws.com/0/131106/da0a545a-5333-c8a2-b74f-677a9218ca7c.png)
        1. `Yes`
    1. ![Screen Shot 2016-12-24 at 21.54.34.png](https://qiita-image-store.s3.amazonaws.com/0/131106/9455f61f-6b8e-1496-ac5b-d9b35aeae8ca.png)
        1. `Yes`
    1. ![Screen Shot 2016-12-24 at 21.55.17.png](https://qiita-image-store.s3.amazonaws.com/0/131106/d218a824-0ad5-2408-e29c-233d01071d61.png)
        1. `DNS #1` と `DNS #2` は IPv6 用らしい
        1. `Search` を空にして (Del Key) `OK` (Enter Key)
    1. ![Screen Shot 2016-12-24 at 21.58.59.png](https://qiita-image-store.s3.amazonaws.com/0/131106/7d7db6e4-aeba-23a9-6bc8-04ea9b44bf15.png)
        1. `Asia`
    1. ![Screen Shot 2016-12-24 at 21.59.29.png](https://qiita-image-store.s3.amazonaws.com/0/131106/9c8e3635-81c7-f442-ea97-33e0d39e419e.png)
        1. `Japan`
    1. ![Screen Shot 2016-12-24 at 22.00.24.png](https://qiita-image-store.s3.amazonaws.com/0/131106/e1c92c45-6c7d-380d-3ea0-885f31fdb337.png)
        1. `Yes`
    1. ![Screen Shot 2016-12-24 at 22.37.22.png](https://qiita-image-store.s3.amazonaws.com/0/131106/b058f822-2734-1d96-2d93-99be9640c44b.png)
        1. `Skip`
    1. ![Screen Shot 2016-12-24 at 22.37.49.png](https://qiita-image-store.s3.amazonaws.com/0/131106/481ef2df-8d1b-d49c-658e-8121ef43b5e4.png)
        1. `Skip`
    1. ![Screen Shot 2016-12-24 at 22.01.50.png](https://qiita-image-store.s3.amazonaws.com/0/131106/19fd69ff-49a6-5ce1-5c0a-474a6e43c853.png)
        1. `ntpd` も選択 (Space Key) して `OK` (Enter Key)
    1. ![Screen Shot 2016-12-24 at 22.08.51.png](https://qiita-image-store.s3.amazonaws.com/0/131106/b9335ad0-1cae-9dd1-25f8-59ac5b30f1d3.png)
        1. `OK`
    1. ![Screen Shot 2016-12-24 at 22.09.50.png](https://qiita-image-store.s3.amazonaws.com/0/131106/24db7cd6-ff01-fb48-4c92-7c5f59128013.png)
        1. `No`
    1. ![Screen Shot 2016-12-24 at 22.12.00.png](https://qiita-image-store.s3.amazonaws.com/0/131106/b3f8e8e0-623a-d16c-890f-7fa3a630fd7b.png)
        1. `Exit`
    1. ![Screen Shot 2016-12-24 at 22.12.36.png](https://qiita-image-store.s3.amazonaws.com/0/131106/8f370e0f-0a11-6a8a-557b-185044cc9b83.png)
        1. `No`
    1. ![Screen Shot 2016-12-24 at 22.13.16.png](https://qiita-image-store.s3.amazonaws.com/0/131106/2cd3f22d-2766-e59e-12b0-91d0eb0036cc.png)
        1. `Reboot`
1. 再起動後、素早く VM 一覧から右クリックして `Close` -> `Power Off`
    1. `Settings` -> `Storage` -> `Optical Drive` の右端の CD アイコンをクリックして `Remove Disk from Virtual Drive`
    1. ここが `Take Snapshot` する良いタイミング

# FreeBSD インストール直後の状態

1. ![Screen Shot 2016-12-25 at 0.11.12.png](https://qiita-image-store.s3.amazonaws.com/0/131106/7179e1bc-afdc-badd-6b3f-a743d13238f8.png)

# セキュリティパッチを適用

    # freebsd-update fetch
    # freebsd-update install
    # shutdown -h now

# グループとユーザーを作成

    # pw groupadd グループ名
    # pw useradd -n ユーザー名 -g グループ名 -G wheel -m -s /bin/csh
    # passwd ユーザー名

1. `su` できるように `wheel` グループへ追加
2. `-m` でホームディレクトリを作成
3. デフォルトの `/bin/sh` ではなく `root` と同じ `tcsh` を使う
    1. OpenBSD の [oksh](https://en.wikipedia.org/wiki/KornShell) を使いたかったが [ports になかった](https://svnweb.freebsd.org/ports/head/shells/)
    2. bash は GPL なので避けたい
    3. pdksh はさすがに古すぎる・・・？
    4. mksh は使ったことない・・・

# tcsh で delete キーを有効にする

1. `/etc/csh.cshrc` に追加

        bindkey ^[[3~ delete-char

    1. デフォルト状態だと `~` が入力されてしまう
    1. 参考: https://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/book.html#KEYBOARD-DELETE-KEY

# `sudo` をインストール
```
# pkg install sudo
# visudo
```
```%wheel ALL=(ALL) ALL``` をコメントでなくする

1. [FreeBSD Handbook](https://www.freebsd.org/doc/handbook/security-sudo.html) でも紹介されてて [ISC ライセンス](https://www.sudo.ws/) なのに、何故いまだに base に入ってないのだろう・・・？
2. OpenBSD で `sudo` を置き換えてる `doas` の方が良さそうだが [5.9p6](https://svnweb.freebsd.org/ports/head/security/doas/Makefile?revision=423070&view=markup) ([github](https://github.com/slicer69/doas/releases)) では、一回認証が成功したら暫くパスワードを聞かれない [persist](http://man.openbsd.org/doas.conf) が使えない（毎回パスワードを聞かれるか、一切聞かれないかの二択）