Balanceamento de links Utilizando iptables e iproute2

O texto original pode ser encontrado em http://www.linux-es.org.br/artigos/bolinho00.html Uma cópia do texto também pode ser encontrada no link: http://www.gulbf.com.br/index.php?option=com_content&task=view&id=69&Itemid=43

Introdução:

Com o barateamento de links de acesso a internet e o aparecimento da conexão de banda-larga a um valor acessível, muitas empresas e edifícios residenciais começaram a utilizar soluções para prover acesso à internet através de pequenos servidores (routers) que fazem a comunicação entre a rede do cliente e a internet. Nesse momento surgiu a idéia de juntar duas conexões com a internet de modo que um unico canal de saída fosse visto fazendo com que a velocidade da conexão fosse duplicada, consequentemente barateando o custo de uma conexão de por exemplo 1Mbps, que sai pelo valor de 2 conexões ADSL de 512Kbps.

Para por em prática a idéia de se utilizar o balancemento de conexão com a internet e até mesmo o serviço de redundância a falhas contra queda de conexão, foi elaborado este “mini HOW-TO” que demonstra de forma simples e clara como esse tipo de configuração pode ser feita. Dando assim o chute inicial para que outros scripts com mais funcionalidades e mais complexos possam ser criados. Requisitos:

Alguns requisitos são vitais para o funcionamento deste tipo de configuração tais como os ja descritos no título do artigo:

*
Iptables
*
Iproute2
*
Scripts de inicialização das conexões (caso seja velox, ou serviço parecido)

Cenário:

O cenário utilizado para a demonstração do exemplo é um edifício residencial no qual existem duas conexões com a internet através de assinaturas de acesso a banda-larga (Velox). Os dois modems ADSL estão configurados como ROTEADORES e existe um servidor linux (distribuição a escolha) com 3 placas de rede que estão configuradas da seguinte maneira:

eth0: Rede interna (Rede do edifício) – (192.168.0.1/255.255.255.0)
eth1: Conexão Velox #1 – (192.168.1.2/255.255.255.0)
eth2: Conexão Velox #2 – (192.168.2.2/255.255.255.0)

bolinho-balanceamento.jpg

O dispositivo de rede eth0 está ligado a um switch aonde as demais máquinas dos apartamentos estão conectadas.

OBS: Neste cenário devemos ressaltar que todos os computadores da rede interna do edifício poderão se comunicar por estarem ligadas diretamente ao segmento da rede. Configurações:

Primeiro Passo: Inicializando as conexões.

Neste ponto começarei a mostrar os scripts utilizados para a configuração do servidor. Vou começar mostrando algumas configurações que foram feitas dentro do /etc/rc.local, que acabaram sendo de grande ajuda para que o serviço funcionasse corretamente.

#———————————- /etc/rc.local ———————————
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

echo “Inicializando conexao com a internet..”
/sbin/ifdown eth1
/sbin/ifdown eth2

echo “Iniclizando VELOX #1”
/sbin/ifup eth1
/sbin/route add default gw 192.168.1.1
/etc/firewall/ip-velox.pl

echo “Inicializando VELOX #2”
/sbin/ifup eth2
/sbin/route del default gw 192.168.1.1
/sbin/route add default gw 192.168.2.1
/etc/firewall/ip-velox.pl

/sbin/route del default gw 192.168.2.1

echo “Configurando o firewall”
/etc/firewall/firewall.sh
#———————————- /etc/rc.local ———————————

Essas configurações foram feitas para que o velox pudesse conectar-se automaticamente usando o script ip-velox.pl (Desenvolvido pelo Fabio Vilan, e pode ser encontrado em http://www.isec.com.br/velox).

OBS: Não sei informar se este script ainda consegue conectar-se ao velox. O legal dele é a parte de teste de conexão (testa se está ativa ou não).

As configurações das rotas foram necessarias para que cada velox pudesse conectar e autenticar-se pois o problema que geralmente acontece quando se tem duas conexões no mesmo computador é que, quando a primeira conexão é estabelecida a rota padrão é automaticamente definida, assim a segunda conexão fica perdida, tentando enviar pacotes que usam a rota padrão, neste caso pela primeira que já está estabelecida. Assim não conseguiamos autenticar a segunda conexão do velox.

Lendo-se o script é possível identificar os passos para o estabelecimento das conexões:

1.
Derruba as duas conexões (uma de cada velox);
2.
Levanta a placa do primeiro velox (Velox #1);
3.
Adiciona uma rota padrão para esta placa que foi inicializada;
4.
Tenta se conectar e autenticar utilizando o script ip-velox.pl;
5.
Levanta a placa do segundo velox (Velox #2);
6.
Deleta a rota padrão criada para o primeiro velox (Velox #1);
7.
Adiciona a rota padrão para o segundo velox (Velox #2);
8.
Utiliza o script de conexão e autenticação para o segundo velox (Velox #2);
9.
Deleta a rota padrão criada para o segundo velox (Velox #2);
10.
Levanta o firewall.

OBS: Este script termina por não estabelecer uma rota padrão, pois estas configurações serão feitas dentro do script /etc/firewall/firewall.sh que é chamado pelo rc.local ao final do processo de autenticação. Segundo Passo: Criando tabelas de conexões para roteamento.

Quando o iproute2 está instalado é criado um arquivo dentro do diretório /etc/iproute2 (ou /etc), chamado rt_tables. O arquivo onde as tabelas (de regras) de roteamento são definidas.

Cada tabela é definida por seu número identificador e nome. A ordenação vai de 0 à 255 (256 valores = 8 bits) e a faixa de 253 à 255 é reservada às tabelas do sistema (local, main e default).

O kernel trabalha exclusivamente com o identificador númerico da tabela. Assim podemos estabelecer novas tabelas e definir situações especiais de roteamento.

Exemplo de arquivo (/etc/iproute2/rt_tables) utilizado para a configuração do balanceamento de links de acordo com o cenário proposto.

#—————————- /etc/iproute2/rt_tables ————————
#
# reserved values
#
#255 local
#254 main
#253 default
#0 unspec

#
# local
#
#1 inr.ruhep
10 velox1
11 velox2
30 velox
#—————————- /etc/iproute2/rt_tables ————————

Neste exemplo foram criadas 3 tabelas que serão utilizadas para a criação das regras de roteamento avançadas, necessárias para o funcionamento do balanceamento de links.

As tabelas cridas no arquivo rt_tables foram:
Valor Nome
10 velox1
11 velox2
30 velox

De acordo com o arquivo, uma tabela tem “ID” 10, outra tem “ID” 11 e outra tabela, com valor mais acima tem “ID” 30. A criação dessas tabelas foram necessárias, pois são utilizadas no momento em que serão criadas as regras de roteamento.

Para maiores explicações sobre rt_tables, e roteamento avançado, procure pelos documentos da RNP (GTER), http://eng.registro.br/gter17/videos/05-roteamento-avancado-linux.pdf, em sites de busca (google) www.google.com.br, tambem vale a pena dar uma olhada no how-to do iproute2, além disso existe uma empresa chamada Alto Rio Preto Informatica, que disponibilizou um excelente “case” em seu site: http://www.altoriopreto.com.br/case1_tech2.php Terceiro Passo: Desenvolvendo o script do firewall e criando o roteamento.

O script /etc/firewall/firewall.sh (que é chamado pelo /etc/rc.local) contém não apenas configurações do firewall, mas também regras de NAT e ajustes nas tabelas de roteamento para que seja feito o balanceamento. Para os casos das configurações das tabelas de roteamento usaremos o comando “ip” e para o firewall e as regras de nat o “iptables”. Este firewall foi escrito com base na documentação do firewall de exemplo do Márcio Oliveira (marcio@netkraft.com.br), que provê acesso à internet para uma rede interna através do squid (porém neste exemplo não o usamos).

Ao longo do script existirão comentários sobre as regras que o script está executando, mantendo assim uma linha lógica de configuração e simplificando a identificação de comandos.

#—————————- /etc/firewall/firewall.sh ————————–
#!/bin/sh
######################################
# Firewall for ADSL Velox Telemar #
# By Leandro R. leandro@cesan.com.br #
# OBS: Balanceamento de trafego para #
# 2 links ADSL #
######################################

# Legenda
#
# eth0 -> Rede interna (192.168.0.1/24)
# eth1 -> Velox #1 (192.168.1.2/24)
# eth2 -> Velox #2 (192.168.2.2/24)

# Variaveis
DNS1=”200.202.93.75″
DNS2=”200.202.0.34″

# Carregando os modulos basicos:

echo -n “Carregando os modulos…”
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_state
modprobe ipt_MASQUERADE
echo ” [OK]”

# Resetando o Firewall:

echo -n “Resetando o firewall…”
iptables -F
iptables -Z
iptables -X

iptables -t nat -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
echo ” [OK]”

# Habilitando o roteamento de pacotes:

echo -n “Habilitando o roteamento…”
echo “1” > /proc/sys/net/ipv4/ip_forward
echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo ” [OK]”

# Liberando a chain INPUT para o localhost:

echo -n “Liberando acesso do localhost…”
iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s 192.168.0.1 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s 192.168.1.2 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s 192.168.2.2 -i lo -j ACCEPT
echo ” [OK]”

# Otimizando o firewall:

echo -n “Otimizando o roteamento…”
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
echo ” [OK]”

# Liberando resposta dos servidores DNS:

echo -n “Liberando servidores DNS…”
iptables -A INPUT -p udp -s 192.168.0.0/24 –sport 53 -d $DNS1 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.0.0/24 –sport 53 -d $DNS2 -j ACCEPT
echo ” [OK]”

# DHCP Server

echo -n “Liberando servidor DHCP…”
iptables -A INPUT -p udp -s 192.168.0.0/24 –sport 79 -d 192.168.0.1 -j ACCEPT
echo ” [OK]”

# Descartar pacotes fragmentados:

echo -n “Bloqueando pacotes fragmentados…”
iptables -A INPUT -i eth1 -f -j LOG –log-prefix “Pacote fragmentado: “
iptables -A INPUT -i eth1 -f -j DROP
iptables -A INPUT -i eth2 -f -j LOG –log-prefix “Pacote Fragmentado: “
iptables -A INPUT -i eth2 -f -j DROP
echo ” [OK]”

# Bloqueando ataques do tipo SPOOF de IP:

echo -n “Bloqueando spoofing…”
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP
iptables -A INPUT -i eth1 -s 224.0.0.0/4 -j DROP

iptables -A INPUT -i eth1 -s 240.0.0.0/5 -j DROP
echo ” [OK]”

# Liberando alguns acessos por ping:

echo -n “Liberando acesso por ping…”
iptables -A INPUT -p icmp –icmp-type 8 -i eth0 -j ACCEPT
iptables -A INPUT -p icmp –icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp -s 192.168.0.0/24 -d 0/0 -j ACCEPT
echo ” [OK]”

# Regra para SSH: (opcional)

echo -n “Liberando acesso ao SSH…”
iptables -A INPUT -p TCP –dport 22 -j ACCEPT
echo ” [OK]”

# Regras do FORWARD

# Descarta pacotes invalidos:

echo -n “Descartando pacotes invalidos para reenvio…”
iptables -A FORWARD -m state –state INVALID -j DROP
echo ” [OK]”

# Mantendo conexoes ativas:

echo -n “Manutencao de conexoes ativas…”
iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT
echo ” [OK]”

# Liberando acesso ao DNS para a rede interna (Email):

echo -n “Liberando DNS para rede interna…”

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

iptables -A FORWARD -p udp -s 192.168.0.0/24 -d $DNS1 –dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.0.0/24 -d $DNS2 –dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $DNS1 –sport 53 -d 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -p udp -s $DNS2 –sport 53 -d 192.168.0.0/24 -j ACCEPT
echo ” [OK]”

# Fazendo mascaramento de enderecos IP (NAO NAT):
# OBS: essa regra eh mutuamente excludente com a proxima, a do NAT
# ou seja, escolha uma das duas

echo -n “Habilitando o mascaramento…”
#iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
echo ” [OK]”

# Marcando pacotes

echo -n “Marcando pacotes…”
iptables -A PREROUTING -t mangle -s 192.168.0.0/24 -d 0/0 -j MARK –set-mark 3
echo ” [OK]”

# Desabilitando o filtro de pacotes do martian source
echo -n “Desligando rp_filter…”
for eee in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 0 > $eee
done
echo ” [OK]”

# Definindo regras de balanceamento de Link:
echo -n “Balanceando links velox…”

# velox #1
ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2 table velox1
#ip route add 192.168.0.0/24 via 192.168.0.1 table velox1
ip route add default via 192.168.1.1 table velox1

# velox #2
ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2 table velox2
#ip route add 192.168.0.0/24 via 192.168.0.1 table velox2
ip route add default via 192.168.2.1 table velox2

# setando velox na tabela principal de roteamento
ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2
ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2

# setando a rota preferencial
ip route add default via 192.168.1.1

# regras das tabelas
ip rule add from 192.168.1.2 table velox1
ip rule add from 192.168.2.2 table velox2

# balanceamento de link
ip rule add fwmark 3 lookup velox prio 3
ip route add default table velox nexthop via 192.168.1.1 dev eth1
weight 1 nexthop via 192.168.2.1 dev eth2 weight 1
#OBS: o comando assima deve ser digitado em uma só linha, ou
# usando o caractere para dividí-la.

# flush no roteamento
ip route flush cache
echo ” [OK]”
sleep 3
#—————————- /etc/firewall/firewall.sh ————————–

O script ainda libera o acesso para que o nosso serviço de DHCP rodando neste mesmo servidor possa fornecer o pool de endereços IP para os apartamentos do edifício exemplo do nosso cenário.

No final do script, ou seja, na parte onde são feitas as configurações para o funcionamento do balanceamento dos links, é importante a observação que faz referencia ao comando de balanceamento que deve ser digitado em somente uma linha, não apertando a tecla [Enter] (ou usando o caractere para dividí-la):

Regra: ip route add default table velox nexthop via 192.168.1.1 dev eth1
weight 1 nexthop via 192.168.2.1 dev eth2 weight 1

Outra importante consideração sobre o script é a utilização da marcação de pacotes para que os mesmos fossem roteados pelas duas conexões ADSL. Primeiramente foi criada uma regra para o firewall, através do iptables, dizendo para marcar todos os pacotes com destino de saída da rede.

Regra: iptables -A PREROUTING -t mangle -s 192.168.0.0/24 -d 0/0 -j MARK –set-mark 3

Em segundo lugar foi utilizada essa marcação nos pacotes para servir de entrada como uma “Classificação” para a tabela de roteamento (30 Velox).

Regra: ip rule add fwmark 3 lookup velox prio 3

Outro detalhe importante é a configuração da primeira rota padrão, as conexões, mesmo estando balanceadas, neste caso de 1:1 (soma dos links) precisam de ter uma rota padrão, pois está será por onde o balanceamento deverá ser iniciado, ou seja, a primeira conexão que chegar ao servidor, será transmitida para a internet pela rota padrão, a próxima conexão que for solicitada, será transmitida pelo outro link (balanceamento de 1:1, uma conexão para cada link).

Assim um exemplo seria, o download de um arquivo de 200MBs, se fosse iniciado o download deste arquivo a partir de um gerenciador de downloads,e utilizando-se opções que permitam a divisão do download em outras conexões, seria possível por exemplo “baixar” 100mbs a partir de cada conexão, levando-se em consideração que foi escolhida a opção de dividir o download em duas partes.

Em números: Se o download através de uma conexão está sendo feito a 20kbps, dividindo este download, e utilizando o balanceamento para usar a conexão do outro modem ADSL, é possível que o download possa ser feito ao dobro da velocidade, como no exemplo, 40kbps.

Além do balanceamento este script já provê redundância de conexões, ou seja se uma conexão cair ele automaticamente redireciona todo o tráfego para a conexão que continuou ativa.

Recomenda-se o uso de alguma ferramenta que possa monitorar as conexões, uma excelente alternativa é o IpTraf: http://cebu.mozcom.com/riker/iptraf/download.html

Com ele será possível ver as conexões ativas dos usuários, a velocidade real das conexões ADSL e ver o balanceamento em funcionamento. Quarto Passo: Simples configuração de um servidor DHCP.

Este é um exemplo de configuração do servidor DHCP no Linux utilizando o serviço DHCPD, através do arquivo de configuração dhcpd.conf, localizado dentro do diretório /etc.

Não entrarei em detalhes sobre a sua configuração, as informações nele configuradas mostram a ativação deste serviço para uma rede 192.168.0.0/24 (ou seja, máscara de rede 255.255.255.0 com faixa de ips entre 192.168.0.0 até 192.168.0.255). Os endereços por ele distribuidos estão na faixa de .10 a .250, e algumas outras opções muito importantes também não poderiam deixar de ser setadas, como a rota padrão e os servidores de DNS.

#———————————- /etc/dhcpd.conf ——————————
default-lease-time 43200;
max-lease-time 43200;
option domain-name “minharede.intranet”;
option domain-name-servers 200.X.X.X, 200.X.X.X;
ddns-update-style ad-hoc;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.250;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;

allow unknown-clients;
}
#———————————- /etc/dhcpd.conf ——————————

Para maiores informações sobre o serviço DHCP, é aconselhavel o uso do “man”, pois existem muitas informações e parametros de configurações contidas nele. Considerações Finais:

Este script está em funcionamento extamente do jeito que foi postado aqui.

é claro que milhares de outras configurações podem ser feitas e utilizadas com o balanceamento de links, como por exemplo a divisão de utilização de links por portas, ou aplicações, mas este NãO é o objetivo deste pequeno artigo que se resume a demonstrar de forma simplificada o balanceamento de conexões.

Leandro R.

Posted in Sem categoria

Configurando OpenVPN no Debian

Artigo retirando do site: http://www.kairo.eti.br/linux-notes-old/openvpn-client_win2k-xp.html
Notas iniciais

1. NÃO EXISTEM GARANTIAS POR MINHA PARTE DO USO DESTE DOCUMENTO. Ele foi escrito sendo uma ‘Linux Note’ para uso pessoal, mas é livre para utilização seguindo a FDL.
2. Se alguma dúvida, algo acrescentar, doação ou reclamação, fique à vontade para me enviar um email kairo@kairoaraujo.org .

Atualizações

* 1.0
o Primeira versão.

Instalando o OpenVPN e o OpenSSL

Editar o /etc/apt/sources.list e acescentar a seguinte linha:

# OpenVPN
deb http://www.backports.org/debian/ woody openvpn

# apt-get install openssl openvpn

.P.S.: Nas duas opções de configuração do OpenVPN, escolha sim. Caso não tenha escolhido, reconfigure utilizando o comando abaixo.

# dpkg-reconfigure openvpn

Configurando o OpenSSL para Autoridade Certificadora (CA)

Crie o diretório que vai armazenar os certificados:

# cd /etc/ssl
# mkdir certificados

Edite o arquivo /etc/ssl/openssl.cnf e modifique as seguintes linhas:

dir = /etc/ssl/certificados # Where everything is kept

certificate = $dir/my-ca.crt # The CA certificate

private_key = $dir/my-ca.key # The private key

Crie os diretórios e arquivos necessários

# touch index.txt
# echo 01 > serial
# mkdir newcerts

Configurando o OpenVPN

Crie um link simbólico para os certificados dentro do diretório de configuração do OpenVPN.

# ln -s /etc/ssl/certificados /etc/openvpn/

Gerando as chaves da CA

# openssl req -nodes -new -x509 -keyout my-ca.key -out my-ca.crt

Preencha todos os campos. Opte por usar LETRAS MAIÚSCULAS.

# openssl dhparam -out dh.pem 1024

P.S.: O valor (aqui 1024) deve ser o correspondente ao usado no /etc/ssl/openssl.conf (ele pode ser 1024 ou 2048)
Configurando o Servidor OpenVPN para receber o cliente

Abaixo vamos usar como exemplo a criação do cliente01.
Criando as chaves para o cliente01

# cd /etc/ssl/certificados

# openssl req -nodes -new -keyout cliente01.key -out cliente01.csr

Preencha todos os camos com excessão do password deixando em branco. Lembre-se de Optar por LETRAS MAIúSCULAS

Agora assine as chaves e certificados.

# openssl ca -out cliente01.crt -in cliente01.csr

Dê yes (y) para as duas perguntas.
Configurando o Servidor OpenVPN para o Cliente01

# cd /etc/openvpn

Criando o Arquivo de configuração do Servidor

Crie o arquivo de configuração /etc/openvpn/cliente01.conf usando o exemplo abaixo.

# Exemplo de configuração do OpenVPN
# para a Matriz, usando o modo SSL/TLS e
# chaves RSA.
#
# ‘#’ ou ‘;’ são comentarios.
#
# Obs: Tradução livre do arquivo
# sample-config-files/tls-office.conf
# no diretorio de sources do OpenVPN.

# Usar como interface o driver tun.
dev tun

# 10.100.100.1 é o nosso IP local (matriz).
# 10.100.100.2 é o IP remoto (filial).
ifconfig 10.100.100.1 10.100.100.2

# Diretorio onde estão todas as configurações
cd /etc/openvpn

# O OpenVPN irá executar esse script
# quando o tunel estiver carregado.
# Ideal para setar as rotas
up ./cliente01.up

# No modo SSL/TLS a matriz irá
# assumir a parte do servidor,
# e a filial será o cliente.
tls-server

# Parametros Diffie-Hellman (apenas no servidor)
dh certificados/dh.pem

# Certificado da CA
ca certificados/my-ca.crt

# Certificado publico da Matriz
cert certificados/cliente01.crt

# Certificado privado da Matriz
key certificados/matriz.key

# OpenVPN usa a porta 5000/UDP por padrão.
# Cada tunel do OpenVPN deve usar
# uma porta diferente.
# O padrão é a porta 5000
port 5000

# Mudar UID e GID para
# “nobody” depois de iniciado
# para uma segurança exta.
; user nobody
; group nobody

# Envia um ping via UDP para a parte
# remota a cada 15 segundos para manter
# a coneção em firewall statefull
# Muito recomendado, mesmo se você não usa
# um firewall baseado em statefull.
ping 15

# Nivel dos logs.
# 0 — silencioso, exeto por erros fatais.
# 1 — quase silencioso, mas mostra erros não fatais da rede.
# 3 — médio, ideal para uso no dia-a-dia
# 9 — barulhento, ideal para solução de problemas
verb 3

Agora é preciso mais um arquivo, que irá conter as rotas. Sendo assim, crie o /etc/openvpn/cliente01.up utilizando o exemplo abaixo.

#!/bin/bash
route add -net 10.100.100.0 netmask 255.255.255.0 gw $5
route add -net IP_LAN_REMOTA netmask MASCARA_LAN_REMOTA gw $5

P.S.: Substitua o IP_LAN_REMOTA pelas informações.
Startando o Servidor OpenVPN

# /etc/init.d/openvpn restart
Stopping openvpn: .
Starting openvpn: cliente01.

Verificando:

# ifconfig tun0
tun0 Link encap:Point-to-Point Protocol
inet addr:10.100.100.1 P-t-P:10.100.100.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0

Configurando o Cliente OpenVPN

Agora, estaremos criando as configurações que serão utilizadas pelo cliente01.
Criando os diretórios e arquivos necessários

# cd /etc/openvpn
# mkdir cliente01-files
# cd cliente01-files
# cp ../certificados/cliente01.key .
# cp ../certificados/cliente01.crt .
# cp ../certificados/dh.pem .
# cp ../certificados/my-ca.crt

Arquivo de configuração cliente01.ovpn:

# Exemplo de configuração do OpenVPN
# para a Filial, usando o modo SSL/TLS e
# chaves RSA.
#
# ‘#’ ou ‘;’ são comentarios.
#
# Obs: Tradução livre do arquivo
# sample-config-files/tls-office.conf
# no diretorio de sources do OpenVPN.

# Usar como interface o driver tun.
dev tun

# Ip da parte remota.
remote vpn.empresa.com.br

# 10.100.100.2 é o nosso IP local.
# 10.100.100.1 é o IP remoto (matriz).
ifconfig 10.100.100.2 10.100.100.1

# em vez de rodar um script para setar as rotas,
# vamos setar no arquivo de configuração.
route 10.100.100.0 255.0.0.0 10.100.100.1
route IP_REDE_REMOTO MASCARA 10.100.100.1

# No modo SSL/TLS a matriz irá
# assumir a parte do servidor,
# e a filial será o cliente.
tls-client

# Certificado da CA
ca my-ca.crt

# Certificado publico da Filial
cert cliente01.crt

# Certificado privado da Filial
key cliente01.key

# OpenVPN usa a porta 5000/UDP por padrão.
# Cada tunel do OpenVPN deve usar
# uma porta diferente.
# O padrão é a porta 5000
port 5000

# Envia um ping via UDP para a parte
# remota a cada 15 segundos para manter
# a coneção em firewall statefull
# Muito recomendado, mesmo se você não usa
# um firewall baseado em statefull.
ping 15

# Nivel dos logs.
# 0 — silencioso, exeto por erros fatais.
# 1 — quase silencioso, mas mostra erros não fatais da rede.
# 3 — médio, ideal para uso no dia-a-dia
# 9 — barulhento, ideal para solução de problemas
verb 3

Criando o ZIP para o Cliente01

# cd ..
# apt-get install zip
# zip -r cliente01.zip cliente01-files

Envie para a máquina (cliente01) o arquivo cliente01.zip
Instalando o Cliente e Rodando

Baixe o cliente do OpenVPN para Windows no link abaixo

http://prdownloads.sourceforge.net/openvpn/

Instale: Next, Next… até o Finish e reinicie quando solicitar.

Dentro do diretório em que foi instalado do OpenVPN (Arquivos de programas\OpenVPN), existe um diretório chamado config, descompacte o cliente01.zip dentro deste diretório. ATENÇÃO: Os arquivos devem ficar dentro do diretório config e não dentro de um sub-diretório!

Agora:

Iniciar > Executar > cmd

cd Arquivos de programas\OpenVPN\config
openvpn –config cliente01.ovpn

Criando um novo Cliente

Basta fazer novamente a partir do Item Configurando o Servidor OpenVPN para receber o cliente para um novo, mudando por exemplo para cliente01 e a rede para 10.100.101.1 e 10.100.101.2.
Fonte

Este documento, como mencionado é apenas um Linux Note que fiz para uso pessoal. Uma documentação completa e excelente, onde toda esta documentação foi baseada está em: http://www.altoriopreto.com.br/artigo_vpn.php

Sendo assim, eu tenho que dizer: Obrigado Luiz Antonio Cassetari Vieira Filho , pela excelente documentação que desenvolveu.

Posted in Sem categoria

Teclas de atalho padrão do Compiz

Teclas de atalho padrão do Compiz

Switch windows = Alt + Tab
Arrange and View All Windows = F12 turns on or off; clicking a window will zoom it to the front
Switch desktops on cube = Ctrl + Alt + Left/Right Arrow
Switch desktops on cube – with active window following = Ctrl + Shift + Alt + Left/Right Arrow
Rotate cube manually = Ctrl + Alt + left-click
Make window translucent/opaque = currently only possible with the “transset” utility
Zoom-in once = Super-key right-click
Zoom-in manually = Super-key + wheel mouse up
Zoom-out manually = Super-key + wheel mouse down
Move window = Alt + left-click
Snap Move window (will stick to borders) = Ctrl + Alt + left-click
Resize window = Alt + right-click
Bring up the window below the top window = Alt + middle-click
Slow-motion = Shift + F10
Water = hold Ctrl + Super key
Rain = Ctrl + F9
Change Opacity = Ctrl + Alt + Wheel mouse (up + | down -)
Film effect – changing dekstop = Ctrl + Alt + Down Arrow (hold the Ctrl+Alt then for changing desktop + Left/Right arrow. You can also hold down the left mousebutton to move the “film”) Can be used in combination with the “Switcher”.

Posted in Sem categoria