Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Mão na Massa LDAP - 1 Profissional por Máquina
Configure um serviço de Diretórios baseado no servidor OpenLDAP!
Dia 6 de Dezembro - São Paulo
Saiba mais


 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Você está aqui: Home  → Arquivo Dicas-L

 

Mão na Massa Nagios

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Publicar em del.icio.us

Implemente e Configure o seu Linux com IPTABLES

Colaboração: William da Rocha Lima

Data de Publicação: 05 de Julho de 2003

Revisão 1.2 - 23/06/2003

Nos sabemos que nos dias de hoje é essencial o firewall, em servidores corporativos como servidores de web, e-mail e gateways, devido a demanda de hackers e lammers. Mas sabemos que assim mesmo não basta montar um firewall e por em mente que nunca vai ser invadido, lembra-se de que é primordial verificar os Updates, Advisores, Bug e falhas de sistema. Tenha em mente além de configurar um sistema de firewall, também administratar por Logs e IDS, e que tenha administratar os Logs para verificar possíveis erros e de uma forma fácil e ágil, e IDS para verificar a Dequitação de Intrusos. Quando falamos em sistemas operacional linux como firewall você encontra ferramentas capazes e eficaz para efetuar esta função. E o melhor de tudo como que o Linux é free,você pode pegar o linux na empresa de seu amigo e instalar na sua empresa sem problemas.

Softwares de Firewall para o Linux

O linux por ser um software livre, onde uma comunidade de desenvolvedores contribuem quase que diariamente para seu desenvolvimento e melhorias. Quando se fala em desenvolvimento e melhorias do Kernel se tem um preocupação com firewalls e segurança.

Conheça os Firewalls conforme a versão do kernel

- Ipfwadm - O IP Firewall Administration, ou simplesmente ipfwadmin foi a ferramenta padrão para construção de regras de firewall, para o Kernel anterior à versão 2.2.0. Dizem que o Ipfwadm era extremamente complexo.

- Ipchains - O ipchains foi a solução, ou melhor, a atualização, feita para o kernel 2.2 do ipfwadm. A idéia do ipchains foi ter o poder do ipfwadm, mas com uma simplicidade e facilidade no que diz respeito à criação de regras. Além de prover sua facilidades, é criar uma compatibilidade com o ipfwadm através do utilitário ipfwadm-wrapper.

- Iptables e o Netfilter - A nova geração de ferramentas de firewall para o Kernel 2.4 do Linux. Além de possuir as facilidade do ipchains, e implementar a facilidade do NAT e filtragem de pacotes mais flexíveis que o IPchains. Para saber mais informações do Iptables acessem http://www.netfilter.org/

O que precisamos saber?

Na configuração do Firewall com o iptables, é preciso saber quais são as regras a serem utilizadas para rodar o Firewall:

Regras do Firewall

  • INPUT: È utilizada quando o destino final é a própria máquina firewall.

  • OUTPUT: Qualquer pacote gerado pela máquina firewall e que deva sair para a rede será tratado pela regra OUTPUT.

  • FORWARD: Qualquer pacote que atravessa o firewall, de uma máquina e direcionado à outra, será tratado pela chain FORWARD.

    Basicamente o IPTABLES tem as seguintes políticas:

  • DROP - Nega pacote e não manda um pacote de volta para o emitente.

  • ACCEPT - Aceita o pacote

  • REJECT - Nega pacote e manda um pacote de volta do tipo host-unreachable (Host Inalcançável)

    ==Comandos Principais do IPtables==

    - -A - Este comando acrescenta uma regra às existentes no sistema, ou seja, permite atualizar regras já existentes na estrutura do firewall.

    - -I - Este comando insere uma nova regra dentro das existentes no firewall.

    - -D - Este comando exclui uma regra específica no firewall.

    - -P - Este comando define a regra padrão do firewall.

    - -L - Este comando lista as regras existentes no firewall.

    - -F - Este comando ZERA todas as regras criadas no Firewall (o chamado flush).

    - -h - Este comando mostrará o help, ajuda de comando.

    - -R - Este comando substitui um regra no firewall.

    - -C - Este comando basicamente checa as regras.

    - -Z - Este comando zera uma regra específica.

    - -N - Este comando cria uma nova regra com um nome.

    - -X - Este comando exclui uma regra específica por seu nome.

Os parâmetros padrão do iptables são os seguintes:

- -p! (protocolo) - define qual o protocolo TCP/IP deverá ser tratado. São eles: TCP, UDP e ICMP

- -s! (origem)/ -d! (destino) - Define qual o endereço de origem (-S) e de destino (-D) que a regra atuará. Este comando possui dois argumentos: endereço/máscara e porta. Ex.: -S 10.0.0.1/24 80,.

- -i! (interface) - define o nome da interface de rede onde trafegará os pacotes de entrada e saída do firewall. Muito utilizado em mascaramento e técnicas de NAT. Exemplo: -W eth1.

- -j! (ir para) - Serve para redirecionar uma ação desde que as regras sejam similares.

- -f!(fragmento) - Trata datagrama fragmentados.

Os comandos e os parâmetros são exatamente iguais aos do ipchains, sem tirar nem pôr.

Extensões

Novidade do iptables que facilita as regras.

  -sport[!] [port:port] -dport[!] [port:port]

Normalmente estas extensões são utilizadas com o comando -m do iptables. Trata-se de um direcionamento de porta(s) origem (-sport), para porta(s) destino (-dport). Pode-se inclusive definir um número padrão de portas para o acesso (port:port). Este comando pode ser utilizado tanto para portas TCP ou UDP.

  -mac-source[!] endereço

especifica qual a placa de rede, através de seu endereço MAC, que irá transmitir pacotes através do firewall, limitado pela política do mesmo.

  -icmp-type[1] tipo 

Especifica quais os tipos de pacotes ICMP pode passar ou não pelo firewall, São eles:

  Mensagem Tipo Código 
  Echo-request 8 0 
  Echo-reply 3 0 
  Source-quench 4 0 
  Time-exceed 11 0 
  Destination-unreachable 3 0 
  Network-unreachable 3 0 
  Host-unreachable 3 1 
  Protocol-unreachable 3 2 
  Port-unreachable 3 3 

Com isto podemos bloquear alguns ataques do tipo ping flood, bloquear ping e etc

[!] -- syn - especifica o uso dos bits ACK e FIN em requisições SYN TCP.

Especificamente, a opção -m state' aceita uma opção adicional--state', que é uma lista de estados de ativação separados por vírgula. (a flag '!' não indica a ativação desses estados). Esses estados são:

NEW Um pacote que cria uma nova conexão.

ESTABLISHED Um pacote que pertence a uma conexão existente (isto é, um pacote de resposta).

RELATED Um pacote que está relacionado com (mas não faz parte de) uma conexão existente, como um ICMP error, ou (com o módulo FTP inserido),um pacote que estabelecido por uma conexão de dados ftp.

INVALID Um pacote que não poderia ser identificado por alguma razão: isto inclui execução fora da memória e erros de ICMP que não correspondam a nenhuma conexão existente. Geralmente estes pacotes devem ser barrados (drop).

Exemplos do Firewall

  #iptables -A INPUT -p icmp -j DROP

Esta regra nega todos os pacotes ICMP vindos do servidor, em que se encontra o firewall.

  #iptables -D INPUT -p icmp -j DROP

Esta regra exclui a regra criar acima.

  #iptables -A INPUT -s 192.168.1.0/24 -j DROP

Esta regra acima faz com que todos os pacotes vindo de qualquer endereço da classe de ip 192.168.1.1 á 192.168.1.255 nega os pacotes.

  #iptables -A OUTPUT -p icmp -d ! 192.168.1.0/24 -j ACCEPT

Esta regra acima faz com que todos os pacotes vindo de qualquer endereço da classe de ip 192.168.1.1 á 192.168.1.255 aceita os pacotes.

  #echo 1 > /proc/sys/net/ipv4/ip_forward

Habilitando o recurso de IP forwarding

Configurando o Firewall contra ataque

Proteção contra Syn-floods

  # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

Port scanners ocultos

  # iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 
  1/s -j ACCEPT

Ping da morte

  # iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j 
  ACCEPT

Proteção Contra IP Spoofing

  # iptables -A INPUT -s 10.0.0.0/8 -i Interface da NET -j DROP
  # iptables -A INPUT -s 172.16.0.0/16 -i Interface da NET -j DROP
  # iptables -A INPUT -s 192.168.0.0/24 -i Interface da NET -j DROP

Obs.: Interface da NET pode ser ppp0, ethX e etc.

Log a portas proibidas e alguns backdoors

Porta FTP

  # iptables -A INPUT -p tcp --dport 21 -j LOG --log-prefix "Serviço: FTP"

Porta Wincrash

  # iptables -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "Serviço: Wincrash"

Portas BackOrifice

  # iptables -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "Serviço: BackOrifice"
  # iptables -A INPUT -p tcp --dport 123456 -j LOG --log-prefix "Serviço: BackOrifice"

Redirecionamento de Portas (Usado em DMZ)

Redirecionar Porta SMTP

  # iptables -t nat -A PREROUTING -i ethx -p tcp --dport 25 -j DNAT --to 192.168.1.1

Redirecionar Porta POP

  # iptables -t nat -A PREROUTING -i ethx -p tcp --dport 110 -j DNAT --to 192.168.1.1

OBS.:Sendo que ethx é sua interface de entrada da WAN.

Bloqueando Kazaa Lite

Para ativar o módulo String match support (EXPERIMENTAL) tem que aplicar o patch e logo depois compilar o kernel.

  # iptables -m string --string "X-Kazaa-Username:" -j DROP
  # iptables -m string --string "X-Kazaa-Network:" -j DROP
  # iptables -m string --string "X-Kazaa-IP:" -j DROP
  # iptables -m string --string "X-Kazaa-SupernodeIP:" -j DROP

Bloqueando cmd.exe

Neste caso você tenha atrás do seu firewall linux um servidor de web IIS da microsoft, e deseja evitar que worms com código arbitrários que usam o comando cmd.exe:

Bloqueando em Silêncio

  # iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe"

Bloqueando e reportando por uma hora

  # iptables -I INPUT -j LOG -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe" -m limit --limit 1/hour
  Scripts Cases
  
   Ruleset 1 
   
    Ruleset 2 
   
    Ruleset 3 
   
   
   Ruleset 4 
   
    Ruleset 5 
   
    Ruleset 6 

Referência:

Veja a relação completa dos artigos de William da Rocha Lima

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.08/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.1 /5 (625 votos)

Recomende este site
Recomendar este artigo


Versão para impressão


Opinião dos Leitores

aninha
01 Abr 2008, 19:58
pessoalll podem me ajudar pklixxxxxxxxxxxxxxxxxxx


como faço para bloquear o site do emule (linux)
Fabiano Freitas
11 Set 2007, 15:03
preciso redirecionar o linux 192.168.0.200 para o windows2003 192.168.0.254:1433 sql server

iptables -t filter -N firewall
iptables -t filter -A firewall --in-interface 192.168.0.200 --out-interface 192.168.0.254 --protocol tcp --dport 1433 -j ACCEPT
iptables -t filter -A firewall --in-interface 192.168.0.254 --out-interface 192.168.0.200 --protocol tcp --dport 1433 -j ACCEPT


Seria isso ??

Qualquer coisa fabiano.freitas@gmail.com
Andre
15 Mai 2007, 17:48
preciso redirecionar o linux 192.168.0.200 para o windows2003 192.168.0.254:1433 sql server
evaristo
18 Mar 2007, 11:18
exelente conteudo
sergio
13 Jan 2007, 16:50
iptables exmplo..
erlon
21 Nov 2006, 22:50
retewt
*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Mão na Massa LDAP - 1 Profissional por Máquina
Configure um serviço de Diretórios baseado no servidor OpenLDAP!
Dia 6 de Dezembro - São Paulo
Saiba mais

Biblioteca

Redes - Guia Prático
Por Carlos. E. Morimoto

Hardware - o Guia Definitivo
Por Carlos. E. Morimoto

Kurumin 7 - Guia Prático
Por Carlos. E. Morimoto

Linux: Ferramentas Técnicas, 2ed
Por Carlos. E. Morimoto

VPN: Virtual Private Network
Por Lino Sarlo da Silva

MySQL - Guia do Programador
Por André Milani

Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Extreme Programming
Por Vinicius Manhaes Teles

Google Hacking
Por JOHNNY LONG

Elite da Tropa
Por Luis Eduardo Soares, Andre Batista e Rodrigo Pimentel

Harry Potter e as Relíquias da Morte
Por J.K. Rowling

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

PHP para Quem Conhece PHP
Por Juliano Niederauer

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson

Redes de Computadores
Por Andrew S. Tanembaum

Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan

Deus, um delírio
Por Richard Dawkins

Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

1808
Por Laurentino Gomes

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson