From 9a321884379a71b5f0986fdfb97a2b6c5bdccd8a Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Wed, 03 Sep 2014 14:13:00 -0400 Subject: Libreboot release 6 beta 6. - Added modified builddeb* scripts for Parabola GNU/Linux-libre: buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah Vesely) - Documentation: updated all relevant areas to mention use of buildpac* scripts for Parabola users. - Documentation: added information showing how to enable or disable bluetooth on the X60 - MacBook1,1 tested! See ../docs/index.html#macbook11" - Documentation: fixed typo in ../docs/index.html#get_edid_panelname (get-edit changed to get-edid) - Documentation: added ../docs/howtos/x60_lcd_change/ (pics only for now) - Added gcry_serpent and gcry_whirlpool to the GRUB module list in the 'build' script (for luks users) - Libreboot is now based on a new coreboot version from August 23rd, 2014: Merged commits (relates to boards that were already supported in libreboot): - http://review.coreboot.org/#/c/6697/ - http://review.coreboot.org/#/c/6698/ (merged already) - http://review.coreboot.org/#/c/6699/ (merged already) - http://review.coreboot.org/#/c/6696/ (merged already) - http://review.coreboot.org/#/c/6695/ (merged already) - http://review.coreboot.org/#/c/5927/ (merged already) - http://review.coreboot.org/#/c/6717/ (merged already) - http://review.coreboot.org/#/c/6718/ (merged already) - http://review.coreboot.org/#/c/6723/ (merged already) (text-mode patch, might enable memtest. macbook21) - http://review.coreboot.org/#/c/6732/ (MERGED) (remove useless ps/2 keyboard delay from macbook21. already merged) - These were also merged in coreboot (relates to boards that libreboot already supported): - http://review.coreboot.org/#/c/5320/ (merged) - http://review.coreboot.org/#/c/5321/ (merged) - http://review.coreboot.org/#/c/5323/ (merged) - http://review.coreboot.org/#/c/6693/ (merged) - http://review.coreboot.org/#/c/6694/ (merged) - http://review.coreboot.org/#/c/5324/ (merged) - Documentation: removed the section about tft_brightness on X60 (new code makes it obsolete) - Removed all patches from resources/libreboot/patch/ and added new patch: 0000_t60_textmode.git.diff - Updated getcb script and DEBLOB script. - Updated configuration files under resources/libreboot/config/ to accomodate new coreboot version. - Removed grub_serial*.cfg and libreboot_serial*.rom, all configs/rom's are now unified (containing same configuration as serial rom's from before). - Documentation: updated ../docs/index.html#rom to reflect the above. - Updated GRUB to new version from August 14th, 2014. - Unified all grub configurations for all machines to a single grub.cfg under resources/grub/config/ - Updated flashrom to new version from August 20th, 2014 - Added getseabios and builddeps-seabios (builddeps and getall were also updated) - Added instructions to 'buildrom-withgrub' to include bios.bin.elf and vgaroms/vgabios.bin from SeaBIOS inside the ROM. - Added seabios (and sgavgabios) to grub as payload option in menu - Disabled serial output in Memtest86+ (no longer needed) to speed up tests. - MemTest86+ now works properly, it can output on the laptop screen (no serial port needed anymore). - Added getgrubinvaders, builddeps-grubinvaders scripts. Added these to getall and builddeps. - Added GRUB Invaders menu entry in resources/grub/config/grub.cfg - Added rules to builddeps-coreboot to build libpayload with TinyCurses. (added appropriate instructions to cleandeps script). - Commented out lines in resources/grub/config/grub.cfg for loading font/background (not useful anymore, now that GRUB is in text-mode). - Commented out lines in buildrom-withgrub that included backgrounds/fonts (not useful anymore, now that GRUB is in text-mode). - Added resources/utilities/i945-pwm/ (from git://git.mtjm.eu/i945-pwm), for debugging acpi brightness on i945 machines. - Added instructions for it in builddeps, builddeps-i945pwm, builddeb and cleandeps - 'build' script: removed the parts that generated sha512sum manifests (not needed, since release tarballs are GPG-signed) - 'build' script: removed the parts that generated libreboot_meta directory (not needed anymore, since _meta will be hosted in git) - Updated ../docs/index.html#build_meta (and other parts of documentation) to accomodate this change. - Documentation: simplified (refactored) the notes in ../docs/index.html#rom - 'build' script: removed the parts that generated libreboot_bin and added them to a new script: 'build-release' - Documentation: ../docs/index.html#build updated to reflect the above. - Removed 'sudo' from builddeb, builddeb-flashrom, powertop.trisquel6 and builddeb-bucts scripts (assuming that the user has it is a really bad idea). - Added all gcry_* modules to grub (luks/cryptomount): gcry_arcfour gcry_camellia gcry_crc gcry_dsa gcry_md4 gcry_rfc2268 gcry_rmd160 gcry_seed gcry_sha1 gcry_sha512 gcry_twofish gcry_blowfish gcry_cast5 gcry_des gcry_idea gcry_md5 gcry_rijndael gcry_rsa gcry_serpent gcry_sha256 gcry_tiger gcry_whirlpool - Added GNUtoo's list of GRUB modules (includes all of the gcry_* modules above), cryptomount should be working now. - Removed builddeb-bucts and builddeb-flashrom, merged them with builddeb (../docs/index.html updated accordingly) - Removed buildpac-bucts and buildpac-flashrom, merged them with buildpac (../docs/index.html updated accordingly) - Renamed builddeb to deps-trisquel (../docs/index.html updated accordingly) - Renamed buildpac to deps-parabola (../docs/index.html updated accordingly) - Documentation: removed all parts talking about build dependencies, replaced them with links to ../docs/index.html#build_dependencies - Documentation: emphasized more strongly on the documentation, the need to re-build bucts and/or flashrom before flashing a ROM image. - build-release: flashrom, nvramtool, cbfstool and bucts are no longer provided pre-compiled in binary archives, and are now in source form only. (to maximize distro compatibility). - Documentation: added ../docs/howtos/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload. - 'build' script: replaced grub.elf assembly instructons, it's now handled by a utility added under resources/utilities/grub-assemble - Moved resources/grub/keymap to resources/utilities/grub-assemble/keymap, and updated that utility to use it - Documentation: removed useless links to pictures of keyboard layouts and unmodified layouts. - Removed all unused fonts from dejavu-fonts-ttf-2.34/ directory - 'buildrom-withgrub' script: updated it to create 2 sets of ROM's for each machine: one with text-mode, one with coreboot framebuffer. - Documentation: updated ../docs/index.html#rom to reflect the above - Deleted unused README and COPYING file from main directory - Removed some rm -rf .git* instructions from the get* scripts and moved them to build-release script - Split up default grub.cfg into 6 parts: extra/{common.cfg,txtmode.cfg,vesafb.cfg} and menuentries/{common.cfg,txtmode.cfg,vesafb.cfg} - buildrom-withgrub script uses these to generate the correct grub.cfg for each type of configuration. - grub_memdisk.cfg (used inside grub.elf) now only loads grub.cfg from cbfs. It no longer enables serial output or sets prefix. (menuentries/common.cfg does instead) - resources/grub/config/extra/common.cfg, added: - insmod instructions to load those modules: nativedisk, ehci, ohci, uhci, usb, usbserial_pl2303, usbserial_ftdi, usbserial_usbdebug - set prefix=(memdisk)/boot/grub - For native graphics (recommended by coreboot wiki): - gfxpayload=keep - terminal_output --append gfxterm - Play a beep on startup: - play 480 440 1 - Documentation: added note about 'fb=false' workaround for text-mode debian-installer (Trisquel net install) to ../docs/howtos/grub_boot_installer.html - Documentation: updated ../docs/howtos/grub_cbfs.html to make it safer (and easier) to follow. --- (limited to 'docs/howtos/encrypted_trisquel.html') diff --git a/docs/howtos/encrypted_trisquel.html b/docs/howtos/encrypted_trisquel.html new file mode 100644 index 0000000..2529da4 --- /dev/null +++ b/docs/howtos/encrypted_trisquel.html @@ -0,0 +1,321 @@ + + + + + + + + + Installing Trisquel GNU/Linux with full disk encryption (including /boot) + + + +
+

Installing Trisquel GNU/Linux with full disk encryption (including /boot)

+ +
+ +

+ Because GRUB is installed directly as a payload of libreboot (or coreboot), you don't need an unencrypted /boot partition + when setting up an encrypted system. This means that your machine can really secure data while powered off. +

+ +

+ This works in Trisquel 7, and probably Trisquel 6. Boot the 'net installer' (Install Trisquel in Text Mode). How to boot a GNU/Linux installer. +

+ +

+ Set a strong user password (ideally above 40 characters, of lowercase/uppercase, numbers and symbols) and when the installer asks you to setup + encryption (ecryptfs) for your home directory, select 'Yes'. +

+ +

+ + Your user password should be different than the LUKS password which you will set later on. + Your LUKS password should, like the user password, be secure. + +

+ +

Partitioning

+ +

Choose 'Manual' partitioning:

+ + +

Further partitioning

+ +

+ Now you are back at the main partitioning screen. You will simply set mountpoints and filesystems to use. +

+ + +

Kernel

+ +

+ Installation will ask what kernel you want to use. linux-generic is fine. +

+ +

Tasksel

+ +

+ Just continue here, without selecting anything. You can install everything later (it's really easy). +

+ +

Install the GRUB boot loader to the master boot record

+ +

+ Choose 'Yes'. It will fail, but don't worry. Then at the main menu, choose 'Continue without a bootloader'. +

+ +

+ You do not need to install GRUB at all, since in libreboot you are using the GRUB payload (for libreboot) to boot your system directly. +

+ +

Clock UTC

+ +

+ Just say 'Yes'. +

+ +

+ Booting your system +

+ +

+ At this point, you will have finished the installation. At your GRUB payload, press C to get to the command line. +

+ +

+ Do that:
+ grub> cryptomount -a (ahci0,msdos1)
+ grub> set root='lvm/buzz-distro'
+ grub> linux /vmlinuz root=/dev/mapper/buzz-distro cryptdevice=/dev/mapper/buzz-distro:root quiet splash ro
+ grub> initrd /initrd.img
+ grub> boot +

+ +

+ ecryptfs +

+ +

+ Immediately after logging in, do that:
+ $ sudo ecryptfs-unwrap-passphrase +

+ +

+ This will be needed in the future if you ever need to recover your home directory from another system, so write it down and keep the note + somewhere secret. Ideally, you should memorize it and then burn the note (or not even write it down, and memorize it still)> +

+ +

+ Modify grub.cfg (CBFS) +

+ +

+ Now you need to set it up so that the system will automatically boot, without having to type a bunch of commands. +

+ +

+ Modify your grub.cfg (in the firmware) using this tutorial; + just change the default menu entry 'Load Operating System' to say this inside: +

+ +

+ cryptomount -a (ahci0,msdos1)
+ set root='lvm/buzz-distro'
+ linux /vmlinuz root=/dev/mapper/buzz-distro cryptdevice=/dev/mapper/buzz-distro:root quiet splash ro
+ initrd /initrd.img +

+ +

+ Additionally, you should set a GRUB password. This is not your LUKS password, but it's a password that you have to enter to see + GRUB. This protects your system from an attacker simply booting a live USB and re-flashing your firmware. This should be different than your LUKS passphrase and user password. +

+ +

+ The GRUB utility can be used like so:
+ $ grub-mkpasswd-pbkdf2 +

+ +

+ Give it a password (remember, it has to be secure) and it'll output something like:
+ grub.pbkdf2.sha512.10000.711F186347156BC105CD83A2ED7AF1EB971AA2B1EB2640172F34B0DEFFC97E654AF48E5F0C3B7622502B76458DA494270CC0EA6504411D676E6752FD1651E749.8DD11178EB8D1F633308FD8FCC64D0B243F949B9B99CCEADE2ECA11657A757D22025986B0FA116F1D5191E0A22677674C994EDBFADE62240E9D161688266A711 +

+ +

+ Put that in the grub.cfg (the one for CBFS inside the ROM) before the 'Load Operating System' menu entry like so (example):
+

+
+set superusers="root"
+password_pbkdf2 root grub.pbkdf2.sha512.10000.711F186347156BC105CD83A2ED7AF1EB971AA2B1EB2640172F34B0DEFFC97E654AF48E5F0C3B7622502B76458DA494270CC0EA6504411D676E6752FD1651E749.8DD11178EB8D1F633308FD8FCC64D0B243F949B9B99CCEADE2ECA11657A757D22025986B0FA116F1D5191E0A22677674C994EDBFADE62240E9D161688266A711
+		
+ +

+ Obviously, replace it with the correct hash that you actually got for the password that you entered. Meaning, not the hash that you see above! +

+ +

+ After this, you will have a modified ROM with the menu entry for cryptomount, and the entry before that for the GRUB password. Flash the modified ROM + using this tutorial. +

+ +

+ Update Trisquel +

+ +

+ $ sudo apt-get update
+ $ sudo apt-get upgrade +

+ +

+ At the time of writing, Trisquel 7 had this + bug from upstream. The workaround identified in this page + was as follows:
+ $ sudo apt-get remove libpam-smbpass +

+ +

+ Install a desktop (optional) +

+ +

+ Installs the default desktop:
+ $ sudo apt-get install trisquel +

+ +

+ It might ask for postfix configuration. I just choose 'No configuration'. +

+ +

+ Next time you boot, it'll start lightdm and you can login. To start lightdm now, do:
+ $ sudo service lightdm start +

+ +

+ Go back to the terminal (ctrl-alt-f1) and exit:
+ $ exit +

+ +

+ Go back to lightdm (ctrl-alt-f7) and login. +

+ +

+ Since you installed using net install and you only installed the base system, network-manager isn't controlling + your eth0 but instead /etc/network/interfaces is. Comment out the eth0 lines in that file, and then do:
+ $ sudo /etc/init.d/networking stop
+ $ sudo service network-manager restart +

+ +

+ Conclusion +

+ +

+ If you followed all that correctly, you should now have a fully encrypted system. +

+ +
+ +

+ Copyright © 2014 Francis Rowe <info@gluglug.org.uk>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. + A copy of the license can be found at ../license.txt. +

+ +

+ This document is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ../license.txt for more information. +

+ + + -- cgit v0.9.1