quinta-feira, 18 de junho de 2009

XIV Maratona de Programação

Estão abertas as inscrições para a XIV Maratona de Programação, cuja primeira fase será sediada pelo Departamento de Sistemas e Computação da UFCG.

A Maratona de Programação é dirigida a alunos de cursos superior da área de computação e afins: Ciência da Computação, Engenharia de Computação, Licenciatura em Informática, Sistemas de Informação, etc. Cada instituto/departamento/faculdade poderá inscrever mais de um time.

Informações mais detalhadas sobre a maratona estão disponíveis em http://maratona.ime.usp.br/.

quarta-feira, 17 de junho de 2009

RESUMO IPTABLES


RESUMO IPTABLES


Olá pessoal irei fazer um pequeno resumo a respeito do IPTBLES, o front-end para Netfilter( módulo do kernel Linux, no qual implementa o firewall). Esta é a primeira parte do resumo, em breve trarei a segunda parte. Abraços e bons estudos!

*FIREWALL FILTRO DE PACOTES
*FIREWALL NAT
*FIREWALL MANGLE


*iptables-save* = salva dados das regras que estão na memória RAM em determinado arquivo informado pelo administrador. Ex: Quando se liga o PC e se adiciona as regras via linha de comando e após a reiniciação do PC, todas as regras são apagadas. Com o comando citado temos um salvamento automático das regras que foram digitadas e armazenadas em RAM para um arquivo especificado pelo administrador.


Ex: iptables-save > /home/marcos/regras_firewall.txt

*iptables-restore* = habilita as regras que foram salvas com o "iptables-save" para a memória RAM

*iptables* = Aplicativo principal do pacote iptables para protocolos ipv4

*ip6tables* = Aplicativo principal do pacote iptables para protocolos ipv6



iptables -A = ADICIONAR REGRA
iptables -D = REMOVER REGRA
INPUT = PACOTES QUE ENTRAM NA INTERFACE ETHERNET
OUPUT = PACOTES QUE SAEM DA INTERFACE ETHERNET
FORWARD = ENCAMINHA PACOTES
-i = INTERFACE
-lo = LOOPBACK
-j = TARGET -> AlVO( ACCEPT, FORWARD ou DROP)
-t = TABELA

TABELA NAT:

* PREROUTING : Utilizado quando há necessidade de se fazer alterações em pacotes antes que os mesmo sejam roteados

*OUTPUT: Trata os pacotes emitidos pelo firewall

*POSROUTING: Utilizado quando há a necesside de se fazer alterações em pacotes após o tratamento de roteamento.


IMPORTANTE: O iptables nada mais é do que um front-end do Netfilter( o firewall do linux a nível de kernel).
Veja abaixo o histórico de front-ends de firewall para linux:

KERNEL 2.0 - IPFWADM
KERNEL 2.2 - IPCHAINS
KERNEL 2.4/2.6 - IPTABLES


iptables -t filter -> Insere uma regra utilizando a tabela Filter ( PADRÃO )
iptables -t nat -> Insere uma regra utilizando a tabela NAT
iptables -t mangle -> Insere uma regra utilizando a tabela Mangle

Sintaxe para utilização do firewall: iptables [tabela] [comando] [ação]

[Comandos]

-A -> Adiciona regra ao final da lista.
Ex: iptables -A FORWARD

-D -> Deleta regra.
Ex: iptables -D INPUT

-L -> Lista regras.
Ex1: iptables -L # Lista todas as regrs
Ex2: iptables -L FORWARD # Listagem específica para a chain FORWARD

-P -> Altera a política das CHAINS( situações), o padrão é sempre ACCEPT.
CHAINS disponíveis: ACCEPT, FORWARD e DROP.
Ex: iptables -P INPUT DROP

-F -> Remove todas as entradas adicionadas a lista de regras sem alterar a política padrão( - P ) .
Ex:1: iptables -F # Remove todas as regras
Ex2: iptables -F OUTPUT # Remove todas as regras referentes a OUTPUT chain

-I -> Insere uma regra ao início da lista.
Ex: iptables -I OUTPUT

-R -> Substitui uma regra já adicionada por outra.
Ex: iptables -R FORWARD 2 -s 10.0.1.1 -d 10.0.2.0/8 -j DROP
#Substitui a segunda regra referente a FORWARD chain pela seguinte: "-s 10.0.1.1 -d 10.0.2.0/8 -j DROP"

-N -> Permite inserir/criar uma nova CHAIN a tabela especificada
Ex: iptables -t filter -N internet

-E -> Renomeia o nome de uma nova chain ( criada por você )
Ex: iptables -E acesso_web acesso_intranet
# Troquei o nome da chain já criada, de acesso_web para acesso_intranet .

-X -> Apaga uma chain criado pelo adminstrador do firewall
Ex: iptables -X acesso_intranet


[Ação]

-p -> Protocolo
Exs: -p icmp, -p tcp, -p udp

-i -> Interface de Entrada( input )
Exs: -i eth0, -i eth1, -i lo

-o -> Interface de Saída ( output )
Exs: -o eth1, -o eth2

-s -> Especifica a origem do pacote ao qual a regra deve ser aplicada
Ex1: -s 10.0.1.0/255.0.0.o
Ex2: -s www.orkut.com.br

-d -> Especifica o destino do pacote ao qual a regra deve ser aplicada
Ex: -d www.receita.fazenda.gov.br

! -> Utilizado como elemento de exceção. Utilizado juntamente com as ações -s, -d, -p, -i, -o, etc.
Ex1: -p ! icmp
Refere-se a todos os protocolos possíveis com excessão do ICMP.
Ex2: -s ! 10.0.1.0
Refere-se a todos os endereços possíveis com excessão do endereço 10.0.1.0

-j -> Define o alvo(target) do pacote caso o mesmo se encaixe a uma regra. As principais ações são ACCEPT, DROP, REJECT e LOG.

-sport -> Porta de origem( source port) do pacote. Apenas para os protocolos TCP e UDP.
Ex: -p tcp -sport 80
Refere-se ao TCP na porta 80 ( HTTP)

-dport -> Porta de destino( destination port) do pacote. Apenas para os protocolos TCP e UDP.
Ex: -p tcp -dport 23
Refere-se ao TCP na porta 23 ( TELNET)

[TARGETS - ALVOS]

ACCEPT - Permite a passagem do pacote

DROP - Nega a passagem do pacote (descarta o pacote) e não avisa ao emissor sobre a negação.

REJECT - Nega a passagem do pacote (descarta o pacote) e avisa ao emissor sobre a negação, gerando assim uma mensagem de erro.

LOG - Cria uma entrada de log em /var/log/messages sobre a utilização dos demais alvos(targets). É recomendado colocar esta opção antes dos demais alvos.

RETURN - Retorna o processamento do chain anterior sem processar o resto do chain atual.

SNAT - Altera o endereço de origem das máquinas clientes antes dos pacotes serem roteados.
Ex: Host A quer enviar um pacote para Host B, então o pacote deve ser enviado de A para B através de um Host C.

DNAT - Altera o endereço de destino das máquinas clientes. Pode por exemplo , receber um certo pacote destinado a porta 80 do host A e encaminhá-lo por conta própria a porta 3128 do host B. Isso é o que chamamos de Proxy Transparent, um encaminhamento dos pacotes dos clientes sem que os mesmo possuam a opção de escolher ou não tal roteamento.

REDIRECT - Realiza o redirecionamento de portas em conjunto com a opção --to-port

TOS - Tipo de serviço ou Type of Service. Determina a prioridade de entrada/saída de um pacote levando-se em conta o tipo de serviço( TOS - Disponível no cabeçalho IPV4)
















domingo, 14 de junho de 2009

Exemplo de meu_dominio.db

Olá pessoal! Como prometido no último post segue abaixo um arquivo de configuração do BIND para o domínio fictício marcos.com.br totalmente comentado. Eu espero que este exemplo ajude muitas pessoas... Pois bem por hoje é só... se divirtam !
============ marcos.db==================
; Nesse arquivo, a formatação é especialmente importante.
; Você pode usar espaços e tabs(ambos têm o mesmo efeito) para organizar
; as opções, mas existem algumas regras. As linhas "IN SOA" até "IN MX"
; precisam ficar justificadas( como no exemplo e você não pode esquecer
; dos espaços entre as opções. Comentários começam com ponto e vírgula .

$TTL 86400

; ( Primeira Linha)
; |@| indica origem do domínio e ao mesmo tempo início da configuração.
; |IN| é abreviação para Internet.
; |SOA| é abreviação de "Start of Autority".
; |servidor.marcos.com.br.| = ( o nome do servidor + domínio), comando hostname para saber
; o nome do servidor.
; |hostmaster.marcos.com.br.| = e-mail de contato do administrador( você ).
; |(| Parênteses indicando o início da configuração.

; ( Segunda Linha)
; |2009041310| Número de sincronismo, utilizado para atualização e comparação
; entre o servidor DNS primário e secundário. Deve ter 10 dígitos e geralmente se coloca
; ano/mes/dia + 2 dígitos. Detalhe: O número de sincronismo do servidor dns primário
; deve ser sempre superior ao secundário.
; As opções restantes da mesma linha orientam o servidor DNS secundário(caso haja).
; O primeiro campo |3H| indica o tempo que o servidor aguarda entre as atualizações
; ( 3 horas ). Caso ele perceba que o servidor principal está fora do ar, ele tenta fazer
; uma transferência de zona, ou seja, tenta assumir a responsabilidade sob o domínio.
; Caso a transferência falhe e o servidor principal continue fora do ar, ele aguarda o
; tempo especificado no segundo campo |15M| 15 minutos e tenta novamente.
; O terceiro campo |1W| indica o tempo máximo que ele pode responder pelo domínio
; antes que as informações expirem (1 semana, tempo mais do que suficiente para você
; arrumar o servidor principal) e o tempo mínimo |1D| antes de devolver o domínio para o
; servidor principal quando ele retornar( 1 dia ).
; |)| Parênteses finaliza a configuração.

; ( Terceira Linha)
; Contém informação sobre o servidor de nomes (DNS).
; |servidor.marcos.com.br.| = nome do servidor + nome do domínio.
; Caso haja mais de 1 servidor DNS escreva uma segunda linha com a mesma sintaxe.

; ( Quarta Linha)
; Contém informação sobre servidor de e-mails.
; |IN MX 10 servidor.marcos.com.br.| temos a linha completa
; referente ao servidor de e-mails. O número |10| diz a prioridade de cada servidor.
; No caso de termos 2 servidores de e-mail, o de maior prioridade, ou seja,
; o primário será o de menor valor.

; ( Quinta Linha)
; Especificação do IP do servidor = |marcos.com.br A 192.168.100.1|

; ( Sexta, Sétima, Oitava e Nona Linha)
; Abaixo dessa linha podemos definir subdomínios( www, ftp, smtp)
; Subdomínios são úteis para que visitantes digitem "www.marcos.com.br" ou
; ftp.com.br no navegador, além disso você pode relacionar com IP's ou domínios
; diferentes.
; OBS: Na nona linha foi especificado uma entrada para o nome(ns2) do servidor DNS
; secundário no caso de existir.

@ IN SOA servidor.marcos.com.br. hostmaster.marcos.com.br.(
2009041310 3H 15M 1W 1D )
NS servidor.marcos.com.br.
; IN MX 10 servidor.marcos.com.br.

marcos.com.br. A 192.168.100.1
www A 192.168.100.1
ftp A 192.168.100.1
smtp A 192.168.100.1
ns2 A 192.168.100.10

terça-feira, 9 de junho de 2009

Entendendo os arquivos de configuração do BIND

Hello World!
Bem vamos entender as opções e campos usados em arquivos de configuração do BIND, geralmente são arquivo com o seguinte sintaxe no nomedo arquivo: seu_dominio.db

Veja abaixo um exemplo desse tipo de arquivo:
Iremos primeiramente explicar cada um dos campos do arquivo de configuração do BIND.

SOA : Start of Autority -> Indica a autoridade para os dados desse domínio.

@ ( AT ) -> Define a autorização para esse domínio. Indica a origem do domínio e ao mesmo tempo o início da configuração.

Serial -> Serve para avisar aos servidores escravos sobre as atualizações no banco de dados. O servidor escravo pergunta periodicamente ao servidor mestre sobre o registro SOA. Se o número serial no registro SOA do servidor mestre for maior que o da cópia do arquivo de zona no servidor escravo, este transfere toda a zona do servidor mestre. De outra forma, o servidor escravo assume ter uma cópia igual e sai da transferência da zona. O número serial deve ser incrementado toda vez que que o domínio for atualizado para manter o servidor escravo sincronizado com o servidor mestre.

Refresh -> Intervalo de tempo que o servidor escravo compara seu número serial com o número serial do servidor mestre.

Retry -> Caso o servidor mestre pare o seu funcionamento, o servidor escravo tentará reatar a comunicação com o servidor mestre repetidamente.

Expire -> Tempo de vida útil do banco de dados do domínio em um servidor em um servidor escravo. Caso esse tempo seja ultrapassado sem ser realizada uma conexão com o servidor mestre, os dados ali armazenados são considerados desatualizados. Em certos casos, o servidor poderá até para de resolver nomes de DNS.

Minimum ( TTL - Time to Live ) -> Indica o tempo de resposta de um servidor em caso de pedido de resolução de um nome contido em seu banco de dados.

NS -> Lista o servidor de nomes para este domínio.

A -> Mapeamento de nomes para endereços IP.

PTR -> Mapeamneto de endereços IP para nomes.

CNAME -> Nomes canônicos ( para aliases ).

TXT -> Informações Textuais.

WKS -> Serviços bem conhecidos( Well Know Services ).

HINFO -> Informação sobre o computador ( Host INFOrmation ).

MX -> Mail Exchange. O registro MX é seguido de um número que determina a prioridade do servidor. Quanto menor o número, maior será a prioridade do servidor. A faixa de valores numéricos permitida é 0 - 65635.
___________________________________________________________

Gostaria de lembrar que não necessariamente todos os campos devem estar presentes em seu arquivo de configuração do Bind. No próxima post irei dar um exemplo feito por mim mesmo de um arquivo de configuração do Bind. Aguardem....




Curso IPV6 em Vídeo-Slides


Olá pessoal, eu gostaria de sugerir a todos um curso sobre IPV6, refere-se ao novo e não tão novo assim protocolo de rede IPV6, no qual possui endereçamento de 128 bits contra apenas 32 bits da versão 4( IPV4). O IPV6 soluciona de vez a falta de endereços IP's disponíveis, ou seja, não será mais necessário o uso de NAT,CIDR,etc. Trata-se de um curso rápido, prático e eficiente para aqueles que ainda estão começando a estudar esse novo protocolo, pois bem, o NIC.br junto ao CGI.br promoveram um ótimo curso em vídeo-slides no qual contempla todas as características do IPV6, mostrando os aspectos comparativos com o IPV4 até a assuntos "novos" como: Mobilidade, Qualidade de Serviço, Fragmentação e Roteamento. Segue abaixo o link para o curso. Não é necessário nenhum cadastro ou pagamento para realização do curso. Aproveitem e estudem . Um forte abraço!

sexta-feira, 5 de junho de 2009

Oração de NERD: Byte Nosso

Byte nosso de cada dia que nos trái hoje
Falsificado seja o vosso registro
Venha a nós o vosso password
Seja pirateada a vossa integridade
Assim na Web como no UNIX
O script nosso de cada dia que nos auxiliai hoje
Crackeai os nossos programas
Assim como nós hackeamos aqueles que os tem obtido
Não nos deixeis cair na prisão
Mas nos livrai dos log files,
Disconnected.

Ave Memória cheia de maps, o editor é convosco, bendita sois vós entreas placas, e o curto de vosso entry: PC-Plus.
Santa memória, mãe do DOS, roteai por nós, programadores, agora e na hora da compilação, append!