770 likes | 859 Views
Serviços de Redes. Roteamento (IPTABLE) e Proxy (Squid). Nomenclatura das interfaces no Linux. Loopback: lo Ethernet: eth0, eth1, . . . Wi-Fi: wlan0, wlan1, . . . Token Ring: tr0, tr1, . . . PPP: ppp0, ppp1,. Definindo configurações. Os programas ifconfig e route vêm no pacote net-tools
E N D
Serviços de Redes Roteamento (IPTABLE) e Proxy (Squid)
Nomenclatura das interfaces no Linux • Loopback: lo • Ethernet: eth0, eth1, . . . • Wi-Fi: wlan0, wlan1, . . . • Token Ring: tr0, tr1, . . . • PPP: ppp0, ppp1, . . Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
ifconfig • ifconfig Usado para exibir e configurar uma interface de rede. • Uso: • ifconfig • ifconfig argumentos Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
route • route Usado para exibir e configurar a tabela de roteamento. • Uso: • route • route argumentos Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
ip • ip Usado para exibir e configurar uma interface de rede. • Uso: • ip argumentos Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
Configurando uma interface Wi-Fi O programa iwconfig, que vem no pacote wireless-tools, é usado para interfaces Wi-Fi, juntamente com o ifconfig ou ip. Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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) Professor Roberto Amaral – Serviços de Redes
Configurando uma interface Wi-Fi • 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-“. Professor Roberto Amaral – Serviços de Redes
Configurando uma interface Wi-Fi - 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 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
ifup e ifdown • ifup “Levanta” o dispositivo especificado ifup dispositivo • ifdown “Derruba” o dispositivo especificado ifdown dispositivo Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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} Professor Roberto Amaral – Serviços de Redes
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) Professor Roberto Amaral – Serviços de Redes
Fim Endereçamento Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
Exemplo de tabela de roteamento # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 2 lo 192.168.50.0 * 255.255.255.0 U 0 0 137 eth0 172.20.0.0 192.168.50.1 255.255.0.0 UG 1 0 7 eth0 Default 192.168.50.254 0.0.0.0 UG 1 0 36 eth0 Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
Exemplos de entrada na tabela de roteamento iprouteaddunicast 192.168.0.0/24 via 192.168.100.5 iprouteaddunicast default via 206.59.29.193 iprouteadd 10.40.0.0/16 via 10.72.75.254 iprouteaddtable local broadcast 10.10.20.255 dev eth0 proto kernelscope link src 10.10.20.67 iprouteaddtable local broadcast 192.168.43.31 dev eth4 proto kernelscope link src 192.168.43.14 Professor Roberto Amaral – Serviços de Redes
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 Professor Roberto Amaral – Serviços de Redes
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 ip route add throw 10.79.0.0/16 Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
Gateway Definição Equipamento responsável pela conversão de protocolo ou mídia ou aplicativo. Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
Rede Remota Gateway Rede Local Professor Roberto Amaral – Serviços de Redes
Compartilhamento de Conexão Compartilhamento Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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) Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes
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. Professor Roberto Amaral – Serviços de Redes