Introdução a Firewalls no Linux (Netfilter/Iptables)



Documentos relacionados
Firewalls, um pouco sobre...

Iptables. Adailton Saraiva Sérgio Nery Simões

Firewalls em Linux. Tutorial Básico. André Luiz Rodrigues Ferreira

IPTABLES. Helder Nunes


Arquitetura TCP/IP. Parte VI Entrega de pacotes sem conexão (IP) Fabrízzio Alphonsus A. M. N. Soares

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços

Interconexão de Redes Parte 2. Prof. Dr. S. Motoyama

Visão geral da arquitetura do roteador

Instalação e Configuração Iptables ( Firewall)

Prof. Samuel Henrique Bucke Brito

Endereço IP Privado. Endereçamento IP. IP Protocolo da Internet. Protocolos da. Camada de Inter-Rede (Internet)

I Workshop do POP MG. Firewall IPTABLES. Fernando Resende Coelho mg.rnp.br

Uso do iptables como ferramenta de firewall.

01 - Entendendo um Firewall. Prof. Armando Martins de Souza armandomartins.souza@gmail.com

Firewall Iptables. Professor: João Paulo de Brito Gonçalves. Campus - Cachoeiro Curso Técnico de Informática

Redes de Computadores. Camada de Transporte

Segurança de Redes de Computadores

Segurança com Iptables

Segurança de Redes. Firewall. Filipe Raulino

Aula-16 Interconexão de Redes IP (Internet Protocol) Prof. Dr. S. Motoyama

Redes de Computadores

Protocolo IP (Internet Protocol) Características do

Linux Network Servers

PROJETO DE IMPLEMENTAÇÃO DE UM SERVIDOR FIREWALL LIVRE UTILIZANDO IPTABLES

comando parâmetro alternativo parâmetro REGRA função iptables -t tabela -N --new chain cria uma nova chain. iptables -t tabela -E --rename-chain

Firewall - IPTABLES. Conceitos e Prática. Tópicos em Sistemas de Computação Prof. Dr. Adriano Mauro Cansian adriano@acmesecurity.

Autor: Armando Martins de Souza <armandomartins.souza at gmail.com> Data: 12/04/2010

Segurança em Sistemas de Informação

Professor Claudio Silva

Obs: Endereços de Rede. Firewall em Linux Kernel 2.4 em diante. Obs: Padrões em Intranet. Instalando Interface de Rede.

Regras de funcionamento (Unreliable Delivery, etc.) Método de roteamento (Sem conexão) Formato dos dados em um datagrama

Capítulo 4 TCP/IP FIREWALLS.

Camada de Transporte. Protocolos TCP e UDP

1. PRINCIPAIS PROTOCOLOS TCP/IP

ADMINISTRAÇÃO DE REDES I LINUX. Firewall. Frederico Madeira LPIC 1, CCNA fred@madeira.eng.br

Redes de Computadores

Introdução ao Protocolo TCP/IP. Prof. Gil Pinheiro UERJ/FEN/DETEL

Tipos de Firewalls. porta de origem/destino, endereço de origem/destino, estado da conexão, e outros parâmetros do pacote.

Elaboração de Script de Firewall de Fácil administração

robustez; confiabilidade; e comunicação de dados independente de fornecedores.

Camada de Transporte Protocolos TCP e UDP

IP Móvel 1. Mobilidade IP FEUP MPR. IP Móvel 2. IP Móvel, v4

Firewall. Tutorial Firewall em Linux Acadêmicos: Felipe Zottis e Cleber Pivetta

FIREWALL COM IPTABLES. by João Eriberto Mota Filho 3. TABELAS. Tabela Filter ESQUEMA DA TABELA FILTER

Netfilter e Iptables

Compartilhamento da internet, firewall

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Oficina de ferramentas de Gerência para Redes em Linux

O que é uma firewall? É um router entre uma rede privada e uma rede pública que filtra o tráfego com base num conjunto de regras.

ICMP Internet Control Message Protocol

robustez; confiabilidade; e comunicação de dados independente de fornecedores.

Redes de Computadores

Funcionamento de ARP entre redes (sub-redes) distintas. Mecanismos de entrega. Funcionamento entre redes (sub-redes): default gateway

Introdução ao Protocolo TCP/IP

Redes de computadores e a Internet. A camada de rede

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

Redes. Entenda o que são ICMP, ping e traceroute Autor: Hélder Garcia hlbognfspam@sounerd.com Março de 2004

Internet Control Message Protocol - ICMP. Rodolfo Riyoei Goya rgoya@uol.com.br

Aula 6 Modelo de Divisão em Camadas TCP/IP

Configurando Interface de Rede. IPTABLES Firewall em Linux Kernel 2.4 em diante. Regras do Iptables. Iptables. Regras do Iptables. Comandos Principais

Análise de tráfego em redes TCP/IP com tcpdump

Prof. Luís Rodolfo. Unidade III REDES DE COMPUTADORES E TELECOMUNICAÇÃO

Redes de Computadores

IP Móvel, v4 FEUP MPR. Encaminhamento tradicional de datagramas IP

Orientador de Curso: Rodrigo Caetano Filgueira

Redes de Computadores 2008 Primeiro Trabalho Analisador de Redes

Gestão de Sistemas e Redes

FireWall no Linux FIREWALL COM IPTABLES. by João Eriberto Mota Filho

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Conexão de Redes. Protocolo TCP/IP. Arquitetura Internet.

BRUNO PEREIRA PONTES

EN-3611 Segurança de Redes Aula 07 Firewalls Prof. João Henrique Kleinschmidt

Camada de Rede. Prof. Leonardo Barreto Campos 1

REDES DE COMPUTADORES. Camada de Rede. Prof.: Agostinho S. Riofrio

NAT. NAT e Tabelas do Iptables NAT NAT. NAT Tipos de Tradução NAT 18/03/2015

7 Introdução ao TCP/IP

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza

Aula 08. Firewall. Prof. Roitier Campos Gonçalves

Internet e TCP/IP. Camada de Rede: Objetivos. Encapsulamento. Redes de Computadores. Internet TCP/IP. Conceitos Básicos Endereçamento IP

Resumo P2. Internet e Arquitetura TCP/IP

Tema do Minicurso: Firewall IPTABLES. Carga horária 3h

Bacharelado em Informática TCP/IP TCP/IP. Disciplina: Internet e Arquitetura TCP/IP. Protocolos Inter-rede. Inter-rederede

Administração de Redes Firewall IPTables

Redes de Computadores

Redes de Computadores

Tecnologia de Redes. Protocolo ICMP

Tecnologia de Redes de Computadores

Firewall iptables e criação de regras.

TCP/IP Internet não segue o modelo OSI. É anterior a ele.

Redes de Computadores I

Firewall Iptables - Impasses

Transcrição:

IntroduçãoaFirewallsnoLinux (Netfilter/Iptables) RicardoKléberMartinsGalvão www.ricardokleber.com.br ricardo.galvao@ifrn.edu.br RicardoKléber::IntroduçãoaFirewallsnoLinux

RicardoKléber ProfessordoIFRN(SegurançadeRedes) DiretordeAvaliaçãoeRegulaçãodoEnsino(IFRN) ProfessordaFARN(EspecializaçãoemRedesdeComputadores) ProfessordaUniversidadePotiguar(EspecializaçãoemComputaçãoForense) ProfessordaUninorte/AC(EspecializaçãoemComputaçãoForense) BacharelemCiênciasdaComputação,MestreemEngenhariaElétrica(Sistemas Distribuídos)eDoutorandoemEngenhariaElétrica(SistemasInteligentes)[UFRN] CertificaçãoLinuxConectivaeBrainbench ColunistadoBlogSeginfo MembrodoComitêTécnicodoSeginfo'2010 Publicações/ApresentaçõesnoSSI,Seginfo,Iccyber,GTS/NicBR,Encsirt,FISL,Ensol, EpsleoutroseventosnasáreasdeSegurançadaInformaçãoeSoftwareLivre AtividadesRecentes Ex SecurityOfficerdaUFRN(SuperintendênciadeInformática) FundadordoCSIRTNARIS(NúcleodeAtendimentoeRespostaaIncidentesdeSegurança)daUFRN Ex ProfessordaUFRN(SistemasOperacionais,LinguagensdeProgramaçãoeRedesdeComputadores) Ex DiretordeRedesdoDetran/PE Ex DiretordeEnsinoeCoordenadordeTIdoIFRN/CampusCurraisNovos FundadordoNUPETIS NúcleodePesquisaemTInoSeridó ConsultoriaetreinamentosemSegurançadaInformaçãoeSoftwareLivreemprovedoresInternet, empresaseórgãosgovernamentaisdorn,pi,peeap. RicardoKléber::IntroduçãoaFirewallsnoLinux

IdentificandooPerfildoPúblico Segurança?Firewalls?Linux? RicardoKléber::IntroduçãoaFirewallsnoLinux

Objetivos ContextualizaranecessidadeefuncionalidadedeFirewalls Apresentarumhistóricodosmecanismosdefiltragemdepacotes Apresentardetalhessobreaevoluçãodosfirewallserecursos complementaresàfiltragemdepacotes DetalharaconfiguraçãodeumasoluçãodeFirewallnoSistema OperacionalLinux RicardoKléber::IntroduçãoaFirewallsnoLinux

Contextualizando... ComunicaçãonoIníciodaInternet Objetivosacadêmicos(semfinscomerciais) Ausênciadeusuáriosmaliciosos Protocolosfuncionais(rápidos,porém,inseguros) Criptografia?(foradequestão) (usadasomenteparacomunicaçãomilitar/governamental) RicardoKléber::IntroduçãoaFirewallsnoLinux

Contextualizando... RelembrandoaPilhaTCP/IP Ce Ca M Ct Ca M Cr Ct Ca M Cr Ct Ca M Origem Destino aplicação transporte rede enlace física aplicação transporte rede enlace física Ca Ct Ca Cr Ct Ca Ce Cr Ct Ca M M M M OBS:AcamadafísicanãoéespecificadanoTCP/IP RicardoKléber::IntroduçãoaFirewallsnoLinux mensagem segmento datagrama quadro

Contextualizando... ACamadadeRede ODatagramaIP(InternetProtocol) versão do Protocolo IP tamanho do cabeçalho (bytes) Classe de serviço número máximo de saltos (decrementado em cada roteador) 32 bits ver head. len type of service 16-bit identifier time to live lenght fragment offset flgs proto colo tamanho total do datagrama (bytes) para fragmentação / remontagem Internet checksum Endereço IP de origem Endereço IP de destino Protocolo da camada superior com dados no datagrama Opções (se houverem) data (tamanho variável, tipicamente um segmento TCP ou UDP) Ex. timestamp, registro de rota lista de roteadores a visitar. RicardoKléber::IntroduçãoaFirewallsnoLinux

Contextualizando... ACamadadeTransporte 32 bits portaorigem portadestino outros campos de cabeçalho dados de aplicação (mensagem) RicardoKléber::IntroduçãoaFirewallsnoLinux TCP ou UDP

Contextualizando... ACamadadeTransporte OSegmentoUDP 32 bits Tamanho, em bytes do segmento UDP, Incluindo cabeçalho portaorigem portadestino tamanho checksum Dados de Aplicação (mensagem) RicardoKléber::IntroduçãoaFirewallsnoLinux

Contextualizando... ACamadadeTransporte OSegmentoTCP 32 bits URG: dados urgentes ACK: campo de ACK é válido PSH: força o envio imediato de dados RST, SYN, FIN: estabelec. de conexão (flags de criação e término) Internet checksum (como no UDP) porta origem porta destino númerodeseqüência númerodereconhecimento tam. não usado UAPRS F sincronização transmissão/ recepção janela de recep. dados urgentes checksum Opções (tamanho variável) dados de aplicação (tamanho variável) RicardoKléber::IntroduçãoaFirewallsnoLinux número de bytes receptor está pronto para aceitar

Contextualizando... ACamadadeTransporte PortasdeAcesso Osprotocolosdetransporte(TCPeUDP)disponibilizam65.536(216)portas paraestabelecimentodeconexão Servidores(usodeportas 1024) Serviços específicos Portas Específicas FTP=21/TCP DNS=53/TCPe53/UDP Telnet=23/TCP HTTP=80/TCP SMTP=25/TCP POP3=110/TCP Clientes(usodeportas>1024) RicardoKléber::IntroduçãoaFirewallsnoLinux

Contextualizando... Sockets Transporte+IP Conjuntodeinformaçõesquecaracterizamcadapacote comoúnico(baseparaidentificaçãodesessõesnotcp/ip): EndereçoIPdeOrigem/PortadeOrigem EndereçoIPdeDestino/PortadeDestino Protocolo OBS1.:OsdadosEndereçoIPdeOrigem,EndereçodeDestinoeProtocolosão retiradosdocabeçalhoip OBS2.:OsdadosPortadeOrigemePortadeDestinosãoretiradosdocabeçalhoTCP RicardoKléber::IntroduçãoaFirewallsnoLinux

Contextualizando... Sockets version(4) TOS (8) header length (4) total length (16) identification (16) Cabeçalho IP TTL (8) flags (3) header protocol (8) source address (32) destination address (32) fragment offset (13) checksum (16) options (if any) source port (16) Cabeçalho TCP destination port (16) sequence number (32) acknowledgment number (32) header length (4) reserved (6) flags (6) TCP checksum (16) window size (16) urgent pointer (16) options (if any) RicardoKléber::IntroduçãoaFirewallsnoLinux

Roteamento Rede Pacotes Pacotes 2 1 Roteador Rede RicardoKléber::IntroduçãoaFirewallsnoLinux

UsandoFirewallsépossivel......monitorar(ebloquear)tráfegosespecíficos(de/paraarede internaouexterna)...gravarregistrosdeacessosde/paraequipamentosinternose externos...limitaraexposiçãodeequipamentosdaredeinterna RicardoKléber::IntroduçãoaFirewallsnoLinux

UsandoFirewallsNÃOépossivel......protegerequipamentosdaredeinternadeusuáriosinternos...garantir100%desegurançanoacessoentreredes...garantirasegurançadeprotocolosinseguros RicardoKléber::IntroduçãoaFirewallsnoLinux

Firewalls(ConfiguraçãoPadrão) RicardoKléber::IntroduçãoaFirewallsnoLinux

Firewalls(FiltragemdePacotes) Rede Pacotes Pacotes Interna Externa Firewall Rede RicardoKléber::IntroduçãoaFirewallsnoLinux

Firewalls(FiltragemdePacotes) Rede Pacotes Pacotes 1 Firewall RicardoKléber::IntroduçãoaFirewallsnoLinux Rede 2

FirewallseaCamadadeRede ElementosdeFiltragem EndereçoIPdeOrigem EndereçoIPdeDestino BloqueiodeAcessosapartirdedeterminadasmáquinas/redes BloqueiodeAcessosdestinadosadeterminadasmáquinas RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallseaCamadadeTransporte ElementosdeFiltragem PortadeOrigem PortadeDestino BloqueiodeAcessosadeterminadosserviços (Portasconhecidas=ServiçosConhecidos) RicardoKléber::IntroduçãoaFirewallsnoLinux

FiltragensNãoConvencionais FiltrandoOutrasCamadase/ouCampos EosdemaiscamposdeumsegmentoTCP? Eacamadadeenlace? Eacamadadeaplicação? FiltragensespecíficasutilizandoExtensõesdoIptables RicardoKléber::IntroduçãoaFirewallsnoLinux

ACLsnosRoteadores Característicaincorporadaaosroteadores,asACLs(ACcessLists) proporcionamomesmoníveldefiltragemdosfirewallstradicionais EndereçoIPdeOrigem/PortadeOrigem EndereçoIPdeDestino/PortadeDestino Protocolo ProblemaPrincipal:NúmerodeACLs Retardonoroteamento TodosospacotespercorremtodasasACLsantesdeseguirem seudestino RicardoKléber::IntroduçãoaFirewallsnoLinux

ACLsnosRoteadores ProblemasAdicionais: InterfacedeGerênciadoRoteador(!?) LimitedememóriadoRoteador(númerodeACLse processamentodefiltragens) QuemgerenciaasACLs? Rede A Rede B RicardoKléber::IntroduçãoaFirewallsnoLinux

RoteadoresxFirewalls Rede A Rede B Regras Específicas Rede A Regras Específicas Rede B AlíviodecarganoRoteador InterfaceAmigável Flexibilidadedehardwareesoftware Geração/MonitoramentodeLogs RicardoKléber::IntroduçãoaFirewallsnoLinux

ArquiteturasdeFirewalls ArquiteturaDual HomedHost Usodeumhostdual homed(ligadoaduasredes); Estehostpoderiaatuarcomoroteadorentrearedeinternaearede externa; Entretanto,afunçãoderoteamentoédesabilitada; MáquinasinternasOUmáquinasexternaspodemsecomunicarcomohost dual homed... masnãopodemcomunicar sediretamenteentresi; Forneceserviçosapartirdeservidoresproxy(umservidorparacada serviço/porta). RicardoKléber::IntroduçãoaFirewallsnoLinux

ArquiteturasdeFirewalls ArquiteturaDual HomedHost RicardoKléber::IntroduçãoaFirewallsnoLinux

ArquiteturasdeFirewalls ArquiteturaScreenedHost ForneceserviçosapartirdeumBastionHostconectadoàredeinterna; RoteadorsepararedeinternadaIntranet(screeningrouter); Segurançabaseadaemfiltragemdepacotes; SomenteoBastionHostpodereceberpacotesdaInternet; BastionHosteScreeningRouterconfiguradosparapermitirquehostsinternos acessemainternet. RicardoKléber::IntroduçãoaFirewallsnoLinux

ArquiteturasdeFirewalls ArquiteturaScreenedHost ACLslimitamacessoaoBastionHost Filtragemmaiselaborada PermissãodeacessodaIntranetàInternet RicardoKléber::IntroduçãoaFirewallsnoLinux

ArquiteturasdeFirewalls ArquiteturaScreenedSubnet ArquiteturaidealparausocomDMZ(ZonaDesmilitarizada); UsodedoisScreeningRouters; UmentreaDMZearedeinterna OutroentreaDMZearedeexterna Redeinternaprotegidapor2ScreeningRouterse1BastionHost BastionHostatuacomoproxy(redeinternanãoacessaredeexterna diretamente) RicardoKléber::IntroduçãoaFirewallsnoLinux

ArquiteturasdeFirewalls ArquiteturaScreenedSubnet RicardoKléber::IntroduçãoaFirewallsnoLinux

ImplementandoFirewallsLinux RicardoKléber::IntroduçãoaFirewallsnoLinux

EvoluçãodosFirewallsLinux Histórico 1994::oipfw(BSD)foiportadoparaoLinux 1996::ipfwadm(Kernel2.0.x) 1998::ipchains(Kernel2.2.x) 1999::iptables(Kernel2.4.x) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallsLinux::FuncionamentoInterno ListasdeRegras(Chains) Entrada Saída Decisão de Roteamento FORWARD OUTPUT INPUT Processamento Local RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallsnoLinux FiltragemBásica::FiltrodePacotes Realizamafiltragemdepacotesbaseadosnosdados: endereço/portadeorigem; endereço/portadedestino; protocolo; ação(bloquearouaceitar). RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallsnoLinux::Ações Bloqueiodepacotes OIpfwadmutilizaoDENY OIpchainsutilizaoDENYouREJECT OIptablesutilizaoREJECTouoDROP REJECT::DescartaeenviaumICMPàOrigem DROP::DescartasemnotificaràOrigem ORejectentrouemdesusoehojeéconsideradoopcional RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallsnoLinux::RegrasINPUT Pacotesdestinadosaoprópriofirewall Rede Pacotes Reject? Drop? Regras INPUT Accept? RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallsnoLinux::RegrasOUTPUT Pacotesoriginadosnofirewall Rede Accept? Reject? Drop? Regras OUTPUT Pacotes RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallsnoLinux::RegrasFORWARD RepassedePacotes Regras FORWARD Reject? Pacotes Accept? Rede Drop? Gateway Máquina Interna RicardoKléber::IntroduçãoaFirewallsnoLinux

CriaçãodeNovasChains DesdeoIpchainsépossível... Criar/Alterar/RemovernovasChains Inserirsub regrasespecíficas Desviartráfegosespecíficosparafiltrosespecíficos RicardoKléber::IntroduçãoaFirewallsnoLinux

CriaçãodeNovasChains Pacotes Filtro Porta X Chains definidas pelo usuário Regras Específicas DROP? Chains Default Porta Y Regras Específicas Pacotes destinados a outras portas ACCEPT? DROP? ACCEPT? RicardoKléber::IntroduçãoaFirewallsnoLinux

CriaçãodeNovasChains Benefícios Alívionotráfego Nãoimplementadoportodososdesenvolvedores Possibilidadedecriaçãodegruposparasumarizaçãode regras RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIpfwadm Sintaxe Básica -a Acrescenta uma nova regra a uma chain -i Insere uma nova regra no início da lista -d <pos> Apaga uma regra em uma posição específica -d <regra> Apaga a primeira regra que coincidir -l Lista as regras de uma chain RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIpfwadm Sintaxe Básica -F Regra de Forward -I Regra de Input -O Regra de Output RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIpchains Sintaxe Básica -A Acrescenta uma nova regra a uma chain -I Insere uma nova regra no início da lista -D <pos> Apaga uma regra em uma posição específica -D <regra> Apaga a primeira regra que coincidir -L Lista as regras de uma chain -N Cria uma nova chain -X Apaga uma chain vazia (menos as 3 chains default) RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIpchains Sintaxe Básica -A forward Regra de Forward -A input Regra de Input -A output Regra de Output RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIptables Sintaxe Básica -A Acrescenta uma nova regra a uma chain -I Insere uma nova regra no início da lista -D <pos> Apaga uma regra em uma posição específica -D <regra> Apaga a primeira regra que coincidir -L Lista as regras de uma chain -j Ação (bloquear [DROP] ou aceitar [ACCEPT]?) (Basicamente,osparâmetros Ae Dsãoosmaisutilizados) RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIptables Sintaxe Básica -A FORWARD Regra de Forward -A INPUT Regra de Input -A OUTPUT Regra de Output RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIptables Principais Operações N Criaumanovachain X Deletaumachain(vazia) P Mudaasregrasparaumachainpadrão F Apaga(flush)asregrasdeumachain RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIptables HabilitandooRepassedePacotes PararoteamentoeusodoFORWARD echo1>/proc/sys/net/ipv4/ip_forward RicardoKléber::IntroduçãoaFirewallsnoLinux

ManipulandoRegrasIptables Definindo as Políticas Default iptables P INPUT DROP iptables P OUTPUT DROP Iptables P FORWARD DROP Tudooquenãoforexpressamentepermitidoéproibido ou Tudooquenãoforexpressamenteproibidoépermitido RicardoKléber::IntroduçãoaFirewallsnoLinux

OutrosParâmetrosparaRegrasIptables DefinindoProtocoloparaaRegra: -p :: protocolo [tcp, udp, icmp...] DefinindoPortaEspecífica(serviço)paraaRegra: --sport :: source port (porta de origem) --dport :: destination port (porta de destino) RicardoKléber::IntroduçãoaFirewallsnoLinux

AntesdePraticar...Importante!!! Firewallnãoéserviço(nãotemnúmerodeprocesso) Firewallatuadiretamentenokernel(nãosobreele) ONetfilter/Iptablesveminstaladoporpadrãonasprincipais distribuiçõeslinux Antesdeinserirnovasregrasnofirewall,observarasregras ativas(senecessáriorealizarum flush antesdeaplicar) Umrebootnamáquinanãopreservaasregrasinseridas(ideal utilizarshellscriptparaativarregrasnainicialização) RicardoKléber::IntroduçãoaFirewallsnoLinux

HoradePraticarparaFixar Práticacomcenáriosbásicospara FirewallsLinuxPadrões (shellscripts) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::SituaçãoDesejada Regrasnopróprioservidor Limparregraspré existentes LiberaracessoWebaoServidor BloquearacessoaoutrosserviçosbaseadosemTCP Bloquearpings RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::DicasparaImplementação Regrasnopróprioservidor UsarchainINPUT Limpar(flush)regraspré existentes iptables -F LiberaracessoWebaoServidor Acessosàporta80/TCP?OK! BloquearacessoaoutrosserviçosbaseadosemTCP AcessosàsdemaisportasTCP?Bloquear Bloquearpings PacotesICMP?Bloquear! RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::ScriptparaImplementação #!/bin/sh iptables -F iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -j DROP iptables -A INPUT -p icmp -j DROP Paravisualizarasregrasdefiltragemativas: iptables -L RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinuxSituaçãoDesejada Regrasnofirewallentreredes Limparregraspré existentes LiberaracessoaosServidoresWeb(naredeinterna) BloquearacessoaoutrosserviçosbaseadosemTCP(naredeinterna) Bloquearpings(naredeinternaenoprópriofirewall) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::DicasparaImplementação Regrasnofirewallentreredes UsarchainFORWARDehabilitarroteamento Limpar(flush)regraspré existentes iptables -F LiberaracessoaosServidoresWeb(naredeinterna) Acessosàporta80/TCP?OK! BloquearacessoaoutrosserviçosbaseadosemTCP(naredeinterna) AcessosàsdemaisportasTCP?Bloquear Bloquearpings(naredeinternaenoprópriofirewall) PacotesICMP?Bloquear![INPUTeFORWARD] RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::ScriptparaImplementação #!/bin/sh echo 1>/proc/sys/net/ipv4/ip_forward iptables -F iptables -A FORWARD -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -p tcp -j DROP iptables -A INPUT -p icmp -j DROP iptables -A FORWARD -p tcp -j DROP RicardoKléber::IntroduçãoaFirewallsnoLinux

OutrosParâmetrosparaRegrasIptables DefinindoOrigeme/ouDestinodaRegra: -s :: source (origem) [máquina ou rede] -d :: destination (destino) [máquina ou rede] DefinindoInterfacedeEntradaouSaída: -i :: interface de entrada (in) -o :: interface de saída (out) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::OAlvoLOG OLOGnoIptablesfoimodularizadoparaserflexível Modopadrãodeuso:regra jlog RegistranosLOGsdoLinuxquandoregracoincidir Personalizaçãomaisimportante: log prefix -j LOG --log-prefix 'Texto para gravar nos Logs' Exemplo:Bloquearelogarpings(pacotesICMP): iptables -A INPUT -p icmp -j LOG --log-prefix '[Ping Bloqueado]' iptables -A INPUT -p icmp -j DROP RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::MúltiplasPortas IntervaloSequencialdePortas: iptables AFORWARD ptcp dport1:1024 jaccept Portasnãosequenciais(até15porregra): iptables AFORWARD ptcp mmultiport dport 21,22,25,80,110,143 jaccept RicardoKléber::IntroduçãoaFirewallsnoLinux

HoradePraticarparaFixar Práticacomcenáriosbásicospara FirewallsLinuxPadrões (shellscripts) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinuxSituaçãoDesejada Regrasnofirewallentreredes Limparregraspré existentes LiberaracessoaosServidoresHTTP,DNSeSMTP Regrasomenteparapacotesdaredeexternapararedeinterna BloquearacessoaoutrosserviçosbaseadosemTCP Regrasomenteparapacotesdaredeexternapararedeinterna Bloquearpings(naredeinternaenoprópriofirewall) LiberaracessoaosServidoresSSHsomenteparaoIP200.1.2.3 Atençãoparaalocalizaçãodestaregra BloquearoacessoaosServidoresHTTPapartirdoIP201.4.5.6 Atençãoparaalocalizaçãodestaregra RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::EasFlagsTCP? porta origem Flags TCP porta destino númerodeseqüência númerodereconhecimento tam. não usado UAPRSF janela de recep. dados urgentes checksum Opções (tamanho variável) dados de aplicação (tamanho variável) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::StatefulInspection Oqueé StatefulInspection? Inspeção de Estados!!?? Funcionalidade presente no firewall BSD (ipfw) Funcionalidade presente no Checkpoint Firewall-1 Funcionalidade presente no Netfilter/Iptables RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::StatefulInspection StatefulInspection checaseopacote: É um pacote de início de conexão ou É um pacote de resposta a uma conexão existente E com isso... Possibilidadedebloqueiodetentativasdeconexõesamáquinasinternas Sembloquearrespostasaconexõesiniciadasapartirdemáquinasinternas RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::StatefulInspection Liberandoapenasentradadepacotesderesposta iptables AFORWARD ieth0 mstate stateestablished,related jaccept iptables AFORWARD ieth0 mstate statenew jdrop RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::CamadadeEnlace Filtragemnãoconvencionalcomiptables (CamadadeEnlace::FiltragembaseadanoMAC Address) Bloqueando um MAC Suspeito iptables AFORWARD mmac mac source00:6e:0f:91:cc:b7 jdrop Liberando MAC uma Máquina Específica iptables AFORWARD mmac mac source00:a0:01:ea:cc:b7 jaccept RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::CamadadeAplicação Investigaçãodoconteúdodasmensagens Maiorníveldefiltragempossível Podeserassociada(ounão)aserviçosespecíficos Desvantagem:Desempenho( Gargalo erecursosdofw) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::CamadadeAplicação ExemplodeExtensão(experimental)matchstring Bloqueando o Worm Code Red: iptables AFORWARD ptcp ieth0 dport80 mstring algobm string"/default.ida" jdrop Bloqueando o Aplicativo P2P Kazaa: iptables AFORWARD ptcp ieth0 mstring algobm string"x Kazaa Username:" jdrop iptables AFORWARD ptcp ieth0 mstring algobm string"x Kazaa Network:" jdrop iptables AFORWARD ptcp ieth0 mstring algobm string"x Kazaa IP:" jdrop iptables AFORWARD ptcp ieth0 mstring algobm string"x Kazaa SupernodeIP:" jdrop RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::CamadadeAplicação ExemplodeExtensão(experimental)IPP2P Bloqueando Aplicativos P2P Específicos: iptables APREROUTING tmangle mipp2p edk jdrop iptables APREROUTING tmangle mipp2p kazaa jdrop iptables APREROUTING tmangle mipp2p gnu jdrop iptables APREROUTING tmangle mipp2p bit jdrop RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::CamadadeAplicação OutrosMódulosAdicionais(maioriaemtestes) Extensãopsd(portscandetection) Extensãoosf(operatingsystemfingerprint) Extensãoquota(estabelecequotaembytesedecrementaabytecounter) Extensãotime(timestart/timestop) InventeaSua!!! RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::Iptables::ATabelaNAT NAT=NetworkAddressTranslation Conversãodeendereçosdeorigem Conversãodeendereçosdedestino Redirecionamentodeportas Mascaramento RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::Iptables::ATabelaNAT RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::Iptables::ATabelaNAT ChainsPadrão PREROUTING POSTROUTING OUTPUT FirewallsnoLinux RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::Iptables::ATabelaNAT NAT1:N MascaraNendereçosprivadosem1 endereçopúblico NAT1:1 Permiteacessoaumamáquinainterna convertendoseuendereçointernoem umendereçopúblicoparaacessoexterno RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::Iptables::ATabelaNAT ChainPOSTROUTING MascaramentoN:1 UsodoalvoMASQUERADE Geralmentemascaratodaumaredeinterna iptables tnat APOSTROUTING sorigem ointerfacedesaída jmasquerade Ex.:iptables tnat APOSTROUTING oeth0 jmasquerade RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::Iptables::ATabelaNAT ChainPOSTROUTING ModificaçãodeendereçodeorigemSNAT Utilizadanotráfegodesaída( ointerface) Procedimentosdepoisdoroteamento(mascaramento) iptables tnat APOSTROUTING sorigem ointerfacedesaída jsnat toorigemmascarada Ex.:iptables tnat APOSTROUTING s10.1.2.3 oeth0\ jsnat to200.1.2.3 RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::Iptables::ATabelaNAT ChainPREROUTING ModificaçãodeendereçodedestinoDNAT Utilizadanotráfegodeentrada( iinterface) Procedimentosantesdoroteamento iptables tnat APREROUTING ddestino iinterfacedeentrada jdnat todestinoreal Ex.:iptables tnat APREROUTING d200.1.2.3 ieth0\ jdnat to10.1.2.3 RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::Iptables::ATabelaNAT ChainPREROUTING TambémutilizadaparaRedirecionarportas BastanteutilizadaparaProxyTransparente Ex.:iptables tnat APREROUTING ptcp dport80\ jredirect to port3128 RicardoKléber::IntroduçãoaFirewallsnoLinux

HoradePraticarparaFixar Práticacomcenáriosbásicospara FirewallsLinuxPadrões (shellscripts) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallLinux::SituaçõesDesejadas 1)Mascaramento(NAT1:N)deumaredeinterna10/8utilizando endereçoipexterno200.1.2.3 2)NAT1:1deumamáquinadeumaredeinternacomip10.0.0.1 comendereçoipexterno200.0.0.1 3)FazerNATsdeportademodoque: ConexõesaoIPexterno200.1.1.1naporta5000/TCPsejam redirecionadasparaamáquinainterna10.0.0.1naporta80/tcp ConexõesaoIPexterno200.1.1.1naporta6000/TCPsejam redirecionadasparaamáquinainterna10.0.0.2naporta22/tcp RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables Características Arquivodeconfiguração(.fwb) GeraçãodeScriptsparaFirewallsDiversos Permitecriaçãodegruposdehostsouserviços Comentáriossãoinseridosnosscripts Usodesub chains ClienteparaWindowsouLinux(www.fwbuilder.org) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::ConfiguraçãoInicial CriaçãodoObjetoFirewalleInterfaces RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::FirewallSettings RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::FirewallSettings RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::FirewallSettings RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::HostOSSettings RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::HostOSSettings RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::InterfaceInterna RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::InterfaceExterna RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::Objetos Objetos(Objects) EndereçosIP(Addresses) FaixasdeEndereços (AddressRanges) Grupos(Groups) Hosts Networks(Redes) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::Regras Regrasparacadainterfacederede Regrasparatodasasinterfaces(Policy) RegrasdeMascaramento(NAT) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::InserindoRegras Drag and Drop RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::InserindoRegras Origem/Destino[Source/Destination] Serviço(porta)[Service] Acão(AceitarouNegar)[Action] Opções(AtivarLogounão)[Options] Comment(comentáriosobrearegra) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables::Serviços Serviços(Services) IP ICMP TCP UDP Grupos(Groups) RicardoKléber::IntroduçãoaFirewallsnoLinux

FirewallBuilder FrontendGráficoparaoIptables Standard ServiçosPadrão Read Only User Outrosserviços Hosts/RedesPersonalizados Grupos(Groups) RicardoKléber::IntroduçãoaFirewallsnoLinux

Nãodeixemde PraticarparaFixar RicardoKléber::IntroduçãoaFirewallsnoLinux