web/README.md
2021-03-01 21:17:28 +00:00

2.2 KiB

fwlnx

fwlnx

Firewall Linux - A small and simple Busybox/Linux Firewall Distribution

It combines an optimized Linux Kernel, Busybox and a simple Webinterface and API to configure. It is not meant to be a replacement to far superiour Appliances but as an alternative solution for typical home use.

Target platforms

Planned initial features

  • Firewall
    • NAT
    • Rules
    • UPnP
  • DynDNS
  • VPN
    • OpenVPN
    • Wireguard
  • NTP
  • DHCP
  • DNS
  • Auto config backup
  • Cron/Timers

Design

Partitioning

MBR/BIOS:

/dev/disk:
  /dev/disk1  ext4                   /boot
  /dev/disk2  swap                   [SWAP]
  /dev/disk3  btrfs@home             /home
  /dev/disk3  btrfs@root-2021-04-01  /
  /dev/disk3  btrfs@root-2021-04-20  /
  /dev/disk3  btrfs@conf-2021-04-01  /config
  /dev/disk3  btrfs@conf-2021-04-20  /config
  • Every installed release has it's own subvolume for rootfs and config in case a configuration changes with an update
  • The user can choose which one to boot into

Update flow

State before the update:

  • boot entry last is set to version 1 (last known working version)
  • boot entry current is also set to version 1
  • on every boot the default boot entry is set to last automatically in early boot

Update process:

  • a new version is downloaded as a btrfs snapshot and put into place as version 2

  • current boot entry is modified to boot the new version

  • current is set as default boot entry

  • device reboots into new version 2 via current boot entry

  • early boot sets last as default boot entry

  • after successful boot:

    • the user marks the system as functional which sets the last boot entry to the current version
  • if something goes wrong:

    • the system reboots, now with the last entry being the default booting into the last known working system
    • the user gets displayed an error because last and current is not the pointing to the same version and last is booted indicating an error

Made with ❤️ and 🪄✨.

Icon partly from stockio