Você está na página 1de 17

VYATTA, O CONCORRENTE LIVRE DOS ROTEADORES CISCO

Autor: Davidson Rodrigues Paulo <davidsonpaulo at gmail.com>


Data: 24/03/2009

O QUE VYATTA

Vyatta uma soluo de roteador, firewall e VPN de cdigo aberto, com suporte comercial, criada
para concorrer com as solues proprietrias e inflexveis existentes no mercado, como as da Cisco.
Na sua essncia, o Vyatta uma distribuio Linux baseada no Debian especialmente desenvolvida
para funcionar como um roteador, incluindo uma interface de gerenciamento que facilita a
configurao de diversos servios como rotas dinmicas, DHCP, proxy, alta disponibilidade etc.
Por ser baseado em software, o Vyatta pode ser instalado em qualquer hardware convencional ou
mesmo ser virtualizado. Por ser um software livre, ele pode ser obtido gratuitamente, incluindo seu
cdigo-fonte. Por ser uma distribuio Linux, voc pode instalar e configurar qualquer software que
no seja originalmente suportado pelo Vyatta. Por ser um produto comercial, voc pode contratar
servios de suporte e treinamento, tendo inclusive a opo de adquirir appliances, que so
hardwares especializados que j vm com o Vyatta instalado.

O QUE O VYATTA PODE FAZER POR MIM


A seguir a relao dos recursos encontrados no Vyatta.
Protocolos IP e de roteamento:
IPv4
RIPv2
OSPFv2
Rotas estticas
BGPv4
IPv6
Gerenciamento de endereo IP:
Esttico
Relay DHCP
Servidor DHCP
DNS dinmico

Cliente DHCP
Encaminhamento de DNS
Encapsulamento:
Ethernet
Frame Relay
VLANs 802.1Q
MLPPP
PPP
HDLC
PPPoE
GRE
IP in IP
Otimizao de performance:
Balanceamento de carga de link WAN
Fila de pacotes por prioridade (QoS)
Bonding de link Ethernet
Fila de pacotes por classe (QoS)
MLPPP
Controle de banda
ECMP
Cache de Web
Registro e monitoramento:
Syslog
SNMPv2c
Segurana:
Firewall de inspeo dependente de estado (stateful)
Network Address Translation (NAT)
VPN baseada em SSL (OpenVPN)
VPN site-a-site (IPSec)
VPN remota (PPTP, L2TP, IPSec)
Encriptao DES, 3DES, AES
Autenticao MD5 e SHA-1
Preveno de invaso
Filtro de URL

Alta disponibilidade:
VRRP
Cluster de VPN IPSec
Isolamento de falha de protocolo
Administrao:
CLI integrada
Interface grfica Web
Arquivo de configurao nico
Telnet
SSHv2
Diagnsticos e rastreamento de pacotes:
tcpdump
Captura de pacotes com Wireshark
Suporte a BGP MD5
Comandos de loopback serial
Virtualizao:
VMware Tools integrado
Paravirtualizao Xen

QUEM DESENVOLVE O VYATTA


O Vyatta desenvolvido pela empresa de mesmo nome, Vyatta, Inc. Sediada em Belmont,
Califrnia, a empresa composta por especialistas oriundos de grandes companhias que
participaram ativamente do processo de crescimento do uso do software livre e de cdigo aberto
e/ou so grandes nomes do segmento de equipamentos e softwares de rede, entre elas Cisco,
Nortel, Redhat, Sun Microsystems, Redback Networks, Digital Island, Level 3, Internap, HewlettPackard, Oracle e AMD. Uma curiosidade: a empresa foi fundada em 2005 por Allan Leinwand, um
ex-funcionrio da Cisco, contratado na poca em que a empresa tinha aproximadamente 100
funcionrios apenas.
O modelo de negcios da Vyatta baseado na venda de suporte, servios, treinamento e hardware.
Para mais informaes, leia o Vyatta Corporate em formato PDF:
http://www.vyatta.com/downloads/datasheets/Vyatta_Corp_Background.pdf
(http://www.vyatta.com/downloads/datasheets/Vyatta_Corp_Background.pdf)

Curioso para ver como utilizar o Vyatta? No perca tempo, vire a pgina!

OBTENDO E INICIANDO O VYATTA

Antes de continuar, quero esclarecer algo. Talvez voc tenha visto a lista de recursos do Vyatta e
imaginado: "T, tudo bem, mas quais desses recursos esto disponveis na verso gratuita e quais
esto disponveis s na verso paga?". Se esse for o caso, saiba que no existe uma verso paga
do Vyatta pois, como dito anteriormente, o modelo de negcios do fabricante baseado na venda
de servios e de hardware, o software sempre aberto e gratuito. Portanto, se voc no puder (ou
no quiser) gastar nada com o Vyatta, no precisar abrir mo de nenhum dos recursos que ele
oferece.
Dito isto, vamos baixar o Vyatta e comear a us-lo. Para esse artigo, estamos considerando a
verso VC5.0.2, que voc pode baixar em algum dos endereos abaixo:
Imagem ISO: vyatta-livecd-vc5.0.2.iso (http://vyatta.com/downloads/vc5.0.2/vyatta-livecdvc5.0.2.iso)
Appliance para VMware: vyatta-virtual-appliance-vc5.0.2.zip
(http://vyatta.com/downloads/vc5.0.2/vyatta-virtual-appliance-vc5.0.2.zip)
Nos meus testes, usei a imagem ISO para instalar o Vyatta em uma mquina virtual VirtualBox
(http://virtualbox.org/). Se voc utilizar o VMware, baixe o appliance, que j vem pronto para usar.
Para instalar em um hardware real, baixe a imagem ISO e grave-a em um CD.
O Vyatta um live-CD, o que significa que voc pode test-lo, configur-lo e s depois instalar no
sistema, que o que faremos nesse artigo.
Utilizei o VirtualBox para criar uma mquina virtual com as seguintes caractersticas:
Nome: Vyatta 5;
Tipo de sistema: Debian;
Memria principal: 256MB;
Disco rgido: 8GB;
Rede: eth0 (interface do hospedeiro), eth1 (rede interna, 'Vyatta');
CD/DVD-ROM: Imagem (vyatta-livecd-vc5.0.2.iso).
Tambm para os testes, criei uma mquina virtual Zenwalk 6.0 para usar o Vyatta como gateway,
com as seguintes caractersticas:
Nome: Zenwalk 6.0;

Tipo de sistema: Linux (http://www.vivaolinux.com.br/linux/) 2.6;


Memria principal: 256MB;
Disco rgido: 8GB;
Rede: eth0 (rede interna, 'Vyatta').
Agora basta iniciar a mquina virtual Vyatta e deix-la inicializar a partir do live-CD do Vyatta, o que
exibir a tela mostrada abaixo.

(http://static.vivaolinux.com.br/imagens/artigos/comunidade/vyatta-001.jpeg)
Pressione Enter para carregar o sistema e ento faa login usando o usurio "vyatta" e a senha
"vyatta":

(http://static.vivaolinux.com.br/imagens/artigos/comunidade/vyatta-002.jpeg)

Pronto, o Vyatta j est funcional. Voc pode configur-lo, ver se funciona e s depois instal-lo no
computador. A partir da prxima pgina veremos como realizar algumas operaes no Vyatta.

PREPARANDO-SE PARA CONFIGURAR O ROTEADOR

A configurao inicial do Vyatta deve ser feita atravs da sua interface em modo texto. Para
alterarmos qualquer opo precisaremos entrar no modo de configurao, atravs do comando
"configure". Sabemos que estamos no modo de configurao quando exibido o texto '[edit]'
sempre que apertamos a tecla Enter.
Uma vez no modo de configurao, utilizamos o comando set para alterar as propriedades dos
recursos oferecidos pelo Vyatta. Como exemplo, vamos alterar os dados da interface ethernet eth0:

# set interfaces ethernet eth0 address 192.168.0.1/24


# set interfaces ethernet eth0 description "Rede Local"
No exemplo acima, repare que ns digitamos "set interfaces ethernet eth0" nos dois comandos
executados. Podemos reduzir a digitao, agilizando o trabalho, com o comando edit. A seguir,
usaremos o edit para realizar a mesma configurao anterior, porm de uma maneira mais prtica,
digitando 15% menos caracteres:

# edit interfaces ethernet eth0


# set address 192.168.0.1/24
# set description "Rede Local"
# exit
Voc vai perceber que, aps usar o comando edit, sempre que pressionarmos Enter ser exibido "
[edit interfaces ethernet eth0]" ao invs de apenas "[edit]", assim voc sabe que est editando uma
opo especfica. O comando exit serve para voc retornar a raiz das configuraes do Vyatta.
Um recurso muito til o complemento automtico de comandos. Assim, por exemplo, se voc
digitar "set int[Tab]" ele completar automaticamente para "set interfaces". O complemento
automtico funciona tambm para exibir quais os comandos, opes ou parmetros esto
disponveis. Assim, se tivermos duas interfaces de rede ethernet, por exemplo, eth0 e eth1, e
digitarmos "set interfaces ethernet [Tab]", o Vyatta mostrar as duas interfaces disponveis.
As configuraes realizadas com o comando set no so aplicadas imediatamente. Para que elas
entrem em vigor necessrio executar:

# commit

Dessa forma, podemos alterar vrias configuraes e aplic-las todas de uma nica vez. Ainda
assim, qualquer modificao realizada no Vyatta vlida somente at ele ser desligado. Para tornar
as modificaes permanentes, preciso utilizar o seguinte comando:

# save
Para sair do modo de configurao, digite:

# exit
Se voc tiver feito alguma alterao e no quiser aplic-la, digite:

# exit discard
Agora voc j sabe o que necessrio saber para conseguir navegar entre as opes do Vyatta e
alterar suas configuraes. Vire a pgina para aprender a configurar o seu roteador.

CONFIGURANDO O VYATTA: CONFIGURAES LOCAIS

INTERFACES DE REDE
O ambiente de rede tratado nesse artigo o seguinte:

(http://static.vivaolinux.com.br/imagens/artigos/comunidade/vyatta-diagrama.png)
Com essas informaes em mos, vamos configurar as interfaces de rede do Vyatta. (Voc deve
estar no modo de configurao).

# edit interfaces ethernet eth0

# set address 192.168.0.198/24


# set description "Internet"
# exit
# edit interfaces ethernet eth1
# set address 10.0.0.1/24
# set description "Rede local"
# commit
Agora precisamos configurar o DNS e o gateway padro:

# edit system
# set name-server 192.168.0.72
# set name-server 192.168.0.74
# set gateway-address 192.168.0.1
# commit
Vamos definir o domnio e o nome de mquina (hostname):

# edit system
# set domain-search domain vyatta.int
# set domain-search domain vyatta.com.br
# set host-name router
# commit
NOTA: A opo "domain-search" deve ser usada apenas quando se utiliza mais de um domnio na
rede, se esse no for o caso deve-se usar a opo domain-name.
Por fim, vamos ajustar o fuso horrio e definir o servidor de hora (NTP).

# edit system
# set ntp-server 192.168.0.72
# set time-zone Brazil/East
# commit
Pronto, nosso roteador j deve ser capaz de acessar os recursos de rede, resolver nomes e acessar
a internet. Agora, devemos configur-lo de forma a permitir que a mquina virtual Zenwalk acesse os
mesmos servios atravs do Vyatta. Veremos isso na prxima pgina.

CONFIGURANDO O VYATTA: DHCP, NAT E PROXY

DHCP
Nossa primeira tarefa configurar o servidor DHCP para que as mquinas da rede 10.0.0.0/24
possam obter um endereo IP automaticamente. Primeiramente, fazemos a configurao geral do
servio:

# edit service dhcp-server


# set disabled false
# edit shared-network-name rede-local
# set authoritative disable
# edit subnet 10.0.0.0/24
# set start 10.0.0.11 stop 10.0.0.200
# set dns-server 192.168.0.72
# set dns-server 192.168.0.74
# set default-router 10.0.0.1
# set server-identifier 10.0.0.1
# commit
Pronto, o servidor DHCP j est ativo e os computadores da rede 10.0.0.0/24 j conseguem obter
um endereo IP automaticamente.
Se quisermos que uma determinada mquina sempre obtenha o mesmo IP, basta criar um
mapeamento esttico. Para fazer isso, vamos precisar do endereo fsico (MAC address) da placa
de rede.

# edit service dhcp-server


# edit shared-network-name rede-local subnet 10.0.0.0/24
# edit static-mapping administrador
# set ip-address 10.0.0.199
# set mac-address 00:13:AB:43:F8:42
# commit
Com o comando acima, ns definimos que o IP 10.0.0.199 est reservado para o computador cuja
placa de rede tiver o endereo MAC 00:13:AB:43:F8:42.

CONFIGURANDO NAT
Para que as estaes de trabalho da rede 10.0.0.0/24 possam acessar tanto a rede 192.168.0.0/24
quanto a internet, podemos criar uma regra de NAT simples para mascaramento de IP:

# edit service nat rule 1


# set type masquerade
# set outbound-interface eth0
# commit
Para fins de comparao, os comandos acima tm o mesmo efeito da seguinte regra do iptables:

# iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE


Feito isso, as estaes j podero acessar as redes externas, inclusive a internet.
E, por falar em internet, que tal dar uma acelerada na Web, habilitando um cache de pginas? O
Vyatta vem com recursos de proxy-cache, usando para isso o aclamado Squid. Para habilitar um
proxy transparente apenas para cache, com tamanho de 1GB (1024MB), os comandos abaixo so
suficientes:

# edit service webproxy


# set cache-size 1024
# set default-port 3128
# set listen-address 10.0.0.1
# commit
Se voc quiser bloquear algum site ou domnio, o Vyatta tambm lhe d essa opo. Como
exemplo, vamos bloquear todo o domnio microsoft.com, deixando liberado apenas o subdomnio
technet.microsoft.com:

# edit service webproxy url-filtering squidguard


# set local-block microsoft.com
# set local-ok technet.microsoft.com
# set redirect-url http://192.168.0.80/acesso_negado.php?url=%u
# commit
O endereo:
http://192.168.0.80/acesso_negado.php?url=%u
ser exibido quando o usurio acessar uma URL bloqueada, onde a varivel %u ser substituda
pela URL em questo, de forma que, se o usurio acessar, por exemplo, http://www.microsoft.com,
o Vyatta vai redirecionar o usurio para o endereo:
http://192.168.0.80/acesso_negado.php?url=http://www.microsoft.com

Para uma lista de variveis vlidas, consulte a documentao do SquidGuard em:


http://www.SquidGuard.org/Docs (http://www.squidguard.org/Doc/redirect.html).
Nosso roteador j est funcional, agora hora de aumentar a segurana. Prxima pgina!

CONFIGURANDO O VYATTA: FIREWALL

At o momento, configuramos o acesso rede 192.168.0.0/24 e internet sem nenhuma restrio,


ou seja, todo e qualquer computador da rede 10.0.0.0/24 pode acessar qualquer recurso externo,
alm de o prprio Vyatta estar acessvel a partir de qualquer computador de qualquer uma das redes
s quais ele est ligado, o que no nada bom do ponto de vista da segurana. Temos que
restringir o acesso e, para isso, vamos usar os recursos de firewall do Vyatta.
Antes de iniciar a configurao, preciso entender como o Vyatta organiza as regras de firewall. O
processo consiste de duas etapas: primeiro, cria-se um grupo de regras, que recebe um nome para
fcil identificao e, depois, esse conjunto de regras associado a uma interface de rede.
Cada interface de rede pode ter associadas no mximo trs conjuntos de regras de firewall, sendo
uma para cada direo do trfego de rede. As direes aqui so:
in: trfego que entra pela interface com destino a um computador de outra rede;
out: trfego saindo pela interface vindo de um computador de outra rede;
local: trfego entrando pela interface com destino ao Vyatta ou com origem no Vyatta sado
pela interface.
Sabendo isso, vamos comear criando um conjunto de regras que permita estao do
administrador (10.0.0.199) acessar a internet. Para que isso seja possvel, os seguintes acessos
devero ser liberados:
Acesso porta 80/TCP de qualquer IP;
Acesso porta 53/UDP dos servidores DNS (192.168.0.72 e 192.168.0.74).
Como o trfego tem origem na LAN com destino internet, vamos chamar esse conjunto de regras
de "lan-net".
Com esses dados em mos, vamos criar a primeira regra do nosso firewall:

# edit firewall name lan-net rule 1


# set description "Administrador acessar a internet"
# set source address 10.0.0.199

# set destination port 80


# set protocol tcp
# set state new enable
# set state established enable
# set action accept
# exit
Agora, vamos liberar o acesso aos servidores DNS, regras 2 e 3:

# edit firewall name lan-net rule 2


# set description "Administrador acessar DNS"
# set source address 10.0.0.199
# set destination address 192.168.0.72
# set destination port 53
# set protocol udp
# set state new enable
# set state established enable
# set action accept
# exit
# edit firewall name lan-net rule 3
# set description "Administrador acessar DNS"
# set source address 10.0.0.199
# set destination address 192.168.0.74
# set destination port 53
# set protocol udp
# set state new enable
# set state established enable
# set action accept
# exit
Agora, precisamos associar essas regras a uma interface de rede. No nosso caso, as regras se
aplicam ao trfego de rede que entra pela interface eth1 com direo rede externa. Portanto,
vamos aplicar essas regras na direo "in" da interface eth1 e usar o comando commit para que as
regras de firewall entrem em vigor:

# set interfaces ethernet eth1 firewall in name lan-net


# commit
Tenha bastante ateno ao criar suas regras de firewall, pois a partir do momento que voc as aplica
em uma determinada direo de uma interface de rede, todo o trfego relacionado que no for

explicitamente liberado ser bloqueado.


As trs regras de firewall mostradas aqui so equivalentes aos seguintes comandos do iptables:

# iptables -A FORWARD -i eth1 -s 10.0.0.199 -p tcp --dport 80 -m


state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth1 -s 10.0.0.199 -d 192.168.0.72 -p
udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth1 -s 10.0.0.199 -d 192.168.0.74 -p
udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth1 -j DROP
NOTA: Observe a ltima regra: ns no a criamos, ela foi aplicada automaticamente pelo
Vyatta.
Com base nesse exemplo voc poder facilmente configurar outras regras de firewall para gerenciar
o trfego das redes conectadas ao seu roteador.

CONFIGURANDO O VYATTA: ACESSO REMOTO

O Vyatta pode ser administrado de trs diferentes maneiras:


1. SSH
2. Telnet
3. Web (HTTPS)

O uso do telnet no recomendado, visto que as informaes so transportadas em um canal


inseguro. Vamos mostrar como habilitar somente o SSH e a interface Web, ambas utilizando
criptografia para transporte seguro de dados.

SSH
Para habilitar o SSH na porta 22 e no permitir login como root, execute os seguintes comandos:

# edit service ssh


# set port 22
# set allow-root false
# commit
importante criar regras de firewall para restringir o acesso via SSH somente para os IPs dos

administradores do roteador. No nosso caso, vamos liberar esse acesso para o IP 10.0.0.199. O
trfego tem origem na LAN com direo ao Vyatta, ento vamos chamar o novo conjunto de regras
de firewall de "lan-local":

# edit firewall name lan-local rule 1


# set description "Administrador acessar Vyatta via SSH"
# set source address 10.0.0.199
# set destination address 10.0.0.1
# set destination port 22
# set protocol tcp
# set state new enable
# set state established enable
# set action accept
# exit
# set interfaces ethernet eth1 firewall local name lan-local
# commit

INTERFACE WEB
A interface de gerenciamento Web bem simples, sendo uma representao grfica fiel dos
comandos disponveis no modo texto, o que bom pois, dessa forma, o uso da interface grfica no
far voc esquecer como utilizar a interface texto e vice-versa. No mais, a interface Web nos permite
realizar as configuraes mais rapidamente na maioria dos casos.
Para habilitar a interface de gerenciamento Web, basta um nico comando, seguido de um commit:

# set service https


# commit
Depois, assim como no caso do SSH, precisamos liberar o acesso somente para o administrador.
Vamos adicionar uma regra ao conjunto de regras lan-local:

# edit firewall name lan-local rule 2


# set description "Administrador acessar Vyatta via Web"
# set source address 10.0.0.199
# set destination address 10.0.0.1
# set destination port 443
# set protocol tcp
# set state new enable
# set state established enable
# set action accept

# commit
Bom, agora ns j testamos o Vyatta tempo suficiente para decidirmos instal-lo na mquina.
Vamos fazer isso? Prxima pgina!

INSTALANDO O VYATTA

Antes de iniciar a instalao do Vyatta, voc provavelmente vai querer que ele utilize as
configuraes que voc definiu enquanto executava o sistema a partir do live-CD. Para fazer isso,
basta salvar as alteraes:

# save
# exit
Agora, basta iniciar o processo de instalao:

$ install-system
A instalao to simples que dispensa maiores explicaes, voc s vai precisar saber como
utilizar o fdisk caso queira criar um esquema de particionamento diferente do padro, o que
dificilmente ser necessrio.

(http://static.vivaolinux.com.br/imagens/artigos/comunidade/vyatta-003.jpeg)

(http://static.vivaolinux.com.br/imagens/artigos/comunidade/vyatta-004.jpeg)

(http://static.vivaolinux.com.br/imagens/artigos/comunidade/vyatta-005.jpeg)
Terminado o processo, reinicie o roteador e deixe-o iniciar pelo disco rgido:

$ reboot
Parabns, seu roteador Vyatta est instalado e funcionando. Agora voc pode configurar quaisquer
outros servios que deseje.

CONSIDERAES FINAIS

O objetivo desse artigo apresentar o Vyatta, mostrando apenas seus recursos mais bsicos. O
Vyatta um roteador realmente muito completo, atendendo tanto as necessidades de iniciantes que

desejam configurar servios de rede bsicos como de especialistas que precisam configurar
sistemas avanados de roteamento para redes de grande porte, e tanto dos usurios domsticos
quanto das grandes corporaes.
A possibilidade de utiliz-lo em hardware convencional o torna uma soluo muito mais flexvel.
Alm disso, por ser um software livre e no possuir diferentes verses com mais ou menos recursos,
mas uma nica verso com todos eles disponveis, no temos a preocupao que costumamos ter
na escolha de roteadores proprietrios, que so vendidos em diversos modelos e configuraes e,
via de regra, quanto mais recursos possuem, mais caros so.
Os fabricantes do Vyatta declaram ser concorrentes diretos da Cisco, nada mais nada menos que o
lder mundial em roteadores de rede, anunciando o Vyatta como uma soluo superior sob muitos
aspectos, por fazer mais com menos. Exagero? No sei. Ainda no vi ningum que tenha dito que
exagero. At agora, s li coisas boas acerca do Vyatta. Eu testei e gostei, e no h motivos para que
voc tambm no goste.
Para mais informaes sobre o Vyatta, visite o site oficial:
http://www.vyatta.com/ (http://www.vyatta.com/) - Corporativo
http://www.vyatta.org/ (http://www.vyatta.org/) - Comunitrio
Para ajuda e suporte gratuitos, visite o frum do Vyatta:
http://www.vyatta.org/forum/ (http://www.vyatta.org/forum/)
Para manter-se informado sobre as ltimas novidades, inscreva-se na newsletter:
http://www.vyatta.com/newsletter/ (http://www.vyatta.com/newsletter/)
E isso. Nos vemos em um prximo artigo. Obrigado por ter lido e, j que voc chegou at aqui,
diga o que voc achou deste artigo e do Vyatta no espao para os comentrios, logo abaixo.
Um grande abrao,
Davidson Paulo
http://davidsonpaulo.blogspot.com/ (http://davidsonpaulo.blogspot.com/)

Voltar (verArtigo.php?codigo=9736)