Como configurar o UFW para permitir o encaminhamento de IP?

18

Eu tenho o UFW, o OpenVPN e o Virtualbox instalados no meu servidor doméstico. Eu tenho uma rede somente host para meus convidados da máquina virtual (vboxnet0) configurados com o intervalo de IP 10.0.1.0 e outro intervalo de 10.0.0.0 configurado na outra extremidade da conexão OpenVPN.

O Encaminhamento de IP está configurado no host, portanto, quando o UFW está desabilitado, eles podem se comunicar sem problemas. No entanto, eu gostaria de executar o UFW, pois esse host estará acessível na Web e eu gostaria de algum controle de acesso.

Como posso configurar o UFW para permitir esse tipo de tráfego?

Eu tentei várias combinações de: ufw allow allow in|out on vboxnet0|tun0sem sucesso.

Minhas regras UFW são:

root@gimli:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
Anywhere                   ALLOW       10.0.0.0/16
Anywhere on vboxnet0       ALLOW       Anywhere
Anywhere on tun0           ALLOW       Anywhere

Anywhere                   ALLOW OUT   Anywhere on vboxnet0
Anywhere                   ALLOW OUT   Anywhere on tun0

Qualquer ajuda seria muito apreciada.

Stephen RC
fonte

Respostas:

20

Eu descobri.

Edite /etc/default/ufwe defina DEFAULT_FORWARD_POLICYpara ACEITAR :

DEFAULT_FORWARD_POLICY="ACCEPT"
Stephen RC
fonte
10
Existe alguma maneira de permitir apenas o encaminhamento de portas específicas, sem configurá-lo para ACEITAR tudo?
Marcus Downing
11
Eu acho que você precisa reiniciar o ufw depois de editar o arquivo:service ufw restart
Minh Danh
10

Agora é possível - na página de manual do ufw:

As regras para o tráfego não destinado ao próprio host, mas para o tráfego que deve ser roteado / encaminhado através do firewall devem especificar a palavra-chave route antes da regra (as regras de roteamento diferem significativamente da sintaxe PF e, em vez disso, levam em consideração as convenções de cadeia FORWARD do netfilter) . Por exemplo:

     ufw route allow in on eth1 out on eth2

Isso permitirá que todo o tráfego roteado para eth2 e chegando no eth1 atravesse o firewall.

     ufw route allow in on eth0 out on eth1 to 12.34.45.67 port 80 proto tcp

Esta regra permite que todos os pacotes que entram no eth0 atravessem o firewall no eth1 para a porta 80 do TCP em 12.34.45.67.

Além das regras e políticas de roteamento, você também deve configurar o encaminhamento de IP. Isso pode ser feito configurando o seguinte em /etc/ufw/sysctl.conf:

     net/ipv4/ip_forward=1
     net/ipv6/conf/default/forwarding=1
     net/ipv6/conf/all/forwarding=1

depois reiniciando o firewall:

     ufw disable
     ufw enable

Esteja ciente de que a configuração dos ajustáveis ​​do kernel é específica do sistema operacional e as configurações do ufw sysctl podem ser substituídas. Veja a página de manual do sysctl para detalhes.

Michal Sylwester
fonte
11
Para aqueles de nós que desejam permitir tráfego tcp entre clientes OpenVPN em um servidor OpenVPN, isso funciona. Por exemplo: ufw route permitir em tun0 fora em tun0
logion
Para o registro ufw routeestá presente desde a versão 0.34
Joril 02/12/19
7

se você definir DEFAULT_FORWARD_POLICY para ACCEPT em / etc / default / ufw, o firewall encaminhará todos os pacotes, independentemente das configurações da interface do usuário.

Eu acho que a interface do usuário é apenas para filtragem simples de entrada / saída. Para encaminhar, você precisa adicionar regras do iptables em /etc/ufw/before.rules como aqui:

-A ufw-before-forward -i eth1 -p tcp -d 192.168.1.11 --dport 22 -j ACCEPT

Você provavelmente já possui uma regra que permite conexões de dentro para fora e outra que permite que pacotes de sessões tcp relacionadas e estabelecidas retornem.

Eu não sou especialista em iptables, levei muito tempo para descobrir isso (com ip6tables, mas deve ser semelhante). Talvez isso não seja o suficiente no seu caso.

Melhores cumprimentos

Jay Christnach
fonte
4

Este comando ufw funcionou muito bem para mim: sudo ufw default allow FORWARD

Para garantir que a alteração seja aplicada: sudo service ufw restart

dcborg
fonte
Isso gera um erro "Sintaxe inválida". Os documentos dizem que "DIRECTION é um de entrada, saída ou roteado".
ColinM
@ColinM isso funcionou para mim no Xubuntu 16.04.5 LTS
baptx
FORWARDfunciona como alias para routedno Ubuntu
patricktokeeffe