Hi there ! I have a little box at home, hosting some little services for personal use under freebsd with a full disk encryption (geli). I’m never at home and long power outage often occurs so I always need to come back home to type my passphrase to decrypt the disk.

I was searching this week a solution to do it remotely and found the “poor-guy-kvm” solutions turning a Raspberry like board (beaglebone black in my case) in a hid keyboard. It works fine once the computer has booted but once reboot when the passphrase is asked before it loads the loader menu, nothing. When I plug an ordinary USB keyboard I can type my passphrase so USB module is loaded.

Am I missing something ? Am I trying something impossible ?

(I could’ve asked on freebsd forum but… Have to suscribe, presentation, etc… Long journey)

  • markomas@lemmy.world
    link
    fedilink
    English
    arrow-up
    16
    ·
    7 months ago

    Hi, Why not to do little bit diffrently?

    1. Server boots into unencrypted kernel with ssh server (it has just that ssh server)
    2. Then you connect remotely via ssh and provide password (unlock encrypted disks etc)
    3. Then system boots to encrypted environment which you unlocked at step 2
    4. profit

    No second pc/raspberry is required

    I have this done with luks on Debian: https://hamy.io/post/0009/how-to-install-luks-encrypted-ubuntu-18.04.x-server-and-enable-remote-unlocking/ I think you can adapt something similar to your freebsd

    Quick google search found:

    https://forums.freebsd.org/threads/encrypted-root-with-unencrypted-preboot-and-reboot-r.74378/

    https://github.com/Sec42/freebsd-remote-crypto

    • Jean-Mich Much@jlai.luOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      7 months ago

      Shit, i totally missed this one, maybe not searching with good keywords… Thanks a lot, I’ve read fast for the moment so it doesn’t seems to be fully encrypted but scenario in the forum and solution proposed can answer my needs (sorry for bad English ). Thanks !

      • Appoxo@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        3
        ·
        7 months ago

        The key to a good search is to know what your are looking for.

        If you know what you are looking for
        I know how you feel brother.
        At least we have the awesome members of the community showing us the other options!

  • baduhai@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    7 months ago

    I’m not sure how it’d work for freebsd, but on Linux, you can get sshd running in your initrd. You can even go as far as getting an onion service running in your initrd, and using that for remote access.

    • Jean-Mich Much@jlai.luOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 months ago

      Yeah someone already told Me that some years ago (yeah, years ago…) but it doesn’t work exactly like that with freebsd , it’s possible but not full encrypted disk solution . thanks for your answet

  • rentar42@kbin.social
    link
    fedilink
    arrow-up
    5
    ·
    7 months ago

    I’m using encrypted ZFS as the root partition on my server and I’ve (mostly) followed the instructions in point #15 from here: https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Bookworm%20Root%20on%20ZFS.html

    This starts dropbear as an SSH server that only has a single task: when someone logs in to it they get asked for the decryption key of the root partition.

    I suspect that this could be adopted to whatever encryption mechanism you use.

    I didn’t follow it exactly, because I didn’t want the “real” SSH host keys of the host to be accessible unencrypted in the initrd, so the “locked host” has a different SSH host key than when it is fully booted, which is preferred for me.

    • Jean-Mich Much@jlai.luOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 months ago

      I’ve read that freebsd 14 proposed zfs native encryption, so it could worked. Maybe it’s time to upgrade, I will see. Thanks !

  • jellyfish@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    4
    ·
    7 months ago

    You gave some options

    • TPM 2 based disk encryption. This is basically what bitlocker does, but it isn’t great. It uses an encryption key stored on your TPM chip, that shouldn’t ever be accessible to be exported. This means the disk should only be decryptable in the machine it’s in. That in conjunction with secure boot can give you some guarantees that the only way to access data is through the the computer itself (no pulling the disk first). The issue is there are many potential vulnerabilities that could subvert this, logoFAIL being the most recent.

    • You could setup a proper KVM. The two gotos are PiKVM and TinyPilot. Jeff Geerling did a good video on these. It’ll cost a few 100 bucks but can definitely be worth it. You might consider a motherboard with a builtin KVM in your next build too.

    • Setup NBDE (Network Bound Disk Encryption). This is pretty new, but what I’m planning to move to. Redhat has an implementation with Tang & Clevis (server and clients). You might be able to eventually use Clevis with other alternative backend too.

    • Jean-Mich Much@jlai.luOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      7 months ago

      Thanks for your answer ! Someone already mention TPM, I will check about that when I will have free time. Already try pikvm and tinypilot with no success unfortunately… Didn’t know NBSDE, will take a look too !

  • markstos@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    7 months ago

    You could buy a remote KVM device. The serial port of your target box connects to that and the KVM connects to the internet. With that, you can watch the device during boot and access the console remotely.

    I used to run a web hosting business and we used those. I have not shopped for a personal one, but surely there must be old and used ones for sale.

    Bonus: our hosting business ran on FreeBSD so I can confirm there was no problem there. Because it’s a serial connection no OS support is required.

    • Jean-Mich Much@jlai.luOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 months ago

      Hmm I’ve read it’s expensive but never verified I admit it. And no serial port on my box… Will check the price of new and second hand device

    • Jean-Mich Much@jlai.luOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      7 months ago

      Hmm seems to be hid keyboard “emulator” too. Having tried this kind of solution makes me think I have a problem with the hid module at boot so I will maybe abandoned this solution, will see. Thanks for your answer !

  • Possibly linux@lemmy.zip
    link
    fedilink
    English
    arrow-up
    3
    ·
    7 months ago

    I think you are over thinking it. Most remote solutions like rustdesk and moonlight allow you to remotely log in.

    Another thought is you could setup cockpit so you can control it remotely if everything else fails

  • taladar@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 months ago

    Not sure about FreeBSD but under Linux I have used SSH based solutions in the past, specifically dracut-sshd to call systemd-tty-ask-password-agent and of course some early network configuration.

    • Jean-Mich Much@jlai.luOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      7 months ago

      Yeah someone already told Me that some years ago (yeah, years ago…) but it doesn’t work exactly like that with freebsd , it’s possible but not full encrypted disk solution . thanks for your answer

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    7 months ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    IP Internet Protocol
    PCIe Peripheral Component Interconnect Express
    SSH Secure Shell for remote terminal access
    ZFS Solaris/Linux filesystem focusing on data integrity

    4 acronyms in this thread; the most compressed thread commented on today has 12 acronyms.

    [Thread #340 for this sub, first seen 8th Dec 2023, 22:45] [FAQ] [Full list] [Contact] [Source code]