Configure o firewalld para o OpenVPN (server-bridge) no Fedora 20

1

Instalei um servidor OpenVPN (bridge do servidor) no Fedora 20, mas não consigo fazê-lo funcionar. Tenho quase certeza de que é um problema de firewall.

Estou tentando conectar-me a partir de um cliente OSX, mas posso conectar (basta conectar ao servidor VPN, sem acesso a qualquer coisa) antes que a ponte seja configurada no servidor, no entanto, quando configuro a interface de ponte (usando este script , então não consigo mais me conectar. Configurei-o como servidor-bridge, seguindo estes HOW-TOs de Fedora e OpenVPN Ethernet-Bridge .

A configuração do firewall é explicada usando o iptables:

iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT

No entanto, no Fedora 20, por padrão, é instalado o firewalld, então, alguém pode me dizer os comandos equivalentes usando firewall-cmd ? Eu li o guia de firewall , mas não está claro para mim como alcançá-lo (sou um desenvolvedor, não é um SysAdmin).

Eu sei que posso instalar o iptables, mas quero que ele funcione com o firewalld.

UPDATE: Após algumas leituras na página firewall-cmd man, tentei aplicar os comandos anteriores usando a opção --passthrough , ou seja:

# firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT
# firewall-cmd --permanent --direct --passthrough ipv4 -A INPUT -i br0 -j ACCEPT
# firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT

Os comandos são executados com sucesso, mas não funciona, eu também tentei usar eb em vez de ipv4 com o mesmo resultado.

A saída ifconfig é algo como:

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.40  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::c9:aff:fe02:d953  prefixlen 64  scopeid 0x20<link>
        ether 02:c9:09:02:d9:53  txqueuelen 0  (Ethernet)
        RX packets 11276  bytes 1374285 (1.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 899  bytes 240110 (234.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet6 fe80::c9:afa:fe02:d953  prefixlen 64  scopeid 0x20<link>
        ether 03:c9:0a:02:d9:53  txqueuelen 1000  (Ethernet)
        RX packets 13548  bytes 1942379 (1.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1162  bytes 269258 (262.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 117  base 0xc000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 6883  bytes 2061608 (1.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6883  bytes 2061608 (1.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

p2p0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet6 fe80::9831:16ff:fe81:3658  prefixlen 64  scopeid 0x20<link>
        ether 9a:3b:16:84:36:58  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tap0: flags=4355<UP,BROADCAST,PROMISC,MULTICAST>  mtu 1500
        ether d6:6c:20:12:f3:b6  txqueuelen 100  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.41  netmask 255.255.255.0  broadcast 0.0.0.0
        inet6 fe80::9a5b:16ff:fe81:3658  prefixlen 64  scopeid 0x20<link>
        ether 98:3b:11:81:36:58  txqueuelen 1000  (Ethernet)
        RX packets 2643  bytes 230523 (225.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5512  bytes 1726039 (1.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
por rsc1975 20.08.2014 / 09:17

2 respostas

1

A resposta à minha pergunta original é:

# firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT
# firewall-cmd --permanent --direct --passthrough ipv4 -A INPUT -i br0 -j ACCEPT
# firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT

Então, se você executar:

# firewall-cmd --permanent  --direct --get-all-passthroughs

Você terá isto:

ipv4 -A INPUT -i tap0 -j ACCEPT
ipv4 -A INPUT -i br0 -j ACCEPT
ipv4 -A FORWARD -i br0 -j ACCEPT

No entanto, ainda há algo errado, não consigo me conectar ao servidor VPN, portanto, qualquer ideia / pista será bem-vinda.

    
por 28.08.2014 / 10:05
2

O firewalld tem alguns serviços já pré-configurados que podem ser vistos com:

firewall-cmd --get-services

(Arquivo de configuração /usr/lib/firewalld/services/openvpn.xml)

Se você vir o openvpn como serviço já disponível, poderá ativá-lo com:

firewall-cmd --add-service openvpn
    
por 22.08.2014 / 23:38