Buscar

Redes_de_Computadores-Cap10

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

111
Segurança na Rede – Firew
all
10
Segurança na Rede 
– Firewall
Redes de computadores estão expostas a vários riscos de segurança. Pessoas ou softwares 
mal intencionados podem roubar dados sigilosos, danificar sistemas, derrubar servidores, usar 
equipamentos de uma rede para atacar outras redes, falsificar dados, impedir que um serviço 
funcione, entre vários outros tipos de crimes e ações antiéticas que podem prejudicar várias 
pessoas. 
Mesmo redes domésticas, que aparentemente não chamam a atenção de criminosos, 
devem ser protegidas, pois computadores domésticos podem ser usados por pessoas ou 
softwares mal intencionados para cometer crimes como ataques a outras redes, disseminação de 
malwares, armazenamento de imagens de pedofilia entre outras coisas.
Por esses motivos, é necessário proteger redes corporativas ou domésticas, diminuindo 
assim a chance de sucesso em tentativas de ataques. Existem várias formas de proteger com-
putadores e redes, essas formas incluem uma configuração adequada de sistemas, uso de 
ferramentas como antivírus e IDS (Intrusion Detection System - Sistema de detecção de intru-
sos) entre outras.
Segurança de Redes 
Para entender os objetivos de um firewall é necessário fazer uma introdução à segurança 
computacional, portanto alguns termos devem ser explicados: 
• Ameaça: é alguma ação que exponha uma rede ao risco, um exemplo de ameaça seria 
pesquisar quais portas de um servidor estão abertas para determinar quais ações podem 
ser feitas para atacá-lo.
• Vulnerabilidade: é um erro que pode ser usado em ataques, um exemplo de vulnerabi-
lidade de um sistema é um firewall mal configurado que permite que ataques ocorram.
• Ataque: é uma ação que viola as propriedades de segurança de um sistema, como 
exemplo pode ser usado um software que controle uma máquina remota sem o consen-
timento dos responsáveis pela máquina.
• Risco: é a chance de uma fonte de ameaça usar vulnerabilidades para realizar ações 
sobre sistemas computacionais.
Se
gu
ra
nç
a 
na
 R
ed
e 
– 
Fi
re
w
al
l
112
Como pode ser notado, para diminuir riscos de sistemas computacionais é necessário 
diminuir as vulnerabilidades, porém nem todas as vulnerabilidades podem ser eliminadas. 
Por exemplo, os protocolos TCP e IP não foram desenvolvidos para serem seguros, portanto 
todas as redes TCP/IP estão expostas às vulnerabilidades causadas pelo TCP/IP.
Levando em conta os conceitos acima, pode-se definir alguns riscos a que as redes estão 
expostas:
• Invasão: uma invasão ocorre quando entidades externas à rede acessam máquinas 
interna sem consentimento dos responsáveis pela máquina. Nesse caso, se for, por 
exemplo, com privilégios de administrador (usuário root, no caso do Linux), o ata-
cante pode usar a máquina para qualquer fim que desejar.
• IP Address Spoofing: um spoofing ocorre quando alguma entidade se faz passar por um 
IP que não é o seu verdadeiro, mas, sim de outras entidades. Ao se passar por outros 
computadores um atacante pode dar respostas falsas, obter dados sigilosos, como 
senhas, entre outras coisas.
• Packet Sniffing: ocorre quando terceiros estão escutando a comunicação de outras 
máquinas pela rede. Com isso é possível obter dados como senhas.
Uma das ferramentas possíveis para diminuir as chances de que riscos como estes se 
tornem ataques reais é o firewall.
Firewall
Um firewall é um sistema (ou grupo de sistemas) que reforçam a segurança entre uma 
rede interna segura e uma rede não confiável como a Internet. Os firewalls tendem a ser vistos 
como uma proteção entre a Internet e a rede privada. Mas em geral, um firewall deveria ser 
considerado como um meio de dividir o mundo em duas ou mais redes: uma ou mais redes 
seguras e uma ou mais redes não seguras.
Um firewall pode ser um roteador, computadores de qualquer porte ou a combinação 
destes, que determine quais informações ou serviços podem ser acessados, e quem pode usar 
a informação e os serviços de fora. Geralmente um firewall é instalado no ponto onde a rede 
interna segura e a rede externa não confiável se encontram, ponto que também é conhecido 
como ponto de estrangulamento.
É importante notar que, mesmo se o firewall tiver sido projetado para permitir que 
somente dados confiáveis passem, serviços vulneráveis sejam negados e com isso a proteção à 
rede interna contra ataques externos esteja sendo feita, um ataque recém-criado pode penetrar 
o firewall a qualquer hora. Por isso, o administrador da rede deve examinar regularmente os 
registros de eventos e alarmes gerados pelo firewall.
113
Segurança na Rede – Firew
all
Atividade
 Firewall
 Com a ajuda do professor verifique algum trecho de um arquivo 
de log de um firewall.
Tipos de Firewalls
Os firewalls podem ser divididos em duas grandes classes: filtros de pacotes e firewall 
de aplicação (servidores proxy). 
• Filtros de Pacotes: a filtragem de pacotes é um dos principais mecanismos que, 
mediante regras definidas pelo administrador em um firewall, permite ou não a 
passagem de pacotes IP em uma rede. Pode-se filtrar pacotes para impedir o acesso 
a um serviço como Telnet, um chat ou mesmo um site na Internet. 
• Servidores Proxy: permite executar a conexão ou não a serviços em uma rede de 
modo indireto, ou seja, o tráfego de rede passa pelo proxy ao invés de uma conexão 
direta entre cliente e servidor. Normalmente os proxies são utilizados como caches 
de conexão para serviços Web. Um proxy pode ser utilizado em muitos casos como 
elemento de aceleração de conexão em links lentos. 
Serviços Oferecidos pelo Firewall
As funções firewall mais essenciais no Linux são: 
• Conservação de endereço IP e encaminhamento de tráfego: muitos 
firewalls agem primeiro como roteadores, de modo que várias redes possam 
se comunicar entre si. Muitos administradores de rede somente utilizam essa 
função para ajudar a criar subredes adicionais. Assim qualquer um com apenas 
um endereço IP pode ser capaz de criar uma rede local (LAN) ou rede remota 
(WAN) com acesso total à Internet. 
• Distinção de rede: um firewall é o meio principal de criar uma borda entre a sua rede 
e quaisquer outras redes. Como ele cria uma clara distinção entre as redes, ajuda 
a administrar o tráfego. O firewall não tem que, necessariamente, ser instalado 
entre uma rede privada confiável e a Internet. Muitas vezes, o firewall é insta-
lado dentro de uma rede corporativa para diferenciar ainda mais certas áreas da 
empresa do restante da rede.
Se
gu
ra
nç
a 
na
 R
ed
e 
– 
Fi
re
w
al
l
114
• Filtragem de IP e de portas: é a capacidade de permitir ou rejeitar uma cone-
xão baseada no endereço IP e na porta. Esse tipo de filtragem é, provavelmente, 
a função mais bem entendida de um firewall. De uma forma geral, esse tipo de 
filtragem é geralmente feita por filtros de pacotes. A filtragem de pacotes pode se 
tornar bastante complexa, pois deve-se sempre considerar que o tráfego pode ser 
filtrado de acordo com a origem ou o destino do pacote. Por exemplo, um filtro 
de pacotes pode bloquear o tráfego que chega à sua rede vindo de um determi-
nado endereço IP e uma determinada porta.
• Filtragem de conteúdo: os servidores proxy são geralmente os únicos tipos de firewall 
que administram e controlam o tráfego pela inspeção de URL e conteúdo de página. 
Se configurado corretamente, um firewall baseado em proxy é capaz de identificar e 
bloquear todo o conteúdo que se considere impróprio.
• Redirecionamento de pacotes: algumas vezes, é preciso que um firewall envie o trá-
fego para outra porta ou outro servidor. Por exemplo, suponha que se tenha instalado o 
servidor proxy Squid em um servidor separado do firewall. É possível que se configure o 
firewall para encaminhar automaticamente todo o tráfego enviado às portas 80 (HTTP) 
e 443 (HTTPS) para o servidor proxy.
• Autenticação e criptografia: um firewall é capaz de autenticar usuários e criptografar 
transmissões entre ele mesmo e o firewall de uma outra rede.
• Registros complementares:um dos benefícios mais importantes (mas ignorado) 
de um firewall é que este permite examinar todos os detalhes dos pacotes de rede que 
passam por ele. Pode-se descobrir se está para sofrer (ou se já sofreu) um ataque, basta 
verificar se existem análises de portas e vários tipos de conexão ao sistema.
Netfilter e Iptables 
É comum falar que o iptables é o firewall do Linux, porém o iptables é apenas o inter-
pretador de regras do firewall, o firewall propriamente dito está implementado totalmente dentro 
do núcleo Linux, o que provê mais segurança, e se chama netfilter. O netfilter é o responsá-
vel por filtrar os pacotes da rede no núcleo Linux.
A sintaxe básica do iptables é a seguinte: 
iptables COMANDO REGRAS EXTENSÕES
Sintaxe do iptables
Sendo que os comandos mais usados são: 
• -A <CHAIN>: adiciona regras ao iptables.
• -L: lista todas as regras do iptables.
115
Segurança na Rede – Firew
all
• -P <CHAIN> <POLITICA>: define a regra que será aplicada a uma chain caso 
ela não se enquadre nas demais.
• -F [CHAIN]: remove todas as regras de uma chain , exceto a padrão.
• -N <CHAIN>: cria uma chain definida pelo usuário com o nome especificado.
• -X [CHAIN]: apaga uma chain definida pelo usuário, caso nenhuma chain seja 
especificada, apaga todas.
Uma chain pode ser definida como o fluxo dos pacotes na máquina, os padrões são:
• INPUT: pacotes que chegam para o host.
• FORWARD: pacotes que apenas passam pelo host.
• OUTPUT: pacotes que partem do host.
As regras mais comuns são: 
• -p [!]<PROTOCOLO>: define o protocolo ao qual a regra se aplica, pode ser tcp, 
udp ou icmp.
• -i [!]<INTERFACE>: define o nome da interface por onde o datagrama foi 
recebido.
• -o [!]<INTERFACE>: define o nome da interface por onde o datagrama será 
transmitido.
• -s [!]<ADDRES[/MASK]>: define a origem do pacote ao qual a regra se aplica. O 
parâmetro address pode ser um nome de host, um nome de rede ou um endereço IP 
com uma máscara de rede opcional. 
• -d [!]<ADDRES[/MASK]>: define o destino do pacote ao qual a regra se aplica. 
O endereço e a porta são definidos usando-se as mesmas regras utilizadas para definir 
esses valores para a origem do pacote.
• -j <ALVO>: define um alvo para o pacote caso ele se encaixe nessa regra. 
O símbolo “!” é usado nas regras como uma negação da expressão. 
Exemplo: 
-s 192.168.0.10/32 equivale ao endereço de origem 192.168.0.10, -s !192.168.0.10 equi-
vale a todos os endereços exceto o 192.168.0.10. 
Os alvos mais comuns são: 
• ACCEPT: permite a passagem do pacote. 
• DROP: descarta o pacote. 
• REJECT: descarta o pacote e informa à origem que o pacote foi rejeitado. 
• LOG: armazena dados sobre o pacote em um arquivo de log. 
Se
gu
ra
nç
a 
na
 R
ed
e 
– 
Fi
re
w
al
l
116
Extensões:
O utilitário iptables é extensível por meio de uma biblioteca de módulos compartilhados 
opcionais. Para fazer uso das extensões é preciso especificar o seu nome usando o parâmetro -m 
[argumento], para que o iptables carregue este módulo. 
Em alguns casos, é usado o parâmetro -p para determinar o protocolo (em certos casos 
não é necessário o parâmetro –m, pois ele é carregado automaticamente, por exemplo, quando 
se usa tcp, udp ou icmp).
• Extensões TCP: usada com -m tcp -p tcp 
• --sport [!] [port[:port]]: especifica a porta que a origem do datagrama usa. Portas 
podem ser especificadas com um conjunto, especificando-se o seu limite superior e infe-
rior separados por dois pontos (:). Por exemplo, 20:25 descreve todas as portas numeradas 
de 20 até 25, inclusive. Também é possível usar o caracter "!" para inverter a expressão.
• --dport [!] [port[:port]]: especifica a porta que o destino do datagrama usa.
• --tcp-flags [!] mask comp: especifica que essa regra somente será validada quando 
os flags do datagrama TCP coincidirem com o especificado em mask e comp. 
Mask é uma lista separada por vírgulas dos flags que devem ser examinados quando 
for feito o teste. Comp é uma lista separada por vírgulas dos flags que devem ser 
configurados. Os flags válidos são: SYN, ACK, FIN, RST, URG, PSH, ALL ou 
NONE. 
• --syn: especifica que a regra deve encontrar somente datagramas com o bit SYN ligado 
e os bits ACK e FIN desligados. Datagramas com essas opções são usados para requisitar 
início de conexão TCP.
• Extensão UDP: usada com -m udp -p udp.
• --sport[!][port[:port]]: esse parâmetro tem funcionamento idêntico ao da extensão 
TCP. 
• --dport[!][port[:port]]: esse parâmetro tem funcionamento idêntico ao da extensão 
TCP.
• Extensão MAC: usada com -m mac.
• --mac-source [!] address: especifica o endereço Ethernet do host que transmitiu o data-
grama que esta regra deve encontrar.
Usando o Iptables
Usando a sintaxe descrita é possível escrever regras como: rejeite todos os pings que 
chegarem à rede; iptables -A INPUT -p icmp -j DROP, ou então regras para bloquear todas 
as tentativas de acesso ao servidor SSH, porta 22; iptables -A INPUT -p tcp --dport 22 
-j DROP.
117
Segurança na Rede – Firew
all
Usando essas regras é possível configurar o iptables para tornar o sistema bem mais 
seguro, porém em um conjunto grande de regras alguns problemas podem acontecer, como 
regras conflitantes. Um exemplo de regras conflitantes seria:
iptables -A INPUT -p tcp --dport !22 -j DROP
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
Regras conflitantes
Nesse caso, o iptables foi configurado para aceitar apenas conexões TCP na porta 22, 
todas as outras tentativas de conexão TCP serão bloqueadas. A segunda regra diz que conexões 
TCP na porta 23 devem ser aceitas. Existe um conflito entre as duas regras, pois o desejado seria 
aceitar conexões TCP nas portas 22 e 23 e bloquear as outras.
Em situações como essa o iptables sempre irá respeitar a primeira regra que foi definida, 
pois as regras são executadas em ordem, ou seja, conexões TCP na porta 23 serão negadas. Um 
exemplo de como resolver conflitos como esse seria criar três regras no iptables, uma aceitando 
conexões TCP na porta 22, outra aceitando na 23 e em seguida uma regra bloqueando conexões 
TCP em outras portas.
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
iptables -A INPUT -p tcp -j DROP
Regras não conflitantes
Uma forma simples de evitar regras conflitantes é primeiro liberar todos os serviços de 
uma máquina, em seguida bloquear todo o resto. Por exemplo, um servidor que possui apenas 
os serviços de SSH e WEB funcionando, poderia ser configurado da seguinte maneira:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j DROP
Servidor com SSH e WEB
Se
gu
ra
nç
a 
na
 R
ed
e 
– 
Fi
re
w
al
l
118
Firewall
Para facilitar a criação das regras (principalmente para saber quando utilizamos -s ou -d 
no iptables), podemos utilizar as seguintes dicas:
Seu computador Internet
Destino Origem/Source
INPUT
Seu computador Internet
DestinoOrigem/Source
OUTPUT
No exemplo anterior, o servidor irá aceitar apenas conexões TCP nas portas 22 e 
80, e qualquer outra tentativa de conexão, em qualquer porta e por qualquer protocolo, 
não será aceita.
É importante saber quando uma máquina está sendo monitorada, a fim de prever 
e se defender de possíveis ataques. Para isso, pode-se fazer com que o iptables registre 
no messages do Linux tentativas de conexão a portas bloqueadas nos sistemas. Para isso, 
pode-se usar o seguinte comando antes de bloquear todas as portas:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
iptables -A INPUT -j LOG -log-prefix “Conexão proibida” 
iptables -P INPUT DROP
Criando logs
Ou seja, todas as conexões aceitas serão aceitas, as outras serão armazenadas em um log 
e depois bloqueadas.
119
Segurança na Rede – Firew
all
Cada comando digitado no terminal para o iptables possui validade apenas enquanto 
a máquina não for reiniciada, para tornar a configuração do iptables permanente, as regrasdevem ser salvas em um script e este deve ser executado durante o boot da máquina. Isso pode 
ser feito no arquivo /etc/rc.d/rc.local, sem que se esqueça de liberar o acesso de execução do 
script (chmod 755 nomedoscript).
Atividades
1) Usando o iptables impeça acessos pela porta 22 de uma 
máquina com um servidor SSH funcionando, em seguida, tente 
acessar o serviço e analise o que acontece.
2) Em uma máquina com um servidor WEB instalado, impeça o 
acesso à porta 80, em seguida, tente acessar o serviço usando 
o navegador.
3) Junto com o professor especifique um conjunto de políticas 
para o iptables e as torne permanentes, usando o processo 
descrito acima.
4) Você aprendeu sobre firewalls e como configurar o Iptables. 
Mas o Iptables não é a única ferramenta de firewall disponí-
vel no mercado para uso. Realize uma pesquisa e identifique 
quais os principais softwares de firewalls utilizados atualmente 
no mercado. Na sua pesquisa, informe o sistema operacional 
indicado para uso, o tipo de licença de uso (software livre ou 
proprietário) e o tipo de proteção oferecida. Você descobrirá 
que alguns softwares irão além da função de apenas bloquear 
portas de comunicação.

Continue navegando