Estou tentando configurar um servidor OpenVPN em um VPS executando o Fedora Server 35. Configurei a VPN e estou funcionando, mas estou tendo problemas com a configuração do firewall.
Esta é minha primeira experiência administrando um firewall, e também não sou nativo de Linux, mas estou tentando aprender. Segui um guia para uma instância do CentOS, mas como o CentOS não existe mais, optei por uma imagem do Fedora no Contabo.
O guia baseou-se no firewalld
, e como já estava instalado e parcialmente configurado no meu VPS, fiz o mesmo. Eu sei que esse firewalld
é o problema porque quando eu o desligo, o cliente VPN se conecta sem problemas.
Existem 2 zonas ativas configuradas FedoraServer
e trusted
. A FedoraServer
zona veio pré-configurada com a imagem VPS e foi configurada como zona padrão. Usei os seguintes comandos para alterar a configuração conforme o guia:
firewall-cmd --zone=trusted --add-service openvpn
firewall-cmd --zone=trusted --add-service openvpn --permanent
firewall-cmd --add-masquerade
firewall-cmd --add-masquerade --permanent
VAR=$(ip route get 1.1.1.1 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $VAR -j MASQUERADE
firewall-cmd --reload
As informações da zona atual são as seguintes:
[~]# firewall-cmd --info-zone=FedoraServer
FedoraServer (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: no
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[~]# firewall-cmd --info-zone=trusted
trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: tun0
sources:
services: openvpn
ports:
protocols:
forward: yes
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
A ressalva interessante é que quando eu defino trusted
como zona padrão, consigo me conectar à VPN em firewalld
execução, com o NAT funcionando e com acesso à Internet.
Agora, você poderia dizer problema resolvido. Mas devido à minha falta de conhecimento, estou preocupado em estar deixando uma falha na segurança porque a trusted
zona usa target: ACCEPT
.
Eu li inúmeros tópicos no StackExchange, nos fóruns do Fedora e nos fóruns do OpenVPN, bem como firewalld
documentos sem nenhum resultado. Sinto que estou perdendo o conhecimento básico de rede para descobrir isso e não sei mais o que procurar.
Qualquer ajuda, dicas ou orientações serão apreciadas!
Você poderia adicionar serviços à zona confiável e depois alterar a aceitação para descartar Por exemplo para permitir apenas openvpn e ssh você pode fazer assim
Parece que você está no caminho certo e fez um bom progresso na configuração do seu servidor OpenVPN no Fedora 35. A principal preocupação é garantir que as configurações do seu firewall estejam seguras e não deixem falhas desnecessárias.
Vamos abordar suas preocupações e fornecer algumas orientações:
Zona padrão:
É comum ter zonas diferentes para finalidades diferentes. Se definir confiável como zona padrão permitir que sua VPN funcione, tudo bem. No entanto, você apontou corretamente a preocupação com o alvo: ACEITAR. Em uma configuração mais segura, você desejaria limitar o acesso apenas aos serviços necessários.
Zona do Servidor Fedora:
Se você quiser usar a zona FedoraServer como padrão, você precisa garantir que ela permite o tráfego necessário para OpenVPN. Você mencionou que o OpenVPN funciona quando confiável é definido como padrão, portanto, pode ser útil comparar as configurações entre as duas zonas. Ajustando a zona FedoraServer:
Se você decidir usar a zona FedoraServer como padrão, você precisará adicionar regras para permitir o tráfego OpenVPN. Por exemplo:
firewall-cmd --zone=FedoraServer --add-service=openvpn --permanent firewall-cmd --reload