00 - soa - apostila base firewall iptable.pdf

Upload: carolina-mesquita

Post on 13-Jan-2016

16 views

Category:

Documents


2 download

TRANSCRIPT

  • FIREWALL ( IPTABLE )

  • Um dos grandes desafios de um Administrador de uma Rede garantir que os pacotes que trafegam na rede sejam realizados com segurana. Um exemplo o que consta da Figura 1.

    Figura 1 Navegando em uma rede sem segurana.

    Todo o trfego atravs de uma rede enviado no formato de pacotes, onde o incio de cada pacote informa para onde ele est indo, de onde veio e o tipo do pacote, entre outros detalhes.

    A parte inicial deste pacote chamada cabealho e o restante do pacote, contendo a informao propriamente dita, costuma ser chamado de corpo do pacote.

    Para que isto ocorra necessrio termos um filtro de pacotes que analisa o cabealho dos pacotes que passam pela mquina e decide o que fazer com o pacote inteiro.

    Em um pacote as possveis aes a serem tomadas so:

    aceitar: o pacote pode seguir at seu destino;

    bloquear: o pacote ser descartado, mas a origem do pacote ser informada de que esta ao foi tomada; e/ou

    rejeitar: o pacote ser descartado, como se a mquina jamais o tivesse recebido.

    Para garantir que os pacotes trafeguem com segurana necessrio que sejam criadas e atualizadas constantemente as defesas para reduzir a vulnerabilidade s ameaas inovadoras dos invasores, devendo escolher entre alternativas ou combinao adequada de diversas opes de solues disponveis e adotar aquelas que satisfaam os requisitos exclusivos da rede.

  • Dentre as alternativas no mercado existe o Firewall que podem ser aplicativos ou at mesmo a configurao de um hardware. Firewall Firewall (porta de fogo) o nome dado a mecanismos que atua como defesa em um computador ou em uma rede controlando o acesso ao sistema por meio de regras de filtragem de dados, isolando redes distintas e permitindo o controle do trfego entre elas, podendo tambm envolver servidores proxy, analisadores de logs. Tem como finalidade aplicar polticas de segurana a um determinado ponto de controle da rede, permitindo somente a transmisso e recepo de dados autorizados, para regular o trfego de dados entre redes distintas, impedindo a transmisso e/ou recepo de acessos malficos ou no autorizados de uma rede para outra.

    Na Figura 2 ilustrada a ideia de um Firewall.

    Figura 2 - Firewall

    Quando da tomada de deciso para a criao de um Firewall dever ser feita uma escolha acertada, para o sucesso em nvel da segurana de uma rede. A Figura 3 apresenta uma navegao realizada atravs de uma poltica de Firewall, onde os pacotes aceitos continuam com a sua navegao at o seu destino e os regeitados so descartados.

  • Figura 3 Politica de Firewall.

    Nesta deciso dever ser levando em considerao os dois tipos de Firewall: hardware ou software, para atender as seguintes exigncias:

    Ser capaz de suportar a politica de segurana definida para a rede da organizao, no impondo restries a essa politica;

    Ser flexvel, de modo a poder adaptar-se s necessidades de segurana da organizao;

    Ser capaz de controlar o acesso a servios, negando ou permitindo a sua utilizao consoante as necessidades;

    Suportar necessidade de filtragem de trfego, de modo a permitir ou restringir o acesso a servios oferecidos por servidores especficos;

    Suportar mecanismos de especificao, de filtragem simples e flexveis, com base em endereos IP, tipos de protocolos, portas e interfaces;

    Suportar mecanismos de autenticao eficazes;

    Desejavelmente suportar a funcionalidade de proxy para os principais servios (FTP, SMTP, HTTP, entre outros);

    Permitir o acesso a servidores pblicos, no comprometendo a segurana das zonas no pblicas da rede.

    Opcionalmente, ter capacidade para concentrar e filtrar acessos dial-in rede;

    Manter ficheiros de histrico (log) de trfego, acesso e tentativas de acesso, disponibilizando ferramentas para uma fcil analise desses ficheiros;

    Ser expansvel em termos de capacidade e funcionalidade; em particular, dever ter suporte por parte do fabricante, de forma a que haja acesso a patchs para resoluo de problemas e bugs;

    Ter uma interface de configurao e administrao amigvel e flexvel.

  • Funcionamento do Firewall

    Existem diversas formas de funcionamento de um firewall, variando de acordo com o sistema, aplicao ou do desenvolvedor do programa.

    Atualmente, no mercado, so mais comuns as utilizaes de um ou mais mtodos para controlar o trfego que circula na rede.

    Dentre os metos utilizados podemos citar:

    Firewall em nvel de Pacotes: Os pacotes de dados so analisados e comparados com um conjunto de filtros predefinidos pela configurao do firewall por parte do utilizador e os que estiverem de acordo com os padres pr-estabelecidos passam pelo firewall, e os que estiverem fora do padro estabeleciod sero recusados ou descartados.

    Firewall em nvel de Aplicao: A informao da Internet recolhida pelo firewall e posteriormente enviada para o sistema requisitante e vice-versa.

    Firewall em nvel de Estado: Ao contrrio da filtragem de pacotes., este mtodo inspecciona cada ligao que atravessa todos os interfaces do firewall assegurando que a mesma fidedigna.

    O kernel do GNU/Linux j vem com um filtro de pacotes bem eficiente denominado de Netfilter, tambm conhecido como iptables, que proporciona um host ou Servidor aceitar, rejeitar ou descartar pacotes, baseando-se na origem, no destino e na interface pela qual o pacote foi recebido.

    Iptables

    O iptables um aplicativo que funciona tomando como base o endereo/porta de origem/destino do pacote, dando prioridade, funcionando atravs da comparao das regras para determinar se em um pacote existe ou no a permisso para continuidade de sua navegao.

    No arquivo de iptable a sua configurao dividido em quatro categorias:

    Cadeia de entrada (input chain);

    Cadeia de sada (output chain);

    Cadeia de reenvio (forward chain;) e

    Cadeias definidas pelo usurio (user defined chain).

    Para cada uma destas cadeias mantida uma tabela de regras de firewall em que especifica os critrios de anlise de um pacote e o seu alvo (target).

  • Se o pacote no casa com o padro especificado pela regra, a regra seguinte da cadeia analisada. Se desta vez o pacote casar com o padro, a regra seguinte definida pelo alvo, que pode ser o nome de uma cadeia definida pelo usurio, ou um dos seguintes valores especiais:

    ACCEPT: Significa que o filtro de pacotes deve deixar o pacote passar.

    DENY / DROP: Tm o mesmo significado, porm, DENY utilizado pelo ipchains e DROP utilizado pelo iptables, significando que o filtro de pacotes deve impedir que o pacote siga adiante.

    REJECT: Assim como DENY, significa que o pacote no deve seguir adiante, mas uma mensagem ICMP enviada ao sistema originador do pacote, avisando-o de que o pacote foi rejeitado. Note que DENY e REJECT tm o mesmo significado para pacotes ICMP.

    MASQ / MASQUERADE: O MASQ utilizado pelo ipchains e MASQUERADE pelo iptables. Este alvo somente vlido para a cadeia de reenvio e para cadeias definidas pelo usurio, e somente pode ser utilizado quando o kernel compilador com suporte a IP Masquerade. Neste caso, pacotes sero mascarados como se eles tivessem sido originados pela mquina local.

    REDIRECT: Este alvo somente vlido para a cadeia de entrada e para cadeias definidas pelo usurio e somente pode ser utilizado se o kernel foi compilado com a opo de Transparent proxy. Com isto, pacotes sero redirecionados para um socket local, mesmo que eles tenham sido enviados para uma mquina remota. Obviamente isto s faz sentido se a mquina local utilizada como gateway para outras mquinas. Se a porta especificada para redirecionamento "0", que o valor padro, a porta de destino dos pacotes ser utilizada como porta de redirecionamento. Se for especificada uma outra porta qualquer, esta ser utilizada, independentemente daquela especificada nos pacotes.

    RETURN: Se a regra contendo o alvo RETURN foi chamada por uma outra regra, a regra seguinte da cadeia que a chamou analisada. Caso ela no tenha sido chamada por outra regra, a poltica padro da cadeia utilizada para definir o destino do pacote.

    Pr-requisitos para a utilizao do iptables

    Para a utilizao do iptables deveremos ter o pacote instalado no host ou Servidor. Deve conter tambm o mdulo ip_tables.

    O carregamento do mdulo ip_tables dever ser executado, em um terminal como root, o seguinte comando:

    modprobe ip_tables

  • Instalao do iptables

    A instalao do pacote iptables feita a partir de um terminal, no modo root, digitando o seguinte comando:

    apt-get install iptables

    Configurao das regras de iptables

    A configurao do iptables feita atravs da criao de um script, contendo as regras, que fazem com que os pacotes possam ou no ser recebidos por toda uma rede. Esta configurao deve ser feita somente em um host ou Servidor, para uma interface, ou at mesmo em uma porta de comunicao.

    Os elementos que devem ser especificados em uma regra do iptables so: Tabela, Opo, Chain, Dados e Ao. A Figura 4 paresenta uma Tabela e suas configuraes.

    Figura 4 Tabela iptable.

  • As Tabelas so:

    filter: define as principais regras de permisses de acessos (filtros) do firewall, e comporta as chains INPUT, FORWARD e OUTPUT.

    nat: responsvel pela implementao do NAT, e atravs dela podemos realizar redirecionamento de conexes e acessos compartilhados. A tabela nat comporta as chains PREROUTING e POSTROUTING.

    mangle: utilizada para aplicar regras de acesso a qualquer pacote recebido pelo firewall, podendo tambm marcar pacotes para realizao de balanceamento de carga, alm de muitas outras possibilidades. A tabela mangle nas verses de kernel mais atuais comporta todas as chains (PREROUTING, INPUT, OUTPUT, FORWARD e POSTROUTING).

    raw: usada principalmente para a configurao de isenes de monitoramento de conexo, em combinao com o NOTRACK. Ele registra no netfilter hooks com maior prioridade e assim chamado antes ip_conntrack, ou qualquer outro IP tables. As suas chains so as seguintes: PREROUTING (para pacotes que chegam atravs de qualquer interface de rede) e OUTPUT (para pacotes gerados por processos locais).

    Cada Tabela possui um conjunto de Chains, variando de acordo com a sua funcionalidade. Chains so classificadas como um conjunto de regras com objetivos semelhantes. So elas: input, forward, output, prerouting e postrouting, conforme tabela Filter com suas respectivas chais mostrada na Figura 5.

    Figura 5 Tabela Filter com as chain.

  • Detalhamento das chain:

    INPUT responsvel por definir as regras que faro a filtragem de pacotes cujo endereo de destino o firewall.

    FORWARD responsvel por comportar as regras que faro a filtragem dos pacotes que passaro pelo firewall, ou seja, que possuem como endereo de destino algum host fora da rede interna.

    OUTPUT fica responsvel por estabelecer as regras para a filtragem dos pacotes que so originados pelo prprio firewall.

    PREROUTING responsvel por definir regras especficas de roteamento antes que o pacote seja enviado para a chain INPUT ou FORWARD, podendo realizar algum redirecionamento de conexo (atravs do alvo DNAT) ou de porta (atravs do REDIRECT).

    POSTROUTING fica responsvel por regras especfica de roteamento aps o pacote ter passado pelas chains PREROUTING, INPUT ou FORWARD ou OUTPUT, podendo realizar algum tipo de filtro ou troca de endereos IPs de origem, atravs do alvo SNAT ou MASQUERADE.

    Opes:

    -P = Define uma regra padro. -A = Adiciona uma nova regra as existentes. Este tem prioridade sobre a -P. -D = Apaga uma regra. -L = Lista as regras existentes. -F = Limpa todas as regras. -I = Insere uma nova regra. -h = Exibe a ajuda. -R = Substitui uma regra. -C = Faz a checagem das regras existentes. -Z = Zera uma regra especfica. -N = Cria uma nova regra com um nome. -X = Exclui uma regra especfica pelo seu nome.

    Linha de configurao do iptables

    A configurao de cada tabela do iptables :

    iptables [-t tabela] [opo] [chain] [dados] -j [ao]

    Exemplo de configurao de uma linha da tabela iptables

    A seguir apresentado um exemplo prtico da aplicao de uma regra:

    iptables -t filter -A INPUT -d 192.168.1.1 -a ACCEPT

  • Vamos entender a regra:

    iptables: comea uma regra do iptables

    -t filter: indica a tabela (se no indicado ser automaticamente assumido a tabela filter). Neste caso estamos deixar explcito que estamos utilizando a tabela FILTER

    -A INPUT: indica a chain que ser processada, neste caso a entrada de pacotes

    -d 192.168.1.1: indica o destino do pacote, que neste caso o host 192.168.1.1

    -a ACCEPT: indica a ao que ser atribuda quando um pacote com todas as caractersticas chegar no iptables. Neste caso ACCEPT.

    Criando um script iptables

    As regras do iptables podem ser colocadas diretamente no Servidor, mas se este Servidor for reinicializado as regras sero apagadas. Para evitar este problema devemos criar um script e colocara na inicializao do Sistema, para que sempre que o Servidor for reinicializado as regras sero mantidas.

    Para criarmos um script iptables devemos abrir um terminal, no modo root, e criar um script com um editor de texto, digitando os seguintes comandos, por exemplo:

    sudo su

    cd /etc/rc.d

    nano rc.firewall

    =================== inicio do script ============================

    #!/bin/bask # Limpando politicas e regras iptables -X iptables -F # Configurando as politicas padroes iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Configurando portas de entrada iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  • # Configurando portas de saida iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT iptables -A OUTPUT -p tcp --dport 1863 -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

    ======================= fim do script ==========================

    Aps a edio, o script dever ser salvo.

    Permisso para o script iptables

    Aps a criao do arquivo necessrio atribuir as permisses de execuo no script atravs do comando chmod:

    chmod +x /etc/rc.d/rc.firewall

    Execuo do script iptables

    Aps o comando acima, pode ser executado o script digitando o seguinte comando:

    ./rc.firewall

    Execuo automtica do script iptables

    Para no ter que ficar chamando o script toda vez que inicializar o sistema, aconselhvel ativ-lo na inicializao. Para isso preciso editar o arquivo /etc/rc.d/rc.local e incluir o comando no final do arquivo.

    aconselhvel dar um reboot no Servidor para aceitar as novas regras de firewall.ou digitar o comando:

    reboot

    Teste de execuo do script iptables

    Aps o reboot, dever ser verificado se o script est sendo executado automaticamente. A exibio feita atravs de uma tela com todas as polticas e regras aplicadas. Para exibio da tela com as politicas do iptables de ser executado, em um terminal como root, o seguinte comando:

    iptables -L

  • Caso queira entender melhor sobre Firwal e iptables, fortemente recomendado a leitura do contedo constante no link:

    < http://www.vivaolinux.com.br/artigo/Desvendando-as-regras-de-Firewall-Linux-Iptables/ >

  • Referencial Bibliogrfico

    http://tecnologia.culturamix.com/tecnologias/o-que-e-firewall-e-o-que-ele-faz-pelo-computador

    http://firewall.no.sapo.pt/index.htm

    http://sabinux.blogspot.com.br/2009/10/firewall-e-iptables-conceitos.html

    http://www.dimap.ufrn.br/~aguiar/Manuais/Servidor/sec-filtro-pacotes.html

    http://johnnyroot.wordpress.com/2012/06/06/conhecendo-o-iptables-o-que-e-como-funciona-parte-1/

    http://tarcisiogambin.net/blog/como-configurar-um-iptables-simples-e-seguro-no-slackware/