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
Download

Squid IPTable