九尾空間

この世はとてもキュービックな空間ですね

暗号化済パーティションへArch Linuxをインストールする

あけましておめでとうございます。ついに2013年がやってきてしまいました。

去年は絶望と空虚の一年間でしたが、今年は希望と創作の一年にしたい。というわけで早速Webサイトでも作ろうかなと環境構築を始めたのですが、ここで一つ問題が。

WindowsだとRails+Bootstrapで作ったWebサイトの開発が面倒臭い……。

therubyracerのインストールで「whereコマンドがない」とかエラーを吐きます。やっぱりWindowsってRubyでの開発に向いていませんね。

ということで環境構築に飽きて放置していたノートPCにArch Linuxを改めてインストールすることにしました。VMだとPCいじってる気になれないので物理的に分けます。

ノートPCは勉強会とかに持ち歩く可能性があるので、折角ならということで暗号化ファイルシステム上にインストールすることにしました。

そこで、備忘録ついでに手順を書いておきます。

手順

参考:
http://en.gentoo-wiki.com/wiki/DM-Crypt_with_LUKS
https://wiki.archlinux.org/index.php/Dm-crypt_with_LUKS

1. ディスクをランダムデータで埋める

# shred -vzn1 /dev/sda
shred: /dev/sda: pass 1/2 (random)...535MiB/299GiB 0%
…

積んでるHDDにもよりますが、相当時間がかかるので根気よく待ちましょう。

2. パーティションを切る

バイス 容量 マウントポイント
/dev/sda1 15360MB /boot
/dev/sda2 4096MB (swap)
/dev/sda3 300620MB /

普通にArch Linux入れる時みたいにパーティションを切りました。

3. /bootのフォーマット

# mkfs.ext4 /dev/sda1
…

いつも通りフォーマットします。
/bootが平文なのが心配な方は/bootを外部のUSBメモリにでも入れるといいでしょう。

4. 暗号化パーティションの準備

# cryptsetup -c aes -h sha256 -d /dev/urandom create swap /dev/sda2
# mkswap /dev/mapper/swap
…
# swapon /dev/mapper/swap
# cryptsetup -y -c aes-cbc-essiv:sha256 -s 256 -h sha256 luksFormat /dev/sda3
WARNING!
========
This will overwrite data on /dev/sda3 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:

# cryptsetup luksOpen /dev/sda3 root 
Enter passphrase for /dev/sda3:
# mkfs.ext4 /dev/mapper/root
…
# mount /dev/mapper/root /mnt
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
…

暗号化方法の選択に迷ったのですが、ここによると

  • Blowfishを今更選ぶ理由はない。
  • Twofishはセキュリティを犠牲にしてでも早いほうがいい時に選ぶべき。
  • Serpentは速度を犠牲にしてでもセキュリティを優先したい時に選ぶべき。
  • Rijndael(AES)は両方ともほどほどでいい時に選ぶべき。

とのことなので、今回はAESを選びます。

5. ベースシステムとGRUBをインストール

ここはいつも通りなので何も言うことはありません。

6. 起動時に暗号化パーティションを開くようにする

/etc/crypttab (暗号化したスワップを使用するようにする):

swap /dev/sda2 /dev/urandom swap,cipher=aes,size=256

/etc/default/grub (暗号化したルートディレクトリを指定する):

GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda3:root"

/etc/mkinitcpio.conf (filesystemsの前にencryptを追加する):

HOOKS="... encrypt filesystems ..."

GRUBの設定変更を反映させるために設定ファイルを再生成する

# grub-mkconfig -o /mnt/boot/grub/grub.cfg

CombConf行ってきました

コミュ障こじらせ気味のぬるかるです。昨日はCombConfに行ってきました。

リカバリディスク作ってるから大丈夫だろうとArch Linuxをハードディスク全体にインストールしていたノートPC(UL20FT)にWindows環境を入れなおそうとリカバリーディスクからリカバリーを試みたところ見事エラーがでてリカバリーに失敗してしまったので、今回はノートPC不持参で行きました。
案の定ノートPC持参の方が多かったので、左前あたりでスマートフォンをいじっていた自分は悪い意味で目立っていたのではと心配していました。

TalkもLTも皆レベルの高いものばかりでした。
特にSolarisに関するトークは素晴らしかったです。危うく布教されかけました。

CombConfのTシャツ欲しかったのですが、あと一歩のところで負けてしまいました。あそこでグーを出していれば……。

懇親会で出たピザ、美味しかったです。@yosida95さん、ありがとうございました。

それはそうと、第二回期待してます!