Como bloquear todas as conexões sem VPN?

Conectei VPN nas configurações do sistema, tem como bloquear todas as conexões sem? Como um kill-switch.

NetworkManager.
OpenVPN.
AlmaLinux (RHEL 9).

O NetworkManager não oferece este recurso, portanto a maneira encontrada basicamente é configurar o Firewall para bloquear a saída de todos os processos que não sejam o cliente OpenVPN.

  1. Crie um grupo para o OpenVPN.
groupadd -r ovpn
  1. Adicione em sua configuração do OpenVPN a seguinte linha.
group ovpn
  1. Configure as regras para o Firewall
# Delete todas as regras
iptables -F

# A política padrão, se nenhuma outra regra corresponder, é recusar o tráfego.
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP

# Permita somente o grupo recém criado se comunicar.
iptables -A OUTPUT -j ACCEPT -m owner --gid-owner ovpn

# Permita os dispositivos necessários para a VPN 
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A OUTPUT -j ACCEPT -o tun+
    
# Permita as respostas
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED

Mais informações segue os links Forçar o tráfego através do túnel VPN e Kill Switch OpenVPN.

1 curtida