terça-feira, 18 de janeiro de 2011

VPN Site to Site, Fácil to Fácil - Linux

Para montar uma VPN (Virtual Private Network) Site to Site em Linux iremos utilizar o pacote openvpn

:: Cenário

Matriz:
    Rede.: 192.168.0.0/24
    GW...: 192.168.0.254

Filial:
    Rede.: 192.168.1.0/24
    GW...: 192.168.1.254

(192.168.0.254) Matriz (172.16.0.1) <----> Internet <----> (172.16.0.2) Filial (192.168.1.254)


:: Instalação
#  apt-get install openvpn openssl lzop

:: Configuração MATRIZ
Iremos criar os diretórios e arquivos necessários para a configuração da Matriz (Servidor)

--> Criando o diretório necessário
# mkdir /etc/vpn-server

--> copiando arquivo de Sample para Iniciar a VPN
# cp /usr/share/doc/openvpn/examples/sample-config-files/openvpn-startup.sh /etc/vpn-server

Obs.: Existem outros arquivos neste diretório que podem ser utilizados como base de configuração

--> Criando o arquivo secret.key (Chave Criptografia)
# openvpn --genkey --secret /etc/vpn-server/static.key

--> Criando arquivo de configuração para o server
# cd /etc/vpn-server
# vim server.conf

------ Conteúdo Arquivo server.conf ------
# nome do device
dev tun

# IPs do tunnel ifconfig <matriz> <filial>
ifconfig 172.16.0.1 172.16.0.2

# diretorio de configuracao
cd /etc/vpn-server

# Chave Criptografia
secret static.key

# Porta de Comunicacao - Padrão 1194
port 50321

# Comprensao
comp-lzo

# Usuario e grupo utilizado
user nobody
group nogroup

# Manter conexão com ping
ping 10

# Opcoes de Log
status /var/log/openvpn/status.log
log-append /var/log/openvpn/server.log
verb 3
mute 20
------ Final Arquivo server.conf ------

--> Alterando o arquivo openvpn-startup.sh
# vim openvpn-startup.sh

------ Conteúdo Arquivo openvpn-startup.sh ------
[...]
dir=/etc/vpn-server
[...]
modprobe tun
[...]
openvpn --cd $dir --daemon --config server.conf
[...]
route add 192.168.1.0/24 gw 172.16.0.2
------ Final Arquivo openvpn-startup.sh ------

--> Iniciando o Servidor
# /etc/vpn-server/openvpn-startup.sh

--> Verifique se a Interface tun está ok
# ifconfig
tun0      Link encap:Não Especificado  Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet end.: 172.16.0.1  P-a-P:172.16.0.2  Masc:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Métrica:1
          RX packets:59753 errors:0 dropped:0 overruns:0 frame:0
          TX packets:388188 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 txqueuelen:100
          RX bytes:4770589 (4.5 MiB)  TX bytes:201431331 (192.0 MiB)


:: Configuração FILIAL
Iremos criar os diretórios e arquivos necessários para a configuração da Filial(Cliente)

--> Criando o diretório necessário
# mkdir /etc/vpn-client

--> copiando arquivo de Sample para Iniciar a VPN
# cp /usr/share/doc/openvpn/examples/sample-config-files/openvpn-startup.sh /etc/vpn-client

--> Copie o arquivo secret.key do Servidor para o Client
Obs.: Utilize o WinSCP ou FTP

--> Criando arquivo de configuração para o client
# cd /etc/vpn-client
# vim client.conf

------ Conteúdo Arquivo client.conf ------
# nome do device
dev tun

# IPs do tunnel ifconfig <filial> <matriz>
ifconfig 172.16.0.2 172.16.0.1

# IP Quente do Servidor para conexão
remote <ip-servidor>

# diretorio de configuracao
cd /etc/vpn-client

# Chave Criptografia
secret static.key

# Porta de Comunicacao - Padrão 1194
port 50321

# Comprensao
comp-lzo

# Usuario e grupo utilizado
user nobody
group nogroup

# Manter conexão e tunel
ping 10
persist-tun
persist-key

# Opcoes de Log
status /var/log/openvpn/status.log
log-append /var/log/openvpn/client.log
verb 3
------ Final Arquivo server.conf ------

--> Alterando o arquivo openvpn-startup.sh
# vim openvpn-startup.sh

------ Conteúdo Arquivo openvpn-startup.sh ------
[...]
dir=/etc/vpn-client
[...]
modprobe tun
[...]
openvpn --cd $dir --daemon --config client.conf
[...]
route add 192.168.0.0/24 gw 172.16.0.1
------ Final Arquivo openvpn-startup.sh ------

--> Iniciando o Client
# /etc/vpn-client/openvpn-startup.sh

--> Verifique se a Interface tun está ok
# ifconfig
tun0      Link encap:Não Especificado  Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet end.: 172.16.0.2  P-a-P:172.16.0.1  Masc:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Métrica:1
          RX packets:103429 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64598 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 txqueuelen:100
          RX bytes:110207565 (105.1 MiB)  TX bytes:5053226 (4.8 MiB)


:: Testes
Server
    Ping na interface de roteamento do Client: ping 172.16.0.2
    Ping na interface de um Cliente Interno: ping 192.168.1.10


Client
    Ping na interface de roteamento do Server: ping 172.16.0.1
    Ping na interface de um client Interno: ping 192.168.0.10

Ok. Temos uma VPN Site to Site funfando legal. Não esqueça de configurar os Firewall através do iptables

sexta-feira, 14 de janeiro de 2011

SO para Terminal Burro (Linux)

Um certo dia precisamos montar um SO Linux apenas para realizar a conexão com um servidor
de Terminal Service. Após dias de pesquisa e teste conseguimos encontrar uma solução.
Para a instalação do SO Linux foi utilizado o Tiny Core.

:: Obtendo a ISO do SO
Acesse o site http://http://www.tinycorelinux.com encontre o link para Downloads e baixe a
versão mais recente do SO. Existem também um link para o How To de instalação no site.

:: Gerando Imagem do SO no Pendrive
Para gravar a imagem em um Pendrive use o utilitário Universal-USB-Installer. Este programa
encontrado em várias sites de download.
Após sua execução ele é bem intuitivo. Não se esqueça marcar a Distribuição do Linux que
neste caso é "TinyCore"

:: Boot pelo Pendrive
Com o pendrive pronto, coloque no computador/notebook e configure o boot para iniciar pela
USB. Em alguns segundos o Kernel do TinyCore será carregado.

:: Instalação no HD
Precisamos instalar 2 pacotes: cfdisk.tcz e grub-0.97-splash.tcz. Para isso
1) Botão Contrário > SystemTools > AppBrowser
2) Clique no botão "Connect"
3) Encontre o pacote na lista, selecione e clique em GO
4) Repita o processo com os pacotes necessários;
Obs.: Caso precise trocar o IP: Botão Contrário > SystemTools > ControlPanel > Botão Network

:: Instalado os pacotes vamos realizar a cópia dos arquivos necessários para o boot pelo HD
1) Botão contrário > SystemTools > Terminal
2) Digite os seguintes comandos

# sudo su

:: Verifique qual o dispositivo correto
# fdisk -l

:: Crie a(s) partição(ões) necessária(s)
# cfdisk /dev/sda

:: Formate a partição
# mkfs.ext3 /dev/sda1

:: Reconstrua o arquivo fstab para montagem das partições

# rebuildfstab

:: Monte a paritição
# mount /mnt/sda1

:: Criando diretórios necessários
# mkdir -p /mnt/sda1/boot/grub /mnt/sda1/tce

:: Copiando arquivos necessários (Pendrive para HD)
# cp -p /mnt/sdb1/boot/* /mnt/sda1/boot

:: Criando arquivo de backupt & restore
# touch /mnt/sda1/tce/mydata.tgz

:: Instalando o GRUB
# cp -p /usr/lib/grub/i386-pc/* /mnt/sda1/boot/grub/

:: Crie o arquivo menu.lst e inclua o seguinte conteúdo
# vi /mnt/sda1/boot/grub/menu.lst
default 0
timeout 5
title Terminal Remoto
kernel /boot/bzImage quiet home=/dev/sda1 opt=/dev/sda1
initrd /boot/tinycore.gz

:: Instale o grub (Fique atento com as mensagens de erro)
# grub
root (hd0,0)
setup (hd0)
quit

:: Testando o BOOT
# sudo reboot
Obs.: Remova o Pendrive

:: Instalando o Remote Desktop
1) Botão Contrário > SystemTools > AppBrowser
2) Clique no botão "Connect"
3) Encontre o pacote "rdesktop.tcz" na lista, selecione e clique em GO

:: Concectando via RDesktop
1) Abra um terminal e digite a seguinte linha de comando
# rdesktop -a 16 -u <usuario> -d <dominio> -f -z <ipServidor>

:: Criando atalho a wbar
1) Carregue um terminal
# cd /home/tc

2) Crie o arquivo wbar com o seguinte conteúdo
# vi wbar.lst
i: /home/tc/remote-icon.png
t: RemoteApp
c: exec rdesktop -a 16 -u <usuario> -d <dominio> -f -z <ipServidor>

3) Edite o arquivo /home/tc/.profile e inclua no final o seguinte comando
cat /home/tc/wbar.lst >> /usr/local/tce.icons

4) Copie o icone do atalho para /home/tc com o nome remote.png

:: Backup das Configurações
1) Botão Contrário > SystemTools > ControlPanel > Botão Backup
2) Clique em "Go"

Reinicie o terminal e veja se o atalho estará visível na wbar.

sexta-feira, 7 de janeiro de 2011

Linux - Resolução em Modo Texto

Caso você esteja utilizando o GRUB edit o arquivo menu.lst e altera a linha de boot
para alterar a resolução do vídeo

:: Para 1024x768
# vim /boot/grub/menu.lst
[...]
kernel /boot/vmlinuz-2.6.19.1 root=/dev/hda1 ro vga=791
[...]

:: Para 800x600
# vim /boot/grub/menu.lst
[...]
kernel /boot/vmlinuz-2.6.19.1 root=/dev/hda1 ro vga=788
[...]