I have started work on a new derivative distribution, should be similar to Whonix except based on I2P & Fedora instead of Tor. Problem is there are a few key points where I am struggling.
- Packaging specific softwares, I have already successfully built and packaged some of what I need, mainly i2p itself, java-service-wrapper, and kloak. However I can’t get monero-gui or tor’s base browser(tor browser has a “base browser“ which acts as a base for tbb and mullvad) to compile in mock. I also have plans to possibly include veracrypt, as well as a couple other softwares, but I should be able to handle those on my own. I need all software to be able to build with the rpmfusion-free template over F43(F42 is fine too, specs shouldn’t need too many modifications between the two).
- nftables rules for both client and gateway virtual machines, I will not be using firewalld or relying on legacy iptables. Here is some documentation about i2p’s ports: Ports Used by I2P - I2P . The goal is to get the client vm to forward packets to the gateway using systemd-socket-proxyd. I can setup systemd-socket-proxyd to forward the correct ports, but I’m not sure how to label the correct ports with systemd_socket_proxyd_port_t by default.
- I believe it may also be necessary to setup automated tests for IP leakage or other issues that may arise.
- Building an iso file installer, I’m not sure where to start. I know my way around a kickstart file, but I’ve never built an iso before. I’m also not sure if it’s necessary to do things such as deleting /usr/lib/systemd/systemd-random-seed, either on the generated iso itself or in the system that the iso would be installing in order to avoid everyone having the same random seed. I’m planning on basing my first testing releases on F43, so the new anaconda would need to be accounted for rather than the old one.
- I would also like to have an automated system for setting up i2p, without user interaction. Setting defaults is simple enough however there’s no way to set sensible defaults for everyone for something like allocated bandwidth or ram. Worst case scenario, Lynx can be installed by default on the gateway(the gateway will be cli only).
- I’m also struggling to get the upnp function in i2p to work properly in a kvm/qemu virtual machine. Even with my firewalls completely disabled. If someone can figure out how to get that working that would be great.
At some point I would also like to setup repos that only work over i2p, however this will be a somewhat costly endeavor, at least to maintain enough mirrors for high uptime. At the moment I am not soliciting any donations or resources to make this happen. If there is enough interest in this project and I can get a functional beta, then I will worry about setting up repos.
Any and all help is welcome and appreciated, no matter how small.