Artigo Gerencia De Redes

883 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
883
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Artigo Gerencia De Redes

  1. 1. Ferramentas para Administração e Segurança de Redes de Computadores: IpTables 1 Romário Roberto de Pádua Andrade Universidade Federal do Pará - Campus Universitário de Santarém 1 randrade2006@Gmail.com Resumo O presente artigo tem como objetivo a apresentação do software IpTables, assim como conceitos básicos sobre firewall e a apresentação de comandos para a sua implementação, configuração e utilização na pratica dessa ferramenta para a gerencia e proteção de redes. Palavra chaves: IpTables, firewall, segurança e redes de computadores Introdução Com o crescimento das redes de computadores, torna-se cada vez mais necessária a interligação das redes privadas com as redes públicas. Conseqüentemente, os recursos de hardware e software das empresas ficam expostas a ameaças externas ou mesmo internas, onde falhas de segurança podem causar impactos dos mais diferentes níveis, que podem ir desde constrangimentos até perda de mercado. Em função da necessidade de proteger os dados, os recursos e os próprios computadores, surgiram ferramentas de bloqueio de acessos indesejados, denominadas Firewall. Atualmente a Linux apresenta o firewall IpTables integrado no seu kernel. O IpTables é uma solução barata rápida e de fácil configuração, sendo muito utilizada para segurança de pequenas rede de computadores, sendo que o mesmo se bem configurado pode ser aplicado em segurança de redes de grandes corporações. O artigo tem como objetivo mostrar os conceitos principais sobre o IpTables e como utilizar essa ferramenta para proteção e gerenciamento de rede. Firewall A palavra Firewall que dizer “Parede corta-fogo” e como o nome sugere é uma barreira intransponível que separa dois espaços impedindo a penetração de um lado para outro. CHESWICK, STEVEN M. BELLOVIN e RUBIN apresentam os seguintes conceito sobre firewall:“Firewall é qualquer dispositivo, software, arranjo ou equipamento que limita o acesso à rede. O Firewall é um sistema que impõe uma política de controle de acesso entre duas redes, tendo as seguintes propriedades”.
  2. 2. a) todo tráfego de dentro para fora de uma rede, e vice-versa, deve passar pelo Firewall; b) apenas tráfego autorizado, como definido pela política de segurança local, terá permissão de passar; c) o próprio Firewall é imune a penetrações. Firewall pode também ser definido como aplicativo e/ou dispositivo que tem como objetivo implementar uma política de segurança em um ponto sobre uma rede de computadores. Sua função principal é a filtragem de pacotes (quadros ou datagramas ips) aceitando ou rejeitando pacotes indesejáveis negando acesso ao servidor e/ou a maquinas de uma rede, negando acesso a serviços em portas protegidas e etc. Segundo NBSO, um firewall bem configurado e um instrumento importante para implantar a política de segurança em uma rede. Ele pode reduzir a informação disponível externamente sobre a sua rede, ou, em alguns casos, ate mesmo barrar ataques a vulnerabilidades ainda não divulgadas publicamente (e para as quais correções não estão disponíveis). Contudo, firewall são somente uma camada adicional de proteção na implementação de uma rede de computadores, não sendo recomendável que ele seja usado como a única linha de defesa em uma rede. Firewall não são infalíveis e apenas a sua simples instalação em uma rede não garante a segurança da mesma. Firewalls são apenas mais um, dentre vários mecanismos de segurança que se dever integrar em uma rede de computadores para complementar sua proteção. Tipos de Firewall Os firewalls atualmente estão divididos em duas categorias: filtro de pacotes, filtro de pacotes com base no estado da conexão e filtros de pacotes na camada de aplicação. Os firewalls com filtros de pacote atuam diretamente na analise das informações colhidas do cabeçalho (preâmbulo) de cada pacote que entra na rede. Dessa forma, levando em consideração ip de destino e origem, protocolo utilizado e a porta de comunicação, o firewall toma a decisão se o pacote é aceito ou rejeitado. Segundo (BORSCHEID), Firewall com filtro de pacotes com base no estado da conexão (stateful packet Filter) baseia suas ações utilizando dois elementos: dados contidos no cabeçalho do pacote e na tabela de estados, que armazena informações do estado de todas as conexões que estão trafegando através do Firewall e usa estas informações, em conjunto com as regras definidas pelo administrador, na hora de tomar a decisão de permitir ou não a passagem de um determinado pacote. Os firewalls com filtros de pacotes na camada de aplicação têm uma algoritmos e códigos de filtragem mais complexos. Esse tipo de firewall atua diretamente na analise dos protocolos utilizados em diversas aplicações, desse modo a filtragem é feita com base nas vulnerabilidades desses protocolos nos aplicativos.
  3. 3. Iptables O Iptables é o software que será apresentado nesse artigo, ele é um firewall que vem integrado ao kernel do Linux deste a versão 2.4, sendo este produzido pela equipe de desenvolvimento Netfilter. O iptables estar embutido no framework Netfilter e possui, além do iptables, outros módulos em seu corpo, como por exemplo, o Ip6tables. O iptables veio de modo a substituir o ipchains e ipfwadm e tem como característica fundamental manter estabilidade e uma melhor flexibilidade na implementação de regras de filtragem de pacotes do que seu antecessor ipchains. O kernel do Linux utiliza um recurso independente para monitorar e controlar todo o tipo de fluxo de dados dentro de sua estrutura operacional. A função do Kernel é de trabalhar ao lado de processos e tarefas, por esse motivo foi agregado um módulo Netfilter ao mesmo para controlar seu próprio fluxo interno (referencia). Segundo Elgio Schlemer, o iptables usa o conceito de "ganchos" do Netfilter, permitindo avaliar um datagrama em alguns pontos dentro do kernel. Desse modo pode-se aplicar as lista de regras de filtragem tanto em pacotes que chegam a maquina através da rede, quanto pacotes gerados na maquina com o destino a própria maquina. Basicamente o iptables se baseia em pares de regras e ações. As regras definem em quais pacotes atuar e as ações definem qual atitude deve ser tomada quando um pacote bater com a regra em questão. As regras e ações são armazenadas pelo iptables listas de tabelas. Sua principal característica, além de realizar suas tarefas de forma veloz, segura, eficaz e econômica, apresenta um leque de possibilidades tais como:  Implementação de filtros de pacotes;  Desenvolvimento de QOS sobre o tráfego;  suporte a Source Network Address Translation (SNAT) e DNAT;  Direcionamento de endereços e portas;  Mascaramento de tráfego;  Detecção de fragmentos;  Monitoração de tráfego;  Bloqueio de ataque de Spoofing, Syn-Flood, DOS scanners ocultos, pings da  Morte, entre muitos outros. Tabelas IPTables O iptables possui tabelas onde ficam armazenados às regras para filtragem de pacotes, assim ao grosso modo iptables é um banco de dados sobre regras de filtragem de pacotes. Das tabelas existentes no iptabes as mais importantes são as tabelas Filter, Nat e Mangle.
  4. 4. Tabela Filter A tabela filter é a tabela padrão do netfilter sendo que essa implementa regras de filtragem baseada nos pacotes. Nessa tabela estão contidas as regras que determinam se um pacote deve ser aceito ou não pelo firewall. As regras que estão inseridas nessa tabela não podem modificar/alterar as configurações dos pacotes analisados. A tabela filter apresenta os seguintes conjuntos de regras: INPUT: essas filas de regras são aplicadas a pacotes que são destinadas ao ip da maquina, sendo analisado por eventuais regras de filtragem se existirem. Para inserir uma nova regra nessa tabela usa sintaticamente o comando: iptables -t filter -A INPUT [regra] OUTPUT: essa fila regras analisa os pacotes gerados pro processos locais da maquina. Sintaticamente para inserir uma regra nesta lista usa-se o comando: iptables -t filter -A OUTPUT [regra] FORWARD: essa fila de regras analisam os pacotes que chegam à maquina mas não são destinada a ela. Sintaticamente para inserir uma regra nesta lista usa-se o comando: iptables -t filter -A FORWARD [regra] Tabela NAT A tabela NAT (Network Address Translation) possui um conjunto de regras para roteamento de pacotes que entram na interface de rede. As regras definidas na tabela NAT têm o poder de alterar as características como destino e origem de um pacote. Assim como a tabela filter, a tabela NAT possui três conjuntos de regras: PREROUTING, POSTROUTING e OUTPUT. PREROUTING: é utilizada quando há necessidade em fazer alterações em pacotes antes que os mesmos sejam roteados. Pois se um pacote precisa que um parâmetro de destino seja modificado isso tem que ser feito antes da etapa de roteamente. PREROUTING é permitido alterar apenas os campos de destino, seja número IP ou porta. A ação que realiza isto é chamada de DNAT (Destination NAT, sendo que NAT significa Network Address Translate). Além da ação DNAT, a lista PREROUTING da tabela NAT ainda aceita as ações (-j) LOG e DROP (REJECT não é aceito). Mesmo que, via de regra, pacotes deveriam ser descartados na filter, em algumas situações pode ser desejável poder bloquear antes da etapa de roteamento.Alé disso ainda existe a opção REDIRECT que tem função de redirecionar pacotes para uma porta especifica da maquina onde está o firewall. Sintaticamente para inserir uma regra nesta lista usa-se o comando. iptables -t nat -A PREROUTING -i eth0 -p tcp -s [ip destinatário] -d 172.16.0.2 --dport [porta] -j DNAT --to [ip destino]:[porta]
  5. 5. POSTROUTING: utilizado quando há necessidade de se fazer alterações em pacotes após o tratamento de roteamento. Nesta lista só é possível alterar características de origem de um pacote, seja ip ou seja porta, tambem somente o "-o interface" pode ser empregado pelo motivo do pacote está necessariamente saindo. A ação (-j) que permite alterar parâmetros de origem é SNAT, sendo que no POSTROUTING também é aceito a ação DROP e LOG. Sintaticamente para inserir uma regra nesta lista usa-se o comando. iptables -t nat -A POSTROUTING -p tcp -s [ip origem]-j SNAT –to [ip origem] OUTPUT : utilizado quando há necessidade de se fazer alterações em pacotes após o tratamento de roteamento. Para evitar que pacotes gerados localmente fossem condenados a não ter meios de alterar parâmetros de destino, o nat também atua no gancho OUTPUT. As regras do nat OUTPUT tem o mesmo propósito e a mesma sintaxe das do gancho PREROUTING, com a única diferença de operar pacotes originados por processos locais. . Sintaticamente para inserir uma regra nesta lista usa-se o comando. iptables -t nat -I OUTPUT -p tcp [ip origem]--dport [porta origem ] -j DNAT -- to : [porta destino ] TABELA MANGLE Implementa alterações especiais em pacotes em um nível mais complexo. A tabela mangle pode alterar a prioridade de entrada e saída de um pacote baseado no type of service (TOS) ao qual o pacote se destinava: PREROUTING: modifica pacotes dando-lhes um tratamento especial antes que os mesmos sejam roteados; OUTPUT: altera os pacotes gerados localmente antes que os mesmos sejam roteados. As tabelas são as mesmas que compõe o Netfilter, Filter, NAT e Mangle. Exemplos utilizando essas opções são: “iptables –t filter”; “iptables –t nat”; “iptables -t mangle”. A tabela Filter é a padrão do Iptables, se adicionarmos uma regra sem a flag –t, o mesmo aplicará situações contidas na tabela Filter a tal regra. Já no caso das tabelas NAT e Mangle, é necessário especificar sempre. Os comandos das chains são definidos por:  -A: adiciona um nova entrada ao fim da lista de regras;  –D: apaga uma regra específica da lista;  –L: exibe as regras existentes na lista;  –P: altera a política padrão das chains. Inicialmente, todas as chains estão setadas como ACCEPT, ou seja, aceitam todo e qualquer tipo de tráfego;
  6. 6.  –F: este comando remove todas as entradas adicionadas a lista de regras sem alterar a política padrão (-P);  –I: insere uma nova regra ao início da lista de regras, contrário do comando - A;  –R: substitui uma regra já adicionada por outra;  –N: este comando nos permite inserir ou criar uma nova chain na tabela específica.  –E: renomeia uma chain;  –X: apaga uma chain criada pelo administrador do Firewall. As seguintes ações pode serem configuradas:  -p: especifica o protocolo aplicado a regra. Pode ser qualquer valor numérico  Especificado no arquivo /etc/protocol ou o próprio nome do protocolo (TCP, UDP, ICMP, etc...);  –i: especifica a interface de entrada a ser utilizada. Como um Firewall possui mais de uma interface, esta regra acaba sendo muito importante para distinguir a que interface de rede o filtro deve ser aplicado.  –o: especifica a interface de saída a ser utilizada e se aplica da mesma forma que a regra –i, porém somente as regras de OUTPUT e FORWARD se aplicam as regras;  –s: especifica a origem do pacote ao qual a regra deve ser aplicada. A origem pode ser um host ou uma rede;  –d: especifica o destino do pacote ao qual a regra deve ser aplicada. Sua utilização se dá da mesma maneira que a a opção –s;  !: significa exclusão e é utilizada quando se deseja aplicar um exceção a um regra. É utilizada juntamente com as opções –s, -d, -p. –i. –o;  –j: define o alvo (target) do pacote caso o mesmo se encaixe em uma regra;  --sport: porta de origem do pacote, com está opção é possível aplicar filtros com base na porta de origem do pacote. Somente a aplicados os protocolos TCP ou UDP;  --dport: porta de destino, especifica a porta de destino do pacote e funciona da forma similar a regra –sport. Os seguintes alvos podem ser configurados:  ACCEPT: corresponde a aceitar, ou seja, permitir que a entrada e passagem do pacote em questão;
  7. 7.  DROP: corresponde a descartar um pacote que é conduzido a este alvo (Target) é descartado imediatamente. O Target DROP não informa ao dispositivo emissor do pacote o que houve;  REJECT: corresponde a rejeitar um pacote conduzido para este alvo (Target) é automaticamente descartada, a diferença do REJECT para o DROP é que o mesmo retorna uma mensagem de erro ao host emissor do pacote informando o que houve;  LOG: cria uma entrada de log no arquivo /var/log/messages sobre a utilização dos demais alvos (Targets), justamente por isso deve ser utilizado antes dos demais alvos.  RETURN: retorna o processamento do chain anterior sem processar o resto do chain atual;  QUEUE: encarrega um programa em nível de usuário de administrar o processamento de fluxo atribuído ao mesmo;  SNAT: altera o endereço de origem das máquinas clientes antes dos pacotes serem roteados;  DNAT: altera o endereço de destino das máquinas clientes;  REDIRECT: realiza o redirecionamento de portas em conjunto com a opção -- toport;  TOS: prioriza a entrada e saída de pacotes baseados em seu tipo de serviço, informação que esta no header do IPV4. (BORSCHEID 2005) Referencias BORSCHEID Régis Maciel, (2005) “Prototipo para aplicação web para gerenciamento de firewall Linux” William R. Cheswick,Steven M. Bellovin,Aviel D. Rubin (2003), “FIREWALLS E SEGURANÇA NA INTERNET: REPELINDO O HACKER ARDILOSO”, 2 edição Schlemer Elgio,(2007)” Estrutura do Iptables” http://www.vivaolinux.com.br/artigo/Estrutura-do-Iptables/ Acessado em 6 de novembro de 2009 Schlemer Elgio,(2007) ”Estrutura do IPTables 2: a tabela nat” http://www.vivaolinux.com.br/artigo/Estrutura-do-IPTables-2-a-tabela- nat/.Acessado em 6 de novembro de 2009

×