Montei uma figura para exemplificar a sintaxe das regras do IPTABLES. Cada uma das colunas exemplifica os parâmetros e argumentos que podem ser colocados. Veja:
É claro que você não é obrigado é colocar todos sempre. Você pode suprimir alguns para fazer regras mais genéricas. Por exemplo, não é necessário especificar a tabela "filter" pois ela é padrão.
terça-feira, 26 de novembro de 2019
Sintaxe dos comandos do IPTABLES
Local:
Montes Claros, MG, Brasil
quarta-feira, 13 de junho de 2018
Resolução atividade Cisco PT Roteamento IPv4 e IPv6
Abaixo o texto para a resolução das questões 1 e 2 da atividade do Cisco PT feita em aula.
Em seguida a resposta das questões 3, 4 e 5.
### Primeira parte válida para TODOS os roteadores ####
hostname R0
ipv6 unicast-routing
no ip domain-lookup
ip domain-name femc.br
ip name-server 192.168.0.250
do wr
### R0 ###
interface g0/0
ip address 10.0.1.1 255.255.255.252
ipv6 address FE80::1 link-local
ipv6 address 2001:BEBA:C0CA:A1::1/64
ipv6 enable
no shutdown
interface g0/1
ip address 10.0.2.1 255.255.255.252
ipv6 address FE80::1 link-local
ipv6 address 2001:BEBA:C0CA:A2::1/64
ipv6 enable
no shutdown
interface g0/2
ip address 192.168.0.254 255.255.255.0
ipv6 address FE80::254 link-local
ipv6 address 2001:BEBA:C0CA:FFFF::254/64
ipv6 enable
no shutdown
exit
ip route 192.168.1.0 255.255.255.0 10.0.1.2
ip route 192.168.2.0 255.255.255.0 10.0.2.2
ipv6 route 2001:BEBA:C0CA:1111::/64 2001:BEBA:C0CA:0A1::2
ipv6 route 2001:BEBA:C0CA:2222::/64 2001:BEBA:C0CA:0A2::2
### R1 ###
interface g0/0
ip address 10.0.1.2 255.255.255.252
ipv6 address FE80::2 link-local
ipv6 address 2001:BEBA:C0CA:A1::2/64
ipv6 enable
no shutdown
interface g0/1
ip address 10.1.2.1 255.255.255.252
ipv6 address FE80::1 link-local
ipv6 address 2001:BEBA:C0CA:1A2::1/64
ipv6 enable
no shutdown
interface g0/2
ip address 192.168.1.254 255.255.255.0
ipv6 address FE80::254 link-local
ipv6 address 2001:BEBA:C0CA:1111::254/64
ipv6 enable
no shutdown
exit
ip route 192.168.0.0 255.255.255.0 10.0.1.1
ip route 192.168.2.0 255.255.255.0 10.1.2.2
ipv6 route 2001:BEBA:C0CA:FFFF::/64 2001:BEBA:C0CA:0A1::1
ipv6 route 2001:BEBA:C0CA:2222::/64 2001:BEBA:C0CA:1A2::2
### R2 ###
interface g0/0
ip address 10.1.2.2 255.255.255.252
ipv6 address FE80::2 link-local
ipv6 address 2001:BEBA:C0CA:1A2::2/64
ipv6 enable
no shutdown
interface g0/1
ip address 10.0.2.2 255.255.255.252
ipv6 address FE80::2 link-local
ipv6 address 2001:BEBA:C0CA:0A2::2/64
ipv6 enable
no shutdown
interface g0/2
ip address 192.168.2.254 255.255.255.0
ipv6 address FE80::254 link-local
ipv6 address 2001:BEBA:C0CA:2222::254/64
ipv6 enable
no shutdown
exit
ip route 192.168.0.0 255.255.255.0 10.0.2.1
ip route 192.168.1.0 255.255.255.0 10.1.2.1
ipv6 route 2001:BEBA:C0CA:FFFF::/64 2001:BEBA:C0CA:0A2::1
ipv6 route 2001:BEBA:C0CA:1111::/64 2001:BEBA:C0CA:1A2::1
segunda-feira, 9 de abril de 2018
Faixas de endereçamento IPv4
Os endereços IPv4 foram inicialmente divididos em classes, e para cada classe era definido uma máscara fixa. Por exemplo, se você tinha uma rede endereçada na faixa 7.0.0.0(classe A) implicitamente os 3 últimos octetos eram reservados para hosts(mais de 16 milhões de hosts) gerando um desperdício substancial. A má política inicial de distribuição de endereços esgotou rapidamente o espaço do IPv4. Depois da RFC1918 as classe foram extintas e hoje usamos o termo apenas como uma referência. Vejamos as principais faixas de endereçamento IPv4:
Classes A, B, C, D e E:
Dentro das classes acima devemos já reservar 2 faixas da classe A:
0.0.0.0 até 0.255.255.255 - Que são endereços reservados pela IANA.
127.0.0.0 até 127.255.255.255 - Que é uma rede classe A inteiramente reservada para loopback.
Endereçamento privado
Na RFC1918 foi retirada uma rede de cada uma das 3 primeiras classes para endereçamento privado. A partir de então podemos usar livremente estes endereços e, manipulando a máscara, podemos otimizar a distribuição:Outros endereços reservados
Vale lembrar também de outras faixas de endereços IPv4 reservadas:1) Link-Local(APIPA): Faixa 169.254.0.0/16
Endereços não roteáveis próprios para autoconfiguração dos hosts caso não haja um servidor DHCP ou configuração manual.
2)Documentação e Exemplos. Faixas: 192.0.2.0 /24, 203.0.113.0 /24 e 198.51.100.0 /24
Foram reservados também as 3 faixas de classe C para documentação e exemplos de configuração. Poucas pessoas se lembram delas na hora de usar endereços para produção de artigos e tutoriais ou mesmo filmes.
3) CGNAT - Faixa 100.64.0.0 /10
Uma faixa também foi reservada exclusivamente para provedores de acesso, que não possuem IPv4 público suficiente para os assinantes, entregarem IPs em um intervalo específico. Esses assinantes já vão ter acesso IPv4 em duplo NAT nativo.
Marcadores:
endereçamento,
Fundamentos,
IPv4,
Redes
domingo, 20 de agosto de 2017
Frame rewrite. Desenhando para entender.
Um conceito um pouco confuso as vezes, para quem é iniciante, é o de "frame rewrite". Explico.
Quando um host envia um pacote para um host em uma rede remota, naturalmente o pacote vai ser encaminhado para o roteador. Mas como é possível enviar um pacote para um host/Roteador sem que seja para ele exatamente?
Você pode cair na engano de achar que o roteador vai adivinhar para onde este pacote deve ir, ou que existe um outro campo no cabeçalho IP para tratar disso. Alguns chegam apensar que ao enviar um pacote para um host fora da sua rede o processo do ARP corre normalmente, e ficam confusos ao perceber que eles não aparecem na tabela ARP.
Pode parecer muito bobo, mas é uma dúvida comum e uma coisa que não fica muito clara para iniciantes.
Quando é necessário montar um pacote para um endereço que está fora da sua rede, para ser bem óbvio, no campo "IP de destino" vai ser colocado exatamente o IP de destino. Já no campo MAC de destino será colocado simplesmente o MAC do roteador definido na sua configuração.
Se tudo ocorrer bem, o switch vai encaminhar este frame para o roteador, por causa do MAC, e o roteador, ao recebê-lo, analisando o IP de destino, verá que se trata de um pacote para um outro nó, e que deve ser encaminhado. O conceito de frame rewrite entra exatamente aqui.
Ao receber um frame o roteador vai descartar o cabeçalho de camada 2. Em seguida analisa a tabela de roteamento e decide por qual interface este pacote deve sair. Por fim, um novo cabeçalho de camada 2 será feito para o pacote, contendo o MAC de origem da interface pela qual saiu e o MAC de destino do próximo nó(pode ser o próprio destino ou um outro roteador).
Veja que, do ponto de vista da camada 2, o host se comunica apenas com o roteador, não tendo o menor sentido saber o MAC address do host remoto.
Quando um host envia um pacote para um host em uma rede remota, naturalmente o pacote vai ser encaminhado para o roteador. Mas como é possível enviar um pacote para um host/Roteador sem que seja para ele exatamente?
Você pode cair na engano de achar que o roteador vai adivinhar para onde este pacote deve ir, ou que existe um outro campo no cabeçalho IP para tratar disso. Alguns chegam apensar que ao enviar um pacote para um host fora da sua rede o processo do ARP corre normalmente, e ficam confusos ao perceber que eles não aparecem na tabela ARP.
Pode parecer muito bobo, mas é uma dúvida comum e uma coisa que não fica muito clara para iniciantes.
Quando é necessário montar um pacote para um endereço que está fora da sua rede, para ser bem óbvio, no campo "IP de destino" vai ser colocado exatamente o IP de destino. Já no campo MAC de destino será colocado simplesmente o MAC do roteador definido na sua configuração.
Se tudo ocorrer bem, o switch vai encaminhar este frame para o roteador, por causa do MAC, e o roteador, ao recebê-lo, analisando o IP de destino, verá que se trata de um pacote para um outro nó, e que deve ser encaminhado. O conceito de frame rewrite entra exatamente aqui.
Ao receber um frame o roteador vai descartar o cabeçalho de camada 2. Em seguida analisa a tabela de roteamento e decide por qual interface este pacote deve sair. Por fim, um novo cabeçalho de camada 2 será feito para o pacote, contendo o MAC de origem da interface pela qual saiu e o MAC de destino do próximo nó(pode ser o próprio destino ou um outro roteador).
Veja que, do ponto de vista da camada 2, o host se comunica apenas com o roteador, não tendo o menor sentido saber o MAC address do host remoto.
O processo de aprendizagem do SWITCH - Tabela MAC x Tabela ARP
O Switch é um elemento concentrador na rede, e faz o que chamamos de comutação de frames. O pacotes dos hosts são encapsulados em frames Ethernet, em seguida enviados ao switch com MAC address de ORIGEM e MAC address de DESTINO.
Neste artigo vamos esclarecer e entende os conceitos no processo de comunicação em camada 2, do ponto de vista do switch e do ponto de vista do host.
Como o switch é um elemento de camada 2, ele não depende de absolutamente nada do protocolo IP(camada3), sendo necessário apenas conhecer o MAC de cada dispositivo associado a cada porta. Para isto ele implementa o que chamamos de "Tabela MAC", ou "MAC address table".
Já o host, precisa conhecer o endereço IP do dispositivo que quer se comunicar, mas como é obrigado a colocar alguma coisa no campo "MAC de destino" do frame, ele precisa se virar e descobrir o MAC do dito cujo, para que o Switch consiga fazer seu trabalho.
Vejamos:
- Do ponto de vista do switch(Tabela MAC):
O switch é completamente ignorante em relação ao protocolo IP, portanto não há qualquer informação sobre endereços IP para o seu funcionamento padrão. Um switch aprende os endereços MAC dos dispositivos associados a cada porta e tenta encaminhar os frames da melhor maneira possível. Em resumo:
- O switch preenche a tabela MAC de acordo com os endereços de ORIGEM dos frames que RECEBE.
- O switch ENCAMINHA frames de acordo com endereços de DESTINO contidos na tabela.
- Se o endereço de DESTINO do frame não é conhecido na tabela MAC, o switch inunda todas as portas(flood) com este frame, EXCETO a porta de onde o frame veio.
- Naturalmente, switchs "obedecem" à pacotes de broadcast. Se o MAC de destino de um frame é o FF:FF:FF:FF:FF:FF, ele vai ser multiplicado em todas as portas ativas, exceto aquela que originou o frame.
Na figura abaixo temos um switch que já recebeu frames de todos os hosts, portanto conhece cada endereço MAC e a que porta está associado:
A cada frame recebido o switch atualiza a tabela MAC, e cada entrada na tabela tem um tempo de validade(agging time), geralmente não mais que alguns segundos.
Assim funciona um switch de forma padrão. Basta tirar da caixa e ligá-lo que este é o comportamento default de qualquer switch, se necessidade de qualquer configuração.
É claro que em switchs gerenciáveis existem muito mais opções, como alterar o agging time ou manipular a tabela MAC, sem falar em 1001 outras funcionalidades.
- Do ponto de vista do host(Tabela ARP):
Como o host precisa preencher o MAC de destino no cabeçalho do frame ele deve conhecer o MAC do host que quer se comunicar. Para isso existe a tabela ARP. A tabela ARP é consultada em busca do MAC correspondente de acordo com o IP de destino do pacote. Se ele não existir na tabela o protocolo ARP é acionado para descobrir. O importante é que o frame seja formado corretamente e despachado pela interface. O switch que "se vire depois" :-)
Na figura abaixo temos um exemplo onde as tabelas ARP de todos os hosts estão completamente preenchidas, como se todos ele já tivessem comunicado entre si:
Neste artigo vamos esclarecer e entende os conceitos no processo de comunicação em camada 2, do ponto de vista do switch e do ponto de vista do host.
Como o switch é um elemento de camada 2, ele não depende de absolutamente nada do protocolo IP(camada3), sendo necessário apenas conhecer o MAC de cada dispositivo associado a cada porta. Para isto ele implementa o que chamamos de "Tabela MAC", ou "MAC address table".
Já o host, precisa conhecer o endereço IP do dispositivo que quer se comunicar, mas como é obrigado a colocar alguma coisa no campo "MAC de destino" do frame, ele precisa se virar e descobrir o MAC do dito cujo, para que o Switch consiga fazer seu trabalho.
Vejamos:
- Do ponto de vista do switch(Tabela MAC):
O switch é completamente ignorante em relação ao protocolo IP, portanto não há qualquer informação sobre endereços IP para o seu funcionamento padrão. Um switch aprende os endereços MAC dos dispositivos associados a cada porta e tenta encaminhar os frames da melhor maneira possível. Em resumo:
- O switch preenche a tabela MAC de acordo com os endereços de ORIGEM dos frames que RECEBE.
- O switch ENCAMINHA frames de acordo com endereços de DESTINO contidos na tabela.
- Se o endereço de DESTINO do frame não é conhecido na tabela MAC, o switch inunda todas as portas(flood) com este frame, EXCETO a porta de onde o frame veio.
- Naturalmente, switchs "obedecem" à pacotes de broadcast. Se o MAC de destino de um frame é o FF:FF:FF:FF:FF:FF, ele vai ser multiplicado em todas as portas ativas, exceto aquela que originou o frame.
Na figura abaixo temos um switch que já recebeu frames de todos os hosts, portanto conhece cada endereço MAC e a que porta está associado:
A cada frame recebido o switch atualiza a tabela MAC, e cada entrada na tabela tem um tempo de validade(agging time), geralmente não mais que alguns segundos.
Assim funciona um switch de forma padrão. Basta tirar da caixa e ligá-lo que este é o comportamento default de qualquer switch, se necessidade de qualquer configuração.
É claro que em switchs gerenciáveis existem muito mais opções, como alterar o agging time ou manipular a tabela MAC, sem falar em 1001 outras funcionalidades.
- Do ponto de vista do host(Tabela ARP):
Como o host precisa preencher o MAC de destino no cabeçalho do frame ele deve conhecer o MAC do host que quer se comunicar. Para isso existe a tabela ARP. A tabela ARP é consultada em busca do MAC correspondente de acordo com o IP de destino do pacote. Se ele não existir na tabela o protocolo ARP é acionado para descobrir. O importante é que o frame seja formado corretamente e despachado pela interface. O switch que "se vire depois" :-)
Na figura abaixo temos um exemplo onde as tabelas ARP de todos os hosts estão completamente preenchidas, como se todos ele já tivessem comunicado entre si:
quarta-feira, 7 de junho de 2017
domingo, 4 de junho de 2017
Exercício Prático ambiente Windows server.
Temos um servidor com uma impressora e duas pastas compartilhadas. Cada pasta pertence à um grupo. O grupo deve ter permissão total de acesso à sua pasta compartilhada e acesso somente leitura à pasta do outro grupo.
As pastas devem ser acessadas por mapeamento de unidade de rede no Windows 7.
Para fazer o teste de acesso com cada um dos 4 usuários será criado um mapeamento para cada login.
Como o Windows não permite fazer mais de um mapeamento usando o mesmo nome de servidor será criado um alias dele para cada usuário, como na imagem.
Crie a zona DNS corretamente com os respectivos alias.
Adicione a função servidor de Impressão no Windows server para poder usar o console de gerenciamento de impressão.
Para acessar a impressora compartilhada pelo servidor, abra o EXECUTAR no Windows 7 e acesse "\\NomeDoServidor\" e duplo clique na impressora.
Lista de comandos para abrir os consoles de gerenciamento usados no exercício:
- lusrmgr.msc (Gerenciamento de usuários e grupos locais).
- printmanagement.msc (Gerenciamento de impressão).
- compmgmt.msc (Gerenciamento do computador, acesse o SNAP-IN "Pastas compartilhadas).
- Sysdm.cpl (Propriedades do computador. Para alterar nome e grupo de trabalho).
As pastas devem ser acessadas por mapeamento de unidade de rede no Windows 7.
Para fazer o teste de acesso com cada um dos 4 usuários será criado um mapeamento para cada login.
Como o Windows não permite fazer mais de um mapeamento usando o mesmo nome de servidor será criado um alias dele para cada usuário, como na imagem.
Crie a zona DNS corretamente com os respectivos alias.
Adicione a função servidor de Impressão no Windows server para poder usar o console de gerenciamento de impressão.
Para acessar a impressora compartilhada pelo servidor, abra o EXECUTAR no Windows 7 e acesse "\\NomeDoServidor\" e duplo clique na impressora.
Lista de comandos para abrir os consoles de gerenciamento usados no exercício:
- lusrmgr.msc (Gerenciamento de usuários e grupos locais).
- printmanagement.msc (Gerenciamento de impressão).
- compmgmt.msc (Gerenciamento do computador, acesse o SNAP-IN "Pastas compartilhadas).
- Sysdm.cpl (Propriedades do computador. Para alterar nome e grupo de trabalho).
sexta-feira, 28 de outubro de 2016
Tutorial DNS - Introdução
DNS(Domain name System) é um serviço criado para resolver os nomes na Internet, "traduzi-los" para endereços IP, e vice versa. Por exemplo o endereço "www.Exemplo.com.br" deve corresponder à um determinado endereço IP. Isso facilita a vida do usuário, na verdade a Internet seria impossível sem este serviço muito simples.
Nos primórdios da Internet era muito fácil se lembrar dos endereços IP de outros servidores já que havia muito poucos hosts na rede. Conforme a rede cresceu este trabalho se tornou cada vez mais dispendioso. A solução seguinte foi criar um arquivo de texto chamado "hosts" onde era colocado todos os nomes conhecidos e os respectivos endereços IP. Este arquivo era atualizado periodicamente com um número de versão para controle. A cada acesso a aplicação poderia checar o arquivo para saber qual o endereço IP correspondente ao host. Naturalmente isto também ficou absolutamente insustentável com o crescimento da rede. Então foi criado um serviço próprio para o mapeamento dos nomes em um sistema distribuído em várias zonas e domínios diferentes, o DNS.
O arquivo hosts até hoje é usado. Na verdade ele é o primeiro a ser consultado quando digitamos um nome de domínio qualquer para acessar qualquer coisa na rede. No Windows o seu endereço é "C:\Windows\System32\Drivers\etc\hosts" e no Linux, e familiares, "/etc/hosts". Você pode abrir o arquivo e dar uma olhada. Ele quase sempre está vazio ou apenas com linhas comentadas. É possível adicionar entradas manualmente nele, para o bem ou para o mal, como descrito neste artigo aqui.
O protocolo DNS funciona mapeando zonas de cima para baixo. Cada servidor pode ser o dono, chamado servidor Autoritativo, de uma ou mais zonas. Em primeiro lugar existem os root servers, que são os servidores raiz do sistema. Ele são responsáveis pela zona primária que é referenciada com um ponto, ou melhor Root Zone. São 13 no total e cada um recebe uma letra como nome, de A até M. Eles são administrados pela IANA e distribuídos pelo globo. No site oficial é possível ver um mapa de onde eles estão localizados. Cada servidor pode ter várias cópias. No Brasil, por exemplo, temos vários exemplares do J e do L.
Você pode se perguntar o porque de ter "clones" dos root servers pelo mundo e não novos servidores até completar o alfabeto. A questão é que a cada novo servidor, seu endereço deveria ser divulgado para todos os outros no mundo. Sem falar que um único root "B", por exemplo, estando apenas em uma localidade poderia receber muito tráfego. Eles são "clonados" para manter coerência dos 13 nomes históricos e balancear o tráfego global. Seus endereços são configurados em anycast, de forma que se você precisa do root "C", chegará sempre ao mais próximo.
O trabalho dos root servers, sendo donos da zona raiz, é delegar autoridade à outros servidores das zonas do topo, chamadas Top Level Domains(TLDs). Dentro das TLDs podemos ter várias categorias como os códigos de países. Brasil com o ".br", Japão com ".jp" e assim por diante, além de outros domínios genéricos como ".com", ".gov" e ".net", etc. Repare que todo o funcionamento da Internet depende desses domínios e do trabalho dos root servers. Todo servidor DNS deve saber de cor os endereços dos root servers para iniciarem as pesquisas.
Uma questão bem atual na governança da Internet é justamente a liberação de novos TLDs. Países mais conservadores tentem à proibir domínios ".xxx" por exemplo, e outras discussões como alocação de TLDs para grandes empresas como Google e Audi. Veja na lista que várias empresas já reservaram domínios com seus nomes ou mesmo de seus produtos. A zona ".br" é de responsabilidade do Comitê gestor da Internet no Brasil e administrada pelo Nic.Br. Isto significa, basicamente, que todo domínio ".br" deve ser registrado lá.
Para ficar mais claro você pode fazer uma consulta DNS rápida para entender. Use o comando "nslookup -type=NS br.". Traduzindo você está perguntando para o seu servidor DNS quem é o NS(name server) da zona "br."(com ponto no final). Ele vai te responder com os nomes dos servidores responsáveis do Brasil.
Repare que na imagem acima, nas primeiras linhas, que quem me responde é o servidor do Google, e com o aviso "Não é resposta de autorização". Na tradução tosca do Windows, isto significa que este servidor do Google está te respondendo mas ele não é o dono da zona. Você pode perguntar diretamente para os donos e receber uma resposta autoritativa, basta adicionar o endereço de um dos servidores logo no final do comando:
Repare que quem responde é o próprio servidor dono da zona, e não há mensagem de "Não é resposta de autorização".
Um servidor DNS pode ser o autoritativo de uma determinada zona. Isto significa que o servidor responsável pela zona superior lhe delegou esta autoridade. Por exemplo a empresa ABC para registrar o domínio "ABC.com.br" precisa requerer o registro da zona com a autoridade do domínio superior e indicar quais serão os servidores autoritativos da zona "ABC.com.br". Uma vez configurado o administrador pode criar os hosts dentro desta zona no arquivo do servidor autoritativo, como "www", "blog", "mail" ou "loja". Cada registro desse vai corresponder ao endereço IP do servidor que hospeda o serviço.
Por exemplo:
mail.abc.com.br 192.0.2.25 #Servidor de email
www.abc.com.br 198.51.100.42 #Servidor web
blog.abc.com.br 203.0.113.89 #Servidor do blog
Os servidores chamados recursivos não respondem apenas por suas próprias zonas(se houver), mas fazem a pesquisa recursivamente em toda árvore de domínios até chegar na resposta e entregar ao usuário, sobre qualquer nome. Tudo que ele precisa saber são os endereços dos root servers, o resto flui naturalmente. É o caso dos servidores públicos do Google ou OpenDNS, que qualquer pessoa pode usar. A ideia é distribuir o volume das consultas nos servidores autoritativos já que em uma rede, ou região, vários usuários vão fazer as mesmas perguntas várias vezes. Um servidor recursivo armazena em cache cada resposta que obtém para entregar mais rápido quando solicitado novamente sobre os mesmos nomes e não ter de fazer o processo todo de novo. Geralmente usamos os DNS recursivos do nosso provedor de acesso ou mesmo através do nosso roteador doméstico, que pode fazer o mesmo papel.
Servidores autoritativos podem fazer o trabalho recursivo também e vice versa. Mas geralmente os servidores autoritativos na Internet são somente autoritativos. Isto é, respondem apenas o sobre os hosts e subdomínios dentro de sua zona.
Para fazer um teste rápido, pergunte ao servidor DNS de "globo.com" sobre o endereço IP de "www.facebook.com", e receberá uma resposta negativa de "Query refused". Mas se você perguntar sobre o "g1.globo.com", que é um host dentro de sua zona, responderá normalmente com máxima autoridade:
nslookup www.facebook.com ns01.globo.com
#Pergunta para ns01.globo.com quem é www.facebook.com
nslookup g1.globo.com ns01.globo.com
#Pergunta para ns01.globo.com quem é g1.globo.com
Um servidor atuando como recursivo também pode ser o autoritativo de uma ou mais zonas sem problema algum. Por fim, veja a animação abaixo de uma pesquisa solicitada por um cliente sobre o nome "www.exemplo.com.br" ao seu servidor recursivo:
Um pouquinho de história
Nos primórdios da Internet era muito fácil se lembrar dos endereços IP de outros servidores já que havia muito poucos hosts na rede. Conforme a rede cresceu este trabalho se tornou cada vez mais dispendioso. A solução seguinte foi criar um arquivo de texto chamado "hosts" onde era colocado todos os nomes conhecidos e os respectivos endereços IP. Este arquivo era atualizado periodicamente com um número de versão para controle. A cada acesso a aplicação poderia checar o arquivo para saber qual o endereço IP correspondente ao host. Naturalmente isto também ficou absolutamente insustentável com o crescimento da rede. Então foi criado um serviço próprio para o mapeamento dos nomes em um sistema distribuído em várias zonas e domínios diferentes, o DNS.
O arquivo hosts
O arquivo hosts até hoje é usado. Na verdade ele é o primeiro a ser consultado quando digitamos um nome de domínio qualquer para acessar qualquer coisa na rede. No Windows o seu endereço é "C:\Windows\System32\Drivers\etc\hosts" e no Linux, e familiares, "/etc/hosts". Você pode abrir o arquivo e dar uma olhada. Ele quase sempre está vazio ou apenas com linhas comentadas. É possível adicionar entradas manualmente nele, para o bem ou para o mal, como descrito neste artigo aqui.
Os Root Servers
O protocolo DNS funciona mapeando zonas de cima para baixo. Cada servidor pode ser o dono, chamado servidor Autoritativo, de uma ou mais zonas. Em primeiro lugar existem os root servers, que são os servidores raiz do sistema. Ele são responsáveis pela zona primária que é referenciada com um ponto, ou melhor Root Zone. São 13 no total e cada um recebe uma letra como nome, de A até M. Eles são administrados pela IANA e distribuídos pelo globo. No site oficial é possível ver um mapa de onde eles estão localizados. Cada servidor pode ter várias cópias. No Brasil, por exemplo, temos vários exemplares do J e do L.
Você pode se perguntar o porque de ter "clones" dos root servers pelo mundo e não novos servidores até completar o alfabeto. A questão é que a cada novo servidor, seu endereço deveria ser divulgado para todos os outros no mundo. Sem falar que um único root "B", por exemplo, estando apenas em uma localidade poderia receber muito tráfego. Eles são "clonados" para manter coerência dos 13 nomes históricos e balancear o tráfego global. Seus endereços são configurados em anycast, de forma que se você precisa do root "C", chegará sempre ao mais próximo.
O trabalho dos root servers, sendo donos da zona raiz, é delegar autoridade à outros servidores das zonas do topo, chamadas Top Level Domains(TLDs). Dentro das TLDs podemos ter várias categorias como os códigos de países. Brasil com o ".br", Japão com ".jp" e assim por diante, além de outros domínios genéricos como ".com", ".gov" e ".net", etc. Repare que todo o funcionamento da Internet depende desses domínios e do trabalho dos root servers. Todo servidor DNS deve saber de cor os endereços dos root servers para iniciarem as pesquisas.
Uma questão bem atual na governança da Internet é justamente a liberação de novos TLDs. Países mais conservadores tentem à proibir domínios ".xxx" por exemplo, e outras discussões como alocação de TLDs para grandes empresas como Google e Audi. Veja na lista que várias empresas já reservaram domínios com seus nomes ou mesmo de seus produtos. A zona ".br" é de responsabilidade do Comitê gestor da Internet no Brasil e administrada pelo Nic.Br. Isto significa, basicamente, que todo domínio ".br" deve ser registrado lá.
Para ficar mais claro você pode fazer uma consulta DNS rápida para entender. Use o comando "nslookup -type=NS br.". Traduzindo você está perguntando para o seu servidor DNS quem é o NS(name server) da zona "br."(com ponto no final). Ele vai te responder com os nomes dos servidores responsáveis do Brasil.
Repare que na imagem acima, nas primeiras linhas, que quem me responde é o servidor do Google, e com o aviso "Não é resposta de autorização". Na tradução tosca do Windows, isto significa que este servidor do Google está te respondendo mas ele não é o dono da zona. Você pode perguntar diretamente para os donos e receber uma resposta autoritativa, basta adicionar o endereço de um dos servidores logo no final do comando:
Repare que quem responde é o próprio servidor dono da zona, e não há mensagem de "Não é resposta de autorização".
Servidores Autoritativos
Um servidor DNS pode ser o autoritativo de uma determinada zona. Isto significa que o servidor responsável pela zona superior lhe delegou esta autoridade. Por exemplo a empresa ABC para registrar o domínio "ABC.com.br" precisa requerer o registro da zona com a autoridade do domínio superior e indicar quais serão os servidores autoritativos da zona "ABC.com.br". Uma vez configurado o administrador pode criar os hosts dentro desta zona no arquivo do servidor autoritativo, como "www", "blog", "mail" ou "loja". Cada registro desse vai corresponder ao endereço IP do servidor que hospeda o serviço.
Por exemplo:
mail.abc.com.br 192.0.2.25 #Servidor de email
www.abc.com.br 198.51.100.42 #Servidor web
blog.abc.com.br 203.0.113.89 #Servidor do blog
Servidores Recursivos
Os servidores chamados recursivos não respondem apenas por suas próprias zonas(se houver), mas fazem a pesquisa recursivamente em toda árvore de domínios até chegar na resposta e entregar ao usuário, sobre qualquer nome. Tudo que ele precisa saber são os endereços dos root servers, o resto flui naturalmente. É o caso dos servidores públicos do Google ou OpenDNS, que qualquer pessoa pode usar. A ideia é distribuir o volume das consultas nos servidores autoritativos já que em uma rede, ou região, vários usuários vão fazer as mesmas perguntas várias vezes. Um servidor recursivo armazena em cache cada resposta que obtém para entregar mais rápido quando solicitado novamente sobre os mesmos nomes e não ter de fazer o processo todo de novo. Geralmente usamos os DNS recursivos do nosso provedor de acesso ou mesmo através do nosso roteador doméstico, que pode fazer o mesmo papel.
Servidores autoritativos podem fazer o trabalho recursivo também e vice versa. Mas geralmente os servidores autoritativos na Internet são somente autoritativos. Isto é, respondem apenas o sobre os hosts e subdomínios dentro de sua zona.
Para fazer um teste rápido, pergunte ao servidor DNS de "globo.com" sobre o endereço IP de "www.facebook.com", e receberá uma resposta negativa de "Query refused". Mas se você perguntar sobre o "g1.globo.com", que é um host dentro de sua zona, responderá normalmente com máxima autoridade:
nslookup www.facebook.com ns01.globo.com
#Pergunta para ns01.globo.com quem é www.facebook.com
nslookup g1.globo.com ns01.globo.com
#Pergunta para ns01.globo.com quem é g1.globo.com
Um servidor atuando como recursivo também pode ser o autoritativo de uma ou mais zonas sem problema algum. Por fim, veja a animação abaixo de uma pesquisa solicitada por um cliente sobre o nome "www.exemplo.com.br" ao seu servidor recursivo:
Quando um cliente recebe uma resposta sobre determinado nome ele também armazena em um cache temporariamente, para que não volte a perguntar ninguém sobre os mesmos nomes por um tempo. Você pode checar o cache DNS do seu computador com o comando:
ipconfig /DisplayDNS
Ou mesmo limpá-lo:
ipconfig /FlushDNS
A resolução de nomes em geral funciona assim:
quinta-feira, 10 de abril de 2014
Parâmetros do IPtables
Os Chains (laços)
Os laços são pontos de interceptação dos pacotes, eles seguem o fluxograma abaixo:
Lembre-se que um firewall, IPTABLES ou não, pode ser implementado em um host qualquer. Geralmente implementamos um firewall mais "apurado" no gateway da rede, o roteador, para dar tratamento aos pacotes que entram e saem da nossa rede. Como tal, na maioria dos casos esses pacotes são originados dentro da nossa rede e destinados à endereços fora dela, por isso o CHAIN mais importante é o FORWARD. Os outros dois, INPUT e OUTPUT dizem respeito apenas ao próprio roteador. Portanto, nestes últimos aplicamos regras que protegem apenas o próprio.
INPUT: Pacotes que são destinados à própria máquina onde está o firewall. Não importa a interface, estes pacotes são destinados ao(s) endereço(s) IP do próprio firewall. Aqui são liberadas, por exemplo portas de acesso remoto à ele como a 22 do SSH.
OUTPUT: Pacotes que têm origem no firewall, e vão sair por alguma interface. Estes pacotes têm o endereço IP de origem do firewall. Não há muito o que tratar aqui, já que não faz muito sentido impedir o próprio firewall de iniciar conexões.
FORWARD: Pacotes que o firewall recebe para ENCAMINHAR à outra(s) rede(s). Estes pacotes chegam por uma determinada interface, e de acordo com o endereço IP de destino são encaminhados(roteados) à outra rede saindo por outra interface. Este é o principal chain de tratamento, já que aqui serão tratados os pacotes originados nos hosts da rede que vão sair para a Internet. Aqui podemos bloquear serviços e portas indesejadas como acesso à proxys externos, terminal services, sites de conteúdo ilegal, etc.
Os chains são especificados com o parâmetro -A.
Exemplo: -A OUTPUT
Parâmetros diversos:
-i : Interface que o pacote entrou. Ex: eth0 ou eth1.
-o : Interface que o pacote vai sair. Ex: eth1 ou eth0.
-s : Source. Endereço IP de origem do pacote.
-d : Destiny. Endereço IP de destino do pacote.
-p : Especifica o protocolo da camada de transporte. TCP, UDP ou ICMP.
--dport : Porta de destino do pacote. Ex: 80, 443, 21, 53, etc.
--sport : Porta de origem do pacote. Ex: 22, 3389, 23, 445, etc.
-m multiport : Especifica mais de uma porta para uma única regra.
Por exemplo: -m multiport --dport 53,22
Target ou Ação.
Usado com o parâmetro -j
Exemplo: -j ACCEPT
ACCEPT: Aceit o pacote. Ele não será analisado pelas próximas regras.
REJECT: O pacote é rejeitado e uma resposta de erro é enviada ao remetente.
DROP: O pacote é descartado e ignorado.
Política padrão
A política padrão determina o que acontece com os pacotes que não se aplicam a nenhuma regra do firewall. É especificada com o parâmetro -P <chain> <target>
Exemplo: "iptables -P INPUT DROP". Todos os pacotes do chain INPUT que não se encaixam em nenhuma regra serão ignorados e descartados.
quinta-feira, 13 de março de 2014
Comandos de Rede - Windows
Veja os principais comandos relacionados à rede para o Windows
IPCONFIG
O comando mais usual, serve para exibir as configurações de rede e algumas outras coisas
ipconfig : Exibe as configurações de rede
ipconfig /all : Exibe todas as configurações incluindo servidores DNS, endereço MAC, etc...
ipconfig /release : Libera as configurações IP recebidas por DHCP.
ipconfig /renew : Executa uma nova solicitação DHCP. Caso nenhum servidor DHCP responda um IP APIPA aleatório (169.254.0.0/16) será configurado.
ipconfig /displaydns : Exibe o cache DNS do computador.
ipconfig /flushdns : Limpa o chache DNS.
ARP
O protocolo ARP relaciona os endereços MAC com os endereços IP dos computadores da rede. Sempre que um conexão com um host é iniciada deve haver uma entrada na tabela ARP com o seu endereço MAC.
Casa não haja, o protocolo ARP é acionado para descobrir o endereço deste host. Ele envia uma mensagem em broadcast "perguntando" para todos os computadores da rede qual o endereço MAC do host que possui aquele determinado endereço IP.
arp : Exibe as opções do comando para a manipulação da tabela ARP.
arp -a : Exibe a tabela arp
PING
O ping, tecnicamente conhecido como "ICMP echo", serve para testes de conectividade. Alguns pacotes de "echo" são enviados ao host, e o remetente aguarda uma resposta. O tempo de resposta de cada uma é calculado e mostrado na tela.
ping teste.com.br : Dispara um ping no host teste.com.br
ping -n 4 teste.com.br : O parâmetro "-n 4" indica a quantidade de pacotes que serão enviados.
ping -t teste.com.br : Dispara os pings indefinidamente, até que o usuário pressione CTRL+C .
ping -6 teste.com.br : Força o uso do protocolo IPv6.
Outros
tracert teste.com.br : Rastreia a rota que os pacotes fazem até um determinado host.
Cada pacote IP possui uma variável chamada TTL ( Time to live, ou tempo de vida ). Cada roteador que o pacote atravessa o TTL é decrementado, se um roteador recebe um pacote com TTL igual à 1 o pacote é descartado e uma resposta de "tempo de vida expirou" é enviada ao remetente. O que o tarcert faz é enviar vários pacotes de ping com o TTL 1, 2, 3, e assim por diante. Assim, ele registra a mensagem de erro de cada roteador para montar o caminho.
nslookup teste.com.br : Faz uma consulta DNS sobre o host especificado usando o servidor definido na configuração de rede.
nslookup teste.com.br 8.8.8.8 : Faz uma consulta DNS sobre o host especificado ao servidor DNS 8.8.8.8
netstat : Exibe todas as conexões ativas no computador. Consulte "netstat /?" para ver mais opções.
route print : Exibe a tabela de roteamento.
nbtstat -c : Exibe o cache dos nomes NeTBios das máquinas da rede.
segunda-feira, 10 de março de 2014
Configuração do proxy transparente
Uma das dificuldades de usar um servidor proxy na rede é ter que configurar todas as máquinas para usarem o serviço. Usando o truque do proxy transparante você obriga todos a passarem pelo proxy de qualquer jeito, sem a necessidade de qualquer configuração nas máquinas cliente.
No arquivo do squid basta uma única alteração. Na linha onde é especificada a porta você adiciona o parâmetro "transparent", como abaixo:
http_port 3128 transparent
Feito isto, temos que implementar uma regra de firewall para que todo o tráfego destinado a porta 80 seja redirecionado para o squid na sua porta (3128). Os cliente vão acessar as páginas normalmente, mas na verdade o tráfego destinado a porta 80, que passaria direto, será interceptado e direcionado ao Squid.
Abra o arquivo "/etc/rc.local" e coloque mais uma regra, juntamente com as regras que servem para compartilhar a conexão:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
A interface "eth0" representa a interface de rede interna e a porta "3128" deve ser a porta que você configurou no Squid.
A desvantagem de usar este método é que apenas o tráfego da porta 80 é filtrado pelo proxy. O acesso a sites em HTTPS (porta 443), por exemplo, terá de ser tratado no firewall.
Descriminando extensões de arquivos no Squid
Você pode definir os arquivos bloqueados (ou não) no squid pela sua extensão. Por exemplo para impedir o download de arquivos executáveis, vídeos ou mp3.
Veja:
acl extensoes url_regex -i \.avi \.mp4 \.mp3 \.exe
http_access deny extensoes
O parâmetro "-i" indica que todas as variações de minúsculas e maiúsculas também são consideradas.
Como nos outros casos você pode indicar um arquivo com a lista das extensões:
acl extensoes url_regex -i "/etc/squid/extensoes.txt"
http_access deny extensoes
Naturalmente, edite o arquivo e coloque as extensões uma por linha:
nano "/etc/squid/extensoes.txt"
\.cmd
\.bat
\.wma
\.wmv
\.vbs
\.msi
\.avi
\.mp4
\.mp3
\.exe
Recarregue o Squid e faça os testes.
Arquivo do Squid - Lógica do mínimo acesso
Veja o segundo exemplo de arquivo do squid onde defino uma política de acesso onde tudo é bloqueado, exceto os sites definidos na lista branca. As redes sociais serão liberadas para acesso apenas em horário de almoço, exceto um computador específico que terá acesso à elas em qualquer horário.
# Configurações básicas
http_port 3128
visible_hostname Servidor-Debian
cache_mem 64 MB
error_directory /usr/share/squid/errors/Portuguese
# Configuração do Cache
maximum_object_size_in_memory 128 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
# Declaração das ACL's
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl RedeLocal src 10.0.66.0/24
acl Safe_ports port 80 443 563 21 20 280 488 777 901
acl PCdoChefe src 10.0.66.90
acl almoco time 11:00-14:00
acl ListaBranca dstdom_regex "/etc/squid/listabranca.txt"
acl RedesSociais dstdom_regex "/etc/squid/redessociais.txt"
# Configuração dos acessos
http_access deny !Safe_ports
http_access allow PCdoChefe RedesSociais
http_access allow RedeLocal RedesSociais almoco
http_access allow RedeLocal ListaBranca
http_access deny all
Assim que terminar você deve reiniciar o serviço do SQUID e ver se ele não apresenta nenhum erro. Caso haja algum, corrija no arquivo e reinicie novamente:
service squid restart
Repare que qualquer site que possa ser acessado deve ser especificado no arquivo "/etc/squid/listabranca.txt". É uma configuração mais segura, porém muito mais polêmica e burocrática.
Não se esqueça de editar os arquivos com os endereços dos sites liberados e o das redes sociais.
nano /etc/squid/listabranca.txt
Veja uma exemplo:
www.uol.com.br
www.live.com
www.hotmail.com
www.google.com.br
gmail.com
globo.com
veja.abril.com.br
E o arquivo com os endereços das redes sociais liberadas:
nano /etc/squid/redessociais.txt
O conteúdo pode ser como este:
www.fb.com
facebook.com
pr-br.facebook.com
plus.google.com
orkut.com
orkut.com.br
Faça os testes ! :-)
terça-feira, 4 de março de 2014
Equipamentos da rede e os protocolos
Veja a função dos principais equipamentos que compõem um rede de computadores, e os principais protocolos.
Host (Nó): Hosts são computadores, servidores, tablets, telefones ou outros dispositivos de uso final. Ele são a ponta final da rede. Geram as informações e enviam elas para outros nós.
Repetidor: Um repetidor é um equipamento que serve para regenerar um sinal em um meio de transmissão. Ao longo do percurso o sinal sofre degradação(atenuação). O repetidor recebe o sinal enfraquecido e regenera para a retransmissão. São usados para aumentar o alcance de uma rede, por exemplo os longos cabos submarinos, onde em alguns pontos do trecho são colocados repetidores ópticos para regenerar o sinal e fazer com que ele chegue na outra ponta intacto. Outro exemplo são redes wireless, onde a área de cobertura do sinal é limitada, então é comum colocarem repetidores para levar o sinal à distâncias maiores.
HUB: O hub é um aparelho concentrador, na verdade um repetidor. Todos os cabos de rede são conectados à ele, fazendo a comunicação entre os hosts possível. O hub atua como um repetidor (apenas na camada 1), já que para cada sinal recebido em uma porta, ele é apenas repetido em todas as outras. Redes conetadas por um hub funcional na topologia lógica barramento e naturalmente em half-duplex, formando um único domínio de colisão. Cada dispositivo conectado deve transmitir e receber alternadamente e evitar colisões.
Access Point: Um AP funciona exatamente como um hub, mas sem fios. O meio de transmissão usado é o ar, onde os equipamentos usam um canal de frequência eletromagnética para se comunicar.
Bridge (Ponte): Uma bridge serve para unir segmentos diferentes da mesma rede. Por exemplo, um segmento da rede conectado por cabo coaxial unido a um segmento de cabo de par trançado. A maioria dos Access points atua como uma bridge, unindo o segmento wireless à um switch, onde os computadores são conectados por cabos. Rede unidas por bridges formam um mesmo domínio de broadcast, e todos os nós podem se comunicar diretamente.
Switch: O switch faz o mesmo trabalho de um hub, porém de uma maneira mais engenhosa. O switch analisa os dados da camada 2, armazena os endereços MAC dos dispositivos conectados em cada porta e monta a tabala MAC. Os frames recebidos pelo switch são encaminhados apenas à porta fíica onde o destinatário da mensagem está conectado, de acordo com o endereço MAC. Desta forma a rede pode trabalhar em full duplex, e não há colisões.
![]() |
| Switch Netgear de 24 portas 100Mbps + 4 portas 1Gbps |
Roteador: O roteador conecta redes diferentes. Por definição um roteador deve participar de no mínimo 2 redes (domínios de broadcast diferentes), e assim encaminha pacotes de uma rede a outra. Ele analisa os endereços da camada 3(endereços IP) e determina se o pacote deve "saltar" da uma rede para outra. Como cada rede não está no mesmo domínio de broadcast, os hosts destas redes não podem enviar mensagens diretamente entre si, eles são "orientados" a usar o roteador para encaminhar os pacotes de uma rede a outra. Se o roteador recebe um pacote destinado a uma rede desconhecida por ele, o pacote pode ser encaminhado a outro roteador, e assim por diante até que atinja o host de destino.
Em geral temos roteadores em casa para se conectar à Internet. Nossos roteadores domésticos "participam" da nossa rede local e da rede do provedor de acesso. Eles utilizam da técnica chamada NAT, para que com apenas um endereço IP público, fornecido pelo provedor, vários dispositivos da nossa rede possam se conectar à grande rede. Os hosts fora da nossa rede "enxergam" apenas o endereço IP público do nosso roteador.
A Internet é conectada por muitos roteadores, cada um participa de um conjunto de redes. Eles trocam informações sobre as melhores rotas para cada destino, cabe a eles determinar o melhor caminho dependendo da rede de destino de um pacote. Eles devem evitar caminhos congestionados e direcionar o tráfego por outras rotas caso uma delas esteja "fora do ar". O roteadores unem todas as redes do mundo formando o que chamamos de Internet.
Gateway: O roteador também é chamado de gateway. Fazendo um analogia a um portão de saída, já que os pacotes de uma rede destinados a outras redes são encaminhados para fora através dele.
Modem(Modulador/Demodulador): Geralmente contratamos serviços de um provedor que chegam por meios de natureza diferentes, por isso precisamos de um equipamento para converter os sinais de meio para outro. Os modems servem para converter os sinais de um meio físico para outro e vice-versa. Por exemplo, um modem ADSL recebe e envia os sinais de uma rede Ethernet para a rede telefônica, ou um modem óptico que converte os sinais da rede Ethernet em sinais ópticos. Outro exemplo é a conexão por cabo(coaxial) usado em redes de TV à cabo.
Firewall: Em essência. um firewall é o software que monitora as conexões de rede. A função do firewall é analisar cada pacote e filtrá-los de acordo com as regras definidas, como uma espécie de alfândega. Os firewalls protegem a rede impedindo conexões suspeitas ou indesejadas. Um firewall pode ser vendido como um hardware ou apenas o software. Pode ser implementado em um computador específico (firewall local) ou pode ser configurado no Gateway da rede para filtrar tudo que entra ou sai dela.
Proxy: O proxy atua como um intermediário. Por exemplo um proxy web: Ao invés de os clientes se conectarem aos servidores web para acessar as páginas, ele solicitam para o servidor proxy, que faz o trabalha para eles.A conexão é fechada com o servidor proxy e não diretamente com os sites que queremos acessar. A vantagem de usar um proxy para acessar a Web é que ele pode fazer cache das páginas e objetos, acelerando a entrega do conteúdo, e principalmente por ele gerar relatórios de acesso. Um proxy é uma ferramenta muito útil para os administradores de rede, além de monitorar os acessos do pessoal, ele pode fazer regras para definir o que pode ou não ser acessado, por quem, quando, onde e em que horário.
Servidor: Qualquer máquina que disponibiliza um serviço para a rede pode ser chamada de servidor. Por exemplo um computador que compartilha uma impressora ou uma pasta. Numa rede complexa existem muitos serviços (DHCP, DNS, Proxy, FTP, HTTP, etc) e cada um deles é exercido por um servidor.
Alguns computadores são projetador para serem servidores dedicados e são vendidos com um hardware mais robusto, visando alta disponibilidade e alto desempenho. Da mesma maneira, sistemas operacionais otimizados para serem servidores (Windows Server ou Red Hat Enterprise Linux por exemplo) são mais estáveis e seguros, sob a premissa de que vão trabalhar 24h por dia 7dias por semana.
Protocolos
Todas as comunicações são possíveis se todos usarem de um mesmo conjunto de regras para orientá-las. Chamamos isto de protocolos. Existem protocolos para regulamentar tudo em uma rede, cada parte da comunicação, cada tecnologia, cada serviço.
Placas de rede e switchs de fabricantes diferentes se comunicam por que usam o mesmo protocolo(Ethernet). A Internet funciona sobre um protocolo de endereçamento e gestão do tráfego, o IP (Internet protocol). Equipamentos e softwares de fabricantes diferentes se comunicam por usarem os mesmo protocolos. As páginas que acessamos na Web obedecem o mesmo protocolo, HTTP. Por isso podemos acessar vários servidores Web usando navegadores de qualquer fabricante.
Exemplos:
Ethernet: É um protocolo de camada 2, que define as placas de rede Ethernet, os seus endereços MAC e a forma como elas se comunicam com os switchs, etc. Como as placas de rede e os switchs atendem ao mesmo protocolo eles conseguem se comunicar naturalmente. Os equipamentos ethernet podem aparecer em velocidades diferentes, usando cabos de par trançado (UTP) ou fibra óptica:
- 10BASE2: 10Mbps usando cabos caoxiais
- 10BASE-T: 10Mbps usando cabos de par trançado
- 100BASE-TX: 100Mbps usando cabos de par trançado
- 1000BASE-T: 1Gbps usando cabos de par trançado
802.11: É um protocolo similar ao Ethernet porém wireless. Todos os dispositivos dotados de Wi-fi obedecem a este protocolo, notebooks, tablets, placas de rede wireless, access points, etc. Existem algumas variações do protocolo de acordo com a frequência e velocidade de transmissão dos dados:
- 802.11a (ultrapassado): Trabalha a 5.8Ghz. Trabalha em velocidades de até 54Mbps.
- 802.11b (ultrapassado): Trabalha a 2.4Ghz. Trabalha em velocidades de até 11Mbps.
- 802.11g (em decadência): Trabalha a 2.4Ghz. Trabalha em velocidades de até 54Mbps.
- 802.11n (Padrão atual) : Trabalha em 5.8 ou 2.4 Ghz. Trabalha com velocidades bem maiores, variando de 72 à 300Mbps em média.
- 802.11ac (Padrão em acensão): Trabalha em 5.8 ou 2.4 Ghz e traz funcionalidades novas em relação à versão N, visando otimizar a propagação dos sinais e a velocidade.
IP (Internet protocol): É o protocolo de camada 3 que define o endereçamento dos hosts e a definição lógica de redes diferentes para serem conectadas.Os dispositivos se comunicam a partir dos seus endereços IP. Os endereços IP são análogos aos endereços de telefone celular. Atualmente estamos vivendo a transição do protocolo IP versão 4 para o IPv6.
DNS (Domain name system): Define a nomenclatura de nomes dos hosts na rede relacionando-os ao seu endereço IP. Os servidores DNS armazenam uma lista com os nomes e os endereços IP correspondentes, análogos à uma agenda ou lista telefônica. As máquinas fazem consultas aos servidores DNS para encontrar um endereço IP a partir de um nome e vice-versa. Trabalha na porta 53 UDP por padrão.
DHCP: É um protocolo de configuração automática de endereços IP. Um servidor DHCP atua na rede aguardando solicitações de outros hosts por atribuição de endereços IP. O DHCP verifica os endereços MAC dos seus clientes e envia um endereço IP para que seja usado. Ele facilita a configuração dos endereços IP na rede, evitando que seja feito manualmente.
HTTP: É o protocolo que transporta as páginas web que acessamos diariamente. Ele define os padrões para a comunicação do seu navegador com os servidores web, e como o código das páginas web (HTML) deve ser formatado. Trabalha na porta 80 TCP por padrão.
O servidor web hospeda as páginas e aguarda a solicitação dos clientes(navegador web). Assim que solicitada a página é enviada, com o seu código HTML, para o cliente. A Web é de longe o serviço mais popular na Internet.
Conceitos básicos de Redes
Neste artigo vou apresentar os conceitos básicos de comunicações e redes de computadores.
Se você fala em uma Rede, implica em comunicação. Uma comunicação é composta por 3 ingredientes:
O Emissor, o canal e o receptor:
Tipos de comunicação
Existem 3 tipos básicos de comunicação:
- Simplex: Um nó apenas transmite o sinal e outro apenas o captura.
Ex: Rede de televisão, rádio FM
- Half-Duplex: Ambos transmitem e recebem, mas não ao mesmo tempo.
Ex: Rádio Walk talk(PTT), redes em topologia barramento (Hub, wireless)
- (Full) Duplex: Ambos enviam e recebem mensagens ao mesmo tempo. Ex: Telefonia em geral.
Encaminhamento
As mensagens geradas em uma comunicação podem ser encaminhadas de 3 maneiras diferentes:
- Unicast: Uma mensagem endereçada a um nó específico, uma comunicação de 1 para 1.
- Multicast: A mensagem é endereçada a um grupo de nós.
- Broadcast: A mensagem é difundida no meio de transmissão e destinada a todos os nós, ou qualquer um que possa receber. Por exemplo o sinal de televisão aberta ou rádio FM.
Classificação
LAN: Local area Network. É uma rede local. Faz referência a uma área limitada, como uma escola, um escritório ou uma casa por exemplo. Geralmente são redes com poucos switchs ou mesmo redes sem fio que atendem um local limitado.
MAN: Metropolian area Network. É uma rede de alcance maior. Geralmente nos referimos a redes onde há várias LAN's conectadas entre si, abrangendo diferentes locais numa cidade ou região.
Por exemplo a rede de uma Universidade que conecta um campus a outro, onde em cada um há algumas LAN's. No final temos um malha de redes interconectadas formando uma MAN.
WAN: Wide área Network. Refere-se à redes conectadas por enlaces de longa distancia que
podem variar bastante, mas sempre tentando formar redes em locais geograficamente distribuídos. Enlaces a rádio entre cidades diferentes, cabos de fibra ligando cidades ou mesmo continentes, e ainda serviços de circuitos dedicados oferecidos por operadoras que conectam dois ou mais pontos entre cidades ou estados diferentes.
A Internet é o melhor exemplo de WAN. É uma rede que conecta várias redes de Data Centers, Universidades, empresas e filiais, operadoras de telecom e residências em todas as cidades e países.
Topologias
A topologia se refere a maneira física ou lógica em que os dispositivos são conectados e como as
informações trafegam. A topologia pode influenciar no desempenho, segurança, custo, manutenção, modularidade e confiabilidade de uma rede. Elas podem ser classificadas em alguns tipos, e cada um deles pode se referir a maneira física ou lógica da topologia:
◦ Ponto-a-ponto : Este á a topologia mais simples possível. Um nó ligado ao outro diretamente. Comum em redes Wireless Ad hoc, PCs ligados por cabo Cross-over e alguns enlaces WAN.
◦ Anel: Cada segmento de cabo é conectado ao próximo host até que chegue ao primeiro
novamente. O sinal é passado de host a host onde é regenerado e transmitido para o próximo por
um caminho fechado.
Exemplos: Redes Token Ring, redes FDDI.
◦ Barramento: Meio compartilhado, onde todos os dados enviados chegam a todos os hosts, cabendo ao destinatário capturar e identificar a mensagem. Diferentemente da topologia em anel, cada mensagem chega a todos os nós sempre, e não de um a um. Isto simplifica as coisas mas gera problemas de colisões, excesso de tráfego e segurança, já que todos os hosts “escutam as mensagens de todos”. Um dispositivo descontrolado poderia congestionar o meio de transmissão, ou um host pode capturar as mensagens de outros, já que a comunicação é feita em broadcast. Técnicas para tratar o tempo de uso do meio e evitar colisões devem ser aplicadas.
Exemplos: Redes ethernet com hub ou cabo coaxial, redes wireless.
◦ Estrela: Cada host é ligado por um segmento diferente até um aparelho concentrador que une os pontos. Este aparelho deve fazer a comutação e direcionar as mensagens apenas aos seus destinatários, economizando tráfego e visando segurança. Os meios de transmissão são exclusivos para cada host, e o concentrador fará comutação das mensagens entre os segmentos de cada um.
Se um segmento é rompido, todo os outros funcionam normalmente. Mas se o concentrador parar, toda a rede é interrompida.
Exemplos: Redes ethernet com switch
Domínio de colisão: É formado por vários nós conectados em um determinado meio de transmissão compartilhado, por exemplo o ar (Wi-fi) ou um cabo coaxial. Em um domínio de colisão vários hosts disputam o tempo de uso para transmitir suas mensagens. Cada um deve programar o seu tempo de "falar" ou "escutar", e verificar se o meio está ocupado antes de transmitir sua mensagem, evitando colisões.
Você pode ter uma mesma rede com vários domínios de colisão diferentes, por exemplo uma rede onde existe um Access point wireless em cada andar do prédio, cada AP, com o seu grupo de dispositivos conectados, representa um domínio de colisão. Da mesma maneira um rede ethernet conectada à um hub representa um único domínio de colisão.
Domínio de broadcast: Um domínio de broadcast é um área lógica da rede onde é possível trocar mensagens com qualquer host presente diretamente, sem a necessidade de um roteador.
Numa rede pode haver vários segmentos com características e meios de transmissão diferentes, com vários domínios de colisão, diferentes áreas conetadas à switchs diferentes, access points com dispositivos móvies, etc. O conjunto representa um domínio de broadcast, pois os nós podem trocar mensagens entre si. Estes segmentos podem ser conectados entre si formando um domínio de broadcast maior. Todos os dispositivos podem se comunicar independentemente do meio de comunicação que se encontram. Por exemplo, os computadores da rede cabeada se comunicam com dispositivos wireless de forma transparante.
Dentro de um domínio de broadcast, mensagens encaminhadas a endereços de broadcast serão encaminhadas a todos os hosts de todos os segmentos e domínios de colisão.
domingo, 16 de fevereiro de 2014
Arquivo de configuração do Squid
Artigo breve e rápido com o arquivo de configuração básico do Squid.
O arquivo do squid é o "/etc/squid/squid.conf":
nano /etc/squid/squid.conf
Baseado neste arquivo você pode modelar o seu. Vou colocá-lo completo e logo abaixo e comento alguns pontos:
# Configurações básicas
http_port 3128
visible_hostname Servidor-Debian
cache_mem 64 MB
error_directory /usr/share/squid/errors/Portuguese
# Configuração do Cache
maximum_object_size_in_memory 128 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
# Declaração das ACL's
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl RedeLocal src 10.0.66.0/24
acl Safe_ports port 80 443 563 21 20 280 488 777 901
acl Bloqueados dstdomain veja.abril.com.br
acl palavras_proibidas url_regex -i "/etc/squid/palavras_proibidas.txt"
acl blacklist dstdom_regex "/etc/squid/blacklist.txt"
# Configuração dos acessos
http_access deny !Safe_ports
http_access deny blacklist
http_access deny Bloqueados
http_access deny palavras_proibidas
http_access allow localhost
http_access allow RedeLocal
http_access deny all
Assim que terminar você deve reiniciar o serviço do SQUID e ver se ele não apresenta nenhum erro. Caso haja algum, corrija no arquivo e reinicie novamente:
service squid restart
Com base neste arquivo já podemos tirar muitas configurações.
O parâmetro "dstdomain" para as ACL's especifica dominios que são explicitamente bloqueados. Como páginas de conteúdo impróprio ou indesejado (facebook, orkut, PlayBoy, etc...)
Com o parâmetro "dstdom_regex" você pode utilizar uma lista em um arquivo externo com todos os domínios bloqueados. No exemplo eu uso um arquivo chamado "blacklist.txt" que teria no conteúdo os domínios linha por linha:
www.facebook.com
pt-br.facebook.com
fb.com
fcebook.com
facebook.com.br
www.facebook.com
www.facebook.com.br
E usando o parâmetro "url_regex" na ACL "palavras_proibidas", você pode especificar uma lista de palavras em um arquivo. As palavras devem aparecer na URL do site acessado para que sejam consideradas.
Por exemplo, se a palavra carro estiver bloqueada o site "carroonline.terra.com.br" será bloqueado, mas não um site com um texto qualquer onde existe a palavra carro.
Assinar:
Postagens (Atom)


























