Mostrando postagens com marcador Debian. Mostrar todas as postagens
Mostrando postagens com marcador Debian. Mostrar todas as postagens

sexta-feira, 29 de outubro de 2010

Criando uma VPN com OpenVPN.

Já a algum tempo eu escrevi um post falando dos benefícios de usar uma VPN como um nível extra de proteção para serviços de rede. Vou ensinar uma forma rápida de criar uma VPN ponto-a-rede.

A VPN ponto-a-rede, é aquela que utilizamos para conectar um único computador (ponto) a uma rede. Uma situação comum para isso, é quando a empresa possui uma rede interna protegida por um firewall e que acessar essa rede a partir de um notebook.

Assumimos a seguinte estrutura de TI, uma rede corporativa com IPs no padrão 192.168.0.X, com um firewall linux IP interno 192.168.0.1 e externo 208.67.222.222

Em nosso servidor linux devemos instalar o OpenVPN:
# aptitude install openvpn
Depois de instalado copiamos os script de exemplo criados pela instalação em /etc/openvpn
#cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn
Começamos a instalação. Dentro do diretório /etc/openvpn
# . ./vars
# ./clean-all
# ./build-ca
Observe que é . [espaço] ./vars, a primeira vez que eu vi isso achei que fosse um erro de digitação, mas é assim mesmo.
Quando executamos o script build-ca ele deve fazer uma seqüencia de perguntas onde a mais importante é common name que deve ser respondida como server para funcionar corretamente na aplicação. As demais você pode preencher ou aceitar as opções padrão.


Agora vamos criar os arquivos do servidor.

# ./build-key-server server
Depois de respondermos cada pergunta, ele deve mostrar um resumo de nossas respostas e perguntar se queremos realmente assinar o certificado. Devemos responder que sim digitando y.
E por último o script pergunta se temos certeza que queremos incluir este servidor em nosso banco de dados. Devemos responder novamente que sim com y.
Criamos agora os arquivos de cada usuário, com sua respectiva senha.
# ./build-key-pass usuario
# ./build-key-pass lucas
Onde usuario e lucas são os dois usuários criados.
A primeira pergunta deste script é o PEM passphrase que será a senha deste usuário.
No mais podemos deixar as opções padrão, o commom name de cada usuário será seu próprio nome e devemos responder as duas últimas perguntas com y como na etapa anterior.
Depois geramos os parâmetros diffie-hellman (isso pode demorar um pouco)
# ./build-dh
O arquivo de configuração do servidor deve ficar assim
  # IP e porta do servidor
  local 208.67.222.222
  port 1194
  proto udp
  dev tun

  # Certificados gerados
  ca ca.crt
  cert server.crt
  key server.key
  dh dh1024.pem

  # Criar no diretorio cdd/cliente a configuracao
  # dele - ou uma invalida para trava-lo :)
  client-config-dir ccd

  # Rede que os clientes irão "pegar"
  server 10.8.0.0 255.255.255.0
  push "route 192.168.0.0 255.255.252.0"
  push "dhcp-option DNS 192.168.0.1"

  # Neste arquivo serão guardados os IPs dos clientes
  # para conectarem com o mesmo IP da proxima vez
  ifconfig-pool-persist ipp.txt
  client-to-client

  # Ative para permitir dois clientes com o mesmo
  # certificado - não recomendável
  ;duplicate-cn
  keepalive 10 120

  # Compressão, privilégios do cliente
  comp-lzo
  max-clients 15
  user nobody
  group nobody

  # Logs e etc
  persist-key
  persist-tun
  status      /var/log/openvpn-status.log
  log         /var/log/openvpn.log
  log-append  /var/log/openvpn.log
  verb 6
Este arquivo deve ser salvo como /etc/openvpn/openvpn.conf
Para finalizarmos devemos copiar os arquivos ca.crt, dh1024.pem, server.crt e server.key de /etc/openvpn/keys para /etc/openvpn.
Pronto, o servidor está pronto e pode ser iniciado com
# /etc/init.d/openvpn/start
Agora vamos ao cliente Windows. Primeiramente baixe o pacote contido no link.
http://www.megaupload.com/?d=8669PV98
Faça a instalação completa.
Na pasta c:\arquivos de programas\openvpn\config copie os seguintes arquivos:

  • ca.crt
  • usuario.key
  • usuario.crt
  • server.ovpn
O arquivo server.ovpn deve estar configurado desta forma para o cenário proposto.
client
dev tun
proto udp

remote 208.67.222.222 1194
resolv-retry infinite
nobind

persist-key
persist-tun

ca ca.crt
cert usuario.crt
key usuario.key

ns-cert-type server
comp-lzo
verb 3

Espero ter ajudado.

Ajustando resolução do console linux

Se você usa Linux, já deve ter visto alguém com dificuldades para ajustar a resolução na interface gráfica (GUI) seja ela qual for KDE, GNOME ou outra qualquer. Já tive que arrumar resolução tantas vezes em interface, que só essa semana me dei conta que não lembrava como ajustar a resolução no console.

Logo que você inicia seu computador que possui Linux, você provavelmente vê um boot loader como o grub ou o lilo. Como prefiro as distribuições derivadas do Debian (ou o próprio Debian) que usam o grub, podemos ajustar a resolução apenas incluindo um parâmetro no boot.

Para alterar os parâmetros de boot digite no console:
# vi /boot/grub/menu.lst

Podemos encontrar no final do arquivo algo assim:
title  Debian GNU/Linux, kernel 2.6.26-2-686
root  (hd0,0)
kernel  /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro
initrd  /boot/initrd.img-2.6.26-2-686

Basta incluir a opção desejada de vga no final da linha Kernel como

title  Debian GNU/Linux, kernel 2.6.26-2-686
root  (hd0,0)
kernel  /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro vga=791
initrd  /boot/initrd.img-2.6.26-2-686

Onde 791 representa uma resolução de 1024x768

Para encontrar a resolução correta, você deve ter o hwinfo instalado e digitar
# hwinfo --framebuffer

A resposta deve ser algo como

  Mode 0x0300: 640x400 (+640), 8 bits
  Mode 0x0301: 640x480 (+640), 8 bits
  Mode 0x0303: 800x600 (+800), 8 bits
  Mode 0x0305: 1024x768 (+1024), 8 bits
  Mode 0x0307: 1280x1024 (+1280), 8 bits
  Mode 0x030d: 320x200 (+640), 15 bits
  Mode 0x030e: 320x200 (+640), 16 bits
  Mode 0x030f: 320x200 (+960), 24 bits
  Mode 0x0310: 640x480 (+1280), 15 bits
  Mode 0x0311: 640x480 (+1280), 16 bits
  Mode 0x0312: 640x480 (+1920), 24 bits
  Mode 0x0313: 800x600 (+1600), 15 bits
  Mode 0x0314: 800x600 (+1600), 16 bits
  Mode 0x0315: 800x600 (+2400), 24 bits
  Mode 0x0316: 1024x768 (+2048), 15 bits
  Mode 0x0317: 1024x768 (+2048), 16 bits
  Mode 0x0318: 1024x768 (+3072), 24 bits
  Mode 0x0319: 1280x1024 (+2560), 15 bits
  Mode 0x031a: 1280x1024 (+2560), 16 bits
  Mode 0x031b: 1280x1024 (+3840), 24 bits
  Mode 0x0340: 320x200 (+1280), 24 bits
  Mode 0x0341: 640x400 (+2560), 24 bits
  Mode 0x0342: 640x480 (+2560), 24 bits
  Mode 0x0343: 800x600 (+3200), 24 bits
  Mode 0x0344: 1024x768 (+4096), 24 bits
  Mode 0x0345: 1280x1024 (+5120), 24 bits
  Mode 0x0346: 320x200 (+320), 8 bits
  Mode 0x0347: 1600x1200 (+6400), 24 bits
  Mode 0x0348: 1152x864 (+1152), 8 bits
  Mode 0x0349: 1152x864 (+2304), 15 bits
  Mode 0x034a: 1152x864 (+2304), 16 bits
  Mode 0x034b: 1152x864 (+3456), 24 bits
  Mode 0x034c: 1152x864 (+4608), 24 bits

Onde Mode 0x0317 é a opção vga=791, porém 0x0317 é a representação hexadecimal de 791.

Dessa forma é simples encontrar as resoluções possíveis para o seu adaptador de vídeo e configurar a resolução desejada. 

sexta-feira, 13 de agosto de 2010

Sources.list

Recentemente fui atender um cliente que usa o Debian Etch (que hoje é oldStable) e o Stable atual é o Lenny. Para quem não sabe do que eu estou falando sugiro uma leitura rápida à respeito na Wikipedia.

Fui instalar um programa pelo Aptitude, aqueles que preferem o apt-get também usam o mesmo arquivo de Sources e encontrei uma dificuldade. Quando o Etch era a versão Stable meu Sources.list estava assim:

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

deb http://ftp.us.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.us.debian.org/debian/ etch main contrib non-free

Agora que o Etch é oldStable esse Sources.list não funciona mais.
Para resolver a questão basta mudar o link de ftp.us para archive pois agora os sources referentes ao Etch foram para o arquivo. No meu caso pude tirar a linha de deb-src então o meu arquivo ficou assim:
deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

deb http://archive.debian.org/debian etch main contrib non-free
Pronto! Meu aptitude voltou a funcionar no Debian Etch.

Dica: Se o seu computador não é um servidor corporativo, considere a opção de migrar para uma versão mais nova, porque o Lenny deve virar OldStable ainda em 2010, então o Etch deve ficar bem para trás.

terça-feira, 20 de julho de 2010

Autenticação ADSL no Linux

Recentemente um cliente que usa o Speedy (ADSL da telefônica) mudou o seu Speedy de forma que precisa de autenticação (Usuário/Senha) mesmo sendo o produto Speedy Business que antes não precisava de autenticação.

No caso do meu cliente a internet é compartilhada por toda aquela unidade através de um gateway com Linux e possui alguns serviços que necessitam do IP fixo e acesso externo, eliminando a possibilidade de eu configurar o modem para fazer a autenticação (pois dessa forma as tentativas de acesso destinadas ao IP externo são gerenciadas pelo modem e não pelo firewall do linux).

Então voltando ao foco vou mostrar uma solução simples para os usuários de Linux. Vamos usar os pacotes:

- pppoe
- pppoeconf


Para isso faça login como root (ou qualquer superusuário) e vamos lá.
Primeiro atualize a lista de pacotes do seu apt

#aptitude update

Eu gosto mais do aptitude do que do apt-get se alguém quiser fazer pelo apt-get deve saber se virar.

Agora vamos instalar os pacotes

#aptitude install pppoe pppoeconf

Então começamos a configuração

#pppoeconf

Uma janela irá abrir com todas as interfaces de rede encontradas em seu computador.
Se a interface que está conectada ao seu modem ADSL (no meu caso o modem do speedy) estiver listada selecione a opção "Yes".

O software irá procurar pelo modem. Se o modem estiver configurado para autenticar automaticamente ele não irá reconhecer o modem como um concentrador PPPoE.

A segunda tela questiona se você quer que algumas opções como "noauth" e "defaultroute" sejam incluídas e outras como "nodetach" sejam removidas. Em resumo a questão é se você que que ele auto-configure sua conexão com as opções mais comuns.

No caso do speedy podemos selecionar "Yes".

Pode apenas selecionar "Yes" na próxima tela e irá aparecer a tela de usuário e senha. Coloque o seu usuário de acesso a internet, algo como "seunome@seuprovedor.com.br" e então a sua senha.

As próximas telas questionam se o DNS deve ser selecionado automaticamente e se a conexão deve ser iniciada automaticamente ao reiniciar o computador. Se você tem dúvidas selecione "Yes" nas próximas opções, devem funcionar para o seu Speedy.

Quando terminar você pode iniciar a conexão com

#pon call dsl-provider

E parar com

#poff

Uma alternativa é reiniciar o computador e tudo estará configurado e funcionando.