OpenVPN + Bridge
Configuração do OpenVPN em modo bridge e autenticação por par de chaves, onde será criada uma C.A. no próprio servidor e os clientes que se autenticarem neste ganharão um ip na interface tap válido na rede interna, com seu gateway e DNS caso possua.
Parte 4: Configuração da bridge entra a interface virtual e real
Agora criaremos a tal bridge (ponte) entre a interface virtual da vpn e a interface real do servidor. Baixe o pacote bridge-utils ou instale o pacote através do apt-get. Em um terminal digite:
# apt-get install bridge-utils
Entre no diretório /etc e crie o arquivo bridge-start com seu editor preferido:
# cd /etc
# vim bridge-start
Inclua as seguintes linhas:
Salve e saia.
Torne este arquivo executável:
# chmod +x bridge-start
Agora vamos criar o arquivo bridge-stop para quando precisar para o serviço. Utilize o seu editor preferido para isso:
# vim bridge-stop
E inclua as seguintes linhas:
Salve, saia e torne o mesmo executável:
# chmod +x bridge-stop
Ainda no diretório /etc, altere o arquivo rc.local com seu editor preferido:
# vim rc.local
E inclua as seguintes linhas no final do arquivo:
Salve e saia.
# apt-get install bridge-utils
Entre no diretório /etc e crie o arquivo bridge-start com seu editor preferido:
# cd /etc
# vim bridge-start
Inclua as seguintes linhas:
#!/bin/bash
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="(coloque um ip válido para sua rede)"
eth_netmask="(máscara da sua rede)"
eth_broadcast="(broadcast da sua rede)"
for t in $tap;
do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap;
do
brctl addif $br $t
done
for t in $tap;
do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="(coloque um ip válido para sua rede)"
eth_netmask="(máscara da sua rede)"
eth_broadcast="(broadcast da sua rede)"
for t in $tap;
do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap;
do
brctl addif $br $t
done
for t in $tap;
do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
Salve e saia.
Torne este arquivo executável:
# chmod +x bridge-start
Agora vamos criar o arquivo bridge-stop para quando precisar para o serviço. Utilize o seu editor preferido para isso:
# vim bridge-stop
E inclua as seguintes linhas:
#!/bin/bash
####################################
# Tear Down Ethernet bridge on Linux
####################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged together
tap="tap0"
ifconfig $br down
brctl delbr $br
for t in $tap; do
openvpn --rmtun --dev $t
done
####################################
# Tear Down Ethernet bridge on Linux
####################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged together
tap="tap0"
ifconfig $br down
brctl delbr $br
for t in $tap; do
openvpn --rmtun --dev $t
done
Salve, saia e torne o mesmo executável:
# chmod +x bridge-stop
Ainda no diretório /etc, altere o arquivo rc.local com seu editor preferido:
# vim rc.local
E inclua as seguintes linhas no final do arquivo:
#Inicia a bridge da OpenVPN
/etc/bridge-start
#Ativa compartilhamento de rede
echo 1 > /proc/sys/net/ipv4/ip_forward
#Escreve as regras de firewall da OpenVPN
/sbin/modprobe ppp_generic
/sbin/modprobe ppp_synctty
/sbin/modprobe n_hdlc
/sbin/modprobe tun
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
iptables -A INPUT -i br+ -j ACCEPT
iptables -A FORWARD -i br+ -j ACCEPT
/etc/bridge-start
#Ativa compartilhamento de rede
echo 1 > /proc/sys/net/ipv4/ip_forward
#Escreve as regras de firewall da OpenVPN
/sbin/modprobe ppp_generic
/sbin/modprobe ppp_synctty
/sbin/modprobe n_hdlc
/sbin/modprobe tun
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
iptables -A INPUT -i br+ -j ACCEPT
iptables -A FORWARD -i br+ -j ACCEPT
Salve e saia.
Vou testar logo que possa.
Parabéns!