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

25 de março de 2012

ifconfig vs ip

Recentemente, estou tentando utilizar o ip ao invés do ifconfig. Por isso, fiz esse resumo:


[LIST]
ifconfig
ip addr show
ip link show


[UP]
ifconfig eth0 up
ip link set eth0 up


[DOWN]
ifconfig eth0 down
ip link set eth0 down


[SET BASIC]
ifconfig eth0 192.168.150.12
ip address add 192.168.150.12 dev eth0


[SET FULLY]
ifconfig eth0 192.168.1.14 netmask 255.255.255.0 broadcast 192.168.1.255
ip addr add 192.168.1.14/24 broadcast 192.168.1.255 dev eth0


[DEL]
O ifconfig não possui essa opção.
ip addr del 192.168.1.14/24 dev eth0


[ALIAS]
ifconfig eth0:1 10.0.0.1/8
ip addr add 10.0.0.1/8 dev eth0 label eth0:1





É isso pessoal! O ifconfi está deprecated, provavelmente daqui a uns anos não existirá mais. Por isso, é interessante aprender a utilizar o ip.

17 de janeiro de 2012

CDP - Cisco Discovery Protocol


Conceito
O Cisco Discovery Protocol (CDP) trabalha na layer 2 da camada OSI TCP/IP que funciona independente do meio físico (Ethernet, Frame Relay, …). Além de ser um protocolo como outro qualquer. Utilizado para descobrir informações sobre diversos equipamentos Cisco diretamente conectados. O mesmo está presente em roteadores, switches, APs, firewalls, telefones etc.

Um equipamento com CDP ativado envia mensagens periódicas via multicast, e também recebe as informações dos outros equipamentos. Desta forma é possível descobrir o nome, IP, modelo e a versão do software de um equipamento próximo.

Podemos habilitar o CDP globalmente, e assim os anúncios passarão a ser enviados por todas as interfaces suportadas, ou podemos configurar apenas nas interfaces desejadas. Por padrão o CDP vem habilitado (globalmente), e já faz os anúncios na versão 2. A versão 2 do CDP traz a VLAN nativa, domínio VTP e o modo da porta (duplex/speed) do equipamento diretamente conectado.




Habilitando o CDP globalmente
CiscoGW# conf t 

CiscoGW# cdp run 
CiscoGW(config)# 




Desabilitando o CDP globalmente
CiscoGW# conf t 

CiscoGW# no cdp run 
CiscoGW(config)#




Habilitando anúncios versão 2
CiscoGW(config)#cdp advertise-v2

Desabilitando anúncios versão 2
CiscoGW(config)#no cdp advertise-v2

Habilitando o CDP em uma interface específica
CiscoGW(config)#interface f0/1 

CiscoGW(config-if)#cdp enable


Desabilitando o CDP em uma interface específica
CiscoGW(config)#interface f0/1 

CiscoGW(config-if)#no cdp enable

Os comandos “shows” são os mais importantes/utilizados do CDP, já que a configuração normalmente não sofre alteração.


Verificando o CDP (status padrão)
CiscoGW#show cdp 

Global CDP information: 
        Sending CDP packets every 60 seconds 
        Sending a holdtime value of 180 seconds 
        Sending CDPv2 advertisements is enabled 
CiscoGW#

Verificando o CDP em uma interface específica ( timers padrão)
CiscoGW#show cdp interface gigabitEthernet 1/0/1 

GigabitEthernet1/0/1 is up, line protocol is up 
  Encapsulation ARPA 
  Sending CDP packets every 60 seconds 
  Holdtime is 180 seconds 
CiscoRT01#



Verificando os equipamentos diretamente conectados (sumário)
CiscoGW#show cdp neighbors 

Capability Codes: R – Router, T – Trans Bridge, B – Source Route Bridge 
                  S – Switch, H – Host, I – IGMP, r – Repeater, P – Phone, 
                  D – Remote, C – CVTA, M – Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability       Platform               Port ID 

CiscoSW1        Gig 1/0/48        152              S I            WS-C2960-          Gig 0/2 
CiscoSW8        Gig 1/0/45        121              S I            WS-C2960-          Gig 0/1 
CiscoGW02      Gig 1/0/26        179             R S I          2821                    Gig 0/1 
CiscoGW#



Verificando os equipamentos próximos (detalhado)
CiscoGW#show cdp neighbors detail 

————————- 
Device ID: CiscoSW1 
Entry address(es): 
  IP address: 10.40.20.19
Platform: cisco WS-C2960-24PC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/48,  Port ID (outgoing port): GigabitEthernet0/2 
Holdtime : 158 sec

Version : 

Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(50)SE4, RELEASE SOFTWARE (fc1) 
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc. 
Compiled Fri 26-Mar-10 09:14 by prod_rel_team

advertisement version: 2 

Protocol Hello:  OUI=0x00000C, Protocol ID=0×0112; payload len=27, value=00000000FFFFFFFF01022501000000000000ECC88212D480FF0000 
VTP Management Domain: ‘bv.com.br’ 
Native VLAN: 100
Duplex: Half
Management address(es): 
  IP address: 10.40.20.19





Além dessa opção, também temos a opção de recolher essas informações a partir do servidor, ou seja, o client do Cisco. Como fazer isso? Analisando o tráfego CDP que vem e vai da porta do CDP.

No Linux:
# tcpdump -nn -v -i eth1 -s 1500 -c 1 'ether[20:2] == 0x2000'





Se por o acaso, não tenha o tcpdump instalado na sua máquina rode:
# apt-get install tcpdump –y ou aptitude install tcpdump –y --> Caso seja um Debian ou derivados
# yum install tcpdump –y  --> Caso seja um Red hat ou derivado
Baixe o source http://www.tcpdump.org/release/tcpdump-4.2.1.tar.gz --> Caso seja outra distro.





Bibliografia-base:






16 de dezembro de 2011

Storage - Essencial

Empresas de médio porte, e até de pequeno porte, já tem se beneficiado da tec­nologia de sistemas de armazenamento de alta capacidade, conhecidos como sto­rages. Estes equipamentos já são parte padrão do ambiente de TI de empresas de grande porte, e são peça essencial para projetos de virtualização ou para as polí­ticas de continuidade de negócios.

Um storage é um equipamento que serve para concentrar toda necessidade de armazenamento de um grupo de servidores, provendo uma solução flexível, de alta velocidade e confiabilidade. Em vez de colocar HDs diretamente nos servidores, todos os HDs ficam no storage, e a capacidade combinada pode ser distribuída entre as máquinas. Isso reduz o desperdício de espaço e permite também que a ca­pacidade seja realocada de acordo com a necessidade, sem que seja preciso des­ligar um servidor para instalar mais HDs. O storage também possui sistemas de proteção que garantem que em caso de falha de um HD, seja possível fazer a troca sem perda de informação e sem necessidade de interrupção do serviço.

Dentro do datacenter, o storage é ligado aos servidores por meio de cabos di­retos, usando uma tecnologia apropriada. A opção mais comum é o Fibre Channel, que permite acesso de alta velocidade aos discos de forma muito parecida com uma conexão local utilizando o protocolo SCSI. O Fibre Channel opera em taxas tí­picas de 1 Gbps até 8 Gbps. Recentemente vários fabricantes começaram a in­vestir mais pesado em outras formas de interligação, para reduzir o custo. As princi­pais são o iSCSI (interface de disco SCSI sobre IP) e o FCoE (Fibre Channel over Ethernet). Em ambos os casos, o transporte passa a ser feito por uma rede Gigabit Ethernet padrão.

A interligação de servidores e storages dentro do datacenter é simples, e pode ser feita com cordões ópticos diretos. Porém, muitas empresas tem necessidade de interligar prédios distantes, dentro de uma cidade ou até mesmo entre cidades. Esta interligação permite que as empresas tenham um datacenter de reserva, ga­rantindo a continuidade de negócios em caso de desastres. Além de ser uma boa idéia, também é uma obrigação legal de empresas do setor financeiro (graças à Re­solução 3380 Banco Central), e de empresas listadas em Bolsa de Valores desde a lei Sarbanes-Oxley.

A ligação de storages exige um protocolo compatível. Storages menores e mais modernos (que utilizam tecnologia iSCSI ou FCoE) podem ser interligados por meio de uma rede Metro Ethernet padrão. A taxa de transmissão deve ser suficiente para as necessidades do cliente; a velocidade típica fica entre 100 Mbps e 1 Gbps, que permite a replicação dos dados em tempo real. O atendimento neste caso pode ser feito com um Connect Flex, que é um link dedicado de alta velocidade.

Para storages de maior capacidade (que utilizam o protocolo Fibre Channel) é ne­cessário dispor de um canal óptico totalmente transparente. Isto pode ser feito com uma fibra apagada, ou seja, uma fibra óptica que não passa por nenhum equipa­mento da operadora. O problema é que este tipo de ligação depende da disponibili­dade do serviço na região. A maioria das operadoras não oferece a fibra escura como parte do seu portfolio por questões estratégicas; é um produto caro, que uti­liza de forma exclusiva um recurso valioso que poderia ser "multiplicado" pela opera­dora para atender muito mais clientes. Mas existem algumas alternativas, como a oferta de serviços sobre tecnologia WDM.

O Storage Connect, que permite interligar storages entre prédios distantes dentro da sua área de atuação. Vários clientes corporativos já uti­lizam o Storage Connect, incluindo bancos, empresas do segmento de saúde e ór­gãos públicos. Através desta solução, é possivel interligar diretamente tanto a rede LAN como os storages, sem passar por nenhum equipamento ativo de rede, de forma totalmente transparente.


                  Solução Storage Connect com Enlace CWDM Simples

O Storage Connect oferece a mesma performance e flexibilidade da fibra apa­gada, mas permite o gerenciamento da solução (algo impossível com a fibra apa­gada normal). A solução utiliza a tecnologia de multiplexação de comprimentos de onda (WDM). O sistema permite que o cliente disponha de até 8 canais ópticos transparentes, que podem ser utilizados para interligação de storages, redes locais, ou qualquer outro sistema que possa ser ligado a uma fibra óptica. A solução também pode ser oferecida de forma redundante, utilizando para isso duas rotas distintas.

  Solução Storage Connect com Enlace CWDM Redundante


A solução Storage Connect é customizada para cada cliente, de acordo com o número de canais e a velocidade desejada em cada canal. A solução é indicada para ligação em Fibre Channel, em taxas de 1 Gbps a 8 Gbps, ou de rede local (LAN) a 1 Gbps ou 10 Gbps.




7 de outubro de 2011

Os 2 tipos de segurança

Em um passado não muito distante, um servidor configurado corretamente tinha seus riscos de ser invadido, mas esse risco era fisicamente dimencionado até os limites da sua rede local. Mas nos dias de hoje isso não é mais possível, por causa da chegada da Internet.

O grande crescimento de computadores interconectados, o crescimento de serviços virtuais e a quantidade de softwares com finalidades ilícitas, trazem como consequência a preocupação de se defender dessas pessoas mal intencionadas que posso utilizar esses softwares que tentam de várias formas invadir seu computador.

Existem vários aplicativos voltados a detectar a invasão do seu sistema, mas existem dois tipos de IDS, o que trabalha na user space (nível de usuário) ou kernel space (nível de kernel).

Podemos dizer que os IDS do tipo tripware que trabalha na camada de usuário podem ser mais vulneráveis, sendo assim burlados com mais facilidade, porque a maioria desses IDS tem arquivos de configuração, onde é informado , quais diretórios ou arquivos que precisam ter a proteção do IDS.

Caso a pessoa que efetuar a invasão não precisar fazer nenhuma alteração em arquivos, que estão relacionados no arquivo de configuração do IDS, somente fizer alterações em arquivos não configurados no IDS ou na camada de kernel ela possivelmente ela não será notada,tudo depende do contexto como o acesso arbitrário ocorreu.

Já com um sistema configurado com um IDS que esteja na camada de kernel, a dificuldade aumenta porque tudo o que a pessoa estiver tentando executar, gerará uma chamada no kernel(systemcall), assim como o IDS está na camada de kernel, todas as chamadas feitas geram mensagens de logs.

O registro das atividades dos usuários e serviços dos sistemas é, notoriamente, muito importante para os administradores e como foi citado o fato de todas as chamadas ao sistema que são negadas serem registradas, cria um cenário muito importante para auditorias futuras.

A importância de registro dos eventos do sistemas é tanta, que na norma NBR ISO/IEC 17799, o item 9.7.1 é todo dedicado ao "Registro (log) de eventos. Deixando claro que registro de eventos são também prioridade em uma política de segurança.

Em um sistema de log, oficialmente somente o root poderia alterar os arquivos de log, já com o Lids aplicado, nem o root teria o poder de alterar esses arquivos.

Lids é um path de segurança no nível de kernel, ou seja, é necessário a recompilação do kernel para a aplicação do path. Esse patch pode ser encontrado no site oficial do LIDS "www.lids.org" e o fonte do kernel em "www.kernel.org"

As ferramentas que acompanham o patch do Lids "lidsadm e lidsconf" são fáceis de utilizar e de configurar, elas estão no nível de usuário e servem para configurar as ACLs que serão determinadas pelo root, que, dependendo da configuração das ACLs do Lids, não será mais o dono do sistema, mas sim somente um usuário comum.

Como o Lids está no nivel de kernel, ele é acionado já no início do boot do sistema, portanto, já na inicialização o sistema se encontra protegido.

Com esse sistema de proteção no boot, ela nega permissão a muitos serviços padrões do sistema, como o dmesg, que gera um relatório de todo a inicialização do kernel. Isso é muito importante, por isso que se deve liberar o dmesg a gravar no diretório /var/log/.


# lidsconf -A BOOT -o /var/log/dmesg -j WRITE

Todos sabem que o arquivo /etc/shadow contém as senhas de todos os usuários do sistema e que as senhas estão criptografadas. Mesmo assim, existe um grande risco de alguém descobrí-las.

Por esse motivo, o LIDS trabalha da seguinte forma: ainda como usuário root é possivel determinar que nenhum binário vá conseguir o acesso a esse arquivo de senhas, colocando uma regra de DENY (proibido), por exemplo: 



# lidsconf -A -o /etc/shadow -j DENY
Mas o mais importante é que para toda regra existem as exceções, podendo assim liberar qual binário poderá acessar o /etc/shadow como READONLY (somente leitura). Um exemplo claro, seria o binário /bin/login, que precisa ter permissão de leitura no arquivo para que possa efetuar o login normalmente. 


# lidsconf -A -s /bin/login -o /etc/shadow -j READONLY

Mas caso se tente visualizar o conteúdo do arquivo com outros binários (por exemplo: vi, cat, more, etc..), o IDS acusará que esse arquivo não existe.
Da mesma que é possivel proibir o acesso as arquivos para todos os binários e liberar para alguns, também existe a possibilidade de ocultar processos, isso mesmo esconder os processos. Veja por exemplo como ocultar o processo do serviço ssh. 


# ldisconf -A -s /usr/sbin/sshd -o CAP_HIDDEN -j GRANT


Quando tentar listar os processos da máquina, esse processo do serviço ssh não aparecerá, mas o serviço está ativo.

Diante desse poder de fogo sugiro como a melhor opção seria utilizar os dois sistemas de IDS, para que vc esteja protegido na camada de usuário e na camada de kernel. Assim dificultado em muito possiveis atividades arbritárias.

Mesmo hoje tendo recursos como LIDS e outros como o SELinux, GrSecurity, devemos pensar sempre de forma estratégica em tudo que for possivel e viável tanto na Kernel Space como na User Space, pois em algumas situações como uma estação de trabalho fica impraticavel o uso de um recurso com LIDS.

O Lids também é um mecanismo a mais para aumentar o nível de segurança de um sistema operacional buscando atender também as diretrizes inerentes ao nível C2 de segurança no que diz respeito o Sistema Operacional.

O nivel C2 recomendado pelo TCSEC " Trusted Computer System Evaluation Criteria", que é nível de segurança minimo requerido pelo governo Americano e utilizada em algumas instituições no Brasil.

Outro valor agregado nessa história é que somente conhecendo profudamente como o sistema funciona e as respectivas aplicações que estejam sendo executadas, conseguimos tirar proveito de um recurso como LIDS, pois do contrário simplesmente nada vai funcionar corretamente, ou seja, além de melhoramos a segurança do sistema e aprendemos muito a emoção é grande :-).


8 de julho de 2011

Curso Iptables e Squid

Boa tarde caros leitores!

Gostaria de divulgar para o pessoal que lê o blog um curso especializado em squid como servidor proxy e firewall com iptables. As primeiras turmas estão sendo um sucesso. Todos gostaram.

<-------------------------------------------------------------------------------------------------------------------------->
Temos até depoimentos de alunos que fizeram o curso:

Cesar Bonfá
"O curso é muito bom. Pra quem nunca viu nada disso, no caso eu, deu pra entender perfeitamente. Claro que é muito complexo e detalhado, mais não é impossivel. O professor explica quantas vezes forem necessárias e ainda te ajuda via ssh, PERFEITO! Vale a pena."


Marcelo Kunz
“Achei o curso muito bom, o professor Lucas Sabino é bastante atencioso e prestativo e apesar da pouca idade tem uma boa didática. As aulas são bem dinâmicas e utilizando acesso remoto o professor pode conferir no seu próprio micro se as atividades propostas estão corretas ou auxiliar em alguma possível dúvida. O material fornecido é bem adequado e auxilia bastante. O método EAD é muito interessante, pois podemos aprender e nos aprimorarmos estando no conforto do próprio lar.
Enfim, achei o curso bem bacana e recomendo para tem interesse em se aprofundar em squid e iptables.”

<-------------------------------------------------------------------------------------------------------------------------->

Para você que deseja fazer o curso. Temos vagas ainda. Como será o curso?

  • O curso será realizado via internet., ou seja, à distância. O professor, eu, servirei o áudio do meu servidor de streaming e os alunos se conectarão a ele, ouvindo a aula. Em quanto ao chat, servirei um servidor de chat, por exemplo IRC, e então os alunos se conectarão nesse servidor e formarão uma sala. Claro que todos os alunos poderão citar dúvidas, questionamentos e tudo mais que desejarem via chat.

  • O curso será realizado de Segunda a Quinta. Data de início: 5 de Setembro de 2011.

  • Todo o conteúdo será disponibilizado em servidores de arquivos para que os alunos possam baixá-los a qualquer momento. 

    • Os logs de áudio e de chat serão disponibilizados para download para todos os alunos do curso após o período de no máximo de 15h. Devido ao tempo de conversão etc.

      • O curso é focado para um sysadmin ou para quem quer ser um sysadmin. Será um curso puxado pois a intenção é formar profissionais de squid e iptables capazes de fazer qualquer coisa com essas ferramentas.


      • A duração do curso será de 60 horas. Aproximadamente um mês de curso.

      • O modo de avaliação será a participação nas aulas, entrega de exercícios pedidos e disciplina em chat.



      Pré-Requisitos:
      • Conhecimentos básicos da distro GNU/Linux Debian Lenny
      • Estrutura de diretórios e FHS
      • Comandos básicos como: ls, cd, cat, echo etc
      • VI/VIM ou algum editor de texto em modo texto
      • Cron
      • Logrotate
      • Duas máquinas. A primeira fazendo papel de server e a outra de client. Pode-se trabalhar com máquinas virtuais
      • SSHD nas duas máquinas





      OBS: Já vi muito por aí cursos de squid que são realizados em um sábado (8h de curso) por R$ 400. É claro que o curso ministrado não será de 8h. Serão muito mais horas. Pois, não irei ensinar para os alunos apenas o básico. Como eu disse, irei ensinar a fazer qualquer tipo de coisa com o squid e o iptables. Então não acho interessante você comparar um curso tão bom como este com oficinas de sábado de 4 de squid que existem por aí. Queremos formar profissionais que façam qualquer coisa no Squid, não apenas que façam um acl com extensão .txt.

      Aos interessados no conteúdo programático mandem um email para mim que eu em resposta forneço o conteúdo programático.

      Aos interessados em fazer inscrição para o curso, enviar um email para sabinolucas@ig.com.br ou falar diretamente comigo via msn lssabino@hotmail.com.

      Inscrições até 29 de agosto de 2011. Enviarei o valor de investimento do curso depois  que a turma estiver fechada.

      O valor dos dois cursos juntos varia de R$ 1.200,00 a R$ 1.800,00., dependendo do número de participantes. Formas de pagamento: Transferência bancária ou depósito. Podendo ser parcelado.



      Bom, é isso! Gostaria de conseguir muitos alunos para que toda a bagagem e experiência que tenho possa ser passada a diante.

      Obrigado
      Abraços
      Até mais!

      15 de maio de 2011

      Sony e sua PSN lixo

      Li agora um artigo que diz respeito à invasão da Sony e sua PSN. Simplesmente, a Sony usava um apache muito velho e sem firewall.




      Gene Spafford, um dos pesos-pesados históricos da análise de segurança na Internet, foi convidado a testemunhar em uma investigação do Congresso dos EUA sobre o recente caso da invasão da PlayStation Network, que tirou o serviço do ar e colocou na mão de criminosos os dados pessoais (e possivelmente os dados de cartão de crédito) de milhões de usuários.

      A situação descrita por Spafford é detalhada, mas vou resumir: é péssima. Servidor web Apache velho e sem aplicação de atualizações, exposto à Internet sem firewall – algo pouco tolerável em um empreendimento amador, mas completamente inaceitável nos servidores que contém os dados confidenciais pessoais e de crédito dos clientes da segunda mais popular rede de jogos on-line do mundo.

      Para piorar, a situação descrita acima foi comunicada em fóruns monitorados por empregados da Sony, meses antes do ocorrido.

      Que karma, hein, Sony? Se for demonstrada a conduta temerária e imprudente na gestão da privacidade de dados tão valiosos, não há dúvida de que os prejudicados irão buscar a reparação financeira dos danos causados pelo vazamento de informações confiadas à empresa. (via osnews.com)



      E as pessoas ainda confiam nas empresas. Olha o futuro! A computação na nuvem está aí pra todo mundo jogar seus dados nos servers do Google e acontecer algo do tipo.




      LINK: 
      http://br-linux.org/2011/invasao-da-psn-servico-da-sony-usava-apache-desatualizado-sem-firewall/

      http://www.osnews.com/story/24700/_PSN_Ran_Outdated_Unpatched_Apache_without_Firewall_

      16 de dezembro de 2010

      Senha Motorola SBV5121

      Essa me deu trabalho...

      Cheguei aqui no Rio, e aqui é virtua. Tava com pau, não funcionava de jeito nenhum. Minha máquina pegava o ip interno da rede, mas não conseguiu sair pra internet. depois de verificar muita coisa no linux...

      Pensei em acessar o gateway do virtua - o motorola SBV5121 Cable Modem... 

      Qual é a senha? Fiquei uns 20 minutos entre senhas 12345, admin admin, motorola motorola e etc..

      E compartilho aqui com vocês que o usuário é admin e a senha é motorola.


      Depois, resolvi o problema.

      18 de agosto de 2010

      Proxy Transparente e Proxy normal

      Por que proxy não transparente é melhor que o transparente
      A explicação simples é a de que, além de ser mais seguro, o proxy não transparente usa o recurso do cache de DNS. 


      Como funciona o proxy?
      A palavra proxy significa literalmente procurador. No caso de um proxy HTTP, o servidor recebe uma requisição HTTP, a interpreta e executa as ações necessárias para respondê-la. Como geralmente possui um cache, ou ele responde com o conteúdo do cache, ou requisita o recurso (arquivo) ao servidor HTTP original, desta vez como um pedido próprio.


      O proxy transparente é uma arquitetura que permite que o navegador cliente não saiba da existência do proxy. Ele acha que está solicitando o recurso diretamente ao servidor original; o proxy encarrega-se de capturar e processar a solicitação.

      A principal vantagem nesta arquitetura é que não é necessária a configuração de proxy nos navegadores cliente. Outra (incorretamente) alegada vantagem é que o proxy não transparente não impede a conexão direta à Internet.
      Como fica o navegador?
      Uma requisição comum de um agente HTTP se dá em duas fases:
      1) há a requisição DNS para resolver o endereço de destino;
      2) é feita a requisição HTTP propriamente dita.


      Se o navegador não conhece a existência do proxy, ele irá fazer inicialmente a requisição DNS e, após resolvido o endereço, irá lançar a requisição HTTP ao servidor original. O proxy, por sua vez, não irá usar o DNS resolvido pelo navegador, e fará sua própria requisição DNS antes da requisição HTTP.

      Existe uma consideração importante: apesar de o pacote DNS ser pequeno e transmitido em UDP, o tempo de resolução costuma não ser desprezível. Às vezes, chega a mais de um minuto. E é o minuto mais importante, porque fica entre o e o aparecer alguma coisa no navegador.

      É, portanto, interessante para a LAN ter um cache DNS interno servindo a todas as máquinas. Isto pode ser feito com a instalação de um servidor DNS ou com o uso do cache DNS do próprio Squid.
      Se o navegador conhece o servidor proxy, ele não fará nenhuma resolução DNS e fará a solicitação do recurso ao servidor proxy, não ao servidor original.


      O Squid possui um cache DNS interno que pode ser acessado com o CGI Cache Manager (no debian, pacote squid-cgi ou squid3-cgi), item Internal DNS Statistics. O recurso é tão bom que diz o quanto tempo falta para cada entrada DNS expirar.

      Não achei recurso semelhante no BIND (servidor DNS mais usado no mundo). No máximo, estatísticas gerais. O BIND é dividido em duas partes: servidor com autoridade e servidor de encaminhamento. Segundo sua documentação, é focado na performance.

      DICA: O DNS do Squid é mais simples e rápido que o do BIND.

      Os vírus não usam proxy. Eles assumem uma conexão direta a Internet. Quando se usa proxy transparente, você está encaminhando as mensagens de vírus para a Internet. Simples assim.

      Uma segunda consideração está relacionada também à conectividade: no modelo não transparente, os navegadores não precisam estar conectados à Internet. Eles só precisam estar conectados ao proxy e este se vira pra chegar à web. Se você costuma usar apenas web, então pode usar um gateway falso nos clientes. Isso significa que os softwares que não conhecerem o proxy não poderão iniciar mensagens para a Internet, pois não sabem a rota. Às vezes, pode ser útil.

      Além disso, não é válido o argumento de que não se pode controlar a conexão no proxy não transparente. No proxy transparente, captura-se o pacote e, dessa forma, assegura-se que ele irá seguir o caminho do proxy. Na arquitetura de proxy não transparente, pode-se inibir o uso de Internet sem o proxy colocando-se um filtro do netfilter (via iptables) no firewall.

      Se o proxy está no gateway, deve-se permitir (ACCEPT) pacotes para a porta 80 (--dport) apenas vindos da própria máquina (OUTPUT) e deve-se bloquear (DROP) as vindas da rede (FORWARD) para fora.
      Se o proxy não está no gateway, deve-se permitir pacotes na porta 80 cuja fonte (-s) seja o proxy e bloquear as outras.

      A sintaxe é aproximadamente essa:
      # proxy na mesma máquina firewall/gateway.
      # iptables -A INPUT --dport 80 -j ACCEPT //requisições da LAN para o proxy
      # iptables -A FORWARD --dport 80 -j DROP //requisições da rede pra fora
      # iptables -A OUTPUT --dport 80 -j ACCEPT //requisições do proxy pra fora
      proxy em máquina interna da rede.
      # iptables -A FORWARD -s --dport 80 -j ACCEPT //requisições do proxy pra fora
      # iptables -A FORWARD --dport 80 -j DROP //requisições da rede pra fora


      Quanto à performance, existem duas formas eficientes de se fazer a dobradinha proxy/cache e cache DNS. Usando proxy transparente e servidor DNS ou usando o Squid como proxy não transparente.

      Na primeira forma, deve-se colocar o servidor DNS interno à LAN e fazer com que tanto o proxy quanto a LAN utilizem-no. É comum as LAN Houses e mesmo as pequenas empresas usarem o servidor DNS do provedor. Isso é prejudicial no proxy transparente, já que as requisições são individuais dos navegadores, gerando tráfego desnecessário.

      Na segunda forma, o servidor proxy Squid encarrega-se de fazer o próprio cache DNS. Esta implementação é mais simples e mais econômica em recursos. Pela "filosofia" KISS, pode-se dizer que é melhor.

      E se houver um duplo uso de cache? Proxy não transparente + servidor DNS interno? Fiz isso no meu TCC, pensando que era a melhor saída. Pelo que pude analisar (com squid 2.7 e BIND 9.5), sempre que o squid requisitava DNS, o BIND9 encaminhava a requisição. 

      Ou seja, o squid era suficiente. Além do mais, o servidor BIND estava configurado para realizar requisições em múltiplos servidores DNS caso o simples encaminhamento falhasse. O tráfego era enorme e redundante.

      Quanto à segurança, parece-me que o melhor mesmo é usar proxy não transparente, principalmente por causa dos vírus, trojans e toda a fauna de processos mal intencionados no sistema operacional. No Windows, isso é vital. Coloca-se um gateway e servidores DNS falsos e processa-se apenas o que vier através do navegador. Sugiro utilizar uma máquina válida preparada para receber os pacotes não autorizados, de modo que identifique-se, via tcpdump, a origem e intenção destes pacotes.

      Uma preocupação constante é quanto à facilidade de configuração da rede. Para isto, há o método do proxy auto-config (PAC). Sobre ele, você pode ler mais aqui e aqui.

      Pelos motivos explanados acima, é possível considerar que em ambientes simplificados o uso de proxies não transparentes ofereça mais vantagens que desvantagens em relação aos transparentes. Claro que cada caso é um caso. Às vezes, a vantagem na facilidade de implantação do proxy transparente pode suplantar todas as vantagens do outro modelo.

      5 de agosto de 2010

      Lista de portas TCP/IP

      Quer saber todas as portas TCP/IP?????

      Veja rapidinho por esse PDF!


      Clique aqui para DOWNLOAD

      23 de julho de 2010

      Hub, Switch e Router - Qual usar?

      Muita gente sabe que hub, switch e roteador  são nomes dados a equipamentos que possibilitam a conexão de computadores em redes. Porém, dessas pessoas, muitas não sabem exatamente a diferença entre esses dispositivos. Este artigo explicará o que cada equipamento faz e indicará quando usar cada um.


      • Hub

      O hub é um dispositivo que tem a função de interligar os computadores de uma rede local. Sua forma de trabalho é a mais simples se comparado ao switch e ao roteador: o hub recebe dados vindos de um computador e os transmite às outras máquinas. No momento em que isso ocorre, nenhum outro computador consegue enviar sinal. Sua liberação acontece após o sinal anterior ter sido completamente distribuído.

      Em um hub é possível ter várias portas, ou seja, entradas para conectar o cabo de rede de cada computador. Geralmente, há aparelhos com 8, 16, 24 e 32 portas. A quantidade varia de acordo com o modelo e o fabricante do equipamento.

      Caso o cabo de uma máquina seja desconectado ou apresente algum defeito, a rede não deixa de funcionar, pois é o hub que a "sustenta". Também é possível adicionar um outro hub ao já existente. Por exemplo, nos casos em que um hub tem 8 portas e outro com igual quantidade de entradas foi adquirido para a mesma rede.

      Hubs são adequados para redes pequenas e/ou domésticas. Havendo poucos computadores é muito pouco provável que surja algum problema de desempenho.


      • Switch

      O switch é um aparelho muito semelhante ao hub, mas tem uma grande diferença: os dados vindos do computador de origem somente são repassados ao computador de destino. Isso porque os switchs criam uma espécie de canal de comunicação exclusiva entre a origem e o destino. Dessa forma, a rede não fica "presa" a um único computador no envio de informações. Isso aumenta o desempenho da rede já que a comunicação está sempre disponível, exceto quando dois ou mais computadores tentam enviar dados simultaneamente à mesma máquina. Essa característica também diminui a ocorrência de erros (colisões de pacotes, por exemplo).

      Assim como no hub, é possível ter várias portas em um switch e a quantidade varia da mesma forma.

      O hub está cada vez mais em desuso. Isso porque existe um dispositivo chamado "hub switch" que possui preço parecido com o de um hub convencional. Trata-se de um tipo de switch econômico, geralmente usado para redes com até 24 computadores. Para redes maiores mas que não necessitam de um roteador, os switchs são mais indicados.




      • Roteadores

      O roteador (ou router) é um equipamento utilizado em redes de maior porte. Ele é mais "inteligente" que o switch, pois além de poder fazer a mesma função deste, também tem a capacidade de escolher a melhor rota que um determinado pacote de dados deve seguir para chegar em seu destino. É como se a rede fosse uma cidade grande e o roteador escolhesse os caminhos mais curtos e menos congestionados. Daí o nome de roteador.

      Existem basicamente dois tipos de roteadores:

      Estáticos: este tipo é mais barato e é focado em escolher sempre o menor caminho para os dados, sem considerar se aquele caminho tem ou não congestionamento;

      Dinâmicos: este é mais sofisticado (e conseqüentemente mais caro) e considera se há ou não congestionamento na rede. Ele trabalha para fazer o caminho mais rápido, mesmo que seja o caminho mais longo. De nada adianta utilizar o menor caminho se esse estiver congestionado. Muitos dos roteadores dinâmicos são capazes de fazer compressão de dados para elevar a taxa de transferência.

      Os roteadores são capazes de interligar várias redes e geralmente trabalham em conjunto com hubs e switchs. Ainda, podem ser dotados de recursos extras, como firewall, por exemplo.



      Concluindo...


      Mesmo para quem quer montar um rede pequena, conectando, por exemplo, três computadores, o uso de "hubs switch" se mostra cada vez mais viável. Isso porque o preço desses equipamentos estão praticamente equivalentes aos dos hubs. Ainda, se você for compartilhar internet em banda larga, um hub switch pode proporcionar maior estabilidade às conexões.

      Uma dica importante: ao procurar hubs, switchs ou até mesmo roteadores, dê preferência a equipamentos de marcas conhecidas. Isso pode evitar transtornos no futuro.

      A utilização de roteadores é voltada a redes de empresas (redes corporativas). Além de serem mais caros (se bem que é possível até mesmo usar um PC com duas placas de rede como roteador), tais dispositivos também são mais complexos de serem manipulados e só devem ser aplicados se há muitos computadores na rede. No entanto, muitos usuários de acesso à internet por ADSL conseguem usar seus modems (se esses equipamentos tiverem esse recurso) como roteador e assim, compartilham a conexão da internet com todos os computadores do local, sem que, para tanto, seja necessário deixar o computador principal ligado. Basta deixar o modem/roteador ativado.

      9 de julho de 2010

      Interfaces e os nameservers

      Vim dividir aqui uma dica simples, mas bem legal. Imagina que vc tem um dhcp que fica mudando de DNS sempre. E isso te enche o saco.


      Você pode alterar o seu interfaces assim:


      # The loopback network interface
      auto lo
      iface lo inet loopback

      # The primary network interface
      auto eth0
      iface eth0 inet static
              address 192.168.0.70
              netmask 255.255.255.0
              network 192.168.0.0
              broadcast 192.168.0.255
              gateway 192.168.0.53
              dns-nameservers 192.168.0.53
              dns-search sabinol.com.br

      auto eth1
      iface eth1 inet dhcp

      # up route add -net 0 gw 192.168.150.1 dev eth0

      ----------------------------------- FIM do Interfaces ---------------------------------------------------

      Se for PPP, então você tem que ir em /etc/ppp/peers/, procurar em todos os arquivos a opção usepeerdns e ajustar um ip.


      Se for dhclient, então... Você terá que ir no conf do seu dhclient (/etc/dhcp/dhclient.conf) e inserir o seguinte:
       prepend domain-name-servers 4.4.4.4 4.4.2.2

      17 de abril de 2010

      Alterando DNS no Windão

      DNS – Domain Name Server, ou em bom português, servidor de nomes de Domínios. Este servidor executa uma função primordial para nós, usuários de internet.

      Basicamente, os computadores ligados em rede precisam saber onde os outros computadores estão para “conversar” com eles. Quando você digita g1.globo.com, o seu computador precisa saber onde está e como chegar neste site. Só que a rede TCP é baseada em endereços numéricos, os chamados IPs. O DNS é responsável por traduzir para o computador o “nome” g1 no “domínio” globo.com indicando para o computador qual o IP que ele deve se conectar.

      Se o servidor DNS para de funcionar, ou tem algum tipo de falha em sua atualização – que me parece o caso dos usuários que reportaram problemas de navegaçã – o computador não sabe como chegar em determinados sites.

      Programas como o Live Messenger continuam operando, pois navegam diretamente usando o endereço IP.

      Mas, como contornar o problema em uma situação como estas? A solução é simples: Usar um DNS diferente. Neste site você encontra uma lista enorme de DNS dos mais variados provedores. Você pode usá-los em sua conexão para contornar o problema. Agora, como usar? No Windows, faça o seguinte:

      • Clique em iniciar, configurações, conexões de rede;
      • Na janela que será aberta, clique com o botão direito do mouse sobre sua conexão e vá até propriedades;
      • Selecione o item Protocolo TCP/IP e clique no botão propriedades;
      • Na janela que será aberta, selecione a opção Usar os seguintes endereços de servidor DNS;
      • Coloque um endereço preferencial (na lista que indiquei no link acima, entenda preferencial como primário);
      • Coloque outro endereço no campo alternativo (ou secundário).
      • Clique em OK e em OK novamente;
      • Teste a navegação (o ideal é fechar o navegador)

      Caso a navegação não seja normalizada:

      • Clique em iniciar, executar e escreva CMD, clicando em OK na sequência;
      • O Windows irá abrir a janela da linha de comando, nela escreva: ipconfig /flushdns e dê ENTER.
      • Feche a janela da linha de comando e tente navegar novamente.
      • Caso continue não dando certo, teste outros servidores DNS, repetindo o procedimento desde o começo.

      Importante: Se em suas configurações já houver um DNS configurado, anote-o para retornar à configuração original.

      13 de dezembro de 2009

      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

      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/

      1 de dezembro de 2009

      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!

      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!