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