Serviços de Redes Roteamento (IPTABLE) e Proxy (Squid) CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Nomenclatura das interfaces no Linux • Loopback: lo • Ethernet: eth0, eth1, . . . • Wi-Fi: wlan0, wlan1, . . . • Token Ring: tr0, tr1, . . . • PPP: ppp0, ppp1, . . 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 2 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Definindo configurações • Os programas ifconfig e route vêm no pacote net-tools • O programa ip vem no pacote iproute – A partir do kernel 2.2 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 3 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 ifconfig • ifconfig Usado para exibir e configurar uma interface de rede. • Uso: – ifconfig – ifconfig argumentos 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 4 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Exemplos do uso do ifconfig • Ifconfig • ifconfig eth0 down • ifconfig eth0 up 192.168.0.111 netmask 255.255.0.0 broadcast 192.168.255.255 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 5 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 route • route Usado para exibir e configurar a tabela de roteamento. • Uso: – route – route argumentos 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 6 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 7 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 ip • ip Usado para exibir e configurar uma interface de rede. • Uso: – ip argumentos 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 8 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Exemplos do uso do route • ip link show • ip route list • ip link set eth0 down • ip addr del dev eth0 local 192.168.0.3 • ip addr add dev eth0 local 192.168.0.111/16 broadcast 192.168.255.255 • ip link set eth0 up • ip route add dev eth0 to 10.0.0.0/8 src 192.168.0.111 via 192.168.0.1 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 9 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configurando uma interface WiFi O programa iwconfig, que vem no pacote wireless-tools, é usado para interfaces Wi-Fi, juntamente com o ifconfig ou ip. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 10 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configurando uma interface com um endereço IP estático • Cenário: – uma interface Ethernet tem endereço IP fixo 192.168.0.123. – Máscara 255.255.255.0 – Seu gateway é 192.168.0.1 • Arquivo: – /etc/network/interfaces 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 11 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 12 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 13 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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) – dhcpcd (Yoichi Hariguchi e Sergei Viznyuk) – pump (Redhat) 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 14 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configurando uma interface WiFi • O pacote wireless-tools é um requisito para o funcionamento • A configuração é feita usando o programa iwconfig. • Para cada parâmetro de comando possível do iwconfig você pode incluir uma opção em /etc/network/interfaces nomeada como o parâmetro com um prefixo ”wireless-“. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 15 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configurando uma interface WiFi - exemplo • Por exemplo, para definir o ESSID de eth0 para myessid e a chave de encriptação para 123456789e antes de levantar a eth0 usando DHCP, edite o arquivo /etc/network/interfaces de forma a incluir uma entrada como esta: iface eth0 inet dhcp wireless-essid myessid wireless-key 123456789e 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 16 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configurando Múltiplas Interfaces Ethernet • Supondo um host com duas interfaces de rede. eth0 terá seu endereço IP configurado por DHCP e eth1 está conectada com um endereço IP estático 192.168.1.1. • Editando o arquivo /etc/network/interfaces : iface eth0 inet dhcp iface eth1 inet static address 192.168.1.1 netmask 255.255.255.0 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 17 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configurando Interfaces Virtuais • As interfaces virtuais permitem configurar uma única placa Ethernet para ser uma interface para várias redes. • Exemplo: seu sistema esteja em uma rede 192.168.0.x/24 e você quer usar um endereço IP público 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 network 192.168.0.0 broadcast 192.168.0.255 iface eth0:0 inet dhcp 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 18 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configuração de Rede • Uma interface física é o que temos chamado de ”a interface“, a coisa que é chamada eth0, ppp1, ou o que você tiver. • Uma interface lógica é um conjunto de valores que pode ser atribuído aos parâmetros variáveis de uma interface física. • As definições iface no arquivo /etc/network/interfaces são na verdade definições de interfaces lógicas, não de interfaces físicas. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 19 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configuração de Rede • Cenário: seu computador é um laptop que você transporta entre a casa e o trabalho. Quando você conecta o computador à rede corporativa ou à sua LAN doméstica você precisa configurar a eth0 apropriadamente. • Definiremos duas interfaces lógicas: – casa e trabalho que descrevem como a interface deve ser configurada para a rede doméstica e a rede do trabalho, respectivamente. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 20 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 interfaces - lógica iface casa inet static address 192.168.0.123 netmask 255.255.255.0 gateway 192.168.0.1 iface work inet static address 81.201.3.123 netmask 255.255.0.0 gateway 81.201.1.1 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 21 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Interfaces – lógica – levantando • Então a interface pode ser levantada para a rede doméstica especificando na linha de comando: – ifup eth0=casa • Para configurar eth0 para a rede do trabalho execute os comandos: – ifdown eth0 – ifup eth0=work 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 22 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 ifup e ifdown • ifup “Levanta” o dispositivo especificado ifup dispositivo • ifdown “Derruba” o dispositivo especificado ifdown dispositivo 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 23 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configuração da Rede durante a Inicialização • 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 lo ≠ iface lo inet loopback 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 24 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Resolução de problemas com a rede • Se você encontrar problemas então verifique a saída seguinte como primeira verificação do que está acontecendo: ≠ifconfig ≠cat /proc/pci ≠cat /proc/interrupts ≠dmesg | more 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 25 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Testes de Redes Básicos • Instale os pacotes netkit-ping, traceroute, dnsutils, ipchains (para kernel 2.2), iptables (para kernel 2.4) e net-tools e : ping www.uol.com # checa a conexão Internet traceroute www.uol.com # rastrea pacotes IP ifconfig # checa configuração do host route -n # checa configuração de roteamento dig [@servidor-dns.com] host.domínio | less # checa os registros DNS de host.domínio usando servidor-dns.com para um registro a {mx|any} 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 26 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Teste de Redes Básicos II ipchains -L -n | less # checa o filtro de pacotes (kernel 2.2) iptables -L -n | less # checa o filtro de pacotes (kernel 2.4) netstat -a # encontra todas as portas abertas netstat -l --inet # encontra as portas em escuta netstat -ln --tcp # encontra todas as portas TCP em escuta (numérico) 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 27 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Fim Endereçamento 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 28 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Fundamentos • 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 29 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Tabela de roteamento A tabela de roteamento contém a informação do kernel sobre como enviar pacotes IP aos seus destinos. A seguir está um exemplo de tabela de roteamento para um sistema Linux em uma rede local (LAN) com endereço IP 192.168.50.x/24. O sistema 192.168.50.1 (também na LAN) é um roteador para a rede corporativa 172.20.x.x/16 e o sistema 192.168.50.254 (também na LAN) é um roteador para a Internet para todos. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 30 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Exemplo de tabela de roteamento # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 192.168.50.0 172.20.0.0 Default 05/11/2015 18:22 * 255.0.0.0 U 0 0 2 lo * 255.255.255.0 U 0 0 137 eth0 192.168.50.1 255.255.0.0 UG 1 0 7 eth0 192.168.50.254 0.0.0.0 UG 1 0 36 eth0 Professor Roberto Amaral – Serviços de Redes 31 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Exemplo de tabela de roteamento • A primeira linha depois do cabeçalho diz que o tráfego destinado à rede 127.x.x.x será roteado para lo a interface de loopback. • A segunda linha diz que o tráfego destinado aos sistemas na LAN serão roteados através de eth0. • A terceira linha diz que o tráfego destinado à rede corporativa será roteado para o gateway 192.168.50.1 e também através de eth0. • A quarta linha diz que o tráfego destinado à Internet será roteado para o gateway 192.168.50.254 e também através de eth0. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 32 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Configuração de rotas • Para inserir uma rota use o comando no formato: – route add [ -net | -host ] target [ netmask Nm ] [ gw Gw ] [[ dev ] If ]. • Ex.:Inserir uma rota para uma rede: – route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.3 • Inserir uma rota para um host, utilizando uma determinada interface ponto a ponto: – route add -net 192.168.10.1 dev ppp0 • Para selecionar a rota default: – route add default gw 192.168.1.200 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 33 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Removendo rotas • Para remover rotas usamos praticamente a mesma sintaxe, mas ao invés do "add" usamos o "del". • Se quisermos adicionarmos uma rota ao subir um determinada interface, poderíamos usar a seguinte linha dentro das opções da interface: – iface eth0 inet static – ... up ip route add 10.0.0.0/24 via 200.X.X.Y 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 34 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Entradas na Tabela de Roteamento • Cada tabela de roteamento pode ter várias entradas. • Alguns tipos de rotas que podem ser adicionadas com o comando ip route, são: – unicast: Uma rota unicast é a mais comum na tabela. Isto é tipicamente um rota para uma rede de destino. – broadcast: Esta rota é usada pela camada de link de dispositivos (placas Ethernet) o qual suportam a notação de endereço broadcast. – local: O kernel irá adicionar entradas para a tabela de roteamento local quando endereços IP são adicionados para uma interface 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 35 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Exemplos de entrada na tabela de roteamento ip route add unicast 192.168.0.0/24 via 192.168.100.5 ip route add unicast default via 206.59.29.193 ip route add 10.40.0.0/16 via 10.72.75.254 ip route add table local broadcast 10.10.20.255 dev eth0 proto kernel scope link src 10.10.20.67 ip route add table local broadcast 192.168.43.31 dev eth4 proto kernel scope link src 192.168.43.14 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 36 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Entradas na Tabela de Roteamento – II • nat: Esta rota é adicionada para o kernel na tabela de roteamento local, quando o usuário tenta configurar stateless NAT • unreachable:Quando um requisição para uma decisão de roteamento retorna um destino com rota do tipo unreachable • prohibit:Análogo ao unreachable mas gera um ICMP prohibit • blackhole: Um pacote que casa com uma rota do tipo blackhole é descartado • throw: Este tipo de rota é usado, quando deseja-se que uma consulta na tabela de roteamento falhe 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 37 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Exemplos de entrada na tabela de roteamento – II ip route add nat 193.7.255.184 via 172.16.82.184 ip route add nat 10.40.0.0/16 via 172.40.0.0 ip route add unreachable 172.16.82.184 ip route add unreachable 192.168.14.0/26 ip route add prohibit 10.21.82.157 ip route add prohibit 172.28.113.0/28 ip route add blackhole 64.65.64.0/18 Professor Roberto Amaral – Serviços de Redes ip route add throw 10.79.0.0/16 05/11/2015 18:22 38 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 39 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Gateway Definição Equipamento responsável pela conversão de protocolo ou mídia ou aplicativo. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 40 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Gateway No caso de IPTABLE 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 41 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Gateway Rede Remota Rede Local 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 42 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Compartilhamento de Conexão Compartilhamento 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 43 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 44 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 45 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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) 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 46 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 47 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 IPTables (Chains) • PREROUTING chain consultada após a tomada de decisão de roteamento, quando os pacotes estão prestes a sair da máquina. • 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 48 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 49 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 IPTables Criando 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 50 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 IPTables Exemplos 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 51 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 IPTables Exmplos II: • Faz NAT para a rede interna: # iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o eth1 -j SNAT --tosource 200.X.X.36 • Utilizando proxy “transparente” # iptables -A PREROUTING -p tcp --dport 80 -s 192.168.0.0/24 -j REDIRECT -to-ports 3128 • Utilizando dois servidores em uma Intranet e queremos balancear as conexões: # iptables -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to-source 192.168.1.5,192.168.1.6 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 52 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 53 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 IPTables Mascaramento • 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 54 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 IPTables Compartilhamento com IPTables modprobe iptable_nat Ativa gerencia Habilita oo roteamento iptable do a realizar a módulo realizaro iptable roteamento pelo Kernel nat nodo NAT kernel Linuxdo Linux iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 55 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 IPTables Compartilhamento iptables -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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 56 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Proxy (squid) x IPTables TCP/IP Squid Aplicação Transporte Inter-Rede IPTables Interface de Rede Intra-Rede 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 57 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 58 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Proxy 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 59 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 60 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Proxy Internet Server Client 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 61 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 62 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Proxy Um dos benefícios dos servidores proxy é que o administrador do proxy pode acrescentar regras para filtrar conteúdo. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 63 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 64 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Proxy Tradução de endereços de rede (NAT) NAT permite que o endereço interno de uma empresa seja ocultado da Internet. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 65 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 66 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid Instalação • Red Hat # rpm -ivh squid.x.y.z.rpm • Debian # apt-get install squid • Free BSD # cd /usr/ports/www/squid25/ # make # make all install 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 67 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid Localização do squid.conf O arquivo de configuração do squid é o squid.conf, normalmente ele se encontra em /etc/squid.conf ou em /usr/local/squid/etc/squid.conf. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 68 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid tag http_port • Configura a porta HTTP onde o Squid ouve os clientes proxy. • Porta padrão 3128 ou 8080 http_port 3128 8080 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 69 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid tag cache_dir Define onde os dados do cache serão aramazenados. Padrão: Cache_dir ufs /var/spool/squid 100 16 256 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 70 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid Cache_dir ufs /var/spool/squid 100 16 256 • Ufs Sistema de arquivos UNIX para armazenamento • 100 Tamanho da cache. (em MB) • 16 Número de subdiretórios criados • 256 Número de subdiretório secundários. 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 71 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid tag acl • Define a lista de controle de acesso que pode conter: – Endereço IP – Endereço URL – Endereço de rede 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 72 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 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 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 73 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid – Editar squid.conf • cache_mem bytes quanto de memória • cache_swap_low % utilização de cache • cache_swap_high % utilização da cache • maximum_object_size 16384 KB maior tamanho do objeto em cache • maximum_object_size_in_memory 20 KB maior tamanho de objeto em memória 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 74 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid – Editar squid.conf • cache_mem bytes quanto de memória • cache_swap_low % utilização de cache • cache_swap_high % utilização da cache • maximum_object_size 16384 KB maior tamanho do objeto em cache • maximum_object_size_in_memory 20 KB maior tamanho de objeto em memória 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 75 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES – UTP – 2006 Squid – Editar squid.conf • • • • • • • • • • • • • • acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # whois acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 4662 #emule a cl Safe_ports port 4672 #emule acl Safe_ports port 4242 #emule 05/11/2015 18:22 Professor Roberto Amaral – Serviços de Redes 76 CIÊNCIA DA COMPUTAÇÃO – REDES DE COMPUTADORES 05/11/2015 18:22 – UTP Professor Roberto Amaral – Serviços de Redes – 2006 77