18 de dezembro de 2009

Policial metralha MacBook

Artigo du mau da info...

SÃO PAULO - Uma jovem americana teve seu MacBook metralhado ao desembarcar no aeroporto de Jerusalém, durante uma viagem de turismo ao Oriente Médio.

Lily Sussman, uma jovem de 21 anos, é uma americana de família judia que, por razões familiares, quis conhecer Israel. Ao desembarcar em Jerusalém, passou pelos trâmites normais de imigração e foi interrogada sobre a presença de um computador em sua bagagem.

Lily explicou que se tratava de um notebook para uso pessoal e, aparentemente, convenceu as autoridades locais.

Quando se dirigia para sair do aeroporto, no entanto, um policial alertou o esquadrão anti-bombas e o MacBook da jovem foi recolhido e recebeu três tiros. Se fosse uma bomba, o computador teria explodido.

Ao constatar o erro, a polícia de Israel pediu desculpas à jovem e prometeu ressarci-la com um MacBook novo. Em entrevista a uma TV do Egito, a jovem afirmou que o clima parecia tranqüilo e que foi uma grande surpresa ter o computador alvejado.

A garota disse ainda que fará backup de seus dados sempre antes de viajar.


Veja o vídeo aqui

16 de dezembro de 2009

As Tecnologias e inovações da década

Li um artigo na CIO Uol e achei legal compartilhar com vocês...

Ela diz respeito às tecnologias da década.


Quando se fala em evolução de tecnologias corporativas, os últimos dez anos parecem não ter tantas novidades quanto a década anterior. Ainda assim, a mudança do modelo de cliente-servidor para a web, dos sistemas proprietários e caros para os abertos foram algumas das transições marcantes do período.


Assim, ao observar a TI nesta década é relativamente fácil eleger as cinco tendências que mais contribuíram com a evolução do setor no ambiente corporativa. Vale destacar que essas tecnologias não foram inventadas nos últimos dez anos, mas todas elas ganharam espaço no mercado durante o período.



  • Linux

Se fôssemos batizar os anos 2000 com uma única tecnologia, o nome seria década Linux. O primeiro núcleo do sistema foi lançado em 1991, mas a adoção corporativa da plataforma foi definitivamente nessa década. O Linux não só abriu novas funções para o hardware x86 como também mudou a economia o desenvolvimento dos negócios de software para sempre.



  • XML

Primeiramente recomendado ao W3C em 1998, o XML não recebeu atenção até meados de 2002. Hoje, o sistema é o padrão universal para trocas de dados e documentos, possibilitando tudo: de integração de aplicativos corporativos aos feeds (RSS). Todos os grandes sistemas de gestão de bancos de dados afirmam ter a tecnologia XML “nativa”.



  • Virtualização de servidores

Em 2004, quando a tecnologia estava surgindo, a ideia de dividir um servidor em várias máquinas virtuais parecia mais um exercício acadêmico do que uso comercial, até que se percebesse que os servidores usavam um mínimo de desempenho alcançável. A virtualização de servidores foi uma das tecnologias mais rapidamente adotadas pelas empresas.



  • Aplicações ricas para a internet

Uma porção de tecnologias, incluindo AJAX e Flash, permitiu aos aplicativos web substituir aplicações em cliente-servidor nas empresas. Os programadores só tinham que evitar recursos específicos para um navegador: as novas versões dos aplicativos não precisavam de atualizações nos clientes – algo que, entre outros, proporcional crescimento aos serviços de softwares. A transição para a web também democratizou a programação, apoiando desenvolvimento leve com linguagens de script.



  • Área de armazenamento em rede

Blocos endereçáveis para transferência de dados entre vários sistemas de armazenamento contectados via FibreChannel foi uma novidade no início dessa década. Separar os dados corporativos e os colocar em sua própria rede de alta velocidade também reduziu as falhas críticas. Se os anos 80 foram a década do PC, e os anos 90 foram a década da internet, então o que faltou para os anos 00 foi uma tecnologia grande e única para definir o período.



Concordo piamente! Houveram grandes mudanças e bem importantes...

Mirror Clamav Brasileiro

Créditos ao blo osysadmin.blogspot.com
Dono: Meu ex-professor de Servidores Linux

"
Já está no ar o mirror 4o. mirror brasileiro do ClamAV e ele está aqui no Instituto de Computação, mais exatamente dentro do Laboratório de Administração e Segurança de Sistemas :-D

Tudo começou com o Allan Carvalho, sysadmin colega aqui da Unicamp que trabalha no Centro de Engenharia Biomédica simplesmente perguntando para nós se não seria possível fazer um mirror do ClamAV no IC. Encaminhei o pedido ao Prof. Paulo Lício responsável pelo LAS. Me ofereci para fazer e monitorar o mirror. O Prof. entrou com máquina e link, eu com a mão de obra. Tchanã!

$ dig db.br.clamav.net +short
143.106.60.118 <- IP do mirror no IC
200.17.202.1
200.96.36.20
200.139.115.7
"

13 de dezembro de 2009

Invasão no ssh do seu Servidor

Imagina o seguinte. Você tá na boa e seu servidor também. Aí vc vê por acaso o seu /var/log/messages e avista várias tentativas na porta do seu ssh. Você fica desesperado né. Estão tentando invadir meu Servidor! Ai Meu Deus!

Mas, você pode bloquear uma possível tentativa de invasão ao seu servidor ssh com o seguinte script:



#!/bin/bash
# Script de Lucas Sabino




MODE="AUTO"
#MODE="MANUAL"

if [ -f /var/log/messages ] ; then
ips=$(cat -n /var/log/messages | grep -P "(Invalid)" | grep -i sshd | awk -F" " '{ print $11}')
attempts=1
for ip in $ips ; do
lastip=$ip
if [ "$lastip" == "$ip" ] ; then
attempts=$(expr $attempts + 1)
if [ $attempts -ge 5 ] ; then
echo "Brute force SSHD attack detected from $ip"
attempts=1
lastip=""
blocked=$(iptables -L INPUT | grep -i $ip | grep -i DROP)
if [ "$blocked" ] ; then
echo "> Ip Already Blocked. Continuing with scan"
echo " "
else
if [ $MODE == "MANUAL" ] ; then
echo "> Do You Want to add this IP to INPUT DROP in IPTABLES rules? (y/n)"
read resp
if [ "$resp" == "y" ] ; then
iptables -A INPUT -s $ip -j DROP
echo "> IP $ip ADDED TO IPTABLES INPUT DROP ruleset"
echo " "
fi
else
iptables -A INPUT -s $ip -j DROP
echo "> IP $ip ADDED TO IPTABLES INPUT DROP ruleset"
echo " "
fi
fi
fi
fi
done
fi

Baixando um FTP inteiro com auto-login

Estava meio cansado de ficar indo em cada ftp... e baixando. Então fiz um simples script que pergunta algumas informações, depois conecta no ftpserver e baixa a raiz toda ou um arquivo em particular.

#!/bin/bash
sleep 1s
echo "Script feito por Lucas Sabino"
echo
sleep 1s
echo "Script para baixar todos os arquivos de um ftp"
sleep 1s
echo
echo "O seu sistema deve possuir o pacote wget"
sleep 2s
echo

echo "Informe o host ftp"
read ftp
echo

echo "Informe localidade dos arquivos baixados do ftp"
read place
cd $place
echo

echo "Informe seu user de acesso"
read user
echo

echo "Informe seu passwd de acesso"
read passwd
echo

wget -r ftp://$user:$passwd@$ftp
#ou desta forma = $ wget --ftp-user=sabino --ftp-passwd=I00T9b159635eL ftp://sony.com.br
exit

Script - Converte manpages para pdf

Fiz esse script que é muito útil para qualquer pessoa. Chega de dar vi nas manpages. Faça um PDF delas. Para isso use esse shell script que eu fiz que é muito legal. Ele converte qualquer man para um .pdf.



#!/bin/bash --norc

# Convertendo man pages em pdf's
#
# Lucas Sabino

echo "Esse script serve para transformar man pages em arquivos .pdf..."
sleep 2s && echo && sleep 1s
echo " Modo de uso: sh manpages.sh comando"
Echo() { echo -e "\e[1m$*\e[m" ; }

# Sao necessarios: Ghostscript e troff:
[[ $(which gs) ]] || { Echo "-> e necessario o Ghostscript" ; exit 1 ; }
[[ $(which troff) ]] || { Echo "-> e necessario o troff" ; exit 1 ; }

# Checando par?metros:
[[ $# != 1 ]] && Echo "Uso: ${0##*/} [comando]" && exit 1

# Checando a exist?ncia do comando:
[[ $(which $1) ]] || { Echo "[$1] Comando inexistente." ; exit 1 ; }

# Existe man page para o comando especificado?
[[ $(whereis $1 | fgrep "man") ]] || {
Echo "-> Nao existe man page para [$1]"
exit 1
}

# Convertendo:
man -t $1 > $1.ps
[[ $? == 0 ]] && {
gs -dQUIET -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
-sOutputFile=$1.pdf $1.ps

rm -f $1.ps 2> /dev/null

Echo "Arquivo pdf criado." && ls *.pdf && acroread $1.pdf ; exit
} || { Echo "-> Erro ao criar arquivo pdf" ; exit 1 ; }

# Fim

Servidores DNS

DNSzinho básico para update DNS no seu server ou client.


DNS

### :: UNIVERSIDADES :: ###
ns1.ansp.br 143.108.30.90
ns1.unicamp.br 143.106.2.2
ns3.unicamp.br 143.106.2.133

### :: VIRTUA :: ###
Virtua 1 201.6.0.100 dns1.virtua.com.br
Virtua 2 201.6.0.102 dns2.virtua.com.br

### :: Google :: ###
Google 1 8.8.8.8
Google 2 8.8.4.4

Servidores NTP

Se quiser pegar um ntpzinho básico para atualizar seus servidores, pode usar esses:

NTP


Antes, do sync veja o local em /etc/timezone
# ntpdate

### :: NTP BR :: ###
a.ntp.br 200.160.0.8
b.ntp.br 200.189.40.8
c.ntp.br 200.192.232.8

### :: MICROSOFT :: ###
207.126.103.202
208.184.49.129
216.200.93.8

### :: UNIVERSIDADES :: ###

ntp.usp.br 143.107.151.117
ntp.ufsc.br 150.162.1.8
ntp.unicamp.br 143.106.2.3

11 de dezembro de 2009

Conhece vosso hardware

Além da opção lshw, você também pode usufruir da opção dmidecode. Imaginem a seguinte situação:

Estou eu montando um roteador novo pro velox aqui na empresa e vejo que a BIOS só reconhece pentes DIMM de 128Mb. Caceta. Abro a máquina e procuro em algum lugar impresso o modelo da motherboard (antiga como o cão). Não tem. E agora pra eu identificar o modelo dessa porcaria? Vou ao google. Eis que acho o dmidecode. mão na roda, ele me deu informações de tudo o que eu precisava e minutos depois já estava com a BIOS atualizada. \o/

# dmidecode 2.8

SMBIOS 2.33 present.

41 structures occupying 1340 bytes.

Table at 0xCFF79000.Handle 0x0000, DMI type 0, 20 bytes

BIOS Information

Vendor: Phoenix Technologies LTD

Version: 6.00

Release Date: 08/13/2005

Address: 0xE4760

Runtime Size: 112800 bytes

ROM Size: 1024 kB

Characteristics:

ISA is supported

PCI is supported

PNP is supported

BIOS is upgradeable

BIOS shadowing is allowed

ESCD support is available

Boot from CD is supported

Selectable boot is supported

EDD is supported

3.5"/2.88 MB floppy services are supported (int 13h)

ACPI is supported

USB legacy is supported

LS-120 boot is supported

ATAPI Zip drive boot is supported

BIOS boot specification is supported

Handle 0x0001, DMI type 1, 25 bytes

System Information

Manufacturer: Itautec

Product Name: MX200

Version: 0123456789

Serial Number: CO8P301100003

UUID: 80F1E964-DC63-0010-89D5-0030482E46A2

Wake-up Type: Power Switch

Handle 0x0002, DMI type 2, 8 bytes

Base Board Information

Manufacturer: Itautec

Product Name: DT2520

Version: PCB Version

Serial Number: 0123456789

Handle 0x0003, DMI type 3, 17 bytes

Chassis Information

Manufacturer: Supermicro

Type: Other

Lock: Not Present

Version: 0123456789

Serial Number: 0123456789

Asset Tag:

Boot-up State: Safe

Power Supply State: Safe

Thermal State: Safe

Security Status: None

OEM Information: 0x00001234



Sacaram???

ssh ou http? Os dois!

Tá querendo entrar no seu servidor, mas seu blackberry não funfa com um client jar para ssh? Mas, tem acesso a internet? Seus problemas acabaram. Use o httpserver-sshserver, rs. Parece mentira... mas, é verdade. É uma gambiarra de protocolos, mas funfa.

Acesse e teste!

http://jaguar.garofil.be/

Email criptografado

Você confia na rede da sua empresa para enviar e-mails confidenciais? Tem coragem de guardar mensagens com o número do seu CPF ou cartão de crédito? Acha que nunca ninguém vai acabar entrando na sua caixa postal? Se respondeu sim para alguma dessas perguntas, é hora de acordar para a vida e aprender a mandar e-mails criptografados.


Com apenas uma extensão para Firefox, dá para proteger o conteúdo das suas mensagens de forma simples e fácil. Não, sério mesmo. É só copiar o texto, por uma senha e enviar a mensagem codificada. Quem receber o conteúdo vai usar essa mesma extensão para incluir a senha e decodificar a mensagem.


A ferramenta é gratuita e chama-se Lock the text. Para usá-la, você seleciona o texto de qualquer caixa de texto (Gmail, Hotmail, Outlook, BOL, não importa...), clica com o botão direito do mouse e seleciona Lock the Text e depois Lock. Vai aparecer uma tela, em que você informa a senha (no campo “passphrase”) e cola o texto. Pronto, sua mensagem está 101% protegida da bisbilhotice alheia.


Quando seu amiguinho receber a mensagem criptografada, tudo o que ele tem a fazer é selecionar o texto (entre as palavras BEGIN e END), clicar com o botão direito do mouse e escolher Lock the Text e depois UnLock. Será preciso informar a senha que você definiu anteriormente.


Uma sugestão: para facilitar sua vida, você pode combinar pessoalmente com seus contatos mais frequentes de usar sempre uma mesma senha.

Obtenha a máxima compatibilidade para o seu Firefox

Você acabou de baixar as atualizações automáticas e descobre que está à bordo do Firefox 3.5. Parabéns. Que legal. Mas, muitas das suas extensões preferidas vão parar de funcionar. E muitas das extensões legais que você descobrir no site de Addons da Mozilla também não vão funcionar no navegador. Sorte que dá para dar um jeitinho, e usar qualquer extensão velha no Firefox. A seguir, veja como faz.

A saída para driblar esse problema está no próprio Firefox. Use a barra de endereços do mouse para digitar o comando about:config. E a brincadeira vai começar.


Antes de abrir o capô para mostrar suas configurações internas, o Firefox, normalmente, pede uma confirmação do usuário. Você deverá clicar no botão que diz algo como “Prometo ser cuidadoso” (ou, em inglês, I’ll be careful, I promise!).


Uma lista enorme de parâmetros vai aparecer. Pode ignorá-la solenemente. O próximo passo é clicar com o botão direito do mouse sobre a lista e escolher Nova Opção, depois em Boolean


Aparecerá uma janelinha com um campo chamado “Forneça o nome da opção:” (ou, em inglês: Enter the preference name:). É hora de digitar “extensions.checkCompatibility” e teclar Enter. A seguir, é preciso definir esse parâmetro como falso (false).


Isso evitará que o Firefox cheque a compatibilidade das extensões antes de instalá-las.
Dependendo do Addon, ele continuará sendo barrado, mas a solução é repetir o processo e criar outra expressão booleana, com o parâmetro “extensions.checkUpdateSecurity”, que também deve ter valor “falso”.


Agora é só reiniciar o Firefox e abrir a porta para as (extensões) velhinhas!


PS. Se você usa versões de teste do Firefox, tente o addon Nightly Tester Tools, que garante a compatibilidade das extensões velhas com o 3.7 e outros alphas e betas que estão por vir.

Como usar o DNS do Google no seu Windão

Saiu um monte de notícia por aí falando do Google Public DNS. Mas aposto que você não teve paciência de ler as instruções em inglês que ensinam a usar essa bagaça. É para essas e outras que existe esse blog.


O DNS do Google promete agilizar a navegação, convertendo os nominhos que você digita no navegador em endereços de IP. Para tanto, você pode colocar os números mágicos do Google dierto no seu roteador ou informar o Windows sobre a existência deles. As instruções a seguir descrevem os passos no sistema operacional (note que se você usa XP ou Vista, as etapas são praticamente idênticas).


Vá até o Painel de Controle e abra a Central de Rede e Compartilhamento (no XP chama Conexões de Rede) . Depois, clique sobre o item Alterar as configurações do adaptador. O tal do adaptador é representado pela conexão ativa que você usa, geralmente nomeada como “Conexão Local”.


Achou o danado? Então clique com o botão direito do mouse, escolha Propriedades e depois, na janelinha que aparece, selecione o item Protocolo TCP/IP Versão 4 e clique sobre o botão Propriedades. Agora é a hora de informar os endereços do Google Public DNS. Na aba Geral, digite 8.8.8.8 e 8.8.4.4 nos campos indicados pela frase “Usar os seguintes endereços de servidores DNS”.


Pronto! Agora reinicie a máquina e confira você mesmo se a promessa do Google é verdadeira. Se for, você vai navegar com mais velocidade. Se você não notar diferença alguma, tente usar os serviços do OpenDNS. Além de aumentar a velocidade no carregamento de páginas, ele traz opções bacanas como a correção de URLs e relatórios sobre a sua navegação.

Tirando o MSN da vista rapidamente

Você tem um chefe paranóico ou um companheiro de trabalho curioso demais? Eles vêm na sua mesa como quem não quer nada só para dar “aquela espiadinha” na sua tela? Então veja como esconder as janelas do Messenger e todas as outras informações que você não quer mostrar –com apenas uma tecla.


Se o seu monitor fica virado para o corredor, você já deve conhecer dois atalhos de teclado clássicos do Windows: Alt+Tab e o Tecla Windows+D. O primeiro faz o sistema trocar a janela que está sendo mostrada em primeiro plano. O outro, minimiza todas as janelas e mostra apenas a área de trabalho. Também é uma boa diminuir a luminosidade da tela, para dificultar a vida dos bisbilhoteiros.


Quem quer ter mais privacidade e apertar menos botões, entretanto, pode apelar para o pequeno e eficiente Magic Boss Key. O programinha tem um consumo mínimo de memória e pode ser configurado para iniciar junto com o sistema. Com ele, você configura uma “tecla do pânico”. Pode ser o F12 ou uma combinação de um clique com os dois botões do mouse.


Após acionar a combinação, você pode escolher o que quer esconder. Na configuração original, você esconde todas as janelas da área de trabalho e da barra de tarefas. É ótimo para quem está conversando com um monte de gente no Messenger ao mesmo tempo e ouve o barulho dos passos do chefe vindo furioso no corredor.

lshw

Uma das dificuldades de pessoas iniciantes ou até mesmo pessoas mais experientes que administram redes e sistemas é conhecer realmente a especificação do hardware e muitas das vezes informações que julgamos irrelevantes, por exemplo: o vendedor do hardware, qual o firmware que o mesmo utiliza? Qual o padrão? O.E.M? E o BIOS? Qual a empresa que o fornece? Essas e outras questões podem ser respondidas com facilidade. O objetivo deste documento é esclarecê-lo de forma clara e bastante detalhada.

Em diversos momentos nos perguntamos, qual é o driver ou módulo que estamos utilizando? Pois a facilidade que temos com a instalação do Linux não precisarmos instalar drivers de hardware após a instalação do sistema. Você já teve curiosidade em saber qual o comando ou aplicativo que lhe fornece o modelo de sua placa mãe? Nos gera a dúvidas sobre o máximo e mínimo suportado em nosso processador, saber qual a quantidade de cache? Ele é 32 ou 64 bits? Se não, então irei mostrar-lhes o comando lshw, que tenho certeza que irá ajudar-lhe muito em suas dúvidas a respeito do seu hardware. Pois bem, esse comando é originado de um software cujo nome é o próprio comando lshw, que recebeu este nome por Hardware lister (Listar Hardware).

O lshw é uma pequena ferramenta para fornecer informações referentes ao conjunto de hardware que compõe sua maquina, ele possui uma enorme eficiência em mostrar a configuração exata de seu processador, bem como a velocidade, quantidade de clock e cache. Enfim, todos os componentes ou peças que formam seu computador. Também é capaz de identificar a versão do software ou firmware que controlam o hardware, e faz isso de forma precisa e eficiente. Foi desenvolvido em C++ e está vinculado do ao projeto eZIX, iniciado em 2002 com o objetivo de elaborar uma usável ferramenta para sistemas UNIX, com base no Linux e libc.

O lshw está disponível para sistemas baseados em plataforma Unix, bem como os sistemas operacionais Linux e suas derivações e sistema Mac e Mac OS X. Atualmente ele se encontra na versão 2.14 e está disponível para todas as distribuições Linux como já mencionado. Sua instalação pode ser feita por meio de gerenciadores de instalação da distribuição Linux que está usando no momento. No quadro abaixo uma relação de formas de instalação em algumas distros.

Instalação dos pacotes no Ubuntu:

# apt-get install lshw lshw-gtk

Instalação dos pacotes no Mandriva:

# urpmi lshw

Instalação dos pacotes no Fedora:

# yum install lshw lshw-gui

Instalação dos pacotes no Gentoo:

# emerge lshw

Após a instalação do programa podemos utilizá-lo, mas antes veremos o que podemos obter se o utilizarmos de forma correta e precisa. O programa te permite exibir relatório de acordo com o formato, podendo ser HTML, XML, relatório resumido. Para usá-lo basta que execute o comando lshw seguido do parâmetro que desejas. Uma das primeiras coisas que podemos testar é a versão do software e para isso o usamos o comando: lshw -version, que exibirá na saída padrão o resultado com a versão do software. Abaixo temos os seguintes modos de uso de desse programa junto com as opções de relatório.

O programa sempre retorna os resultados na saída padrão, caso você queira colocá-lo direto em um arquivo pode usar o redirecionamento para um arquivo, veja as três situações abaixo:

HTML na saída padrão:

# lshw -html

HTML no arquivo:

# lshw -html > nomedoarquivo.html

XML na saída padrão:

# lshw -xml

XML no arquivo:

# lshw -xml > nomedoarquivo.xml

Podemos também obter relatórios reduzidos contendo apenas informações mais especificas e objetivas, como por exemplo, saber somente informações reduzidas de cada hardware. Abaixo duas formas simplórias para dois parâmetros, o -short e o -businfo. São poucas as diferenças entre um e outro, mas o -short indica o caminho de cada dispositivo. O parâmetro -businfo faz referência aos controladores de hardwares. Veja os comandos abaixo.

# lshw -short
# lshw -businfo

Por fim, terminando as opções de linha de comando, pode ter uma opção interessante que é fazer busca de dispositivo por classe, que ao contrário de se aplicar o comando sozinho, que lhe mostrará muitos resultados. Podemos filtrá-lo, por exemplo: "quero somente as especificações do processador". Neste caso teremos que saber em qual classe o processador se encontra. Com os comandos que foram aplicados acima podemos obter essa informações.

Pois bem, veja um exemplo para obter informações somente de um hardware específico.

Comando para saber somente as especificações da placa mãe:

# lshw -class system

O resultado deste comando detém todas especificações da sua placa mãe, em meu computador o resultado deste comando foi o seguinte:
    androide                 
description: Desktop Computer
product: P4V8X-MX
vendor: System manufacturer
version: 1.00
serial: 00000000
width: 32 bits
capabilities: smbios-2.3 dmi-2.3 smp-1.1 smp
configuration: chassis=desktop cpus=1 uuid=00020003-0004-0005-0006-000700080009

Caso não entenda as especificações acima, no final deste artigo deixarei duas tabelas para melhor explicar.

Por fim podemos usar o programa em modo gráfico, que consiste em um comando ou uma execução no executar comando de sua distribuição, no meu caso estou usando Ubuntu e para fazer isso eu uso o Alt + F2. Então aperte Alt + F2 e digite lshw-gtk ou lshw -X no terminal e uma tela aparecerá contendo as especificações do hardware. Para ver uma prévia de como é a interface do programa, acesse este link (screenshot).

Então por hora aí está o programa que ajudará em todas as suas dúvidas a respeito de hardware e de firmware. Quando me referi ao título que poderia ver toda a especificação com apenas um comando, você pode usar somente o comando lshw.

Internet Explorer no Linux

Uma das dificuldades que usuários Linux enfrentam são páginas da web que são criadas para serem lidas apenas com o navegador Internet Explorer.

Minha busca começou na minha empresa, onde temos cerca de 50 computadores rodando Ubuntu 9.10 e necessitamos acessar certos sites, como o Bradesco Pessoa Jurídica, e este utiliza plugins em ActiveX, o que torna muito difícil seu acesso com outros navegadores.

Há diversos artigos aqui no VOL que contam como instalar o software ies4linux, porém, nos dias atuais, sua instalação na forma convencional apresenta alguns problemas, como a lentidão exagerada e a o "Erro na página" ao tentar acessar certos sites.

Neste artigo abordarei como instalar o Internet Explorer usando o PlayOnLinux e configurar a versão do Wine para que a instalação do IE seja 100% funcional em comparação a sua instalação no ambiente Windows.

Instalando o PlayOnLinux

A instalação do PlayOnLinux é fácil e rápida, e com ele instalado poderá usufruí-lo para instalar outros programas que existem apenas no Windows, como alguns jogos.

1. Acesse o endereço:
O site é muito simples, apenas selecione sua distribuição e as explicações da instalação já irão aparecer.

Agora abra o PlayOnLinux com o comando:

$ playonlinux

Esta tela aparecerá:
Linux: Internet Explorer no Linux 100% funcional
Clique em "Install" (circulado em vermelho na imagem).

Após isso escolheremos o software, no caso o Internet Explorer 6:
Linux: Internet Explorer no Linux 100% funcional
Selecione e clique em "Aplicar".

Irá aparecer a tela de instalação:
Linux: Internet Explorer no Linux 100% funcional
Simplesmente clique em "Avançar" até o fim da instalação.

Nota: Caso apareça esta janela de erro, clique em "Close" e continue a instalação.
Linux: Internet Explorer no Linux 100% funcional
Para finalizar a instalação, selecione onde quer atalhos para o Internet Explorer. Concluída a instalação vem a parte mais importante, definir a versão correta do Wine:
Linux: Internet Explorer no Linux 100% funcional
Vá no menu "Tools" -> "Manage Wine versions" e esta janela aparecerá:
Linux: Internet Explorer no Linux 100% funcional
1. Selecione a versão 0.9.60.
2. Clique em adicionar e instale essa versão do Wine.
3. Vá no menu "My Applications".

Após, esta janela aparecerá:
Linux: Internet Explorer no Linux 100% funcional
1. Selecione o Internet Explorer.
2. Selecione a versão 0.9.60

Terminada a configuração, pode fechar o PlayOnLinux.

Para acessar o Internet Explorer 6, clique no atalho criado na instalação, ou pelo comando:

$ /usr/share/playonlinux/playonlinux --run "Internet Explorer 6"


Instalar e configurar o Internet Explorer no Linux, é bem simples, e pode te livrar (como me livrou) da instalação de uma máquina virtual com Windows.

Você pode aproveitar também o PlayOnLinux para instalar outros aplicativos e jogos quem não tem sua versão para Linux e usufruir ao máximo esse excelente sistema operacional.

Dica: Sempre veja qual a versão do Wine recomendada para os aplicativos que irá instalar pelo PlayOnLinux e configure-o para usar aquela versão, do mesmo modo que foi explicado neste artigo.


Espero ter ajudadp Lucas Sabino

1 de dezembro de 2009

VI - Número de linhas

Estava querendo que o VI/VIM mostrasse o número de linhas do documento Depois de uma pequena pesquisa, descobri que após abrir o arquivo (/etc/vim/vimrc) você pode digitar em modo de comando:

:set number

e as linhas aparecerão na lateral esquerda, indicando o número de cada linha. Caso queira voltar ao modo normal (sem as linhas), digite :

:set nonumber

Outra opção é colocar os comandos dentro do arquivo de configuração. No meu caso o VIM usava o padrão, que fica localizado em /etc/vimrc ou /etc/vim/vimrc, mas como não tinha permissão para modificá-lo, copiei o arquivo de configuração em meu home, renomeei-o como .vimrc e modifiquei-o:

$ cp /etc/vimrc .vimrc
$ vi .vimrc

Adicione a linha "set number" e pronto!

Entre no VI/VIM e verá que os números das linhas entram automaticamente

Debian Multimedia

Olá!!!
Para quem trabalha com som e vídeo, pode encontrar muitos aplicativos e codecs no repositório multimídia do Debian…
Para adicionar este repositório no sources.list, vá ao Terminal e siga os seguintes passos:

Edite o arquivo /etc/apt/sources.list

sudo gedit /etc/apt/souces.list

Adicione ao final do arquivo as linhas abaixo:

## Debian Multimedia (pacotes do mplayer, vários codecs e outros pacotes)
deb http://www.debian-multimedia.org stable main
deb-src http://www.debian-multimedia.org stable main
deb http://www.debian-multimedia.org testing main
deb-src http://www.debian-multimedia.org testing main

Salve e feche o arquivo.

Volte ao Terminal e execute os seguintes comandos:

sudo apt-get update
sudo apt-get install debian-multimedia-keyring

Nota: Este último comando serve para instalar as chaves públicas que permitem acesso ao repositório.

Para consultar a lista de pacotes disponíveis neste repositório acesse o endereço:

http://www.debian-multimedia.org e click no link Packages e depois escolha sua plataforma, se estiver com o Ubuntu de 32 bits instalado, selecione a plataforma i386.

Multimedia Debian

Usa Debian e quer assistir filmes em wmv, rmvb, ouvir suas mp3? Então leia este pequeno artigo preparado para lhe ajudar!


Bem, como muitos, mas nem todos sabem, existem formatos de arquivos multimedia proprietários e entre eles os mais usados são o wmv, do windows, o rmvb que é o formato utilizado pelo Real Media, e o mais conhecido de todos que é o formato de músicas mp3.

O Debian, assim como muitas outras distribuições, não vem com suporte à estes formatos por roblemas com patentes em alguns países, mas podemos instalar esse suporte sem maiores problemas. Bem em primeiro lugar devemos ter configurado em nossa source.list (/etc/apt/source.list) os epositórios contrib e non-free, se você não sabe fazer isso não tem problema, eu ensino: Edite o arquivo /etc/apt/sources.list, a linha que é mais ou menos assim:

deb http://ftp.debian.org/debian/ stable main

Deve ficar assim:

deb http://ftp.debian.org/debian/ stable main non-free contrib

Para enteder melhor o que foi feito aqui e o que são as opções "contrib" e "non-free" adicionadas leia isso. Após adicionar as opções atualize a lista de pacotes do apt:

# aptitude update

Ok, agora vamos lá, vamos instalar os pacotes para curtir um pouco de multimedia!
Vamos começar pelo mp3, existe um programinha tocador de mp3 que é utilizado via linha de comando, é o mpg321, eu já comentei sobre ele. Quando você instala esse tocador ele instala também os codecs necessários para a reprodução de mp3, o mp3-decoder, mas é claro que você pode instalar apenas o mp3-decoder.

Um excelente tocador de musicas para Gnu/Linux é o Amarok, ele organiza sua coleção de acordo com os artitas, separa os discos, mostra a letra da música em execução e mais algumas funcionalidades de fazer inveja a alguns players famosos. Ele é desenvolvido oficialmente para o KDE, mas não há problemas em utilizá-lo com outros gerenciadores de janelas, para instalá-lo use:

# aptitude install amarok

Instale também o engine do xine, que o Amarok usa para a reprodução:

# aptitude install amarok-xine

E não podemos nos esquecer do decoder mp3 do xine:

# aptitude install libxine1-ffmpeg

Pronto já pode curtir suas mp3 enquanto segue o restante do artigo =).
Vamos agora aos vídeos em wmv. Para assistir esse tipo de vídeo você precisa de uma certa coletânia de codecs que podem ser encontrados no pacote w32codecs, simplesmente faça o download desse arquivo e instale com o comando:

# dpkg -i w32codecs*.deb

Uma segunda opção é adicionar o repositório do debian-multimedia.org ao apt, esse é um projeto que tem o propósito de facilitar a vida de usuários Debian quando o assunto é multimedia.
Para fazer isso adicione esse linha ao seu arquivo /etc/apt/sources.list:

deb http://www.debian-multimedia.org etch main

depois disso atualize seu apt e instale o pacote debian-multimedia-keyring para configurar a chave GPG do repositório. Depois mais uma atualização já com a chave configurada:

# aptitude update
# aptitude install debian-multimedia-keyring
# aptitude update

Agora basta instalar os codecs:
# aptitude install w32codecs
Agora use o seu player favorito para assistir os vídeos, eu gosto bastante do Kaffeine e também do MPlayer.
Vamos agora aos vídeos em Real Media. Esses são os mais chatinhos, pois em geral funcionam apenas com o Real Media Player que eu particularmente não gosto, motivos para isso? tenho sim! Uma vez estava vendo um vídeo e precisei abaixar o volume para atender ao telefone, acabou que eu não assisti o restante do vídeo e depois disso o som da máquina ficou no zero, eu então reconfigurei o alsa, chequei os mixers e nada e quando eu lembrei que o Real Media Player estava no volume zero eu percebi que ele é tão folgado que domina o som do PC completamente, nem o mixer do alsa ganha dele...

Mas então... há alguma alternativa?
Bem você pode instalar o Realplayer e não utilizá-lo, pois quando você o instala do repositório do Debian Multimedia ele instala os codecs e então você pode assistir os arquivos em qualquer player, no Kaffeirne funcionou muito bem, no MPlayer também. Então instale o Real Player com:

# aptitude install realplayer

Lembrando que você precisa ter o repositório Debian Multimedia para instalar o Real Player dessa forma.
Bem, então é isso, agora seu Debian vai ficar turbinado para assistir seus vídeos e ouvir suas músicas.

TCPDUMP

O tcpdump é um dos mais, se não o mais "famoso" sniffer para sistemas GNU/Linux. Com ele podemos realizar análises de redes e solucionar problemas. Sua utilização é simples e sem mistérios, bastando apenas ter os conhecimentos básicos de redes TCP/IP. Esta dica é apenas uma introdução deste sniffer, maiores infos e documentação à seu respeito podem ser encontradas em seu site oficial:

A instalação do tcpdump em sistemas Debian é super simples, bastando executar o comando abaixo como super user(root):


# aptitude install tcpdump

Para iniciarmos a utilização do tcpdump precisamos especificar a interface de rede que queremos analisar com o parâmetro -i seguido da interface desejada, por exemplo, se quisermos analisar todo o tráfego que passa pela interface eth0, executaríamos a seguinte linha de comando:


# tcpdump -i eth0

Conexões de origem podem ser monitoradas utilizando o parâmetro src host, um exemplo simples seria monitorarmos o tráfego que vem de 192.168.0.9 para nosso computador, com o ip 192.168.0.2. A linha de comando ficaria da seguinte forma:


# tcpdump -i eth0 src host 192.168.0.9

Se quisermos monitorar as conexões especificando um host de destino, poderíamos fazê-lo com o parâmetro dst host, o exemplo abaixo mostra todo o tráfego do host 192.168.0.2 com 192.168.0.1, no caso, 192.168.0.1 é nosso gateway.


# tcpdump -i eth0 dst host 192.168.0.1

Com tcpdump também podemos especificar exceções com o parâmetro not host, por exemplo, em nosso servidor queremos ver todo o tráfego que se passa em sua interface, exceto o de 192.168.0.8, faríamos da seguinte forma:


# tcpdump -i eth0 not host 192.168.0.9

No tcpdump podemos também especificar portas de origem e destino com os comandos src port e dst port, um exemplo seria monitorarmos o tráfego destinado à porta 80 (http), para isso utilizaríamos a linha de comandos abaixo e navegaríamos em um site qualquer:


# tcpdump -i eth0 dst port 80

Para verificarmos o tráfego da porta de origem 32881 por exemplo, faríamos da seguinte forma:


# tcpdump -i eth0 src port 32881

Muitas opções avançadas podem ser obtidas com o tcpdump, essas são algumas opções básicas, porém fundamentais para quem quer aprender sobre sniffers.

Descobrindo algum MAC pelo ip

Hello galera...

eae ebeluza???

gostaria de comprtilhar isso que falarei logo a seguir. Imagina que vc quer pegar o MAC Address de uma máquina, mas só tem o ip dela. Mas, nenhuma informação como vc faz?


Você pode fazer de duas formas

1- Pinga o broadcast e depois dà um arp -a

ou

2 - nmap -vv -PO 192.168.x.x



obrigado galera por visitar o blog

Abraços!

14 de novembro de 2009

Info de seus Browsers

Resolvi pegar os 2 navegadores que uso no Ubuntu 9.04 – Opera e o Firefox –, para vasculhar quais são os atalhos de configuração que possuem. Acabei mapeando não só atalhos de configuração, mas também atalhos que exibem informações específicas, como: versão do browser, engine, build, cache etc.

Vale mencionar que os comandos podem ser utilizados na barra de endereço do navegador em questão. Veja a lista:


Firefox – Versão utilizada: 3.5.4

about:mozilla – Ovo de Páscoa sobre a Mozilla
about:cache – Informações de cache em disco e memória
about:plugins – Plug-ins instalados
about:config – Configuração de todos os parâmetros do navegador
about: – Informações gerais da versão
about:credits – Lista de pessoas que contribuíram com o browser
about:buildconfig – Número da versão de compilação
about:sessionrestore – Restauração de abas abertas após um travamento do browser


Opera – Versão 10.1

opera:about – Informações do browser
opera:config – Configuração de todos os parâmetros do navegador
opera:history – Histórico de navegação
opera:historysearch – Procura por termos no histórico de navegação
opera:plugins – Plug-ins instalados
opera:cache – Informações de cache em disco e memória



Para acessar uma configuração específica diretamente, a sintaxe é sempre parecida com:

opera:config#categoria|Propriedade

Por exemplo, para mudar a cor de fundo padrão, o comando ficaria:

opera:config#Colors|Background

18 de outubro de 2009

Horário de Verão

Depois de artigos pesados... sobre firewall e rede em massa.Escrevi um artigo mais light que também é importante: O Horário de verão.

O Horário de verão começou a alguns instantes... Então como fazer seu pinguim ficar no horário certinho?? Pra máquina de casa isso não é tão importante...Porém pra servidores é essencial. Vamos começar!!!

É super importante saber que o seu horário advém de um servidor NTP (se por acaso, você não tenha idéia do que seja um servidor ntp, então clique aqui).

Você tem duas alternativas:
  • Você vai até o servidor NTP (maneira recursiva)
  • O NTP vem até a sua máquina local (maneira natural)


  1. Forma Recursiva
Antes, do sync veja o local ou o seu GMT em /etc/timezone
# ntpdate ip_ntp_server

### :: NTP BR :: ###
a.ntp.br 200.160.0.8
b.ntp.br 200.189.40.8
c.ntp.br 200.192.232.8

### :: NTPs da MICROSOFT :: ###
207.126.103.202
208.184.49.129
216.200.93.8

### :: NTP de UNIVERSIDADES :: ###

ntp.usp.br 143.107.151.117
ntp.ufsc.br 150.162.1.8
ntp.unicamp.br 143.106.2.3




2. Forma Natural


1. Verificar a existência do arquivo ‘/etc/localtime’. Se este arquivo existir verifique se ele é um link simbólico. Uma das formas de fazer esta verificação é executar o seguinte comando:


$ file /etc/localtime
localtime: timezone data


Não é recomendado possuir o arquivo /etc/localtime como link simbólico. Sistemas cujo diretório /usr é acessivel (não tiver sido montado, por exemplo) no momento de inicialização a máquina, os dados do arquivo localtime não serão lidos.


2. Verificar se existe algum arquivo no diretório /usr/share/zoneinfo/Brazil que contenha informações relativas a outros anos. Normalmente este arquivo tem extensão ZIC (.zic).


a) Se não existir um arquivo com tais dados então crie um novo (verao.2009.zic por exemplo) no diretório /usr/share/zoneinfo/Brazil/. Este arquivo deverá conter as seguintes linhas:


Rule Brazil 2009 only - Oct 18 00:00 1 S
Rule Brazil 2010 only - Feb 21 00:00 0 -
Zone Brazil/East -3:00 Brazil BR%sT


b) Se existir um arquivo com dados de outros anos basta inserir as linhas acima ao final do arquivo existente.


As duas primeiras linhas de configuração acima informam quando se inicia o horário de verão, quando termina e qual é a ação tomada. Lembre-se de que no início do horário de verão a hora local é acrescida em uma (1) hora.


A última linha informa qual arquivo será modificado pelo comando ‘zic’. No exemplo acima será o arquivo ‘East’ (dentro do diretório Brazil). Esta linha também informa qual o timezone original da região - no caso de São Paulo (East) temos UTC-3. Caso você esteja utilizando um timezone diferente do adotado em São Paulo (East) modifique estes parâmetros para o timezone de sua região:


#Fuso horario do Arquipelago de Fernando de Noronha:
Zone Brazil/DeNoronha -2:00 Brazil FN%sT

#Fuso horario dos estados a Leste
Zone Brazil/East -3:00 Brazil BR%sT

#Fuso horario dos estados a Oeste (AC, AM, RO, RR, MS, MT)
Zone Brazil/West -4:00 Brazil AM%sT


3. Uma vez feitos os devidos ajustes no arquivo ‘verao.2009.zic’ execute ocomando ‘zic’:


# zic verao.2009.zic


Neste caso em particular o comando atualizará o arquivo East.

4. Para verificar se as configurações corretas foram feitas execute o comando ‘zdump’, conforme as orientações abaixo (troque East pelo timezone de sua região):


# zdump -v Brazil/East


Você deverá obter uma saída como esta:

Brazil/East Sun Oct 19 02:59:59 2009 UTC = Sat Oct 17 23:59:59 2009 BRT isdst=0 gmtoff=-10800
Brazil/East Sun Oct 19 03:00:00 2009 UTC = Sun Oct 18 01:00:00 2009 BRST isdst=1 gmtoff=-7200
Brazil/East Sun Feb 16 01:59:59 2010 UTC = Sat Feb 20 23:59:59 2010 BRST isdst=1 gmtoff=-7200
Brazil/East Sun Feb 16 02:00:00 2010 UTC = Sat Feb 20 23:00:00 2010 BRT isdst=0 gmtoff=-10800


Note que em “Sat Oct 17 23:59:59 2009 BRT” o sistema ainda não está no horário de verão (indicacao ‘BRT’). No segundo seguinte as modificações do horário de verão entram em vigor, adiantando o localtime em uma hora: “Sun Oct 18 01:00:00 2009 BRST” (O horário mostrado ao usuário passará para 1 da manhã e não para meia-noite, mostrando o adiantamento do horário).


Em “Sat Feb 20 23:59:59 2010 BRST”, o horário de verão terminará no segundo seguinte, com o localtime sendo então atrasado em 1 hora: “Sat Feb 20 23:00:00 2010 BRT” (o horário mostrado ao usuário voltará para 23:00).


5. Por último, se o arquivo /etc/localtime não for um link para o arquivo /usr/share/zoneinfo/Brazil/East, deve-se copiar o arquivo East para /etc/localtime


$ cp East /etc/localtime



É isso pessoal! Moleza né?!

16 de outubro de 2009

Firewall e Iptables - conceitos

Por Lucas Sabino

No meu último post possui muitas informações sobre iptables, tabela mangle e etc. Muitas pessoas que viram o artigo me contactaram pedindo um artigo mais básico, mas simples. Para que, só após isso compreendessem o sentido do artigo do MTU. Então irei começar lá do início... Com alguns conceitos.

1. O que é um firewall?
2. O que é netfilter/iptables?
3. Termos: Statefull e Stateless
4. O Iptables
5. IPTABLES: Tables, Chains e sua arquitetura
6. Iptables e seus Estados de Conexão
7. Como funciona o Iptables
8. Bibliografia



1. O que é um firewall?
Firewall é o nome dado ao dispositivo de uma rede de computadores que tem por objetivo aplicar uma política de segurança a um determinado ponto de controle da rede. Sua função consiste em regular o tráfego de dados entre redes distintas e impedir a transmissão e/ou recepção de acessos nocivos ou não autorizados de uma rede para outra. Este conceito inclui os equipamentos de filtros de pacotes e de proxy de aplicações, comumente associados a redes TCP/IP.


2. O que é netfilter/iptables?
O netfilter é um módulo que fornece ao sistema operacional Linux as funções de firewall, NAT e log dos dados que trafegam por rede de computadores. Iptables é o nome da ferramenta do espaço do usuário que permite a criação de regras de firewall e NATs. Apesar de, tecnicamente, o iptables ser apenas uma ferramenta que controla o módulo netfilter, o nome "iptables" é frequentemente utilizado como referência ao conjunto completo de funcionalidades do netfilter.


3. Termos: Statefull e Stateless
A diferença entre Stateful e Stateless é básica: O firewall que é Stateful vai guardar o estado dos objetos/conexões, enquanto o firewall Stateless vai reconhecer a cada requisição como uma nova conexão.


4. O iptables
A partir do kernel do Linux 2.4 foi introduzido o firewall iptables em substituição ao ipchains que estava embutido nos kernels da série 2.2. O novo firewall tem como vantagem ser muito estável, confiável, permite muita flexibilidade na programação de regras pelo administrador do sistema, mais opções disponíveis ao administrador para controle do tráfego, controle independente do tráfego local, entre redes e de interfaces devido a nova organização das etapas de roteamento de pacotes.

O iptables é um firewall em nível de pacotes e funciona baseado nos endereços de origem e destino, nas portas de origem e destino, prioridades e outros. Ao receber os pacotes o iptables os submete a uma comparação com as regras estabelecidas pelo administrador para saber se um pacote tem ou não permissão para passar. Em firewalls mais restritivos o pacote ao ser bloqueado é registrado em um arquivo de log para posterior análise do administrador do sistema.

Outras funções do iptables podem ser usadas para modificar e monitorar o tráfego da rede, fazer NAT, redirecionamento de pacotes, marcação de pacotes, modificar a prioridade dos pacotes que chegam e saem do sistema, contagem de bytes, divisão de tráfego entre máquinas, criar proteções anti-spoofing, contra syn flood, DoS, o tráfego vindo de máquinas desconhecidas da rede pode ser bloqueado e registrado através do uso de regras simples.

As possibilidades oferecidas pelo iptables juntamente com as ferramentas UNIX maduras dá ao administrador do sistema possibilidades quase que infinitas na criação das regras, ficando a cargo de sua imaginação definir quais recursos utilizar. Para criar regras realmente efetivas precisamos ter informações como o que é necessário bloquear, quais interfaces o sistema possui, o que tem acesso garantido, quais serviços devem estar acessíveis para cada rede, e a partir daí começar a montar o firewall.


5. IPTABLES: Tables, Chains e sua arquitetura
O iptables é considerado um firewall de primeira geração, pois possui comportamentos diferente de seus antecessores ip-chains e ipfwadm, que funcionavam apenas como filtro de pacotes stateless. Funcionando como um filtro de pacotes statefull o iptables possui a capacidade de atuar sobre as camadas do protocolo TCP. Apesar da implementação do firewall stateless ser mais simples, ele apresenta uma configuração mais trabalhosa, além de ser menos seguro se comparado aos filtros baseados em estado de conexão (Statefull).

Para o filtro de pacotes stateless todo pacote recebido é considerado novo, independente do fluxo de informação em questão (requisição ou resposta). Já com o iptables é possível trabalhar com um filtro de pacotes statefull, através da definição de regras como: nova(NEW), estabelecida (ESTABLISHED), reincidente (RELATED) ou inválida (INVALID), que permitem identificar os “estados de conexão”.

Outra característica do iptables é a modularização o que permite adicionar novas funcionalidades de maneira extremamente simples, ficando assim, a cargo do administrador decidir que módulos atendem melhor suas necessidades.

O iptables possui uma organização baseada em três tipos de tabelas (filter, nat e mangle), e cada tabela possui suas respectivas chains (prerouting, postrouting, input, forward, output) de acordo com a sua funcionalidade. Nesse caso podemos classificar chain como um conjunto de regras com objetivos semelhantes. Para melhor entendimento temos:

• A chain INPUT é responsável por definir as regras que farão a filtragem de pacotes cujo endereço de destino é o firewall.

• A chain FORWARD é responsável por comportar as regras que farão a filtragem dos pacotes que passarão pelo firewall, ou seja, que possuem como endereço de destino algum host fora da rede interna.

• A chain OUTPUT fica responsável por estabelecer as regras para a filtragem dos pacotes que são originados pelo próprio firewall.

• A chain PREROUTING é responsável por definir regras específicas de roteamento antes que o pacote seja enviado para a chain INPUT ou FORWARD, podendo realizar algum redirecionamento de conexão (através do alvo DNAT) ou de porta (através do REDIRECT).

• A chain POSTROUTING fica responsável por regras específica de roteamento após o pacote ter passado pelas chains PREROUTING, INPUT ou FORWARD ou OUTPUT, podendo realizar algum tipo de filtro ou troca de endereços IPs de origem, através do alvo SNAT ou MASQUERADE.

As chains são organizadas por tabelas, ou seja, cada tabela possui um conjunto de chains variando de acordo com a sua funcionalidade, para melhor entendimento temos:

• A tabela filter define as principais regras de permissões de acessos (filtros) do firewall, e comporta as chains INPUT, FORWARD e OUTPUT.

• A tabela nat é responsável pela implementação do NAT, e através dela podemos realizar redirecionamento de conexões e acessos compartilhados. A tabela nat comporta as chains PREROUTING e POSTROUTING.

• A tabela mangle é utilizada para aplicar regras de acesso a qualquer pacote recebido pelo firewall, podendo também marcar pacotes para realização de balanceamento de carga, além de muitas outras possibilidades. A tabela mangle nas versões de kernel mais atuais comporta todas as chains (PREROUTING, INPUT, OUTPUT, FORWARD e POSTROUTING).

- A tabela raw - Essa tabela é usada principalmente para a configuração de isenções de monitoramento de conexão, em combinação com o NOTRACK. Ele registra no netfilter hooks com maior prioridade e é assim chamado antes ip_conntrack, ou qualquer outro IP tables. As suas chains são as seguintes: PREROUTING (para pacotes que chegam através de qualquer interface de rede) e OUTPUT (para pacotes gerados por processos locais).


6. Iptables e seus Estados de Conexão
O iptables inclui um módulo que permite aos administradores inspecionar e restringir conexões a serviços disponíveis numa rede interna, usando um método chamado registro de conexão (connection tracking). O registro de conexão armazena as conexões numa tabela, que permite aos administradores permitir ou negar acesso baseado nos seguintes estados de conexão:


/NEW (nova) — Um pacote requisitando uma nova conexão, como um pedido HTTP.

/ESTABLISHED (estabelecida) — Um pacote que é parte de uma conexão existente.

/RELATED (relacionado) — Um pacote solicitando uma nova conexão, mas que é parte de uma conexão existente, como conexões FTP passivas, nas quais a porta de conexão é 20, mas a porta de transferência pode ser qualquer uma (de 1024 para cima) não usada.

/INVALID (inválido) — Um pacote que não faz parte de nenhuma das conexões da tabela de registro das conexões.

Você pode usar a funcionalidade de estado do registro de conexões do iptables com qualquer protocolo de rede, mesmo que o próprio protocolo seja sem estado/'stateless' (como o UDP).


7. Como funciona o IPTABLES
Com o passar do tempo e a evolução dos ataques o filtro de pacotes estático (static packet filtering) passou a não ser tão eficiente no confronto às novas modalidades de ataques. Para resolver esse problema o filtro de pacote estático teve que passar por uma reformulação, dando origem a um novo conceito em filtragem de pacotes. Conhecido como filtro de pacotes dinâmico (dynamic packet filtering) ou filtro de inspeção de estados (stateful inspection), o novo firewall toma decisões de filtragem baseado nas informações dos pacotes de dados e da sua tabela de estados, além de levar em consideração todos os dados do pacote, e não apenas o cabeçalho.
O IPTABLES por ser considerado um filtro de pacotes dinâmico, incorpora todas as características citadas acima, e funciona da seguinte maneira:



Passo 1: No cenário ilustrado acima quando um usuário deseja iniciar uma conexão ele envia um pacote SYN para o firewall;

Passo 2: o firewall ao receber o pacote SYN o submete à tabela de regras definida pelo administrador da rede;

Passo 3: se o pacote não passar por uma das regras ele é descartado e a conexão é rejeitada;

Passo 4: no caso do pacote passar sem problemas por todas as regras, a sessão é cadastrada na tabela de estados do firewall que se encontra na memória do kernel;

Passo 5: após o cadastro na tabela de estados o pacote é enviado para o destino. A partir do momento que a sessão está cadastrada os próximos pacotes são submetidos diretamente à tabela de estados, e se fizerem parte de alguma sessão da tabela são liberados, senão são descartados.




8. Bibliografia
- JUCÁ, Humberto L. Técnicas Avançadas de Conectividade e Firewall em GNU/LINUX. 1. Ed. Rio de Janeiro: Brasport, 2005.

- SILVA, Gleydson Mazioli. Guia Foca GNU/Linux. Versão 5.60. Espírito Santo: Vitória, 2007.

- NAKAMURA, Emilio Tissato.(2000). Um Modelo de Segurança de Redes para Ambientes Cooperativos. Dissertação (mestrado) – Unicamp, 2000.


http://pt.wikipedia.org/wiki/Netfilter
http://netfilter.org
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-pt_br-4/s1-firewall-state.html
http://under-linux.org/f46832-estado-de-conexoes
http://pt.wikipedia.org/wiki/Firewall
http://en.wikipedia.org/wiki/Stateful_firewall
http://www.akadia.com/services/pppoe_iptables.html

man pages linux iptables




Bom, é isso pessoal! Acho que o basicão está aí
flw!

11 de outubro de 2009

O Problema do MTU do PPPoE

Por Lucas Sabino


Caros leitores, se você nunca ficou sabendo de tal coisa é necessário ler e aprender. Eu não tinha a mínima idéia (ideia para quem já está seguindo à risca a nova língua portuguesa) que isso existia. Mas, existe. Meu chefe (meus dois chefes) mandaram eu fazer um monte de firewall em um monte de servidores pelo Brasil a fora (esse a fora foi exagero, é só Brasil mesmo) (devo mais essa pro SSH, imagina eu indo pro Acre, Curitiba ou sei lá mais onde!!??). Acho que são uns 15 firewall. Na realidade não preciso fazer propriamente dito, preciso traduzir do modelo FERM (For Easy Rule Making) para o modelo Iptables. Bom esse ferm até que em bem mais fácil. Você configura um firewall em 20 linhas.

Enquanto no iptables você faria isso numas 50. Mas, ainda sim, sou mais o grande IPTABLES. Me deparei com a seguinte linha no conf fo FERM: "table mangle { chain FORWARD { interface $LAN_IF proto tcp tcp-flags (SYN RST) SYN TCPMSS clamp-mss-to-pmtu;" Aí eu falei, fudeu!! E agora??? que bagaça é essa???? mangle blz é table mas TCPMSS, mss pmtu mtu??? que que é isso? Bom, vamos ao que interessa, a introdução já foi feita! O PROBLEMA DO EMPACOTAMENTO DA PPPoE A fonte desse texto eu traduzi do link a seguir --> http://www.akadia.com/services/pppoe_iptables.html. Quem quiser poderá ler em sua fonte original em inglês. Quem não quiser leia a tradução aqui mesmo.  


Alguns termos devem estar na ponta da língua: MTU PPP PPPoE.  

MTU
Em redes de computadores, MTU significa Unidade Máxima de Transmissão, e refere-se ao tamanho do maior datagrama que uma camada de um protocolo de comunicação pode transmitir. O protocolo IP permite a fragmentação de pacotes, possibilitando que um datagrama seja dividido em pedaços.

PPP
O protocolo ponto-a-ponto (point-to-point protocol, em inglês), também conhecido como PPP, foi desenvolvido e padronizado através da RFC 1661(1993) com o objetivo de transportar todo o tráfego entre 2 dispositivos de rede através de uma conexão física única. Na prática, a interface PPP é implementada através de conexões físicas do tipo RS-232 ou modens. Atualmente é possível usar conexões PPP até sobre Ethernet (PPPoE). Em suma, é a conexão discada slowmotion que todo mundo conhece só pelo barulinho agradável.

PPPoE
PPPoE (Point-to-Point Protocol over Ethernet) é um protocolo para conexão de usuários em uma rede Ethernet a Internet. Seu uso é típico nas conexões de um ou múltiplos usuários em uma rede LAN à Internet através de uma linha DSL, de um dispositivo wireless (sem fio) ou de um modem de cabo broadband comum. O protocolo PPPoE deriva do protocolo PPP. O PPPoE estabelece a sessão e realiza a autenticação com o provedor de acesso a Internet. Em suma, é o Speedy (SP) ou Velox (RJ, MG, nordeste, aonde a Oi é operadora padrão).


Com esses termos na ponta da língua, vamos ao texto: O PROBLEMA MTU

Uma interface Ethernet pode ter um pacote que tem no máximo 1518 bytes. 14 bytes desses são usados pelo cabeçalho, e 4 para uma seqüência de pacotes de checagem. Ou seja, temos ainda 1500 bytes a serem usados. 1500 é o padrão para conexões PPPoE.

Esse é o tamanho que o pacote PPPoE possui quando a interface não fragmenta ele. A conexão PPPoE adiciona outros 6 bytes a essa perda, além do protocolo PPP consumir 2 bytes. Assim, nosso datagrama possui 1492 bytes. O MTU da conexão PPPoE é então 1492 bytes.

Quando uma conexão TCP é inicializada, cada lado dos agentes/clientes do TCP pode ter o seu próprio tamanho de fragmentação do seu pacote (MSS - Maximum Segment Size). O TCP é respnsável por ouvir/conversar com esses fragmentos, enquanto o MSS determina o tamanho máximo para que ele seja aceito. Por padrão, o MSS é escolhido como o MTU a partir de uma interface de saída menos usual do TCP e cabeçalhos IP (40 bytes), que resulta num MSS de 1460 bytes para a interface de Ethernet.

O TCP não quer fragmentação, quanto menos pra ele melhor! Então, ele usa o MSS para não causar fragmentações a mais na sua interfae de saída. Eventualmente, eles podem trabalhar como MTU causando uma fragmentação nos seus pacotes. O TCP descobre o caminho MTU. No caminho da descoberta do MTU, uma pilha TCP define um especial ponto de "não fragmente" (DF) em datagramas IP. Roteadores que não pode encaminhar o datagrama sem fragmentá-lo é suposto largá-lo e enviar um ICMP Fragmentation "necessário" datagrama ao host de origem.

Nesse estágio, os hosts de origem tentam um valor baixo para MTU. Eventualmente, muitos roteadores são "anti-sociais" e não geram a fragmentação dos datagramas como foi mandado. Eles são rebeldes! (rs). Muitos Firewall são igualmente anti-sociais e bloqueiam todos os pacotes ICMP.

Agora vamos considerar uma estação cliente conectada de uma Ethernet LAN até um gateway PPPoE. O cliente abre, depois de conectado, uma conexão para com um servidor web. Ele sugere um MSS de 1460 bytes porque seu MTU é 1500. O servidor web possui também uma interface Ethernet e sugere um MSS de 1460. A máquina cliente então pede a página web. Essa requisição é tipicamente pequena e aproxima o servidor web. O servidor responde com muitos fragmentos TCP, a maioria sendo do tamanho 1460 bytes.

O tamanho máximo de fragmentação do pacote é 1500 bytes no datagrama IP, porém o pacote é segmentado em menos bytes por eles. E daí vai para o provedor DSL que não manda ICMP para o servidor web.

A internet silencia o pacote, ele é dropado (rejeitado, apagado). O cliente web fica esperando pelos dados, e o servidor web transmite os dados finalmente, ou a conexão é fechada pelo usuário.

Uma maneira de contornar isso é criar um outro MSS para definir a rota padrão em todos os hosts LAN atrás do gateway PPPoE. Isso é chato, pois requer mudanças em cada host. Em vez disso, RP-PPPoE "em escuta" sobre a negociação MSS e modifica a MSS se for demasiado grande. Ajustar o MSS é um hack. Ela quebra o conceito de transporte da camada ser final-para-final (client-server). Não vai funcionar com o IPSec, IPSec, porque não vai deixar você danos pacotes IP (eles não conseguirão autenticar.) No entanto, é uma solução bastante eficaz para um problema , e é usado por padrão no RP-PPPoE."

- Mas, ok ok ok... Mas, Sabino você não disse como resolve no Iptables!

- Calma Pequeno gafanhoto... Espere um pouco...



Agora! Vamos à solução no Iptables:

iptables -t filter -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

ou

iptables -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu TCPMSS --clamp-mss-to-pmtu -o ppp0

ou

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o eth1 -j TCPMSS --set-mss 1472
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o eth1 -j TCPMSS --clamp-mss-to-pmtu
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o eth1 -j TCPMSS --set-mss 1472
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o eth1 -j TCPMSS --clamp-mss-to-pmtu


Vai depender do que você quer fazer e como você quer fazer. Depende da sua tabela, se é filter | nat | mangle.

Espero ter ajudado! flw!

2 de outubro de 2009

Processos

Características:
­ Proprietário do processo;
­ Estado do processo (em espera, em execução, etc);
­ Prioridade de execução;
­ Recursos de memória.


Atributos de um processo
­ PID (identificação do processo)
­ PPID (identificação do processo pai)
­ UID (identificação do usuário que criou o processo)
­ GID (identificação do grupo ao qual pertence o processo)


Estado de processos
Um processo pode passar por vários estados. Quando um processo é criado, isso não significa que ele será imediatamente executado. Alguns processos podem ser temporariamente parados para que o processador possa executar um processo com maior prioridade.

O Linux trabalha com quatro tipos de estados:

/Executável (running): o processo pode ser executado imediatamente;

/Dormente (waiting): o processo precisa aguardar alguma coisa para ser
executado. Só depois dessa "coisa" acontecer é que ele passa para o estado
executável;

/Zumbi (zombie): o processo é considerado "morto", mas, por alguma razão,
ainda existe;

/Parado (stopped): o processo está "congelado", ou seja, não pode ser
executado.



Classificação de processos quanto a execução

/Foreground (primeiro plano): são inicializados no terminal de comandos, podem interagir com os usuários e exibem sua execução na tela. A desvantagem
desse tipo de processo é que ele prende o prompt e isso impede a execução de novos processos nesse terminal.

/Background (segundo plano): são inicializados no terminal de comandos, NÃO podem interagir com os usuários e NÃO exibem sua execução na tela. A vantagem desse tipo de processo é que ele NÃO prende o prompt e isso NÃO impede a execução de um novo processo nesse terminal.

/Interativo: são inicializados a partir de um terminal do usuário e são controlados por ele, usamos os comandos CTRL + Z, CTRL + X, fg, bg e jobs para trabalhar com esse tipo de processo.

/Lote (batch): são processo controlados pelos comandos at, batch e cron.




Gerenciando os Processos do seu Servidor


\ps
O comando ps exibe todos os processos sendo executados no servidor.

# ps ­e => exibe todos os processos em execução com seus respectivos PID.
# ps ­t tty[n] => exibe todos os processos em execução no referido terminal.
# ps ­u login_name => exibe todos os processos em execução pelo referido usuário.
# ps ­f => exibe informação completa dos processos rodando.

# ps aux
É opção mais usada para verificar processos.
a ­ mostra todos os processos existentes;
u ­ exibe o nome do usuário que iniciou determinado processo e a hora em que isso ocorreu;
x ­ exibe os processos que não estão associados a terminais;

Campo Conteúdo
USER Nome do usuário do proprietário do processo.
PID ID (identificador) do processo.
%CPU Porcentagem de recursos de CPU que este processo usa.
%MEM Porcentagem de memória real que este processo usa.
VSZ Tamanho virtual do processo.
RSS Resident Set Size (número de páginas na memória)
TTY ID de terminal (? ­ Não depende de terminal)
STAT Estado do processo. (R, S, Z, D, T )
START Horário em que o processo foi iniciado
TIME Tempo de CPU que o processo consumiu
COMMAND Nome do comando e argumentos
STAT ­ indica o estado atual do processo, sendo representado por uma letra:
R ­ executável;
D ­ em espera no disco;
S ­ Suspenso;
T ­ interrompido;
Z ­ Zumbi.
W ­ processo paginado em disco;
< ­ processo com prioridade maior que o convencional;
N ­ processo com prioridade menor que o convencional;
L ­ processo com alguns recursos bloqueados no kernel.



\pstree
O comando pstree é usado para visualizar a árvore de processos.
# pstree



\top
O comando top é um monitor do sistema que mostra a atividade do processador em tempo real. Exibindo uma lista das tarefas no sistema que usam com mais intensidade a CPU e fornecendo uma interface interativa para manipulação dos processos.

Opções do Top
# top d [tempo] – Atualiza a tela após o tempo determinado
s – Diz ao top para ser executado em modo seguro
i – Inicia o top ignorando o tempo de processos zumbis
c – Mostra a linha de comando ao invés do nome do programa



\jobs
O comando jobs lista os processos em execução pelo shell que estão em background. Veja a sintaxe:
# jobs ­l
[2]­ 1245 Running asmixer &
[3]+ 1333 Running openoffice &



\fg
Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. Você deve usar o comando jobs para pegar o número do processo
rodando em segundo plano ou interrompida, este número será passado ao comando fg para ativá­lo em primeiro plano.
Exemplos:
# jobs ­l
[2]­1245 Running asmixer &
# fg 2
asmixer



\bg
Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um programa em primeiro plano rodar em segundo, devemos primeiro interromper a execução do comando com CTRL+Z; será mostrado o número da tarefa interrompida. Use este número com o bg para iniciar a execução em segundo plano.

Exemplos:
# fg 2
asmixer
Interropendo: CTRL+Z => [2]+ Stopped asmixer)
# bg 2



\fuser
Mostra qual processo faz uso de um determinado arquivo ou diretório.
Sua sintaxe é:
# fuser ­opção caminho (do arquivo ou diretório)

Opções:
­k ­ finaliza o processo que utiliza o arquivo/diretório em questão;
­i ­ deve ser usada em conjunto com a opção k e serve para perguntar se a finalização do processo deve ser feita;
­u ­ mostra o proprietário do processo;
­v ­ o resultado é mostrado em um padrão de exibição semelhante ao comando ps.


Por exemplo, para ver quem está acessando o cd­rom, digite:
# fuser ­u /mnt/cdrom



\nohup
Executa um comando ignorando os sinais de interrupção. O comando poderá ser executado até mesmo em segundo plano caso seja feito o logout do sistema.
Com o nohup você NÃO fica preso ao terminal, assim poderá colocar qualquer processo em execução e fechar o terminal ou shell.

Exemplos:
# nohup [_comando a ser executado_]
# nohup cp ­a /etc /tmp

OBS: As mensagens de saída do “nohup” são direcionadas para o arquivo nohup.out do diretório corrente.



\nice
Configura a prioridade da execução de um comando ou programa.

Exemplo:
# nice ­n [número]

A prioridade de execução de um Programa/comando pode ser ajustada de ­20 (a mais alta) até 19 (a mais baixa). A regra é inversamente proporcional, quanto menor for o número maior sua prioridade.

Exemplo:
# nice ­n ­19 find / ­name apropos


\renice
Configura a prioridade da execução de um comando ou programa que já está em execução. O renice segue o mesmo intervalo de prioridades que o nice, mas precisamos passar o PID do processo que será priorizado.

Exemplo:

#renice ­20 ­p PID
Para obter o PID do processo, use os comandos já visto anteriormente.


\kill
Esse comando permite cancelar processo em execução, desde que você tenha permissão para isso, ou seja, que você seja superusuário ou dono do processo.

Exemplo:
# kill PID
# kill ­9 385

Onde :
­9 – É a opção do kill que força o processo ser fechado independente de qualquer coisa.
385 – É o número do processo obtido pelo comando ps ­aux, que você deseja cancelar


\killall
Ele é idêntico ao kill, mas ele finaliza processo através do nome, ou seja, última coluna do comando ps.

# killall [_processo_]

Exemplo:
# killall ­9 inetd

Syslog

Syslog é o superfodástico do Linux. Porque no Linux há log fácil!


LOG do Sistema

# /etc/syslog.conf



Como ele trabalha?

Recurso | Prioridade | Ação >> Sistema


Recurso
auth – Mensagens sobre segurança
authpriv – Conexões estabelecidas e controle de acesso
kern – Mensagens do kernel
cron – Mensagens do Crond
daemon – Mensagens de todos os servidores
user – Mensagens relacionadas com usuarios
mail – Mensagens do servidores de e-mail
local0 – Mensagens locais
local7 – Mensagens de boot


Prioridade
debug – Mensagens de depuração
info – Mensagens de informativas
notice – Mensagens de noticias significantes
warning – Mensagens de Alerta
err – Mensagens de erro
crit – Mensagens criticas
alert – Um solução deve ser toma imediatamente
emerg – O sistema está inutilizável



Ação
Geralmente ação é o caminho aonde o log irá ser encontrado.

Exs: kern.* /dev/console

authpriv.* /var/log/secure


Exemplo
Então vamos fazer de conta que eu pretendo armazenar todas as informações criticas relacionadas a meu servidor de e-mail, para um arquivo chamado /var/log/maillog

Essa linha teria que ficar assim:
mail.crit /var/log/maillog


Para os sysadmins
Logs importantes:

/var/log/messages – Guarda todas as mensagens de nivel info, para cima
/var/log/secure - Guarda mensagens de autenticação
/var/log/maillog – Guarda todas os logs relacionados ao servidor de e-mails


Log Remotos
# vi /etc/init.d/syslog.
Devemos localizar a linha:
SYSLOGD_OPTIONS=
e colocar o valor:
SYSLOGD_OPTIONS=”-r -m 0”
Para exportarmos os logs do nosso servidor cliente devemos editar o arquivo:
# vi /etc/syslogd.conf
E adcionar a linha:
*.* @hostname.domain



SYSLOG-NG

A família LAST

last => Exibe informações sobre logins e logouts armazenados em /var/log/wtmp.
lastb => Informações sobre possíveis erros de login que estão armazenadas em /var/log/btmp.
lastlog => Infos sobre o tempo de login do usuário que estão armazenadas em /var/log/lastlog.
lastcom => Infos sobre todos os comandos executados no sistema em /var/log/pacct.

Obs: Esses arquivos de log criados pela família LAST* não são arquivos simples, portanto só podem ser visualizados com os próprios comandos last*



Recurso ou Facilities do Syslog-NG
auth
lpr
authpriv
mail
cron
mark
daemon
news
ftp
syslog
kern
user
local0-7
uucp

auth – Comandos relacionados a segurança e autorização
authpriv – Mensagens de segurança confidenciais
cron – Mensangens relacionadas ao serviço cron (agendador de tarefas)
daemon – Outros daemons do sistema ex:(sshd, inetd, pppd, ...)
ftp – O daemon do servidor FTP do sistema
kern – Mensagens relacionadas ao kernel (Núcleo do sistema)
local0-7 – Oito variantes de mensagens locais
lpr – O sistema de spool de impressão (Fila de Impressão, etc)
mail – Serviços relacionados com e-mail (qmail, sendmail, postfix)
mark – Timestamps gerados em intervalos regulares.1
news – Mensagens de notícias da usenet
syslog – Mensangens internas do servidor de LOG.
user – Todo o tipo de mensagem a nível de usuário.
uucp – Reservado para o UUCP (abreviação para “Cópia Unix para Unix'')



Priorities
Maior Gravidade
| emerg
| alert
| crit
| err
| warning
| notice
| info
| debug

Menor Gravidade


emerg – Situações de Pânicos (O sistema está inutilizável)
alert – Situações Urgentes (Deverá ser providenciada algum tipo
de ação logo de imediato)
crit – Condições Críticas
err – Condições de Erros.
warning – Mensagens de Alerta
notice – Coisas que podem merecer investigação.
info – Mensagens informativas
debug – Somente para depuração

Cron

É uma agenda do nosso sistema onde você pode marcar seus compromissos administrativos. Como por exemplo uma rotina de backup. O Cron é responsável por avisar o shell a executar os comandos.

Cron --> Chefe
Crontab --> A agenda que o chefe usa
shell --> Funcionário que executa os compromissos

/etc/crontab (só root)
/var/spool/cron/crontabs (cada usuário acessa sua própria agenda)

Comando para agendar uma tarefa:
#crontab –e
-e: edit

Sintaxe do Cron:
mm hh DD MM DOW COMMAND

mm – minuto (0 até 59)
hh – hora (0 até 23)
DD – dia do mês (1 até 31)
MM – mês (1 até 12)
DOW – dia da semana (0 até 7)
COMMAND – tarefa que irá executar

0 = domingo
1 = segunda-feira
2 = terça-feira
3 = quarta-feira
4 = quinta-feira
5 = sexta-feira
6 = sábado
7 = domingo


O coringa "*"
Vamos executar uma tarefa (echo “Estou testando o cron : )” > /dev/tty1), enviando a saída desse comando para o terminal 1 em cada hora, ou seja, às 13:10, às 14:10, e assim por diante!
10 * * * * echo “Estou testando o cron : )” > /dev/tty1

O coringa "/"
Com esse coringa, podemos executar por exemplo uma tarefa de 5 em 5 minutos:
*/5 * * * * echo “Estou testando o cron : )” > /dev/tty1

O coringa "-"
Aqui, podemos executar uma tarefa dentro de um certo intervalo... por exemplo... de 0 à 5 minutos:
0-5 * * * * echo “Estou testando o cron : )” > /dev/tty1

O coringa "-" e o "/"
Aqui, juntamos 2 coringas para executar uma tarefa!
Por exemplo: executar uma tarefa de 5 em 5 minutos durante os 30 primeiros minutos:
0-30/5 * * * * echo “Estou testando o cron : )” > /dev/tty1

O coringa ","
Esse é um coringa onde podemos executar uma tarefa em tempos intercalados!
Por exemplo, no minuto 1, 3 e 5:
1,3,5 * * * * echo “Estou testando o cron :)” > /dev/tty1

Toda sexta, às 18, seja feito o backup do diretório /etc, usando o tar com o gzip!
00 18 * * 5 tar -cvzf bkp_etc.tgz /etc

Lembrando que ele sempre obedece uma condição. Exemplo: quero que seja mostrado na tela às 17 horas a seguinte mensagem: “hoje é Sex Jul 29 17:00:00 BRT 2005”; ou seja, mostre a saída do comando date; porém, o dia tem que ser sexta e tem que ser no mês 07, no dia 29 e tem que ser 17 horas!
Ficaria assim:
0 17 29 7 5 echo “Hoje é `date`”

O cron (chefe) vai consultar o que foi escrito no crontab (agenda do chefe) para ver se o que pedimos vai ser executado pelo funcionário (shell).
Para ver então essa agenda, usamos o comando:
# crontab –l
-l : list

Limpar os compromissos da agenda inteira:
# crontab –r
-r: remove

# crontab –l –u (apenas como root)
-l : list
-u: user