https://github.com/talex5/qubes-mirage-firewall/releases/tag/v0.4
This is a unikernel that can run as a QubesOS ProxyVM, replacing sys-firewall. It may be useful if you want something smaller or faster-to-start than the Linux-based sys-firewall, are worried about possible attacks against Linux's C net-front code, or just like playing with unikernels.
Changes since 0.3:
- Add support for HVM guests (needed for Qubes 4). I don't use Qubes 4 myself yet, but other people have said it works now for them. Note that the firewall itself must still have virt_mode set to 'pv'.
- Add support for disposable VMs.
- Drop frames if an interface's queue gets too long.
- Show (log) the packet when failing to add a NAT rule. The previous message was just: WRN [firewall] Failed to add NAT rewrite rule: Cannot NAT this packet
For installation instructions, see:
https://github.com/talex5/qubes-mirage-firewall/blob/master/README.md
For a blog post explaining the background for this, with a walk-through of the code, see:
http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
Thanks, will probably try it out later this week. :)
Yes. With Qubes 4, it should be possible to update the rules at runtime from QubesDB (see https://github.com/talex5/qubes-mirage-firewall/issues/24), but that isn't implemented yet.
Hi All
i tried to install mirage-firewall followed by the Readme . and didn't succeed
to run the mirage firewall .
error : libxenlight failed to create new domain log
2017-12-22 19:13:01.320+0000: libxl: libxl_device.c:1235:device_hotplug_child_death_cb: script: Device /dev/mapper/snapshot-fd01:25956374-fd01:25956356-fd01:26346316 does not exists error
any help ?
Followed the Readme . put the files inside the /var/lib/qubes/vm-kernels/ and create app vm 32 MB _ 1cpu choose the the mirage kernel . and trying to start .
Am i doing somethng wrong ?
i am using qubes 4 rc3
R
There is only hvm on qubes4 .
It should work also on version 4 . This was the new release all about .
I have been using the following script to create mirage qubes on R4-rc3.
setpref () {
qvm-prefs --set "$vm_name" "$1" "$2"
}
qvm-create --label "$color" "$vm_name"
setpref virt_mode pv
setpref kernel "$kernel"
setpref kernelopts ""
setpref memory "$memory"
setpref maxmem "$memory"
setpref vcpus 1
autostart D False
backup_timestamp D
debug - False
default_dispvm D fedora-25-dvm
default_user D user
gateway D
gateway6 D
include_in_backups D True
installed_by_rpm D False
ip D 10.137.0.33
ip6 D
kernel - mirage-firewall
kernelopts D nopat
klass D AppVM
label - green
mac D
maxmem - 320
memory - 32
name - mirage-firewall
netvm - sys-net
provides_network - False
qid - 33
qrexec_timeout D 60
stubdom_mem U
stubdom_xid D -1
template - fedora-26-minimal
template_for_dispvms D False
updateable D False
uuid - 378b816e-b7bf-4ec3-a22a-03218cc433bd
vcpus - 1
virt_mode - pv
visible_gateway D 10.137.0.5
visible_gateway6 D
visible_ip D 10.137.0.33
visible_ip6 D
visible_netmask D 255.255.255.255
xid D -1
Someone ???
Try changing provides_network:
$ qvm-prefs mirage-firewall provides_network True
$ cat create-mirage-firewall-vm
#!/bin/bash
qvm-create \
--property kernel=mirage-firewall \
--property kernelopts=None \
--property memory=32 \
--property maxmem=32 \
--property netvm=sys-net \
--property provides_network=True \
--property vcpus=1 \
--property virt_mode=pv \
--label=red \
--class StandaloneVM \
mirage-firewall
Great , it is working .
Thanks to all