Baixe o app para aproveitar ainda mais
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.
Compartilhar