sexta-feira, 29 de agosto de 2008

Alguns dos Meus Artigos no site www.gnu-lia.org

É com prazer que informo aos leitores dos meu site, que alguns artigos meus estão indo parar também no conceituadíssimo site http://www.gnu-lia.org.
Dá uma prestigiada no site dos nossos amigos Hermes, José "Kurumin" e Guilherme "Razgriz".
Veja o banner para o site gnu-lia:

Caso de Sucesso SuSE Linux e Casas Bahia

"O Case das Casas Bahia é um Case Mundial da Novell, tanto que a empresa produziu um vídeo a respeito (também disponível em MPEG). É a melhor propaganda de Linux que eu já vi. Números e estatísticas apresentadas pelo cliente SATISFEITO com o produto e o serviço e apresentando isso de forma que outros CLIENTES possam se beneficiar.”
Vale a pena baixar o vídeo completo, lembrando que se você usa Windows, baixe o Link em MPEG, pois o outro vídeo é em formato OGG.
Se você não quiser baixar, veja aqui no Youtube. Recomendo!!!

Comercial IBM Linux: The Boy Has Been Adopted

IBM: The New Allie

IBM Suporta 100% LINUX !!

Comercial "Then Linux Wins"

Além de um belo comercial, uma aula de história, da invenção do telefone, até os dias de hoje.

Comercial da Novell, mais um da série... Eu Sou Linux, Eu PC e Eu MAC

Comercial Linux Envolvendo Linux, Macs e Pcs

Propaganda comparando Muhammed Ali e o Linux

Este vídeo compara as qualidades de Muhammed Ali e o Linux.

terça-feira, 26 de agosto de 2008

Diferenças...

Frase do Dia

"...Olhe para cima e conte as estrelas..."

Gênesis 15:5

sexta-feira, 22 de agosto de 2008

Curso de Ubuntu Oficial da Canonical Traduzido para o Português


Curso bastante didático, com muitas figuras, abordando os principais tópicos do desktop ubuntu 8.04 e seus aplicativos mais comuns: efeitos no desktop, office, multimídia e muito mais.
Este trabalho é uma tradução do curso Ubuntu Desktop Training escrito pela Canonical Ltd. e pela comunidade Ubuntu Training.
Os tópicos abordados são:
  • Capítulo 1 - Apresentação
  • Capítulo 2 - Explorando o Desktop Ubuntu
  • Capítulo 3 - Usando a Internet
  • Capítulo 4 - Usando o OpenOffice
  • Capítulo 5 - O Ubuntu e os Jogos
  • Capítulo 6 - Personalizando o Desktop e Aplicativos
  • Capítulo 7 - Fazendo o Máximo com Imagens e Fotos
  • Capítulo 8 - Executando Músicas e Vídeos
  • Capítulo 9 - Ajuda e Suporte do Ubuntu
  • Capítulo 10 - Particionamento e Inicialização
  • Apêndice A - Instalando Drivers das Placas NVIDIA ou ATI
  • Apêndice B - Compiz Fusion e o Cubo para Iniciantes
Para tera acesso a todo o curso, visite o blog http://ubuntu804-br.blogspot.com/

quarta-feira, 20 de agosto de 2008

avi, mp3, vorbis, flac, que sopa de letrinhas!!!!!



Hoje é cil a gente ver um player pendurado na cintura ou no pescoço de muita gente. Eu estava outro dia em Belo Horizonte e observei que muita gente usava algum player. Com a natural evolução tecnológica dos dispositivos de armazenamento, eles incorporaram mais recursos e diminuiram o tamanho. Há 2 anos eu comprei um pen-driver de 1 GB por R$180,00, neste final de ano comprei um player mp4 por R$120,00. Aumentou a tecnologia, diminuiu o preço e o tamanho.

Quando os CDs passaram efetivamente a fazer parte de nossas vidas e o LP foi sendo abandonado por causa de suas limitações, entramos efetivamente numa era sonora digital. Ao invés das gravações feitas em plástico como nos LPs e fitas K7, passamos a ter o som arquivado em mídias que guardavam informações binárias. Esta mudança abriu um mundo de possibilidades que nós normalmente não percebemos.

A primeira mudança, não a mais importante, foi o tipo de mídia como forma de armazenam
ento. A fita K7 e o LP eram muito sensíveis. A fita K7 podia perder suas informações/músicas se ficasse perto de um imã. O LP facilmente era danificado por um arranhão. Quem já não chorou ao ver aquele seu amado LP de Roberto Carlos tocando e dando aquele salto irritante? puk, puk, puk... Num CD, a possibilidade de dano era menor pois a mídia não tinha contato direto com o leitor, o canhão laser.

Um outro fator interessante era o
chiado. No CD o chiado era eliminado por completo caso a gravação original, desde a captura do áudio fosse feita digitalmente. Nas mídias anteriores, principalmente o LP, o chiado era inerente ao som.

Haverá uma eterna discussão entre a qualid
ade sonora do LP versus CD. Os que defendem o LP, mesmo com suas limitações citadas, defendem que a gravação analógica consegue captar um espectro maior da real execução do instrumento, coisa que não é possível numa gravação digital. Esta argumentação é interessante. Teoricamente nenhuma mídia consegue capturar, em toda sua extensão a qualidade musical de um instrumento, ou seja, a execução ao vivo é sempre mais rica que sua própria gravação. Este assunto é realmente delicado e vamos discutir num artigo à parte.

Vejamos alguns dos formatos digitais de áudio

O Formato MP3

Com o avanço da internet, que deixou de ser apenas para uso militar, depois de instituições de pesquisa e ensino e passou a ser de acesso público. Começou-se a criar um fato novo nas relações de comunicação.


Enquanto não havia o correio eletrônico, as mensagens eram feitas e trocadas por meio de cartas. Com o nascimento e crescimento da internet, a comunicação eletrônica, o e-mail, passou a fazer parte do cotidiano de um número cada vez maior de pessoas.

Por sua vez, o www criou um sem número de sites e recursos que foram evoluindo desde o html puro e simples, passando pelas páginas dinâmicas e chegando até às transmissões multimídias, onde o áudio e o vídeo juntos compõem um novo meio de comunicação.

Neste momento a mídia digital, o cd onde a música era armazenada impedia que a transmissão da música pela internet fosse algo ainda imprecisa e lenta.

Vamos entender um pouco o porquê disso.


Na hora da gravação, o microfone ou captador recebe o som e o transforma em um arquivo que será posteriormente mixado, inserido efeitos etc.


Este arquivo, em seu formato natural, tem uma taxa de 10 megas para cada minuto de execução. Ele é estéreo, com uma taxa de 44100 hz e 32 bits. Ele captou e guardou teoricamente um espectro musical muito grande. Notas muito altas e notas muito baixas. Captou também momentos em que os dois canais (left e right) se aproximaram um do outro, formando quase um canal mono.

Este formato não era realmente bom para a internet. Imagine uma música de 4 minutos sendo trocada por 2 amigos. Não era realmente viável. Foi neste contexto que começaram a surgir estudos para viabilizar alternativas.

Segundo o site wikipedia - http://pt.wikipedia.org/wiki/MP3, o formato mp3 foi o primeiro formato digital que se propôs a analisar o espectro sonoro de uma música qualquer e propor um algorítmo que mantivesse a qualidade próxima do original.

No site do Instituto Fraunhofer, eles tem a história da evolução do mp3 http://www.iis.fraunhofer.de/EN/bf/amm/mp3history/mp3history01.jsp

Segundo o site, o ano de 1987 foi o marco para o estudo do mp3. Uma parceria entre a Universidade de Nuremberg e o Instituto Fraunhofer, liderado pelo Prof. Heinz, começaram a estudar um algoritmo de compactação.


Em 1988 foi estabelecido o MPEG, um grupo de trabalho específico da ISO.


Em 1989 o Prof. Brandenburg termina sua tese de doutorado sobre o algoritmo OCF, um codec que seria a base do mp3.


Em 1991 um novo codec chamado ASPEC é apresentado como resultado das melhorias do codec OCF.


Apresentação da ASPEC 19 "racks estúdio de transmissão de voz e música através da RDIS fiável entre estúdios radiodifusão (1991, a partir da esquerda: Jürgen Herre, Martin Dietz, Harald Popp, Ernst Eberlein, Karlheinz Brandenburg, Heinz Gerhäuser).



Em 1994, surge o primeiro codificador/decodificador mp3.

Em 1995 o nome mp3 é dado ao projeto MPEG-1, Layer 3.


Formato ogg/vorbis (fonte: http://pt.wikipedia.org/wiki/Vorbis)

Vorbis é o nome de um projeto, liderado pela Xiph.org Foundation, que desenvolveu um algoritmo de compressão/descompressão (codec) de áudio, livre de patentes. Os arquivos codificados com o codec Vorbis são frequentemente usados em conjunto com o formato Ogg, sendo então conhecidos como Ogg Vorbis.

O projeto Vorbis foi iniciado após uma mensagem da Fraunhofer Gesellschaft em Setembro de 1998, a anunciar os planos de cobrar licenças de utilização para o popular formato MP3. Pouco tempo depois Christopher Montgomery iniciou o projeto, sendo auxiliado por um crescente número de voluntários, que continuaram a aperfeiçoar o código até ser lançada a versão 1.0 do codec em 19 de Julho de 2002.

Ao contrário do formato MP3, o Vorbis utiliza uma codificação em bitrate variável (VBR) o que permite obter arquivos mais compactos para uma qualidade de som semelhante, ou melhor qualidade para a mesma dimensão de arquivo.

Além das diferenças técnicas, a outra grande diferença entre o MP3 e o Ogg Vorbis é que enquanto o primeiro formato é proprietário, o segundo é livre, com uma licença BSD para as bibliotecas e GPL para as ferramentas.

Devido ao fato de o MP3 ter atingido uma grande popularidade durante a década de 1990, o formato Vorbis é ainda bastante minoritário. Apesar disso, a qualidade do codec e a licença livre têm conquistado adeptos, especialmente junto dos que receiam que as patentes do formato MP3 venham a limitar a disponibilidade desse formato.


Formato Flac

FLAC (acrônimo de Free Lossless Audio Codec, que significa Codec de Áudio Sem Perda Livre em inglês) é um codec de compressão de áudio sem perda de informação. Ao contrário de codecs com perda tais como o MP3 e o Vorbis, ele não remove nenhuma informação do fluxo de áudio, mantendo a qualidade do som.

Josh Coalson é o autor original do FLAC. Em 29 de Janeiro de 2003, Xiphophorus (agora conhecida como fundação Xiph.Org) anunciou a incorporação do FLAC sob sua bandeira juntamente com Vorbis, Ogg, Theora, Speex, e outros


O projeto FLAC se compõe de:

  • o formato de stream;
  • um container de formato para o stream, também chamado de FLAC (ou FLAC Nativo);
  • libFLAC, uma biblioteca de referência de codificadores e decodificadores, e uma interface de metadados;
  • libFLAC++, um object wrapper para a libFLAC;
  • flac, um wrapper em linha de comando para utilizar a libFLAC para codificar e decodificar streams em FLAC;
  • metaflac, um editor de metadados em linha de comando para arquivos .flac e para a aplicação de Replay Gain;
  • plugins de entrada para vários tocadores de áudio (Winamp, XMMS, foobar2000, musikCube, e muitos mais);
  • Com a incorporação à Xiph.org, o container de formato Ogg, adaptável à streaming (também chamado de Ogg FLAC).

"Livre" significa que a especificação do formato de stream pode ser implementada por qualquer pessoa, sem necessidade de autorização expressa (a Xiph.org se reserva o direito de definir a especificação do FLAC e certificar a conformidade aos mesmos), e nem o formato FLAC, nem nenhum método implementado para codificá-lo/decodificá-lo são cobertos por patentes. Isso também significa que a implementação referencial é software livre e os códigos-fonte da libFLAC e da libFLAC++ são disponíveis sob a Licensa BSD da Xiph.org, e os códigos-fonte do flac, metaflac, e também os plugins estão disponíveis sob a GPL.


O FLAC foi criado para um empacotamento eficiente de dados de áudio, diferente de algoritmos gerais de compressão sem perda, como ZIP e gzip. Enquanto um ZIP pode compactar um arquivo de áudio com qualidade de cd em 10% ou 20%, com FLAC pode-se alcançar taxas de compressão de 30% a 50%.

Codecs com perda de dados podem alcançar taxas de 80% ou mais, descartando dados do stream original. O FLAC utiliza predição linear para converter amostras do áudio em uma série de pequenos números não correlatos (o residual), que são armazenados eficientemente com o uso do algoritmo Golomb-Rice. Ele também utiliza codificação de run-length para blocos de amostras idênticas, como passagens silenciosas. As vantagens técnicas do FLAC comparado a outros codecs sem perda residem na sua habilidade de streaming e em um rápido tempo de decodificação, que independe do nível de compressão.

Como qualquer outro codec sem perdas, o formato FLAC é popular entre proprietários de CDs e outras mídias que desejam preservar suas coleções de áudio. Se a mídia original foi perdida ou danificada, uma cópia em FLAC garante que uma duplicata exata do original pode ser recuperada a qualquer instante. Uma restauração exata feita a partir de um arquivos com perda (ex., MP3) dos mesmos dados é impossível. Um arquivo CUE pode opcionalmante ser criado ao copiar-se um CD. Se o CD foi lido e copiado peerfeitamente em arquivos FLAC, o arquivo CUE permite posteriormente a gravação de um CD de áudio idêntico ao original, incluindo ordem das faixas, pregaps, e CD-Text. Entretanto, dados adicionais presentes em alguns CDs, como letras e gráficos de CD+G estão além do escopo de um arquivo CUE e da maioria dos softwares de cópia de CDs, portanto, esses dados não serão armazenados.


O formato Wav

WAV (ou WAVE), forma curta de WAVEform audio format, é um formato-padrão de arquivo de áudio da Microsoft e IBM para armazenamento de áudio em PCs.

É uma variação do método de formatação de fluxo de bits RIFF para armazenar dados em blocos (chunks) e também parecido com os formatos IFF e o AIFF usados em computadores Macintosh. Ambos WAVs e AIFFs são compatíveis com os sistemas operacionais Windows e Macintosh. São levadas em conta algumas diferenças nos processadores Intel como a ordem de bytes "little-endian". O formato RIFF age como um "empacotador" (wrapper) para vários codecs de compressão de áudio. É o principal formato usado nos sistemas Windows para áudio simples.

Apesar de um arquivo WAV poder conter áudio compactado, o formato mais comum de WAV contém áudio em formato de modulação de pulsos PCM (pulse-code modulation). O PCM usa um método de armazenamento de áudio não-comprimido (sem perda). Usuários profissionais podem usar o formato WAV para qualidade máxima de áudio. Áudio WAV pode ser editado e manipulado com relativa facilidade usando softwares.

Por ser um formato sem compressão, o WAV ocupa um espaço muito grande de armazenamento, o que pode ser resolvido convertendo o arquivo para outros formatos, tais como mp3 ou Ogg-Vorbis.

Limitações do formato wave

O formato WAV é limitado a arquivos menores de 4 GiB, devido ao uso de inteiros de 32 bits para gravar o campo de tamanho no cabeçalho de arquivo(alguns programas limitam o tamanho do arquivo para 2 GiB). Apesar disto ser equivalente a aproximadamente 6.6 horas de áudio em qualidade de CD(44.1 kHz, 16-bit estéreo), em algumas situações é necessário ultrapassar esse limite. O formato W64 foi então criado para usar no Sound Forge. O seu cabeçalho de 64-bit permite gravações muito mais longas. Este formato pode ser convertido usando a biblioteca libsndfile. O formato RF64, especificado pela União Européia de Transmissão (European Broadcasting Union), também foi criado para resolver este problema.

CDs de Áudio

CDs de áudio não usam WAV como formato de som. Em vez disso, usam o Red Book Audio. O ponto em comum é que ambos têm o áudio codificado em PCM. WAV é um formato de arquivo de dados para uso no computador. Se um CD de áudio fosse codificado em um arquivo WAV e em seguida gravado num CD-R usando um CD de dados(no formato ISO), o CD não tocaria em um aparelho de som que foi projetado para tocar CDs de áudio.

Conclusão

Não há volta, estamos num mundo digital. Até a TV agora é digital. Parece que estamos num filme de ficção científica como "Blade Runner - O Caçador de Andróides", ou "Minory Report", tudo digital, instantâneo. Só falta a Rose, aquela robozinha dos Jetsons chegar e servir um copo de refri.

Como diria Robin: "Santa confusão de siglas Batman"


Sobre o autor

Hermes Nunes Pereira Júnior, o hnpjunior, trabalha com Linux desde 1997, quando conheceu o Conectiva 3, cujo codinome era "Guarani". Hoje trabalha com o Debian Etch. Tem artigos escritos no Viva o Linux, na Revista Fedora Brasil, além de ser editor do site GNU-Lia, que aborda o uso de softwares livres para edição de áudio e vídeo. Está desenvolvendo um curso de teoria e prática musical a distância usando softwares livres.

terça-feira, 5 de agosto de 2008

Backup Incremental de Servidores e Estações Windows em Servidores Linux com o RSYNC


Backup de Servidores e Estações Windows com o RSYNC.

Este Artigo está publicado no VivaoLinux em
http://www.vivaolinux.com.br/artigo/Utilizando-o-RSYNC-para-fazer-backups-de-servidores-e-estacoes-Windows

1. Introdução

Quem utiliza o RSYNC para fazer backups entre máquinas Linux, sabe como é fácil manter backups centralizados e atualizados de forma fácil, eficiente e segura. E ainda mais se sua unidade de fita for em um servidor linux (como é o meu caso), você pode deixar seus scripts de backup rodando para reunir todos os dados importantes em uma única máquina para depois fazer o backup em fita magnética.

Antigamente (ou atualmente dependendo do Administrador da Rede) quando queríamos fazer backups entre servidores remotos e centralizá-los, geralmente utilizávamos o FTP, que através de alguns comandos é possível fazer a conexão, login e senha automático e ainda mandar todos os arquivos para serem feitos backups em um servidor.
O Grande problema ai é que o FTP manda a senha em texto plano pela rede e seus arquivos podem ser capturados durante a transferência.

O Rsync, como o nome sugere, é um programa que sincroniza remotamente os dados entre duas máquinas. Por ser baseado no antigo rcp (remote copy), o software herdou as propriedades de criptografia do protocolo SSH, o que torna sua transmissão de dados mais segura que o FTP.

Além das propriedades de segurança, o rsync utiliza o protocolo remote-update, o que aumenta assustadoramente sua velocidade e diminui a quantidade de dados transferidos, pois são trocados entre os servidores somente as diferenças entre dois grupos de arquivos.

Se alteramos uma dúzia de arquivos numa porção de centenas, ao executar um rsync do seu desktop para o servidor, somente os arquivos alterados serão enviados por upload e você ainda não corre o risco de algum espertinho utilizando um sniffer na rede capturar sua senha de FTP em texto plano.

Resumindo, existem pelo menos quatro situações onde o rsync pode te ajudar:

* copiando (ou sincronizando) arquivos entre dois diretórios locais;
* copiando (ou sincronizando) arquivos de sua máquina local para um servidor remoto;
* copiando (ou sincronizando) arquivos de um servidor remoto para sua máquina local;
* listando os arquivos de um diretório no servidor remoto (como um "remote ls").

Só uma curiosidade, o Rsync é feito pelo Andrew Tridgell, o mesmo autor do SAMBA.
Veja em: http://samba.anu.edu.au/rsync/

2. Como usar o RSYNC e SSH no Windows????

Vocẽ deve estar pensando em instalar o CYGWIN (http://www.cygwin.com/) para começar a o ssh e rsync não é? ESQUEÇA! Deixe o CYGWIN pra lá, existe um aplicativo chamando cwRsync que instala apenas o necessário para sua máquina Windows se comunicar com qualquer servidor Linux na hora, feito caldo de cana! E ainda é possível fazer um servidor, ou seja, o Windows ser um servidor Rsync para sincronização nas duas vias: Windows -> Linux e Linux -> Windows. Mas isto é objeto para outro artigo.

Uma dica, se você quiser basta copiar o diretório c:\Arquivos de Programas\cwRsync para qualquer estação que tem o mesmo efeito de usar o executável da instalação.

Bom, no Linux, já está tudo pronto, não precisa fazer nada (basicamente), pois a maioria das distribuições já trazem o ssh e rsync instalados por padrão, caso não tenha na sua distribuição, instale com o gerenciador de pacotes da sua preferência, ou baixe o código fonte e compile!

Rsync:
http://samba.anu.edu.au/rsync/

SSH:
http://www.openssh.com/

3 - A idéia!

O principal para mim é fazer os backups dos arquivos importantes do usuário sem que ele perceba que todos os seus dados estão sendo guardados de forma segura independente da vontade dele.
Por exemplo, você quer guardar os documentos da empresa ou ainda os emails corporativos.
Se você deixar esta responsabilidade nas mãos do usuário... bom ... você já sabe...
Mas que tal deixar uma tarefa agendada que faz isso diariamente... ????

4 - Obtendo e Instalando o cwRsync.

Você pode obter o cwRsync http://sourceforge.net/project/showfiles.php?group_id=69227&package_id=68081&release_id=615606

Basta baixar o primeiro arquivo: cwRsync_2.1.4_Installer.zip

Instale cwRsync_2.1.4_Installer.zip. confirmando todas as opções.

Pronto! Foi criado na pasta C:\Arquivos de Programas um diretório chamando cwRsync.
Lá contem os binários do ssh e rsync e um arquivo de exemplo que é auto explicativo, porém vamos a alguns exemplos.

4 - Configurando o Arquivo .bat ou .cmd para fazer a Sincronização.

O Funcionamento é simples, mas devem existir no cabeçalho do arquivo, a declaração de algumas variáveis, então deixa sempre o cabeçalho do arquivo desta forma:

@ECHO OFF
SETLOCAL
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

E logo abaixo destas linhas, pode começar a escrever as linhas que vão copiar seus diretórios e/ou arquivos para um servidor remoto.

5 - Exemplos

Em primeiro lugar, precisamos convencionar que:

C:\ para o rsync é /
C:\Arquivos de Programas para o Rsync é /"Arquivos de Programas"
C:\Arquivos de Programas\Microsoft Office para o Rsync é /"Arquivos de Programas/"Microsoft Office"

Opções:
--recursive ou -r = Cópia Recursiva, ou seja todos os arquivos e subdiretórios abaixo do diretório informado
-a = modo arquivo
-v = Modo detalhado (Verbose)

Então vamos aos exemplos:

Obs: Lembrando que todas as linhas abaixo são inteiras com enter apenas no final

Para o exemplo usaremos o servidor 192.168.0.1
Usuário do Servidor: root
Local: Um HD de Backup montado em /media/hd_backup

1 - Fazer Backup dos Emails do Outlook do Usuário Dailson
rsync -av /"Documents and Settings"/dailson/"Configurações Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup

2 - Fazer o Backup da Pasta C:\Sistema Empresa:
rsync -av --recursive /"Sistema Empresa" root@192.168.0.1:/media/hd_backup

3 - Guardar a Pasta Meus Documentos do Usuário Dailson:
rsync -av --recursive /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

4 - Guardar a Pasta HOME inteira do Usuário Dailson:
rsync -av --recursive /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup

5 - Fazer backup da Pasta do Banco de Dados da Empresa: C:\Banco de Dados
rsync -av --recursive /"Banco de Dados" root@192.168.0.1:/media/hd_backup

Obs1: Lembrando que todas as linhas abaixo são inteiras com enter apenas no final

Então um script backup.bat completo com os exemplos acima ficaria desta forma:

@ECHO OFF
REM *********************************************************
REM Script de Backup
REM Autor: Dailson Fernandes
REM Data: 01/08/2008
REM Função: Faz o backup das pastas importantes do usuário
REM *********************************************************
SETLOCAL
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%
rsync -av /"Documents and Settings"/dailson/"Configurações Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup

rsync -av --recursive /"Sistema Empresa" root@192.168.0.1:/media/hd_backup

rsync -av --recursive /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

rsync -av --recursive /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup

rsync -av --recursive /"Banco de Dados" root@192.168.0.1:/media/hd_backup

6 - Opções que você deve saber

1 - Mantendo a Imagem do Backup idêntica a origem

Um backup feito com rsync vai ser feito de forma incremental. Porém se o usuário renomear um arquivo, apagar ou mover da origem (Por exemplo da pasta Meus Documentos) o rsync irá copiá-lo novamente. E irá ficar um fantasma no destino, ou seja. Se o usuário apagar alguns arquivo, eles continuaram no backup e o efeito colateral disso é que o backup irá crescer sem parar.
A idéia é fazer o seguinte, quando o usuário apagar um arquivo, o arquivo deve ser apagado do backup também.
A opção do rsync que faz isso é

--delete

Então a linha Correta para o backup da pasta meus documentos do exemplo anterior seria:

rsync -av --recursive --delete /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

2 - Evitando backup de alguns arquivos.

Você não deseja detonar seu espaço em disco com as músicas e filmes do seu usuário não é? Você pode dizer ao rsync para evitar alguns tipos de arquivos, bastando para isso usar a seguinte opção:

--exclude="O que se quer evitar"

Exemplo:

Vou evitar que vá para o backup os seguintes arquivos:

Arquivos de música (MP3, OGG, WAV, WMA...)
Arquivos de Filme (AVI, MPEG, MPG, FLV, MP4, WMV, AMV ...)
Programas e arquivos temporários (EXE, COM, TMP)
Fotos e imagens (JPG, JPEG, BMP ...)

Basta você separar com espaço e colocar quantas excessões quiser. E ainda pode utilizar coringas.
Por exemplo:

--exclude=*.jpg --exclude=*.avi --exclude=*.mp3 ...

O Nosso exemplo da pasta Meus Documentos já com estas opções tratadas neste tópico ficariam deste jeito:

rsync -av --recursive --delete -e "ssh -p 16117" --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com --delete /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

Neste caso, o Script completo ficaria desta forma:

Obs: Lembrando que todas as linhas abaixo são inteiras com enter apenas no final

Grave ele na raiz do C:\ e chame de backup.bat

@ECHO OFF
REM *********************************************************
REM Script de Backup
REM Autor: Dailson Fernandes
REM Data: 01/08/2008
REM Função: Faz o backup das pastas importantes do usuário
REM *********************************************************
SETLOCAL
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

rsync -av /"Documents and Settings"/dailson/"Configurações Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup

rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Sistema Empresa" root@192.168.0.1:/media/hd_backup

rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup

rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Banco de Dados" root@192.168.0.1:/media/hd_backup

7 - Simplificando o Script

Ao invés de ficar passando as opções em todas as linhas de comando, podemos simplificar o script colocando todas elas no início como uma variável.
Desta forma:

set opcoes=-av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com

Então o script ficaria desta forma:

@ECHO OFF
REM *********************************************************
REM Script de Backup
REM Autor: Dailson Fernandes
REM Data: 01/08/2008
REM Função: Faz o backup das pastas importantes do usuário
REM *********************************************************
SETLOCAL
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%
set OPCOES=-av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com

rsync -av /"Documents and Settings"/dailson/"Configurações Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup

rsync %OPCOES% /"Sistema Empresa" root@192.168.0.1:/media/hd_backup

rsync %OPCOES% /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

rsync %OPCOES% /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup

rsync %OPCOES% /"Banco de Dados" root@192.168.0.1:/media/hd_backup

Simplificou bastante!!!

8 - Usando a Tarefa agendada ou o AT do Windows

Bom, já que todo o trabalho está feito, só falta agendar a tarefa para que este script seja executado diariamente, ou de acordo com a sua necessidade.
Mas não custa nada lembrar, que da primeira irá acontecer o seguinte:

1 - Somente da primeira vez que você rodar o script, o rsync (ssh) irá pedir para você aceitar a chave do host no qual você está mandando os dados. Para isso basta digitar yes e pronto. Esta pergunta não irá acontecer novamente.

2 - A primeira cópia é completa e dependendo da quantidade de dados irá demorar um pouco. Porém se imediatamente após a cópia você chamar o script novamente, irá ver que o rsync não vai fazer nada. O Rsync a partir da segunda cópia, só vai copiar os arquivo que foram alterados, criados ou irá deletar do backup o que foi deletado da origem.

3 - Para agendar a tarefa deste script rodar automaticamente diariamente ou a sua escolha vá em tarefas agendadas do windows em Iniciar/Programas/Acessórios/Ferramentas/Tarefas Agendadas. Ou se preferir, use o AT do windows, que é um agendador de tarefas semelhante ao do linux que também roda em linha de comando.
Se quise aprender sobre o AT no Windows, visite a seguinte página:

http://support.microsoft.com/kb/313565/pt-br

9 - Fazendo com que o backup não peça senha

Antes da cópia começar, o login é feito via ssh. Nesta hora o login é passado pela string root@192.168.0.1:/media/hd_backup, porém imediatamente depois é solicitada a senha.
Então este incomodo é gerado, ou seja, toda vez que a tarefa agendada iniciar o script de backup, a senha será solicitada. E se o usuário não tiver na frente do computador? Ou se esse backup for feito de madrugada?
Para resolver este problema, basta gerar as chaves pública e privada e fazer com que o cwRsync comece o backup sem intervenção humanda.

1 - Gerando as chaves

No servidor linux, gere as chaves públicas e privadas da seguinte forma:
No usuário que você irá fazer a conexão sem senha (vou utilizar o root como exemplo)

Digite no terminal:

ssh-keygen

Quando perguntado para entrar com uma "passphrase", apenas tecle "Enter" duas vezes para que fique em branco, caso contrário esta frase precisará ser digitada posteriormente.

A saída do comando é esta:

Generating public/private rsa key pair.
Enter file in which to save the key
(/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/root/.ssh/id_rsa.
Your public key has been saved in
/root/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

Pronto foram geradas suas chaves públicas e privada dentro do diretório /root/.ssh
São elas:
/root/.ssh/id_rsa (A privada)
/root/.ssh/id_rsa.pub (A pública)

Agora faça o seguinte:

cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

É importante que a chave pública (id_rsa.pub) seja adicionada (usando o sinal de maior maior ">>") dentro do arquivo "authorized_keys", pois podem haver outros clientes registrados neste mesmo arquivo.

E pegue o arquivo /root/.ssh/id_rsa (a sua chave privada) e copie no seguinte diretório na sua máquina windows:
c:\Documents and Settings\seu_usuario\.ssh

Pronto!

Agora roda novamente o backup.bat e veja que o backup é feito sem nenhuma interferência.

A chave Privada está em "/root/.ssh/id_rsa" e a Pública em "/root/.ssh/id_rsa.pub".

10 - Conclusões e Créditos

Este Artigo está publicado no VivaoLinux em
http://www.vivaolinux.com.br/artigo/Utilizando-o-RSYNC-para-fazer-backups-de-servidores-e-estacoes-Windows

Bom. Estou compartilhando a solução que achei em meu trabalho de fazer backups de Servidores e Estações Windows de forma segura e íntegra.
Utilizo esta forma a alguns anos sem quaisquer tipos de problemas.
Existem muito mais opções que podem ser utilizadas com rsync. Para isso consulte o manual. Ele é muito bom e explicativo.

Se você tiver no linux, digite man rsync ou consulte ele na web em http://www.samba.org/ftp/rsync/rsync.html

A Introdução foi retirada do artigo de Fábio Bebert de Paula em http://www.vivaolinux.com.br/artigo/Transferindo-arquivos-com-o-rsync/

Geração de Chaves:
http://www.vivaolinux.com.br/artigo/Conexoes-SSH-sem-senha-facil-e-descomplicado/

E Lembrem-se ...

Flames > /dev/null!!

quarta-feira, 30 de julho de 2008

Dica: Ubuntu atualizado Diariamente



Se você for baixar o Ubuntu para instalar em seu micro e for pegar o que está nos espelhos e site da Canonical, você terá que se deparar com mais de 300MB de atualização.

Ao invés disso, pode pegar uma imagem de instalação totalmente atualizada.

O Próprio pessoal da Canonical faz isso.

Basta acessar http://cdimage.ubuntu.com/hardy/daily-live/current/

E Baixar o Ubuntu que é feito diariamente.
Clique em PC (Intel x86) desktop CD para baixar a imagem para PC 32 bits.
Clique em 64-bit PC (AMD64) desktop CD para baixar imagem para PC 64 bits.

Arte (NERD) Com cabos de Rede

É Coisa pra Russo ver!!! Realmente, porque vem de um site russo. Os caras não tem o que fazer e arrumam.
Além destas maneiras, tem mais algumas outras em http://basik.ru/handmade/2066/




terça-feira, 29 de julho de 2008

Formas de ataque, intrusão, invasão e detecção de intrusão.

1. Introdução

"Um ataque corresponde a um comprometimento em nível de sistema de segurança através de um ato inteligente ou deliberado, afetando serviços e violando política de um sistema.” (SHIREY, 1995).

Um Sistema Operacional, qualquer ele que seja, feito por colaboradores, open source, gratuito ou proprietário é dotado de falhas. Um sistema destes é composto por dezenas de softwares, milhares de linhas de código, rotinas, sub-rotinas, funções, drivers e chamadas de redes que apesar de todas os esforços e testes das empresas que o fazem antes do seu lançamento oficial, acaba aparecendo problemas em poucos dias de uso. Estes problemas, comumente chamados de “brechas”, vulnerabilidades ou ainda “furos”, acabam dando oportunidade de ataque e de acesso indevido ao sistema. As empresas se esforçam, liberando versões beta para que o público especializado (programadores, analistas de segurança e usuários da ferramenta) use e avise dos possíveis problemas para que seja corrigido antes do lançamento da versão final. Porém isso não é o bastante, é impossível a qualquer companhia produtora de sistemas ter testado todos os modos de uso e todas as situações que aquele programa irá passar... daí aparecem os famosos bugs dando oportunidade a alguns de se aproveitarem e usarem isso em benefício próprio ou com o intuito de prejudicar algo ou alguém.

Para se precaver contra estas vulnerabilidades no sistema é que existem profissionais nas empresas que cuidam para que estes problemas possam ser sanados de forma rápida e eficaz. O Administrador de Redes e/ou o Analista de Segurança tem que estar informado através do site do fabricante do sistema ou de sites especializados em publicação de boletins de segurança para ter acesso a estas informações o mais rápido possível e sanar estes problemas o quanto antes. Os fabricantes Sistemas Operacionais geralmente trazem no seu sistema ferramentas que fazem a atualização dos seus programas através da internet resolvendo o problema imediatamente. Esses patchs são baixados e instalados de forma rápida e fácil, porém não basta só aplicar os patchs, é necessária toda uma política de segurança sustentável que deve ser seguida à risca na empresa e ser medida, testada e avaliada periodicamente.

Para diminuir ao máximo as brechas de segurança dos seus sistemas, são necessários alguns cuidados como:
  • Manter seus sistemas atualizados;
  • Procurar usar versões estáveis dos programas utilizados;
  • Executar os serviços necessários na máquina evitando que portas sejam abertas sem necessidade;
  • Cuidado ao usar a conta do administrador;
  • Cuidar da segurança física das suas máquinas e do acesso a elas;
As maiorias das invasões acontecem por que algum serviço foi mal configurado ou está desatualizado. Mantendo estes métodos, com certeza a probabilidade de ataques diminui bastante, mas não evita o inevitável.

2. Intrusões

“A intrusão ou ataque podem ser definidos como qualquer conjunto de ações que tentam comprometer a integridade, confidencialidade ou disponibilidade de um recurso computacional, independente do sucesso ou não destas ações” (SOUZA, 2002).

Em geral, um ataque é cuidadosamente bem calculado, principalmente porque o atacante não quer ser identificado e se possível quer continuar tendo acesso irrestrito ao local invadido.

Não há regras para determinar os métodos dos atacantes, nem estilo. Mas é provável que o invasor comece em conhecer o sistema, em usar programas para rastrear os servidores e levantar as portas abertas. Este passo é compreendido pela Coleta de informação. É possível também nesta fase fazer a varredura dos servidores encontrados para descobrir as versões dos sistemas operacionais utilizados e as versões dos programas que mantém os serviços funcionando. Só após estes passos é que o atacante irá preparar ferramentas para poder tentar fazer a penetração no sistema ou simplesmente tentar fazer negação de serviço ou redirecionamento de tráfego para roubo de informações. Nesta fase, se for possível, o atacante poderá tentar deixar as portas abertas através de um backdoor ou um rootkit para que a sua entrada no sistema invadido seja mantida em sigilo e sempre facilitada. Como passo final, o invasor poderá tentar apagar seus rastros, excluindo ou burlando os sistemas de log do sistema.

Não existe um plano de ataque pré-definido, ou uma regra, mas com certeza alguns dos passos descritos acima são utilizados para que um invasor consiga ter sucesso na sua ação.

3. Qual o motivo das Invasões?

A resposta para esta pergunta não é simples. Os motivos pelos quais alguém tentaria invadir sua rede ou computador são inúmeros. Alguns destes motivos podem ser:

  • Utilizar seu computador em alguma atividade ilícita, para esconder a real identidade e localização do invasor;
  • Utilizar seu computador para lançar ataques contra outros computadores;
  • Utilizar seu disco rígido como repositório de dados;
  • Destruir informações (vandalismo);
  • Disseminar mensagens alarmantes e falsas;
  • Ler e enviar e-mails em seu nome;
  • Propagar vírus de computador;
  • Furtar números de cartões de crédito e senhas bancárias;
  • Furtar a senha da conta de seu provedor, para acessar a Internet se fazendo passar por você;
  • Furtar dados do seu computador, como por exemplo, informações do seu Imposto de Renda. (CARTILHA, 2006)

Existem diversos tipos de ataque, os intrusivos e os não intrusivos. Geralmente são utilizados ataques não intrusivos, aqueles que não comprometem seus dados nem sua confidencialidade, porém compromete seus serviços. São os famosos ataques de negação de serviço, onde o atacante deseja que sua rede, link ou servidor pare de funcionar e não responda mais aos serviços. Abaixo, citarei os principais tipos de ataques e pragas virtuais e a função de cada um deles.

Referências:

Shirey, Robert W. Security requirements for network management data / Robert W. Shirey Computer Standards & Interfaces, Lausanne, V.17,n.4 (Sept.1995), p.321-331

Cartilha de Segurança da Internet, http://nic.br , http://cert.br e http://cartilha.cert.br .Acessado em 22 de Junho de 2007

Souza, Marcelo. Readaptação do modelo ACME para detecção de novas técnicas de
intrusão.
Monografia de Graduação. UNESP – Departamento de Ciência da Computação e Estatística, São José do Rio Preto - SP, 2002.

segunda-feira, 21 de julho de 2008

Automatizando a Geração de BlackLists do Squid

Aqui no Site, tenho publicado algumas Blacklists.
Aqui segue uma dica, para você turbinar seu Squid com as regras mais recentes de alguns sites.
Dica:
Use a minha blacklist junto com a BlackList do site http://www.malware.com.br desta forma:
Estas blacklists são atualizadas constantemente. Então crie o seguinte script e coloque ele para rodar 2 ou 3 vezes por semana.

Dica: Copie e cole no seu editor de textos predileto como kate ou gedit que as linhas aparecerão de forma correta e não quebrada como está aqui no blog.

Script:

################################################
#!/bin/bash
# Script para Atualizar BlackList automaticamente
# Autor: Dailson Fernandes - http://www.dailson.com.br
# Licenca: GNU/GPL
################################################
# Baixa a nova versao da Blacklist
/usr/bin/wget -O - http://www.malware.com.br/cgi/submit?action=list_squid > /etc/squid/malware.txt

# Ativa as regras no Squid
squid -k reconfigure

Para utilizar esta Blacklist no squid abra o squid.conf e faça:
acl malware_block_list url_regex -i "/etc/squid/malware.txt"
http_access deny malware_block_list

sexta-feira, 18 de julho de 2008

As vezes analogias ajudam...

quinta-feira, 17 de julho de 2008

Personalizando o HLBR - IPS Invisível


INTRODUÇÃO:

O HLBR é um projeto brasileiro destinado à segurança em redes de computadores. O HLBR é um IPS (Intrusion Prevention System) bastante eficiente e versátil, podendo ser usado até mesmo como bridge para honeypots e honeynets. Como não usa a pilha TCP/IP do sistema operacional, ele é "invisível" a outras máquinas na rede e atacantes, pois não possui número de IP.

Para você entender do que vamo tratar aqui, primeiramente você deve conhecer o Projeto HLBR e as definições de IPS e IDS.
Aqui também serão tratados artifícios de gerar regras, análise de regras pré-existentes e arquivos de configuração.
Todo este conhecimento, você adquire no artigo anterior do nosso blog que pode ser acessado aqui: http://www.dailson.com.br/2008/07/tutorial-de-instalao-do-hlbr-verso.html ou VivaoLinux que você acessa através deste link http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=8511

A Versão 1.5-RC2 do HLBR vem com 144 Regras pre-definidas, porém se você apenas instalar e não ativar alguns tipos de regras nem todas irão para a execução.
Existem um conjunto de 4 arquivos que trazem regras que devem ser analisadas pelo Admininistrador antes de coloca-las em produção.
Isto é muito importante, porque por definição, o IPS - Intrusion Prevent System está para bloquear e não para lhe avisar do que pode está acontecendo de errado, ou seja, o IPS não pode se dar ao luxo de ter falso-positivo. As regras não podem barrar o acessos legítmos, se isso acontecer, o seu serviço/site fica fora do ar e na agonia de tentar resolver, você fica procurando problemas no serviço/servidor e não encontra nada, porém o IPS tá barrando o acesso antes que ele chegue no destino.

AS REGRAS A SEREM ANALISADAS.

O Arquivo /etc/hlbr/hlbr.rules indica que regras ele deve carregar na detecção de ataques.
A Sintaxe é a seguinte:

<include localização/arquivo_de_regra.rules>

Exemplo:

<include rules/cisco.rules>

A linha acima esta dizendo, que a partir do diretorio que estou (/etc/hlbr) tem o diretorio rules e dentro dele esta o arquivo cisco.rules que pode ter uma ou mais regras que serão carregadas na memória.

O Arquivo padrão hlbr.rules é o seguinte:

<include rules/awstats.rules>
<include rules/bufferoverflow1.rules>
<include rules/bufferoverflow2.rules>
<include rules/bufferoverflow3.rules>
<include rules/cisco.rules>
<include rules/codered-nimda.rules>
<include rules/coppermine.rules>
<include rules/dnsattacks.rules>
<include rules/joomla.rules>
<include rules/mailvirus.rules>
<include rules/passwd.rules>
<include rules/shell.rules>
<include rules/spam.rules>
<include rules/webattacks.rules>


# As regras dos arquivos abaixo deverao ser analisadas antes de serem
# utilizadas. Isso porque elas poderao interromper parte do trafego legitimo
# da rede.
# The rules of the files below must be analysed before being used. That is
# because they are able to interrupt part of the legitimate network traffic.
#
#<include rules/http.rules>
#<include rules/php.rules>
#<include rules/sql-xss.rules>
#<include rules/www.rules>


Note que há um aviso que as seguintes regras devem ser analisadas
#<include rules/http.rules>
#<include rules/php.rules>
#<include rules/sql-xss.rules>
#<include rules/www.rules>

Não vamos aqui comentar todas as regras, mas vamos analisar algum caso antes de ativa-las.

ANALISANDO O www.rules

O o arquivo /etc/hlbr/rules/www.rules traz regras que se ativadas sem a sua devida atenção poderá colocar todos os teus serviços www fora do ar.

Veja a primeira regra:

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.asp)
message=(www-1) .asp request
action=action1
</rule>

<rule> .... </rule>
São as TAGS que definem uma regra

ip dst (www)
o alvo desta regra são todos os servidores declarados no arquivo /etc/hlbr/hlbr.conf na seção www

tcp dst(80)
Especificando a porta destino do serviço web que será monitorada

tcp nocase(.asp)
Especifica um conteudo, dentro de um trafego TCP. O content considera a caixa do caractere (diferencia caracteres maiusculos e minusculos).
Espacos serao considerados como caracteres. Sequencias de bytes em
hexadecimal poderao ser inseridas entre caracteres "pipe".
Então se for solicitada qualquer string .asp ou seja, páginas de um servidor ASP a seguinte ação será tomada

action=action1
No arquivo /etc/hlbr/hlbr.conf está definido que a ação action1 é para negar pacotes. Isso quer dizer que se você tem páginas em asp e liberar esta regra, todas as suas páginas estarão inatingíveis a partir de agora.

Caso vocẽ não tenha servidores asp, esta regra pode ser liberada sem problemas e evita que invasores fiquem fazendo testes para tentar descobrir a linguagem de páginas utilizada em alguns servidores.

Pela explicação acima, veja que você consegue entender as outras regras:

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.php)
message=(www-2) .php request
action=action1
</rule>

A Regra acima bloqueia acesso a páginas em PHP

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.shtml)
message=(www-3) .shtml request
action=action1
</rule>

A Regra acima bloqueia acesso a páginas em SHTML

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.xml)
message=(www-4) .xml request
action=action1
</rule>

A Regra acima bloqueia acesso a páginas em XML

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.pl)
message=(www-5) .pl request
action=action1
</rule>

A Regra acima bloqueia acesso a páginas em PERL.

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(/cgi-bin/)
message=(www-6) cgi request
action=action1
</rule>

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.cgi)
message=(www-7) cgi request
action=action1
</rule>

As Regras acima bloqueia acesso a execução de CGI-BIN

O ARQUIVO http.rules

Trazem regras que podem bloquear alguns métodos HTTP como o POST, DELETE, TRACE, OPTIONS entre outros.
Não vamos entrar nos méritos dos métodos, porém se você quiser proibir estes métodos, pode liberar a seguinte linha no arquivo /etc/hlbr.rules

#<include rules/http.rules>

E analisar cada uma das regras que estão no arquivo http.rules
Vejam elas:

# For your security SEARCH and CONNECT methods must be blocked.

<rule>
ip dst(www)
tcp dst(80)
tcp regex(^SEARCH )
message=(http-1-re) buffer overflow with search
action=action1
</rule>

<rule>
ip dst(www)
tcp dst(80)
tcp regex(^CONNECT )
message=(http-2-re) open proxy search
action=action1
</rule>

# Uncomment the following rule if you want to block POST.

#<rule>
#ip dst(www)
#tcp dst(80)
#tcp regex(^POST )
#message=(http-3) POST method
#action=action1
#</rule>

Veja aqui que regra de POST é comentada por padrão, porque negá-la pode fazer teu serviço WWW não funcionar.

# Comment the following rule if you don't want to block PUT. By the way, do you need PUT?

<rule>
ip dst(www)
tcp dst(80)
tcp regex(^PUT )
message=(http-4-re) PUT method
action=action1
</rule>

# Uncomment the following rule if you want to block OPTIONS.

#<rule>
#ip dst(www)
#tcp dst(80)
#tcp regex(^OPTIONS )
#message=(http-5-re) OPTIONS method
#action=action1
#</rule>

# Comment the following rule if you don't want to block TRACE. By the way, do you need TRACE?

<rule>
ip dst(www)
tcp dst(80)
tcp regex(^TRACE )
message=(http-6-re) TRACE method
action=action1
</rule>

# Comment the following rule if you don't want to block DELETE. By the way, do you need DELETE?

<rule>
ip dst(www)
tcp dst(80)
tcp regex(^DELETE )
message=(http-7-re) DELETE method
action=action1
</rule>

COMO COMEÇAR A ESCREVER REGRAS PARA O HLBR?

Este é um passo que requer atenção, pesquisa e alguns testes.
Em primeiro lugar você deve ler o README que vem no diretorio do HLBR.
Lá existem dicas preciosas de como você começá-las a construi-la. Lá também você consulta os parâmetros possíveis e as ações que o HLBR pode tomar.

Em segundo lugar, ler LOGs, lá você vai encontrar o que estão tentando fazer com seus servidores, quais são os erros comuns e os strings que estão sendo "injetadas" nos seu servidor.
Neste passo aconselho a instalação de programas que auxiliam na leitura de logs como o LOGWATCH, SWATCH e AWSTATS.
Um bom exemplo é aqui na empresa. Constatei vários acessos a uma dll em meu servidor. Esta dll é a owssvr.dll e vi que é um ataque as expressões do frontpage.
Ao longo do artigo, vou ensinar a escrever algumas regras inéditas. Esta regra, será uma delas.

Em terceiro lugar, é bom você conhecer um pouco de expressões regulares, não é obrigatório, porém importante.
Expressões Regulares define um padrão a ser usado para procurar ou substituir palavras ou grupos de palavras. É um meio preciso de se fazer buscas de determinadas porções de texto.
Por exemplo, se o conjunto de palavras for {asa, carro, jardim, ovos, terra} e a expressão regular buscar por um padrão rr, obterá as palavras carro e terra.
Existem vários caracteres especiais chamados metacaracteres nas Expressões Regulares para fazer uma busca avançada de palavras dentro de uma frase. (Fonte: wikipedia)

Por exemplo:

Existe um ataque básico a um servidor HTTP que pode ser visto neste vídeo: http://ufpr.dl.sourceforge.net/sourceforge/hlbr/http_attack_sample.avi que é a tentativa do atacante passear no hd do servidor, tentando descer na árvore de diretórios chamando os caracteres ../
Exemplo:

http://www.vivaolinux.com.br/../../

Se o servidor do vivaolinux tivesse esta vulnerabilidade eu conseguiria ver a raiz do disco do servidor (caso a páginas dele esteja hospeadada em /var/www)

Ou ainda posso tentar ver os arquivos de senha do servidor:

http://www.vivaolinux.com.br/../../etc/passwd
http://www.vivaolinux.com.br/../../etc/shadow

Com o HLBR, basta eu ter a seguinte regra:

<rule>
ip dst(www)
tcp dst(80)
http regex(\.+(/|\\)+)
message=(webattacks-1-re) directory change attempt (unicode,asc,plain)
action=action1
</rule>


Veja a expressão regular:

http regex(\.+(/|\\)+)

Ou seja, se na URL vier . (ponto) seguido de barras sejam elas normais (/) ou invertidas (\) o hlbr toma a ação action1 que é bloquear e colocar em log.

Quem quiser enveredar ou se especializar em Expressõres Regulares, aconselho o site do Aurelio Marinho Jargas: http://aurelio.net/er

ESCREVENDO REGRAS PRA VALER:

Na comunidade, lancei algumas regras contra IP SPOOFING, que é a técnica que o invasor esconde seu IP para que apareça errado nos logs.
Isto pode ser feito no seu firewall, mas como é um ataque conhecido, eu deixo no meu HLBR aqui no trabalho.
Como o HLBR não traz estas regras por padrão, é necessário nós fazermos dois passos:

Primeiro:
Cadastrar o arquivo de regras no /etc/hlbr/hlrb.rules

<include rules/spoof.rules>

Segundo:

Criar o arquivo /etc/hlbr/rules/spoof.rules com o seguinte conteúdo:

# name: spoof.rules
# created by: Dailson Fernandes - http://www.dailson.com.br
# date: 15 Dec 07
# update: none
# version: 1.0
# target: block ips spoofed

<rule>
ip dst(servers)
ip src(10.0.0.0/8)
message=(spoof-1) Ip spoof Network 10.0.0.0/8
action=action1
</rule>

<rule>
ip dst(servers)
ip src(172.16.0.0-172.31.255.255)
message=(spoof-2) Ip spoof Network 172.16.0.0-172.31.255.255
action=action1
</rule>

<rule>
ip dst(servers)
ip src(192.168.0.0-192.168.255.255)
message=(spoof-3) Ip spoof Network 192.168.0.0-192.168.255.255
action=action1
</rule>

Ou se você preferir, baixe este arquivo de regras aqui.

Depois salvar o arquivo e reiniciar o HLBR para ter as regras em execução.
Note que qualquer conexão vindo da WAN com ip de rede local serão bloqueadas.

ESCREVENDO UMA REGRA CONTRA ATAQUES A EXTENSÕES DO FRONTPAGE

Como citei no tópico "Como começar a escrever regras para o HLBR?" Vi que haviam tentativas de acesso a uma DLL inexistente em meu servidor WEB. Com pesquisas na Internet vi que a DLL owssvr.dll é uma extensão do frontpage e um conhecido ataque a servidores IIS da Microsoft.

Nos logs apareciam assim:

"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1"
"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1"
"GET /owssvr.dll HTTP/1.1"
"GET /owssvr.dll HTTP/1.1"
"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=6551&STRMVER=4&CAPREQ=0 HTTP/1.1"

Para barar este tipo de ataque, basta você escrever a seguinte regra:

<rule>
ip dst(www)
tcp dst(80)
http content(/owssvr.dll)
message=(webattacks-17) frontpage extensions attack
action=action1
</rule>

Se você deseja fazer o download desta regra clique aqui

Ela deve ser colocada no arquivo /etc/hlbr/rules/webattacks.rules. Como lá já existem 16 regras, ai você complementa com a 17.
Reinicia o HLBR
Deixa o log em visualização com o tail -f /var/log/hlbr/hlbr.log
E tenta fazer algo do tipo:
www.seuservidor.com.br/owssvr.dll e veja o HLBR pegando este ataque.

Mas veja o seguinte, no próprio arquivo webattack.rules tem a seguinte regra:

<rule>
ip dst(www)
tcp dst(80)
tcp content(/_vti_bin/)
message=(webattacks-12) fp call attempt
action=action1
</rule>

Que já bloqueia qualquer tipo de acesso ao diretório _vti_bin onde fica a dll. Já bloqueando o seguinte ataque:
"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1"
"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1"

Porém não bloqueando este:
"GET /owssvr.dll HTTP/1.1"
"GET /owssvr.dll HTTP/1.1"

Fazendo necessária a inclusão desta regra.

Bônus: Escrevendo uma regra contra SQL-INJECTIONS

Na regra abaixo, eu consigo bloquear técnicas como SQL INJECTION, onde o atacante pode tentar acessar o banco de dados SQL da nossa aplicação e mandar comandos maliciosos para apagar ou consultar senhas e usuários.

(?:^\s*[;>"]\s*(?:UNION|SELECT|CREATE|RENAME|TRUNCATE|LOAD|ALTER|DELETE|UPDATE|INSERT|DESC))|(?:(?:SELECT|CREATE|RENAME|TRUNCATE|LOAD|ALTER|DELETE|UPDATE|INSERT|DESC)\s+(?:CONCAT|CHAR|CONCAT|LOAD_FILE|0x)\s?\(?)|(?:END\s*\);)|("\s+REGEXP\W)

Esse palavrão ai todo está proibindo comandos SQL via protocolo HTTP e portanto protegendo nosso servidor contra SQL INJECTIONS. Esta regra contempla todos os comandos e opções além de técnicas de escondê-las.

Então a regra poderia ser colocada no arquivo /etc/hlbr/rules/sql-xss.rules e deve ficar assim:

<rule>
ip dst(www)
tcp dst(80)
regex((?:^\s*[;>"]\s*(?:UNION|SELECT|CREATE|RENAME|TRUNCATE|LOAD|ALTER|DELETE|UPDATE|INSERT|DESC))|(?:(?:SELECT|CREATE|RENAME|TRUNCATE|LOAD|ALTER|DELETE|UPDATE|INSERT|DESC)\s+(?:CONCAT|CHAR|CONCAT|LOAD_FILE|0x)\s?\(?)|(?:END\s*\);)|("\s+REGEXP\W))
message=(sql-xss-5) Detects concatenated basic SQL injection and SQLLFI attempts
action=action1
</rule>

Se você deseja fazer o download desta regra clique aqui

CONCLUSÃO:

O HLBR é um projeto promissor, e o grande coração dele são as regras e personalizações. Para isso convidamos a toda comunidade a portar regras de outros projetos, ataques conhecidos e casos particulares que acontecem em cada servidor.

No próximo artigo, vou apresentar novas regras e como porta-las através de scritps.

Um grande abraço a todos e lembrem-se...

FLAMES > /dev/null !!!

segunda-feira, 14 de julho de 2008

70 Papéis de (WallPaper) Parede do Firefox

PessoALL

Para quem gosta de Papel de Parede (Wallpaper), neste blog tem 70 opções com o tema Firefox e Thunderbird. Tem para todo gosto.

Para baixar todos de uma vez, pegue a dica da comunidade mzevbr e baixe neste link