Proxy Squid Iptable

Post on 13-Dec-2014

66 views 7 download

Transcript of Proxy Squid Iptable

Serviços de Redes

Roteamento (IPTABLES) e Proxy (Squid)

ifconfig

• ifconfig Usado para exibir e configurar uma interface de rede.

• Uso:– ifconfig– ifconfig argumentos

Exemplos do uso do ifconfig

• Ifconfig

• ifconfig eth0 down

• ifconfig eth0 192.168.0.111 netmask 255.255.0.0 broadcast 192.168.255.255 up

route

• route Usado para exibir e configurar a tabela de roteamento.

• Uso:– route– route argumentos

Exemplos do uso do route

• Route

• route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.1 dev eth0

• route add default gw 192.168.1.200

• route -n

Configurando o arquivo interfaces

• Inclua uma entrada como essa:

iface eth0 inet static

address 192.168.0.123

netmask 255.255.255.0

gateway 192.168.0.1

DNS no interfaces• Se você tiver o resolvconf instalado então

pode adicionar linhas que especifiquem informação de DNS. Por exemplo:iface eth0 inet static

address 192.168.0.123

netmask 255.255.255.0

gateway 192.168.0.1

dns-search meudominio.org

dns-nameservers 195.238.2.21 195.238.2.22

Configurando uma interface usando DHCP

• iface eth0 inet dhcp

• É necessário que um clientes DHCP esteja instalado, como:– dhcp3-client (versão 3, Internet Software

Consortium)

• As interfaces virtuais permitem configurar uma única placa Ethernet para ser uma interface para várias redes.

• Seu sistema está em uma rede 192.168.0.x/24 e você quer usar um endereço IP provido via DHCP usando a mesma placa Ethernet existente. Editando o /etc/network/interfaces :iface eth0 inet static

address 192.168.0.1

netmask 255.255.255.0

iface eth0:0 inet dhcp

Configurando Interfaces Virtuais

ifup e ifdown

• ifup “Levanta” o dispositivo especificadoifup dispositivo

• ifdown “Derruba” o dispositivo especificadoifdown dispositivo

• Na inicialização o script /etc/rcS.d/S40networking executa o comando ifup -a. Isso levanta todas as interfaces físicas listadas em entradas auto no etc/network/interfaces.

• Na maioria dos casos se deseja que pelo menos a interface de loopback lo seja levantada na inicialização.

• Assim, certifique-se de que o /etc/network/interfaces inclua as seguintes entradas.

auto loiface lo inet loopback

Configuração da Rede durante a Inicialização

Fim Endereçamento Fim Endereçamento

• O primeiro endereço em uma rede IP é o endereço da própria rede.

• O último endereço é o endereço de broadcast da rede.

• Todos os outros endereços podem ser alocados a sistemas na rede. – Desses, o primeiro ou o último endereço

normalmente é alocado para o gateway de Internet para a rede.

Fundamentos

Definições

• Para que um pacote que está em uma rede local, com um determinado endereço, possa ir para um outra rede, ele precisa ser convertido para o endereçamento externo.

• Esta troca de rede, ocorre graças a um equipamento que tem acesso as duas redes.

Gateway

Definição

Equipamento responsável pela conversão de protocolo

ou mídia ou aplicativo.

Gateway

No caso de IPTABLES ou Proxy

Equipamento responsável pela conversão de redes (endereçamento e/ou protocolo).

Exemplo

Responsável por encaminhar o pacote de uma rede interna para a externa.

Gateway

Rede Local

Rede Remota

Compartilhamento de Conexão

Compartilhamento

IPTables

Software responsável pela filtragem e encaminhamento de pacotes.

Trabalha a nível de redes, portanto consegue pegar pacotes da rede interna e encaminha para rede externa.

IPTables•Um firewall, ou filtro de pacotes, é utilizado para proteger máquinas ou rede através da filtragem dos pacotes de dados. •No Linux esse recurso é implementado diretamente no kernel e recebe, nas versões de kernel >2.4, o nome de netfilter.

•O netfilter é capaz de manipular campos dos cabeçalhos de pacotes, fazer a tradução de endereços de rede (NAT), "marcar“ pacotes e fazer o acompanhamento de conexões e filtragem. •Estes recursos faz com o que o netfilter seja um firewall capaz de reconhecer o "estado" de uma conexão.

IPTables (Tabelas)

• Tabela é o local utilizado para armazenar regras de filtragem.

• Existem três tabelas: – Filter (utilizada para aceitar ou rejeitar pacotes)– mangle (manipular alguns campos do cabeçalho IP –

TOS e TTL)– Nat (utilizada para fazer Traduções de Endereços de

Rede)

IPTables (Chains)• chain conjunto de regras aplicadas sobre os

pacotes. Existem dois tipos:

– chains do kernel • PREROUTING, INPUT, FORWARD, OUPUT e POSTROUTING

– estão ligadas a pontos especiais no caminho que os pacotes

precorrem ao entrar e sair da máquina.

– chains criadas pelo usuário.• Não estão ligadas a ponto algum, logo, é necessário que uma

chain do kernel tenha como alvo uma chain de usuário para

que os pacotes percorram essa chain.

IPTables (Chains)• PREROUTING é usada pelos pacotes que chegam à

interface de rede.

• INPUT quando o pacotes entra na máquina

• FORWARD quando pacote é enviado a outra máquina.

• OUTPUT quando o pacote está saindo da máquina.

• POSTROUTING chain consultada após a tomada de decisão de roteamento, quando os pacotes estão prestes a sair da máquina.

• A filtragem de pacotes é feita em basicamente 3 lugares: – chains INPUT e OUTPUT para pacotes com origem e destino na

máquina local– chain FORWARD para pacotes que atravessam o roteador.

IPTables (Chains)Quando um pacote "entra" numa chain, cada regra

é avaliada, de maneira seqüencial, até que o pacote

case com uma regra, ou o pacote atinja o final da

chain. Quando um pacote atinge o final de uma

chain sem que tenha casado com alguma regra, é

aplicada então a política padrão da chain. Por

padrão a política padrão da chain é "ACCEPT“, mas

isso pode ser alterado.

IPTablesCriando e Removendo Regras• A sintaxe geral para se criar ou remover uma regra é a

seguinte:

# iptables -[AID] CHAIN [N] [-t TABLE] MATCH -j TARGET

• -A é usada para se fazer o "append" de uma regra à uma

chain

• -I é usada para se inserir uma regra

• -D é usada para se deletar uma regra.

IPTablesExemplos I:

• Dropa tudo que chegue ao roteador com destino ao host 192.168.0.3:

# iptables -A FORWARD -d 192.168.0.3/32 -j DROP

• Bloqueia o acesso a porta 23 da máquina local de acessos vindos pela interface eth0:

# iptables -A INPUT -i eth0 -p tcp --dport 23 -j REJECT

IPTables

• # iptables –L Lista as regras

• # iptables –X remove regras de usuário

• #iptables - F chain -t table remove todas as regras de uma chain

IPTablesMascaramento• O tráfico destinado de sua rede privada para a Internet deve ser

manipulado para obter respostas da máquina que fez o pedido, como em uma rota invertida.

• Para fazer isto, o kernel do Linux deve modificar o endereço IP da fonte de cada pacote e retornar respostas a ele, antes que o endereço privado IP faço o pedido de resposta, que é impossível através da Internet. O Linux usa Connection Tracking (conntrack) para acompanhar que conexões pertence a que máquinas e desviar cada pacote de retorno correspondente.

• O tráfico originado em sua rede privada é assim "mascarado" como tendo originado de seu gateway.

Isto Chama-se compartilhamento de conexão.

Ativa gerencia do módulo iptable nat no kernel do Linux

IPTables

Compartilhamento com IPTables

modprobe iptable_nat

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

Habilita o iptable a realizar o roteamento NATHabilita o roteamento a realizar pelo Kernel do Linux

IPTables Compartilhamentoiptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Na tabela NAT (-t nat) adicionar a regra (-A) após o roteamento (POSTROUTING) para todos os pacotes saindo por ppp0 (-o ppp0), mascarar a conexão.

Proxy

Proxy (squid) x IPTables

Aplicação

Transporte

Inter-Rede

Interface de Rede

Intra-Rede

TCP/IP

IPTables

Squid

Proxy

• Servidor Proxy é intermediário entre a rede interna e a rede externa

• Utilizado para realizar armazenamento de dados de certos tipos de serviços.

• Um servidor proxy pode realizar vários serviços, entre ele NAT, Caching e compartilhamento de conexão.

Proxy

Proxy

• Um proxy é um aplicativo trabalhando na camada de Aplicação.

• Trabalha com protocolos TCP/IP

• No proxy são definidas regras de encaminhamento de pacotes.

• Armazena página Web e arquivos FTP temporariamente

• Quanto maior a cahce maior o desempenho

Proxy

Client Server

Internet

1º) Client pede acesso a uma Home Page

2º) Server verifica se tem a Home Page na sua Cache

3º) Se tem envia ao cliente, senão, faz NAT para Internet o pedido do Client

4º) Recebe a resposta e repassa ao Client

Proxy

Para garantir que as páginas Web não

estejam desatualizadas, os dados do cache

expiram após um determinado tempo. No

squid, esta configuração é chamada de

tempo de renovação de objeto.

ProxyUm dos benefícios dos servidores proxy é que o administrador do proxy pode acrescentar regras para filtrar conteúdo.

Proxy

Vantagens

1. Custo reduzido com largura de banda

2. Melhor desempenho da rede

3. Melhor desempenho de rede nos picos

4. Equilíbrio de carga

5. Armazenamento de pedidos abortados

6. Funciona quando a conexão com a Internet

cai

ProxyTradução de endereços de rede (NAT)

NAT permite que o endereço interno de uma empresa seja ocultado da Internet.

Squid• Proxy-cache de alta performance para clientes web.

• Mantém meta dados e especialmente objetos armazenados na RAM, cacheia buscas de DNS.

• Suporta SSL, listas de acesso complexas e logging completo.

• Squid consiste em um programa principal - squid -, um sistema de busca e resolução de nomes - dnsserver - e alguns programas adicionais para reescrever, fazer autenticação e gerenciar ferramentas de clientes.

• Podemos executar o Squid nas principais plataformas do mercado, como Linux, Unix e Windows.

SquidInstalação

• Red Hat# rpm -ivh squid.x.y.z.rpm

• Debian# apt-get install squid3

• Free BSD# cd /usr/ports/www/squid3/ # make # make all install

Squid

Localização do squid.conf

O arquivo de configuração do squid é o squid.conf,

normalmente ele se encontra em

/etc/squid/squid.conf ou em

/usr/local/squid/etc/squid.conf.

Squid

tag http_port

• Configura a porta HTTP onde o Squid ouve os clientes proxy.

• Porta padrão 3128 ou 8080

http_port 3128

Squid

tag acl

• Define a lista de controle de acesso que pode conter:– Endereço IP– Endereço URL– Endereço de rede

Squid

tag http_access

• Permite ou nega o acesso ao squid.http_access allow manager

http_access deny manager

http_access deny palavra

http_access deny block_site

http_access allow unblock_site

http_access allow mynetwork

http_access allow localhost