Palestra fatec bs 2009

October 9th, 2009


Download:  palestra-fatec-bs-2009

Roteamento de pacotes com GNU/Linux - Parte 1

September 22nd, 2009


Bom hoje eu vou falar sobre roteamento, em GNU Linux. Esta é a primeira parte do artigo. Explicando o básico. Logo logo vem a parte 2

Roteamento é o processo de encaminhamento de pacotes de uma rede para outra, feito sempre por um roteador. Esse roteador pode ser um equipamento profissional, SOHO(Small Office/Home Office) ou um computador com um sistema operacional. No nosso caso o foco é utilizar o sistema GNU/Linux.

O roteamento também pode ocorrer de duas forma estático ou dinâmico. No roteamento estático o caminho da rota é sempre predefinido, a tabela de roteamento é fixa. No roteamento dinâmico o roteador conhece mais que um caminho para chegar ao destino e age de forma inteligente escolhendo qual rota ele deve utilizar. No nosso caso abordaremos a forma de roteamento estático.

Irei utilizar para nossos exemplos a comunicação entre dois campus de uma universidade. Então vamos analisar a imagem a baixo.

roteamento1

Analisando o cenário a cima, podemos perceber que os dois campus estão utilizando a mesma rede(192.168.) já que estamos utilizando uma mascara de 16bits(255.255.0.0) onde os dois primeiros octetos definem a rede e os dois últimos definem o host. No caso a cima a interligação entre os dois campus é apenas o switch do campus01 interligado ao switch do campus02. Com isso temos um grande problema que é um trafego alto entre um campus e outro sem necessidade.

Para solucionar este problema é simples basta mudar a mascara de sub rede de 16 para 24bits e colocar um roteador entre os dois campus. Veja a imagem:

roteamento02

Viram? agora só ira ter trafego entre os dois campus caso for realmente necessário. Mas como funciona um roteador? Um roteador ele tem sempre pelo menos 2 interfaces de rede, que podem ser iguais ou diferentes. Mas sempre conectadas em redes diferentes.

Quando um equipamento vai se comunicar na rede ele verifica se o endereço de destino pertence a mesma rede que ele ou não, caso pertença ele apenas envia a informação para rede em forma de broadcasting e caso não pertença ele encaminha esse pacote para o roteador que vai ficar responsável por distribuir esta informação. Mas para que isso ocorra todos os equipamentos devem conhecer o endereço do roteador da rede, que nas configurações dos equipamentos é visto como default gateway ou apenas como gateway.

Com base no cenário anterior nós temos: Duas redes, a 192.168.10.0 do campus 01 e a 192.168.20.0 do campus 02, e temos um roteado que faz parte das duas redes. Para isso os equipamentos da rede do campus 01 devem ter configurado como default gateway o endereço 192.168.10.10 e os equipamentos do campus 02 devem ter configurados como  default gateway o endereço 192.168.20.10.

Mas e o  roteador? Bom como já foi dito lá no começo, o roteador poderia ser um cisco, um juniper, até mesmo um linksys ou um delink( Que medo!!! ). Mas no nosso caso vai ser uma CPU com GNU/Linux instalado. Eu utilizo no dia a dia Debian, e por isso vou usar ele como base para os testes sendo que os passos vistos aqui devem funcionar em outras distribuições.

Para esta tarefa precisamos de uma instalação minima do Debian.

Para o GNU/Linux trabalhar como roteador é muito simples, ainda mais quando vamos fazer o roteamento apenas entre 2 redes e só existe um roteador. Para que o roteamento de pacotes funcione o nosso sistema precisa fazer parte das duas redes e ter habilitado o repasse de pacotes para outra rede.

Para configurar rede podemos fazer:

ifconfig 192.168.10.10 up
ifconfig 192.168.20.10 up

E para habilitar o repasse de pacotes de uma rede para outra faça:

echo 1 > /proc/sys/net/ipv4/ip_forward

Pronto neste momento esta maquina já esta agindo como um roteador entre as redes 192.168.10.0 e 192.168.20.0

Bom no Debian as configurações das interfaces de rede(ip e mascara) podem ser feitas no arquivo /etc/network/interfaces e a configuração do repasse de pacotes pode ser feita no arquivo /etc/sysctl.conf. Mas estes arquivo podem mudar de distribuição para distribuição, por isso vou falar mais um pouco sobre os comandos anteriores.

O problema dos 3 comandos anteriores é que eles só funcionam enquanto a maquina não for reinicializada, após uma reinicialização tudo é perdido e o sistema não age mais como um roteador. Já imaginou o problema? Então para resolver isto podemos editar o arquivo /etc/rc.local e adicionar as 3 linhas de comando lá, antes do exit 0, esse arquivo sempre é executado na inicialização do sistema.

Esta é a primeira parte. Introdução a roteamento com GNU/Linux. Espero que tenha sido útil e até a segunda parte.

Tags: , , ,

SSH/SCP sem senha - Passwordless

July 31st, 2009


SSH sem senha

Muitas vezes precisamos automatizar um tarefa e essa tarefa envolve o acesso remoto via ssh ou a cópia de um arquivo via scp. Para isso precisamos de um acesso via ssh sem senha, e uma conta sem senha seria uma falta de segurança enorme. Então para isso podemos gerar um certificado e fazer uma relação de confiança. Este certificado é baseado em chave publica e chave privada. Onde a chave privada é pessoal e intransferível e a publica você pode distribuir.

ssh-sem-senha

Vamos trabalhar em cima do cenário abaixo, onde temos dois servidores e uma estação. E o problema é que a estação, que na imagem é chamada de cliente, tem a necessidade de fazer conexões com os servidores via ssh, mas sem a utilização de senhas.

Tendo como base a situação descrita logo a cima vamos a solução.

Na maquina cliente siga faça:

mkdir ~/.ssh
cd ~/.ssh

Muitas vezes o diretório .ssh no home do usuário já existe, mas não tem problema. O importante é estar dentro deste diretório. Em seguida vamos criar o certificado com o comando ssh-keygen, ele ira solicitar para que você digite o nome do arquivo do certificado e em seguida vai solicitar que você digite uma passphase, uma frase de autenticação para o certificado. Nesta hora você não vai digitar nada, senão a frase será solicitada na hora da conexão e aí não vai adiantar nada. Então apenas de enter nas duas vezes que ele te solicitar esta informação. Então faça:

(Eu de acordo com a imagem escolhi para nome do arquivo meu sobrenome, lichti)

captura_de_tela-gustavogustavo-laptop-ssh

ssh-keygen

Pronto esse processo ira gera dois arquivos com o nome escolhido, no meu caso:
lichti e lichti.pub. O arquivo lichti é o que você deve guardar para utilizar para se identificar sempre que for necessário, e o arquivo lichti.pub é o arquivo que enviaremos aos servidores que vamos ter acesso.

Vamos ao proximo e último passo, enviar as chaves aos servidores. Faça:

ssh-copy-id -i ~/.ssh/lichti.pub usuario@10.0.0.10
ssh-copy-id -i ~/.ssh/lichti.pub usuario@10.0.0.11

Pronto, agora já podemos utilizar o ssh para se conectar aos servidores sem a utilização de senha, veja:

ssh usuario@10.0.0.10 -i ~/.ssh/lichti
ssh usuario@10.0.0.11 -i ~/.ssh/lichti

ou

scp /etc/fstab usuario@10.0.0.10 -i ~/.ssh/lichti
scp /etc/fstab usuario@10.0.0.11 -i ~/.ssh/lichti

Tags: , , , , , , ,

apt-cacher e conomizando banda e ganhando tempo

July 17th, 2009


Apt-cacher

Muitas vezes trabalhamos em rede e com vários servidores e/ou desktops GNU/linux, e sempre que é preciso instalar um software ou fazer um upgrade da distribuição utilizando o apt(Advanced Package Tool) mais conhecido como apt-get os downloads são feitos sempre uma vez por maquina, causando um consumo de banda alto. Então pode-se utilizar o apt-cacher instalando em uma das maquinas, e configurar o apt de todas maquinas da rede para utilizar o esta maquina como um proxy para apt

Instalando o apt-get

	apt-get install apt-cacher

Configurando o apt-cacher

Por padrão o apt-cacher vem configurado para não iniciar com o sistema, e quando se tenta iniciar o serviço manualmente ele não é carregando. Para resolver esse problema deve-se editar o /etc/default/apt-cacher.

Neste arquivo deve-se procurar e alterar a linha conforme a seguir:

Achar a linha:
	AUTOSTART=0
e alterar para:
	AUTOSTART=1

Feito isso o apt-cacher vai inicializar automaticamente a cada boot, mas para não precisar reinicializar o sitstema agora apenas faça:

	/etc/init.d/apt-cacher start

Configurando o apt-get

Agora só falta configurar o apt para utilizar o apt-cacher para fazer o download dos arquivos. Para isso basta configurar o apt para utilizar um proxy. Então deve-se criar um arquivo chamado 00-proxy no diretorio /etc/apt/apt.conf.d/

	touch /etc/apt/apt.conf.d/00-proxy

E dentro desse arquivo colocar estas linhas:

	Acquire{
		HTTP::proxy "http://host:3142";
		FTP::proxy  "http://host:3142";
	}

Configurações avançadas

Com o que já foi feito até aqui, já funciona tudo direitinho, mas se precisar fazer algumas alterações por algum motivo, como para melhorar a segurança temos um arquivo de configuração onde podemos configurar diversas opções.

Você também pode configurar o apt-cache para ouvir em uma porta diferente da porta 3142, pode proibir ou permitir por ip, alterar o diretório onde o cache de arquivos são feitos e muito mais. Essas configurações podem ser feitas no arquivo /etc/apt-caher/apt-cacher.conf. A seguir tem uma lista descrevendo as opções.

cache_dir=/var/cache/apt-cacher
Diretório principal onde serão armazenados os arquivos .deb

admin_email=root@localhost
e-mail do adminstrador da rede

allowed_hosts=*
Lista de IPs, separada por vírgula, que podem acessar o apt-cacher. Por exemplo: allowed_hosts=10.0.0.1-10.0.0.10,10.5.0.1 indica que os IPs permitidos são todos na faixa de 10.0.0.1 à 10.0.0.10 e mais o IP 10.5.0.1. Para permitir que qualquer IP possa acessar, use *

denied_hosts=
Faz o contrário da opção anterior, ou seja, bloqueia os IPs listados de acessarem o apt-cacher

allowed_hosts_6=
Similar à allowed_hosts, mas os IPs são dados seguindo o padrão IPv6 (::ffff:w.x.y.z)

denied_hosts_6=
Similar à denied_hosts, mas os IPs são dados seguindo o padrão IPv6 (::ffff:w.x.y.z)

allowed_locations=ftp.dominio.com.br
Permite que apenas os domínios passados sejam válidos nos Canais de Software do Repositório. Essa opção vem desabilitada padrão.

generate_reports=1
Gera relatórios diários de acesso do apt-cacher. Pode ser visualizado abrindo em um navegador o endereço http://IP.DO.SERVIDOR:3142/apt-cacher/report. Para desabilitar use 0 (zero).

clean_cache=1
Limpa diariamente os pacotes que estão no cache, mas que não estão nas listas dos Canais de Software do Repositório atual. Para desabilitar use 0 (zero).

logdir=/var/log/apt-cacher
Diretório dos logs de acesso ou de erros do apt-cacher

expire_hours=0
Tempo em horas para que as listas dos Canais de Software do Repostiório sejam atualizadas. Caso seja 0 (zero) o apt-cacher irá comparar o pacote requisitado com a versão presente no servidor, daí irá atualizar se necessário.

http_proxy=dominio.proxy.com.br:8080
Faz com que o apt-cacher passe os dados requisitados por um proxy externo. Essa opção vem desabilitada por padrão.

use_proxy=0
Habilita (1) ou desabilita (0) o proxy externo configurado na opção anterior

limit=0
Limitar a quantidade de bytes por segundo permitida para uso. Deixe em 0 (zero) para não fixar limite.

debug=0
Adiciona mais informações aos logs de erro. Habilite com 1 e desabilite com 0.

Relatório

O apt-cacher por padrão vem com um relatório de acesso habilitado, quando habilitado este relatório é gerado diariamente e pode ser acessado no navegador no endereço: http://host:3142/apt-cacher/report

Referencias:

man apt-cacher

http://wiki.ubuntu-br.org/apt-cacher

Simulador de Flash Tween e Transitions

June 5th, 2009


Bom gente, hoje vou mudar um pouco de assunto. Como muitos sabem eu ministro alguns cursos na Tecnoponta Treinamento, nas unidades Santos e São Paulo. E um dos cursos que eu ministro na unidade de santos é Flash action script 3. E então desenvolvi nessa semana dois 'aplicativos' web para auxiliar os alunos no entendimento e no aprendizado. Essas duas aplicações são: Simulador de Tween e Simulador de Transitions. Os dois estão disponíveis na internet, são de uso livre e gratuito desde que se mantenham sempre os créditos de Gustavo Lichti e Tecnoponta Treinamentos. Espero que gostem.

Simulador de Tween: Online - Download
Simulador de Transitions: Online - Download

Screens:

transition

tween

Tags: , , , ,

Estou vivo

May 16th, 2009


Faz tempo que não posto nada, isto devido a quantidade de serviços e aulas nos últimos meses. Estou com alguns posts guardados aqui, vou terminar para postar para vocês.

Queria dizer que fiquei feliz em perceber o aumento de leitores no Blog. Mesmo sem novos conteúdos.

Em Junho estarei na FISL, quem for estar lá entre em contato por Twitter www.twitter.com/lichti ou msn/gtalk: gustavo.lichti@gmail.com

Em breve mais noticias e posts ;)

Tags: , , ,

Calculo de juros e parcelas

November 27th, 2008


Tenho uma página nova no blog, que é uma calculadora para financiamento, muitas vezes na hora de ir comprar um carro ou comprar algo parcelado queremos fazer algumas simulações de financiamento antes de ir a caça. Para isso coloquei a disposição no site esta calculadora.

  • Calcula a quantidade de meses necessários para um financiamento com a parcela pré-estabelecida
  • Calcula a taxa de juros a partir do valor financiado e do valor das prestações
  • Calcula o valor da prestação a partir da taxa de juros e do valor a ser financiado
  • Calcula o valor financiado a partir do valor da prestação e taxa de juros

CALCULADORA PARA FINANCIAMENTOS

Acesso remoto com SSH - Tunel SSH

November 5th, 2008


Muitas vezes temos a necessidade de acessar um host que esta atrás de um firewall, porém é um acesso emergencial, que dispensa o redirecionamento de portas, mesmo por que não é uma maquina que necessita estar acessível na internet e neste caso um redirecionamento de portas no firewall seria uma grande falha de segurança.

Muitos alunos me perguntam em aula, qual é a porta do Terminal Server pois tem uma maquina que esta atrás do firewall e precisa ter acesso a ela externamente, ou como fazer para poder ter acesso pela internet ao vnc de varias maquinas que estão dentro da empresa? São perguntas frequentes, e a resposta nunca é a que estão esperando, pois sempre esperam uma resposta utilizando o redirecionamento de portas no firewall, deixando essas maquinas expostas na grande rede.

E mais, o VNC é um protocolo não seguro e que não utiliza criptografia, mais uma falha de segurança.

Uma forma de fazer esses acessos de forma segura e deixando essas maquinas protegidas é utilizando um recurso de tunelamento do SSH, que é muito simples, e ainda criptografa a conexão.

Este tunelamento permite que se redirecione uma porta local para uma porta de um host remoto atrás do firewall, Imagine:

De acordo com a imagem a cima, imagine que você esta no host com o IP 200.102.30.22 e queira acessar o VNC que esta no host 192.168.0.10. Para isso abra um terminal e digite como root:


# ssh usuario@200.201.181.30 -L 5900:192.168.0.10:5900

Pronto, agora abra o seu cliente VNC e digite: localhost:5900

Simples assim!

A  opção -L que faz a magica tem a seguinte sintaxe:

- L [bind_address:]port:host:hostport

[bind_address:] => por padrão é localhost
port => porta local que será redirecionada
host => IP do host interno do firewall
hostport => porta do serviço do host interno do firewall

Tags: , ,