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.

Respostas:


20

Eu descobri.

Edite /etc/default/ufwe defina DEFAULT_FORWARD_POLICYpara ACEITAR :

DEFAULT_FORWARD_POLICY="ACCEPT"

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.


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


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.