How to enable IPv6 via miredo along with UFW?

Ubuntu provides some good information on how to enable UFW and on how to enable IPv6 with miredo:

  • https://wiki.ubuntu.com/UncomplicatedFirewall
  • https://wiki.ubuntu.com/IPv6

But what is missing is information on how to properly configure UFW to let Miredo work, as as soon as I enable UFW IPv6 stops working:

$ ufw disable
$ ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8004::93) 56 data bytes
64 bytes from 2a00:1450:8004::93: icmp_seq=1 ttl=56 time=1886 ms
$ ufw enable
$ ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8004::6a) 56 data bytes
ping: sendmsg: Operation not permitted

So how do I properly configure both Miredo and UFW together that basic IPv6 is working, but with all other incoming traffic being blocked?


IPv6 is disabled by default in current released versions of ufw. To enable, edit /etc/default/ufw to have:

IPv6=yes

You will also need to reload the ruleset. On newer releases of Ubuntu:

sudo ufw reload

On older releases of Ubuntu, you can restart with:

sudo /etc/init.d/ufw restart

IPv6 support in UFW has to be explicitly enabled by editing /etc/default/ufw and changing IPv6=no to IPv6=yes.