Quando você executa o iptables (a ferramenta de baixo nível para manipular regras de firewall do netfilter no Linux), a regra é carregada somente no kernel e, portanto, está na RAM. Quando você desliga ou reinicializa, o kernel é reinicializado, pois a memória RAM não é persistente, e o padrão é ACEITAR para todas as tabelas (ou nenhum firewall).
Portanto, para ter um firewall disponível após a inicialização, você deve carregar as regras do iptables no kernel. Você pode fazer isso manualmente, adicionando regras iptables a um script que é executado na inicialização, como /etc/rc.local, ou use uma ferramenta para fazer isso por você. O ufw é uma dessas ferramentas e, quando ativado, ele cuidará do carregamento de regras de firewall na inicialização para você, se estiver integrado ao processo de inicialização, como o README diz. Se o ufw for empacotado para a sua distribuição, como no Ubuntu, a embalagem cuidará disso para você. Simplificando, depois de instalar o ufw via apt-get no Ubuntu, você não precisa fazer mais nada para integrá-lo ao sistema, a não ser executar 'sudo ufw enable'.