08/06/2011

Aplicação do Squid

Para exemplificar bem o que o Squid pode fazer, eu vou explicar uma atividade que o porfessor passou em sala de aula.

1. Criar o diretório de cachê com 4GB
2. Tamanho do cachê da memória RAM de 250MB
3. Tamanho do objeto armazenado em cachê a partir de 120KB
4. Uma ACL que proíba o site UOL.com.br , Orkut.com , MSN.com
5. Uma ACL que proíba o endereço destino : 201.38.11.2
6. Uma ACL que proíba as palavras Orkut, sexo,playboy
7. Uma ACL que libere o site sexologia.com.br
8. Uma ACL que libere a rede 192.168.4.0/26
9. Uma ACL que proíba a máquina 192.168.4.22

Resolução :
  1. Criando um diretório de cachê :
Cachê dir /spool/cachê/squid 4096 16 256
O 1° numero é o tamanho do seu cachê;
O 2° é o numero de diretórios criados;
O 3 ° é o numero de subdiretórios em cada diretório.

2. Estabelecendo o tamanho da memória RAM:

Cachê man 250 mb
3. Delimitando o tamanho máximo e mínimo dos arquivos que serão armazenados em cachê:

Minimum object size 120 kb
Maximum object size 2048 mb

4. Acl site dstdomain uol.com.br orkut.com msn.com

http_access deny site

5. Acl ip dst 201.38.11.2

http_access deny ip

6. Acl palavras url_regex orkut sexo playboy
HTTP_access deny palavras

7. Acl site2 dstdomain sexologia.com.br
http_access allow site2

8. Acl rede src 192.168.4.0/26
http_access allow rede

9. Acl maquina src 192.168.4.22/26
http_access deny maquina

Atenção: As acl's só funcionam se estiverem na ordem correta! Primeiro libera, depois bloqueia! A seguir a ordem certa:

Cachê dir /spool/cachê/squid 4096 16 256
Cachê man 250 mb
Minimum object size 120 kb
Maximum object size 2048 mb

Acl site dstdomain uol.com.br orkut.com msn.com
Acl ip dst 201.38.11.2
Acl palavras url_regex orkut sexo playboy
Acl site2 dstdomain sexologia.com.br
Acl rede src 192.168.4.0/26
Acl maquina src 192.168.4.22/26

http_access allow rede
http_access allow site2
http_access deny site
http_access deny ip
http_access deny palavras
http_access deny maquina
http_access deny all

Proxy Cache

O Proxy é um servidor que atende a requisições repassando os dados do cliente à frente. Um usuário (cliente) conecta-se a um servidor proxy, requisitando algum serviço, como um arquivo, conexão, etc.

Um servidor proxy pode, opcionalmente, alterar a requisição do cliente ou a resposta do servidor e, algumas vezes, pode disponibilizar este recurso mesmo sem se conectar ao servidor especificado. Pode também atuar como um servidor que armazena dados em forma de cache em redes de computadores. São instalados em máquinas com ligações tipicamente superiores às dos clientes e com poder de armazenamento elevado.

Esses servidores têm uma série de usos, como filtrar conteúdo, providenciar anonimato, entre outros.

Um proxy cache HTTP, permite, por exemplo. que o cliente requisite um documento na World Wide Web (www) e o proxy procura pelo documento na sua cache. Se encontrado, o documento é retornado imediatamente. Caso contrário, o proxy busca o documento no servidor remoto, entrega-o ao cliente e salva uma cópia na sua cache. Isto permite uma diminuição na latência, já que o servidor proxy, e não o servidor original, é acedido, proporcionando ainda uma redução do uso da banda.

Configurando o Squid

É a ferramenta que gerencia o proxy cache!

1 - Instale o Squid:

apt-get install squid3


2 - Vá até o diretório /etc/squid e renomeie o arquivo squid.conf para squid.conf.default

mv /etc/squid/squid.conf /etc/squid/squid.conf.default


3 - Crie um novo arquivo squid.conf zerado para começar a personaliza-lo:

nano /etc/squid/squid.conf


4 - Insera nele o seguinte:

http_port 3128

visible_hostname nomeDoServidor

acl todos src 0.0.0.0/0.0.0.0

http_acess allow todos


http_port: indica a porta do Squid que ficará disponível, no caso, o padrão é a 3128

visible_hostname: indica o nome do servidor

acl todos src 0.0.0.0/0.0.0.0: uma acl está sendo criada para dizer que todos os endereços que estiverem em uma determinada linha de endereço de IP's poderão acessar o proxy, sem limitações.

5 - Reinicie o Squid

/etc/init.d/squid restart


Pronto!

PS: Esse post só é válido para distribuições Ubuntu e Debian!

DHCP

O DHCP (Dynamic Host Configuration Protocol) é um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede.

Resumidamente, o DHCP opera da seguinte forma:

  • Um cliente envia um pacote UDP em broadcast com um pedido DHCP
  • Os servidores DHCP que capturarem este pacote irão responder (se o cliente se enquadrar numa série de critérios) com um pacote com configurações onde constará, pelo menos, um endereço IP, uma máscara de rede e outros dados opcionais winks , como o gateway, servidores de DNS, etc.

O DHCP oferece três tipos de alocação de endereços IP:

  • Atribuição manual - Onde existe uma tabela de associação entre o Endereço MAC do cliente e o endereço IP (e dados restantes) a fornecer. Esta associação é feita manualmente pelo administrador de rede; por conseguinte, apenas os clientes cujo MAC consta nesta lista poderão receber configurações desse servidor;
  • Atribuição automática - Onde o cliente obtém um endereço de um espaço de endereços possíveis, especificado pelo administrador. Geralmente não existe vínculo entre os vários MAC habilitados a esse espaço de endereços;
  • Atribuição dinâmica - O único método que dispõe a reutilização dinâmica dos endereços. O administrador disponibiliza um espaço de endereços possíveis, e cada cliente terá o software TCP/IP da sua interface de rede configurados para requisitar um endereço por DHCP assim que a máquina arranque. A alocação utiliza um mecanismo de “aluguel” do endereço, caracterizado por um tempo de vida. Após a máquina se desligar, o tempo de vida naturalmente irá expirar, e da próxima vez que o cliente se conectar, o endereço provavelmente será outro.
Configurando o DHCP

1 - Instale o pacote do dhcp3-server:
aptitude install dhcp3-server

2 - Vá até o arquivo dhcpd.conf:
/etc/dhcp3/dhcpd.conf

3 - Na tela vai aparecer o seguinte:

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.199;
option routers 192.168.1.1;
option domain-name-servers 208.67.222.222,208.67.220.220;
option broadcast-address 192.168.1.255;
}

Default - lease – time: tempo máximo padrão de cada host na rede
Max – lease – time: tempo máximo a cada vez que renova o host na rede
Authoritative: Esse servidor tem autoridade sobre os demais
Range: faixa de IP's de entrega
option routers: rota padrão do servidor DHCP
option domain-name-servers: Serviço de DNS que está sendo executado no seu computador
option broadcast-address: endereço de broadcast

4 - Reinicie o servidor:
/etc/init.d/dhcp3-server restart


Pronto!

PS: Esse post só é válido para distribuições Ubuntu e Debian!


DNS

O DNS (Domain Name System - Sistema de Nomes de Domínios) é um protocolo usado para traduzir nomes para endereços IP e endereços IP para nomes respectivos, e permitindo a localização de hosts em um domínio determinado. Num sistema livre o serviço é implementado pelo software BIND. Esse serviço geralmente se encontra localizado no servidor DNS primário.

O servidor DNS secundário é uma espécie de cópia de segurança do servidor DNS primário.

Existem 13 servidores DNS raiz no mundo todo e sem eles a Internet não funcionaria. Destes, dez estão localizados nos Estados Unidos da América, um na Ásia e dois na Europa. Para Aumentar a base instalada destes servidores, foram criadas réplicas localizadas por todo o mundo, inclusive no Brasil desde 2003.

Quando o DNS é instalado em uma máquina, precisa-se configurar a rede para ser feita a navegação e a transmissão de dados do computador com as outras redes.

Configurando o DNS

1 - Instale o bind9:
sudo apt-get install bind9

2 - Vá até o diretório /etc/bind:
cd /etc/bind

3 - Copie o arquivo db.local:
cp db.local db.(nome de sua preferência)


4 - Agora:
sudo nano
db.(nome de sua preferência)

5 - localhost deve ser substituído pelo domínio de sua preferência na parte de root.localhost
root.domínio de sua preferência

exemplo:

@ IN SOA exemplo.administrandoredes.com. root.administrandoredes.com.

Embaixo também, você vai alterar, tirar localhost e colocar o mesmo domínio que você colocou logo em cima, no caso, exemplo.administrandoredes.com. e na linha abaixo o IP da sua máquina.

6 - Edite o arquivo named.con
sudo nano named.conf

7 - Suba um diretório com o comando “cd ../” e ainda com o nano abria o arquivo hosts
sudo nano hosts

Crie uma linha com o seu ip e o nome dado ao servidor de arquivo de zona direta.

8. Antes de acabar, modifique o arquivo resolv.conf para o seu localhost:
nameserver localhost

9. Reinicie o servidor
/etc/init.d/bind9 restart

Pronto!

PS: Esse post só é válido para distribuições Ubuntu e Debian!

03/06/2011

Protocolo ARP, TCP, UDP e ICMP!

ARP (Address Resolution Protocol – Protocolo de Resolução de Endereço) é um protocolo usado para encontrar um endereço da camada de enlace a partir do endereço da camada de rede. O emissor difunde em broadcast um pacote ARP contendo o endereço IP de outro host e espera uma resposta com um endereço MAC respectivo.

Ao processo inverso dá-se o nome de RARP (Reverse ARP)

TCP


A comunicação pela internet é feita, basicamente, através de protocolos, e um dos mais importantes é o TCP. Isso porque o TCP está incluído no conjunto de protocolos que formam o TCP/IP.

Alguma características do TCP:

  • Garantia de entrega de datagramas IP;
  • Verificação da integridade dos dados transmitidos usando cálculos de soma;
  • Envio de mensagens informando se houve ou não o recebimento bem-sucedido dos dados.

O funcionamento do TCP é baseado em conexões. Para um computador cliente iniciar uma "conversa" com um servidor, é necessário enviar um sinal SYN para este último. O servidor então responde enviando um sinal SYN combinado com um sinal ACK para confirmar a conexão. O cliente responde com outro sinal ACK, fazendo com que a conexão esteja estabelecida e pronta para a troca de dados. Esse processo é conhecimento como three-way handshake.



Justificar


UDP

Ao contrário do TCP, o UDP (User Datagram Protocol) não é baseado em conexões. Ele é mais simples e também menos confiável. Como conseqüência, não há procedimentos de verificação no envio e recebimento de dados e se algum pacote não for recebido, o computador de destino não faz uma nova solicitação, como acontece com o TCP. Tudo isso faz do UDP um pouco mais rápido, porém inutilizável em certas aplicações.


ICMP

ICMP (Internet Control Message Protocol) é um protocolo integrante do Protocolo IP e é utilizado para fornecer relatórios de erros à fonte original. Qualquer computador que utilize IP precisa aceitar as mensagens ICMP e alterar o seu comportamento de acordo com o erro relatado. Os gateways devem estar programados para enviar mensagens ICMP quando receberem datagramas que provoquem algum erro.

Ferramentas comumente usadas nesse protocolo são: Ping e Traceroute.