Portál AbcLinuxu, 30. dubna 2025 16:48

Raspberry Pi - remote unlock encrypted btrfs root mini-howto

1.4.2016 22:12 | Přečteno: 1967× | Linux | Výběrový blog | poslední úprava: 1.4.2016 22:11

How to setup fully encrypted btrfs root for RPi, including ssh unlock

  1. prepare RPi and SD card
  2. on another PC download Raspbian image :
  3. https://www.raspberrypi.org/downloads/raspbian/

  4. unzip the image
  5. unzip *raspbian-jessie.zip

  6. dd it to the sd card
  7. sudo dd if=*raspbian-jessie.img of=/dev/sdX (the device of your sd card) bs=40M

  8. put the card to your RPi and boot it
  9. install missing tools :
  10. apt-get install dropbear busybox btrfs-tools cryptsetup

  11. add your public ssh key to RPi's
  12. mkdir /etc/initramfs-tools/.ssh
    /etc/initramfs-tools/root/.ssh/authorized_keys
  13. Create /etc/initramfs-tools/conf.d/network_config with contents like this:
  14. export IP=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
    
    or
    export IP=dhcp
  15. edit /etc/initramfs-tools/modules and add:
    btrfs
    to the end
  16. create /etc/crypttab and add :
    sdcard /dev/mmcblk0p2 none luks
  17. edit /boot/config.txt and add :
    initramfs initrd followkernel
    ramfsfile=initrd
    ramfsaddr=-1
  18. edit /boot/cmdline.txt , change root=/dev/mmcblk0p2 to root=/dev/mapper/sdcard and add cryptdevice=/dev/mmcblk0p2:sdcard rootflags=subvol=raspbian
  19. edit /etc/fstab and change /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 to /dev/mapper/sdcard / btrfs compress,noatime,subvol=raspbian 0 0
  20. create fake root
    truncate -s 100M fakeroot.img
  21. set it up with
    cryptsetup cryptsetup luksFormat fakeroot.img
  22. open it with cryptsetup
    cryptsetup luksOpen fakeroot.img sdcard
  23. create temporary filesystem :
    mkfs.btrfs /dev/mapper/sdcard
  24. create initram :
    mkinitramfs -v -o /boot/initrd
  25. close the temporary device :
    cryptsetup luksClose sdcard
  26. remove the temp file :
    rm /root/fakeroot.img
  27. poweroff the RPi :
    poweroff
  28. take out the SD card and put it to another PC
  29. mount the second partition
    mount /dev/sdX2 /mnt
  30. create temp directory
    mkdir /root/sd_temp
    and rsync the RPi there
    rsync -aD --verbose --progress /mnt/ /root/sd_temp/
  31. umount the RPi SD card
    umount /mnt
  32. cryptsetup format it as you wish (perhaps using a key)
    cryptsetup luksFormat /dev/sdX2
  33. open it
    cryptsetup luksOpen /dev/sdX2 sdcard
  34. format the device with btrfs
    mkfs.btrfs /dev/mapper/sdcard
  35. mount it
    mount -o compress /dev/mapper/sdcard /mnt
  36. create subvolume for the system
    btrfs subv crea /mnt/raspbian
  37. rsync the filesystem back
    rsync -aD --verbose --progress /root/sd_temp/ /mnt/raspbian/
  38. umount the filesystem
    umount /mnt
  39. close the crypt file system
    cryptsetup luksClose sdcard
  40. remove the SD card, put it to RPi, boot and you are done!
       

Hodnocení: 89 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Diskuse byla administrátory uzamčena

2.4.2016 11:31 0ka můra
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Jsi na českém serveru, piš česky nebo přinejhorším východním nářečím jazyka československého. Tyhle cizojazyčné bláboly každého jenom otravují. Tataři, co neumí česky, mohou použít google translator do jejich rodné Tatarštiny. Naši pradědové vynaložili spoustu energie na to, aby se náš krásný jazyk rozvinul až do podoby, ze které degeneruje až do jeho dnešního stavu.
2.4.2016 14:20 David Indra | skóre: 15 | Prostějov
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Nevidím v tom problém. Nedávno tady byl blog od Bystroushaaka, taky anglicky, jak řekl, kvůli tomu, aby měl vyšší čtenost. Na něj, jestli se nepletu, nikdo nekafral...
3.4.2016 10:18 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Kafral, ale tyhle stesky mi můžou být v prdeli. Abclinuxu má bohatou tradici v psaní anglických blogů a ostatně nechápu co by komu mělo být po tom, jakým jazykem sem kdo píše. Zrovna u technických článků, které píší o něčem novém mi přijde lepší cílit na skupinu 840 milionů lidí, než na skupinu 10 milionů, speciálně v případě, kdy téměř každý z té druhé skupiny anglicky stejně mluví a když to náhodou bude chtít vyhledat, tak použije anglické keywordy.
9.4.2016 09:10 kolcon | skóre: 15 | blog: kolcon
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto

Na druhou stranu, proc ne. Priste se na ne opravdu vy... a hodim to jinam.

9.4.2016 11:55 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Abclinuxu má takovou divnou tradici chovat si tu na prsou zmije v podobě různých trolů a demence. Rozhodně bys nebyl první, koho by odsud vystrnadili, ale přišla by mi škoda to takhle vzdát.
9.4.2016 23:45 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
priste se spis vykasli na nejakeho zdegenerovaneho vy(Mr)da ;)
porad nemam telo, ale uz mam hlavu... nobody
6.4.2016 12:49 Ruža Becelin | skóre: 40 | blog: RuzaBecelinBlog
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Tak kdyby tohle bylo taky anglicky, tak treba taky nikdo nekafra ;-)
2.4.2016 16:13 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
skrytý komentář Náš administrátor shledal tento komentář závadným.

Vulgarity.

Zobrazit komentář
4.4.2016 08:31 SYSMAN | skóre: 24 | blog: SYSMAN | Veselí nad Moravou
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
+1 přesně tak. Angličmani ať si to píšou na cizích serverech. Sem patří echt gold čeština či bratrština.
4.4.2016 12:45 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
-1 spis hateri/fnukari at si jdou psat komentare na jinej server ty echt golde ;)
porad nemam telo, ale uz mam hlavu... nobody
2.4.2016 20:03 Vantomas | skóre: 32 | Praha
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Nevidím, že by nějak byla řešena kontrola toho initrd zda nedošlo k neoprávněné úpravě. Takto se může stát, že útočník upraví SD kartu, pravý vlastník se pak připojí přes SSH a zadá heslo k šifrovanému oddílu a hle, útočník získal heslo.

A tak nějak všechna tato remote unlock řešení tímto trpí. To to nikoho netrápí a nikdo to neřeší? To pak nemá cenu to ani šifrovat.
2.4.2016 22:22 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Trápí, ale pokud nemáš TPM a SecureBoot, tak se to vyřešit nedá.
3.4.2016 10:47 Georgius
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
No, podle mne se to bezpečně udělat dá - všechny SD karty, co jsem měl v ruce, měly HW přepínátko na read-only. Takže nakonfigurovat, přepínátko dát do RO, díru zalejt nějakým sajrajtem ála montážní pěna a initrd nikdo neupraví;-).
3.4.2016 14:48 Pavel Píša | skóre: 18 | blog: logic
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Na MicroSD posuvný kousek plastu není. Přitom i na SD kartě ten plast neovlivňuje nic na kartě. Pouze slot může do driveru předat přes mechanický "senzor", že je karta v RO režimu a záleží jen na driveru, jestli tím bude nebo nebude zajímat.

Kartu lze ale zamknout softwarovými příkazy. A to jak tak, že to zle jiným příkazem zrušit, tak i takovým způsobem, že již karta nikdy přepsat nepůjde. Kartu lze také zamykat heslem, ale asi jen kompletně, ne jen do RO režimu.
21.4.2016 04:19 ChronicPain | blog: chronicPain
Rozbalit Rozbalit vše Nevim, jestli jste jen in...
Nevim, jestli jste jen iniciativni anebo i ke mne chovate nejake antipatie, je mi to jedno, ale neprijde mi spravne, aby takoveto rozhodnuti (presunuti vlakna) mohl udelat jen jeden clovek ze sve vule. Pokud zacne dochazet k umrtim v souvislosti s tim, ze si pacient peci nemohl dovolit, bude to dukaz toho, ze stavajici stav prerozdelovaciho statniho pojisteni je jen zlodejina, protoze lide nejsou tak solidarni, jak nam socialiste tvrdi, kdyz haji a legitimizuji nechutne povinne zdravotni pojisteni. Tento system muze pomoci ke zlevneni vyroby robotu, z cehoz muze tezit vojenstvi a take muze dojit k nahrazeni zbytecnych lidskych zdroju ve vyrobe. A pokud dotycny nadrecnik chce ochotne prispivat na vzdelani cizich lidi, muze tak cinit on a jemu podobni dobrovolne bez nutnosti existence statniho zbytneleho aparatu, ale neni pripustne, aby toto vynucoval na ostatnich, kteri takto prispivat nechteji. Firemni procesy se nedelaji jen tak a vy jako zamestnanec nemate a nemuzete mit dostatecne sirokou perspektivu na to, abyste se takto mohl rozhodovat z vlastni vule kvalifikovane.
http://www.klaus.sk/ – energeticky úsporné vykurovacie systémy
3.4.2016 15:47 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Přepínač RO/RW na kartě mechanicky přepne kontakt ve čtečce a je jen na ní, jestli toto přepnutí bude respektovat.

Můžu tu kartu zkopírovat na jinou a dát tam tu.

Můžu si do FPGAčka naprogramovat MITM na ten protokol, kterým se s kartou komunikuje, a udělat, aby to třeba na začátku podvrhlo jiný kernel a pak už se to tvářilo normálně.
4.4.2016 21:19 Dreit | skóre: 15 | blog: Dreit a jeho dračí postřehy | Královehradecký kraj
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto

Krásným příkladem budiž CHDK :-)

Nope
21.4.2016 22:56 ChronicPain | blog: chronicPain
Rozbalit Rozbalit vše Nebo by to mohlo jit i ko...
Nebo by to mohlo jit i komunitni cestou. To nebude nic moc.
http://www.klaus.sk/ – energeticky úsporné vykurovacie systémy
4.4.2016 22:59 ⧠ A = 0 | skóre: 11 | blog: Technokratovo_zrcadlo | Helsinki
Rozbalit Rozbalit vše Re: Raspberry Pi - remote unlock encrypted btrfs root mini-howto
Кажется, пора также написать какой-нибудь блог.
Nevolte zmrdy.
21.4.2016 10:57 ChronicPain | blog: chronicPain
Rozbalit Rozbalit vše Diky za zajimavy clanek....
Diky za zajimavy clanek.
http://www.klaus.sk/ – energeticky úsporné vykurovacie systémy

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.