82 lines
2.5 KiB
Markdown
82 lines
2.5 KiB
Markdown

|
|
|
|
# fwlnx
|
|
|
|
Firewall Linux - A small and simple Linux based Firewall Distribution
|
|
|
|
It combines a smart Linux distribution ([NixOS](https://nixos.org/)) with modern network services, a simple web interface and an API to configure it. It's not meant to be a replacement for far superiour Appliances like [pfSense](https://www.pfsense.org/) or [OPNSense](https://opnsense.org/) but as an alternative solution for typical home use. Think FRITZ!Box on steroids.
|
|
|
|
## Target platforms
|
|
|
|
- QEMU/KVM
|
|
- [PCEngines APU2/3/4](https://www.pcengines.ch/apu2.htm)
|
|
- Generic [AliExpress](https://www.aliexpress.com/wholesale?catId=0&SearchText=router+pc) Router PCs
|
|
|
|
## Planned initial features
|
|
|
|
- Firewall ([netfilter](https://netfilter.org/))
|
|
- [ ] NAT
|
|
- [ ] Rules
|
|
- [ ] UPnP ([miniupnp](https://miniupnp.tuxfamily.org/))
|
|
- [ ] DynDNS ([ddclient](https://ddclient.net/))
|
|
- VPN
|
|
- [ ] [OpenVPN](https://openvpn.net/)
|
|
- [ ] [Wireguard](https://www.wireguard.com/)
|
|
- [ ] NTP ([chrony](https://chrony.tuxfamily.org/))
|
|
- [ ] DHCP ([Kea](https://www.isc.org/kea/))
|
|
- [ ] DNS ([Knot](https://www.knot-dns.cz/))
|
|
- [ ] mDNS/DNS-SD ([Avahi](https://www.avahi.org/))
|
|
- [ ] TFTP ([Netkit TFTP](http://ftp.linux.org.uk/pub/linux/Networking/netkit/))
|
|
- [ ] Auto config backup
|
|
- [ ] Cron/Timers ([Systemd-timers](https://www.freedesktop.org/software/systemd/man/systemd.timer.html))
|
|
|
|
|
|
## Minimum hardware requirements
|
|
|
|
- x86_64 Multicore CPU
|
|
- 4GB RAM
|
|
- 64GB storage
|
|
- 2x ethernet ports
|
|
- one dedicated WAN port
|
|
- one dedicated LAN port
|
|
|
|
## Installation
|
|
|
|
TBD
|
|
|
|
## Design
|
|
|
|
### Partitioning
|
|
|
|
The partitioning schema is kept simple and will be setup like this:
|
|
|
|
UEFI/GPT:
|
|
|
|
```
|
|
/dev/sda:
|
|
/dev/sda1 vfat /boot 1G # ESP
|
|
/dev/sda2 swap [SWAP] 4G # SWAP
|
|
/dev/sda3 ext4 / 100%FREE # FWLNX
|
|
```
|
|
|
|
Minimum size for the storage is 64GB. eMMC, SATA or NVMe SSDs should be preferred to SD cards. Minimum RAM size is 4GB, but more RAM is more good. 😉
|
|
|
|
|
|
### Operating system
|
|
|
|
As the base operating system NixOS is used. The backend daemon Garmr feeds configuration into nix expressions to configure the whole system.
|
|
|
|
### [Garmr](https://gitlab.com/fwlnx/garmr)
|
|
|
|
Backend daemon which exposes all configuration options via a HTTP API.
|
|
|
|
### [Freyja](https://gitlab.com/fwlnx/freyja)
|
|
|
|
Web frontend that hooks into Garmrs API to make it easier to configure fwlnx.
|
|
|
|
|
|
---
|
|
|
|
Made with ❤️ and ❄️.
|
|
|
|
Icon partly from [stockio](https://www.stockio.com/free-icon/nature-icons-penguin)
|