Sei sulla pagina 1di 43

Introduzione ai firewalls Introduzione ai firewall

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

IntroduzioneaifirewallconLinux
MauroBarattineOrianoChiaradia

Belluno,27novembre2004
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione Introduzione ai firewall

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Sommario
Perchproteggersi Cosaproteggereconunfirewall Approccipraticiallasicurezza Definizionedifirewall Breveintroduzionetecnica NetfiltereIptables Tabellecateneeregole Comesicostruisconoleregole Filtraggiostetelessestatefull Esempiapplicativi Conclusioni

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Sicurezza informatica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Perchmeglioproteggersi?
Ilnostrocomputerdicasa,unavoltaconnessoaInternettramiteun modem,raggiungibiledaognihostdelmondo!Inmancanzadi dispositividifiltraggio,ogniserviziodireteattivosulnostro computer(es.condivisioniwindows...)puessereraggiungibile dall'esterno.Dalpuntodivistadellasicurezza,inoltre,ogniservizio espostorappresentaunapossibilevulnerabilitdelnostrosistemae dellanostrarete... L'offertadiconnettivitADSLabassocostohapermessoanche all'utenzacasalingadiusufruiredilineealwaysonadaltavelocit che,proprioperchsempreattive,necessitanodiunamaggiore protezionecontroleintrusioni.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Sicurezza informatica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Cosadobbiamoproteggere?
Dati
Privacy Integrit Disponibilit Integrithardwareesoftware Tempodicalcolo/memoria Furtodiidentit(es.accessoachiaviprivate) Catenadiattacchi(mascheramentoprovenienzaoriginaria) Presenzamaterialeindesideratoinarchivipubblici Defacement

Risorse

Reputazione

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Sicurezza informatica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Tipologiediattacco
Intrusione
Accessononautorizzato Scalataprivilegi Modificadeisistemi(installazionedibackdoors) Networkflooding Resourceexhaustion Disabilitazione/danneggiamentodeiservizi Accessoagliarchivi Monitoraggiodeltrafficodirete(sniffing)

Denialofservice

Furtodiinformazioni

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Sicurezza informatica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Approcciallasicurezza
Hostlevel
Sicurezzaalivellodisingolamacchina Ognisistemadotatodimisurediprotezioneindividuali Nonscalabileedidifficilegestione Nonadattoadambientieterogeneiperarchitettureesoftware Sicurezzaalivellorete Controllodiaccessoconcentrato(hardware/softwarededicato) Scalabile,gestibile,adattabile Minoreflessibilit

Networklevel

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall I firewall

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Cos'unfirewall?
Proviamoadarequalchedefinizione... Murodifuoco Ilfirewalluncomponenteattivochesiinterponefradueopireti (adesempiounaretelocaleeunaretepubblica),configuratoconun insiemediregolechedeterminanoqualicomunicazionisono permesseequaliinvecesonovietate. Ilfirewalluncomponentehardwarecondueopischededirete sulqualevieneinstallatounambienteoperativocheanalizzae gestisceiltrafficodeipacchettiinbaseallaconfigurazionefornita dall'amministratoredirete. ...insomma,unfirewallunFILTRO!
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione ai firewall I firewall

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Cosafaecosanonfa...
Cosafa...
Separazionefisicatradueopireti Restrizionesultraffico Monitoraggiodeltraffico Loggingdeltraffico Nonproteggedavirus Nonimpedisceloscaricamentodisoftwareinfetto Nonesaminailpayloaddeipacchetti(idati) Nonpufarecichenonstatoprevistoinpartenza Nonproteggedatipidiattacchinonnotiapriori Nonproteggedautentilegittimi Nonproteggeincasodipuntidiaccessononcontrollati

Cosanonfa...

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall I firewall

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Packetfiltervs.applicationproxy
Ifirewallsidividonoinduecategorie:

Packetfilter

Agiscealivellonetwork/transport. Limitaterichiestehardware Agiscealivelloapplication. Applicazioniseparateperogniservizio Richiedehardwarepiveloce Pocoadattisuretiadaltotraffico

Applicationproxy

Nelseguitocioccuperemodipacketfilter...
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

IlprotocolloTCP/IP
Iprotocollisonoglistandardchespecificano: Comeavvengonoitrasferimentidaunamacchinaadun'altra Comesonorappresentatiidati Qualisonotecnicheperlarivelazioned'errore Ilmeccanismodiacknowledgmentperipacchettitrasmessi Taliprotocollirendonoinvisibileall'utentel'hardwaresottostante duranteunaqualsiasisessionedilavoro. PerTCP/IP,ilprotocollosucuisibasaInternet,nonsiintendesoloil protocolloditrasmissioneTCPedilprotocollodireteIP,mauna famigliadiprotocollicomprendenteanchel'UDP,l'ICMP,l'ARP,...

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

(TransmissionControlProtocol)
IlprotocolloTCPsiassumelaresponsabilitdiinstaurare(SYN)un collegamentotraduehost,direndereaffidabileiltrasferimentodidati ecomanditraessi(richiedendo,senecessario,laritrasmissionedi alcunidati)edinfinedichiuderelaconnessione(FIN). Connectionoriented Affidabile(controllodiintegritesequenzialit) Altooverhead Necessitalostabilirsidiunaconnessione Ogniservizioidentificatodaunaporta(sinoticheilTCPusala connessione,enonlaporta,comesuafondamentaleastrazione...) UsatodaiserviziHTTP,FTP,SMTPedaltri

TCP

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

(TransmissionControlProtocol)
IlprotocolloUDPfornisceunserviziodirecapitodeidatagrammi connectionlessedinaffidabile(nonprevedenessunmeccanismoperil controllodell'errore).PerciimessaggiUDPpossonoesserepersi, duplicatioppurearrivarefuoridall'ordine;inoltreipacchettipossono arrivarepivelocementediquantoilriceventesiaingradodi processarli. Nonconnectionoriented Nessuncontrollodiintegrit Bassooverhead Serviziidentificatidaporte UsatodaDNS,NFS,NetBIOS

UDP

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

(InternetControlMessageProtocol)
IlprotocolloICMPconsenteunacomunicazionestraordinariatra routersedhostspermettendoloscambiodisegnalidierroreodi controllo(adesempioimessaggidiredirect,cherichiedonoadunhost dicambiarelapropriatabelladirouting,emessaggidiecho request/echoreply,chel'hostpuusareperdeterminaresela destinazionepuessereraggiunta). Echorequest(type8) Echoreply(type0) Timeexceeded(type11) Destinationunreachable(type3) Redirect(type5)

ICMP

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

TCPThreewayhandshake
IlthreewayhandshakeassicurachelaconnessionetraduehostAeB siastatastabilitaconsuccesso. L'hostAfaunarichiestadiconnessioneversol'hostB(SYN). L'hostB,ricevutalarichiestadiconnessione,inviaall'hostAun datagrammadiconferma(SYN+ACK). Ricevutoildatagrammadiconferma,l'hostAinviaall'hostBun datagrammacheinformalostessohostBchelaconfermadi connessionearrivataallohostA(ACK).
Richiestaconnessione Confermaconnessione Confermadiaverricevuto laconfermadiconnessione

host A
Belluno, 27 novembre 2004

host B
Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

LeportedelprotocolloTCP/IP
LeportesonoilmezzoessenzialechepermetteaiprotocolliTCPeUDP digestireflussimultiplididatiattraversounaunicaconnessionefisica allarete.Leportesonoindicateconunnumerointerocompresotra0e 65.535epossonoessereassegnatesiaalprotocolloTCPcheUDP.
7ECHO 9DISCARD 13DAYTIME 20FTPDATA(FTPdatatransfer) 21FTP(FileTransferProtocol) 22SSH(SecureShell) 23TELNET 25SMTP(SimpleMailTransferProtocol) 42WINS(WindowsInternetNamingService) 53DNS(DomainNameServer) 80HTTP(HyperTextTransferProtocol) 110POP3(PostOfficeProtocol3) 119NNTP(NetworkNewsTransferProtocol) 135EPMAP(DCEEndpointMapper) 137NETBIOSns(nameservice) 138NETBIOSdgm(datagramservice) 139NETBIOSss(sessionservice) 143IMAP(InternetMessageAccessProtocol) 161SNMP(SimpleNetworkManagementProtocol) 389LDAP(LightweightDirectoryAccessProtocol) 443HTTPS(SecureHTTP) 445Microsoftds(MicrosoftDirectoryService) 465SMTPS(SecureSMTP) 995POP3S(SecurePOP3)

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Tipidiporte
LoIANA(InternetAssignedNumbersAuthority)l'entechehatraisuoi scopilastandardizzazionedelleporteel'aggiornamentocostantediun documento,chiamatoportsnumber,contenentel'elencodeiservizi registratiedellerelativeporteutilizzate.Nelsuddettodocumento,lo spaziodelle65536porteUDPeTCPstatosuddivisointreparti: WellKnownPorts(porte01023):sonoporteassegnate univocamenteesonoriservateaiserviziserverstandard. RegisteredPorts(porte102449151):l'utilizzodiquestoinsiemedi porteliberononostantecontengadeiserviziregistrati. Dynamicand/orPrivatePorts(porte4915265535):nessun servizioregistratoinquest'area.Ilsuoutilizzolibero.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Tipidiporte
Dalpuntodivistadellasicurezzarivestegrandeimportanzalostatodi unaportavistadall'esternodellamacchina.Sonoposssibilitrecasi: Portaaperta(Open):unprocessoserverinascoltosullaporta.E' possibilestabilireunaconnessionedall'esterno. Portachiusa(Closed):nessunprocessoinattesaelaportaquindi inutilizzata.Seunclientcercadiconnettersi,ilsistemaoperativo mandaunsegnalediresetdellacomunicazione. Portafiltrata(Filtered):unfirewall,filtro,ounaltroostacolodirete stacoprendolaportaimpedendodideterminareselaporta aperta.Inquestocasonessunsegnalediresetvieneinviatoalcliente ilsistemarimanesemplicementemuto.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Comerilevarelostatodiunaporta?
Strumentichecipermettonodistabilirelostatodiunaporta: Analisidelsistemalocale:visualizzazionedelleconnessioniattive (established)edelleporteinascolto(listening)permettendoquindi diindividuaretuttiiserverinesecuzionesulcomputerinesame. netstat -a Analisidaunsistemaremoto:visualizzazionedelleporteinascolto (listening)conl'ausiliodiunportscanner(es.Nmap).Questotest risultautiletuttelevoltechelanostramacchinaolanostraretenon direttamenteespostasuinternetmaseparatadaquestadaun firewall,unrouterodungenericogateway. nmap -v -sS -O www.sito.com

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Introduzione tecnica

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Retiinterne
LaRFC1918(Requestforcomments)specificairangediindirizziIPche possonoessereusatiperleretiprivateechenonvengonoquindi utilizzatidaInternet.Taliindirizzisono: 10.0.0.010.254.254.254 172.16.0.0172.31.254.254 192.168.0.0192.168.254.254 IcomputerconquestiindirizzipossonoaccedereaInternetsolo attraversoserverproxyocollegandosiadunroutercheeffettuiil mascheramentodelleconnessioniuscenti(notocome"NAT").

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

FirewalldiLinux
Dallaversione2.4ilkernelsibasasull'infrastrutturanetfilter/iptables chepermettediconfigurareunfirewallperfare:

Packetfiltering(stateless,statefull):regoledifiltraggiodei

pacchetticheilfirewallorigina,riceveochetransitanodalfirewall.

NetworkAddressTranslation(NAT):regoleperalterare Packetmangling:modificadialcuniflagdeipacchetti.
Netfilterilsistemadifiltraggiodeipacchetti Iptablesiltoolpercreareleregole
Belluno, 27 novembre 2004

l'intestazionedeipacchetti,tenendotracciadellemanipolazioni fatteedoperandol'operazioneinversasuipacchettidirisposta.

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Tabelleecatene
Sibasasuiconcettiditabelle,catene(chains)eregole(rules). Unatabellaformatadacateneeunacatenadaregole. Unacatenauninsiemediregoleconcatenatefralorochevannoad agiresulleintestazionideipacchettiperverificarnela corrispondenza. Perciascunacatena,Iptablesnumeraleregoleinordinecrescente partendodallaregolanumero1.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Tabelleecatene
filter
INPUT OUTPUT FORWARD
decisione sul routing +------------+ +---------+ +-------------+ IN ----->| PREROUTING |-----> ------>| FORWARD |-------> ---->| POSTROUTING |-----> OUT +------------+ \ +---------+ / +-------------+ DNAT | filtro | SNAT REDIRECT | | MASQUERADE v | +-------+ +--------+ | INPUT | | OUTPUT | +-------+ +--------+ | ^ filtro | | filtro,DNAT v | +------------------------------+ | Processo Locale | +------------------------------+

nat

PREROUTING POSTROUTING OUTPUT PREROUTING INPUT FORWARD OUTPUT POSTROUTING

mangle

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Lecatene
INPUT:contieneleregoledifiltraggioperipacchettiindirizzatial firewallstesso. OUTPUT:contieneleregoledifiltraggioperipacchettigeneratida unprocessointernoalfirewalledestinativersounhostesterno. FORWARD:contieneleregoledifiltraggioperipacchettinon destinatialfirewall,secondolatabelladirouting. PREROUTING:contieneledirettivechedevonoessereapplicate primadelprocessodirouting.Aquestolivellosiapplicail DestinationNAT(DNAT). POSTROUTING:Direttivechedevonoessereaplicatedopoil processodirouting.Aquestolivellonelqualevengonoapplicatele direttivediSourceNAT(SNAT).
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Filtraggio...inbaseacosa?
Livellofisico
Interfacciadirete MACsorgente

Livellodatalink Livellorete
IndirizzoIPsorgente IndirizzoIPdestinazione Tipodiprotocollo(TCP,UDP,ICMP,...) PortaTCP/UDPsorgente PortaTCP/UDPdestinazione TipodimessaggioICMP

Livellotrasporto

Alcunediquesteinformazioni dellapropriamacchinaposso essereottenutedall'outputdei seguenticomandi:


ip ifconfig route arp

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Comesicostruisceunaregola
Iptablesaccettalasintassiseguente:

iptables[ttable]command[match][target]

Selezione della tabella

Comeoperare sulleregole dellacatena

Criteriperla selezione delpacchetto

Destino delpacchetto chesoddisfa ilmatch

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Command
IcomandidiIptablescheagisconosullechainsonoiseguenti:
-A -I -R -D -L -N -X -P -F -Z -E | | | | | | | | | | | --append Aggiungeunanuovaregolaincoda.precedenti. --insert Inserisceunanuovaregolainposizione... --replace Sostituisceunaregolaconunanuova. --delete Eliminaunaregola. --list Visualizzaleinformazionisullechain. --new-chain Creaunanuovachain. --delete-chainEliminaunachainsolosevuota. --policy Cambialapolicyperunachain. --flush Eliminatutteleregolesullechain. --zero Azzeraibyteeicontatoriintuttelechain. --rename-chainCambianomeadunachain.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Matchgeneriche
Lamatchgenericaagiscesuognitipodiprotocollocheilkernelcapace dicontrollare.Nonrichiestonessuncomandooopzioneper controllarelamatch.
-s -d -p -i -o | | | | | --source --destination --protocol --in-interface --out-interface

Specifical'indirizzoIPsorgente. Specifical'indirizzoIPdestinazione. Listadiprotocolliseparatadalcarattere",". Interfacciadiretediingresso. Interfacciadiretediuscita.

Leregolenellematchpossonovenireanticipatedalcarattere"!". Lasuafunzionedinegarelaregola.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

MatchTCP,UDP,ICMP
MatchperilprotocolloTCP:
--tcp-flags --syn --sport | --source-port --dport | --destination-port

FiltraunflagspecificodelTCP. PacchetticonflagSYNattivato. Portadiorigine. Portadidestinazione.

MatchperilprotocolloUDP:
--sport | --source-port --dport | --destination-port

Portadiorigine. Portadidestinazione.

MatchperilprotocolloICMP:
--icmp-type

Tipodipacchetto.
Relatore: Ing. Mauro Barattin

Belluno, 27 novembre 2004

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Matchesplicite
MatchMAC(sonocaricateconl'opzione-m mac):
--mac-source

NumeroMACdell'indirizzosorgente.

Matchmultiporta(sonocaricateconl'opzione-m multiport):
--source-port --destination-port --port

Listadiportesorgenteseparateda",". Listadiportedidestinazioneseparateda",". Listaportesiainingressocheinuscita.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Matchstate
Questematchgarantisconol'accessoalleinformazionesultracking delleconnessioni.Sonocaricateconl'opzionemstate.
--state

Stato della connessione. Indica lo stato che deve essere confrontato della connessione: INVALID, ESTABLISHED, NEW e RELATED.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Approccialpacketfiltering
Statelessfiltering
Ladecisionesull'instradamentoomenodiunpacchettopresa esclusivamentesullabasedellasolainformazionecontenutanei campiheaderdelpacchettostesso Indirizzodiprovenienza/destinazione Protocolloditrasporto Informazioniaddizionali Ladecisionepresasullabasedell'informazionecontenutanel pacchettoedeltrafficoprecedente,dicuimantenutamemoria

Statefullinspection

Iptablesingradodieseguirelastatefullinspection...

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Statefulinspection
Unpacchetto(TCP,UDP,ICMP)puessereinunodeglistati: NEW:creaunanuovaconnessione ESTABLISHED:appartieneaunaconnessioneesistente RELATED:relativo,manonpartediunaconnessioneesistente (es.ICMPdierrore) INVALID:nonidentificatooerrorenonrelativoadalcunaconnessione

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Il firewall di Linux

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Itarget
Contargetsiintendeildestinodatoaipacchettidaunaregola. Itargetsonomoltiepossonoessereestesitramitepatch,ipi comunementeutilizzatisono: ACCEPT:ilpacchettovieneaccettato. DROP:ilpacchettovienescartato,senzasegnalazione. REJECT:simileaDROP,consegnalazioneall'indirizzosorgente. LOG:ilpacchettovienememorizzatonelfiledilog. SNAT:cambial'indirizzosorgentedelpacchetto. DNAT:cambial'indirizzodidestinazionedelpacchetto. MASQUERADE:simileaDNAT... ULOG:trasmetteipacchettiloggatiinuserspace.
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione ai firewall Semplici regole

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Esempi
Eliminatutteleregoleimpostatenellatabellafilter(implicito):
# iptables -F

Eliminatutteleregoleimpostatenellatabellanat:
# iptables -t nat -F

Eliminatuttelecatenedefinitedall'utentenellatabellafilter:
# iptables -X

Perpolicysiintendelapoliticaadottatainunacatena. OgnicatenanehaunadidefaultchehacomevaloreACCEPT...
# iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione ai firewall Semplici regole

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Esempi...
Accettainingressoleconnessioniversolaportasshdelfirewall:
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Siimpediscel'ingressoaognipacchettononprovieneda192.168.0.*
# iptables -A INPUT -s ! 192.168.0.0/24 -j DROP

Nonpermetteilpassaggiodiconnessioniversolaportatelnet:
# iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport telnet -j DROP \

Accettaipacchetticheappartengonoadunaconnessionenotao relativiadessa(es.ICMPerror,ftpdata,...)
#iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione ai firewall Semplici regole

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Esempi
Loggatutteleconnessionidell'host10.0.0.3versolaporta80locale.
# iptables -A INPUT -s 10.0.0.3 -p tcp dport 80 \ -j LOG --log-prefix "Dropped (http): "

RigettatutteleconnessioniTCP.
# iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset

Visualizzaleregolenellatabellafilter.
# iptables -A INPUT -m mac --mac-source 00:0A:5E:20:10:FE \ -p tcp --dport pop3 -j ACCEPT

VisualizzaleregolenellacatenadiINPUT.
# iptables -L # iptables -L INPUT -v -n --line-numbers
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione ai firewall Esempi pratici

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Approccialpacketfiltering
Esistonodueapprocciortogonaliperlapoliticadisicurezza: DefaultPermitStance:sivietanosoltantoalcuniserviziparticolari, partendodaunsistemaaperto. DefaultDenyStance:sivietaqualunquecosaperdefaultesi controllanodirettamenteiservizichesivoglionoabilitare.Inaltre parole,tuttocichenonesplicitamentepermessoeproibito!

Lanostraanalisisibasasulprimoapproccio.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Esempi pratici

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

PCdicasa
PC LINUX MODEM
ppp0

IP DINAMICO
INTERNET

# # # #

iptables iptables iptables iptables

-F -P INPUT DROP -P OUTPUT ACCEPT -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Esempi pratici

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

TipidiNAT
DNAT:utilizzatoperindirizzarel'indirizzoIPdidestinazioneverso unaltronodo,appartenenteadunazonaprotettadalfirewall. SNAT:utilizzatoperriscriverel'indirizzoIPsorgentedelpacchetto. L'utilizzoprincipalesihaquandopicomputercondividonola stessaconnessioneInternetconununicoIPstaticoassegnatoal firewalloalrouter.SenzaquestatraduzionelaLANnonpotrebbe nonpotrebbecomunicareconl'esternoinquanto,generalmente, usaindirizziIPprivatienonpubblici. MASQUERADE:equivalenteaSNAT,tuttavianonrichiededi specificareunnumeroIPsorgenteinquantoquestovienecalcolato ognivolta.L'utilizzoprincipalesihaquandopicondividonola stessaconnessioneInternetconununicoIpdinamicoassegnatoal firewalloalrouter.
Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione ai firewall Esempi pratici

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

LANaziendale
SERVER
192.168.0.1 192.168.0.2 192.168.0.10

CLIENT
192.168.0.11 192.168.0.12

IP STATICO
FIREWALL LINUX ROUTER
81.114.10.137

WWW

FTP

eth0

eth1

INTERNET

192.168.0.254

81.114.10.138

# # # # # # # # # # #

echo 1 > iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables

/proc/sys/net/ipv4/ip_forward -F -t nat -F -P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -A INPUT -i eth0 -s 192.168.0.0/24 -p tcp dport ssh -j ACCEPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -j ACCEPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
Relatore: Ing. Mauro Barattin

Belluno, 27 novembre 2004

Introduzione ai firewall Esempi pratici

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

LANaziendale+servizipubblici
SERVER
192.168.0.1 192.168.0.2 151.37.112.9

WWW

FTP

FIREWALL LINUX
eth0 eth1

ROUTER
81.114.10.137

DMZ

INTERNET

223.10.7.22

192.168.0.254

81.114.10.138

... # iptables -t nat -A PREROUTING -i eth1 -d 81.114.10.138 \ -p tcp -dport http -j DNAT to 192.168.0.1 # iptables -t nat -A PREROUTING -i eth1 -s 151.37.112.9 -d 81.114.10.138 \ -p tcp -dport ftp -j DNAT to 192.168.0.2

LeconnessionivannopermesseanchesullacatenaFORWARD
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin

Introduzione ai firewall Conclusioni

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Conclusioni
Ilfirewallunelementoessenzialeperraggiungereunelevatolivellodisicurezzasu unaretelocale,manonbastainstallareunsistemadifirewallperaverelacertezza dellinviolabilitdellapropriarete. Unfirewallhabisognodicostantecontrolloemantenimentodelsoftwarechelo costituisce.E'essenzialetenereaggiornatoilpropriofirewallcontuttelepatchdi sicurezzapermettersialriparodaeventualifallechepotrebberopermettereadun malintenzionatodipenetrarenelsistema.Proprioperridurrequestaeventualitsi consigliadidisabilitaretuttiiservizinonstrettamentenecessari. Esistonovarietipologiedifirewallognunadellequalipuaverepregiepuntideboli. Larealizzazionediunarchitetturadifirewallspessononbanaledarealizzaree nonesisteunaricettageneraleperrisolvereiproblemichepossononascerenella configurazione,installazioneemantenimentodiunfirewall.Ogniarchitetturadi firewallquindispecificaallatipologiaparticolarediLANacuivieneapplicata. Ilmodellodifirewallchesipuimplementaredipendemoltodallepolitichedi sicurezzachedevonoesseredeciseaprioriedapplicateconcoerenza.

Belluno, 27 novembre 2004

Relatore: Ing. Mauro Barattin

Introduzione Bibliografia ai firewall

BellunoLinuxUserGroup
IntroduzioneaifirewallconLinux

Bibliografia
W.R.Stevens,TCP/IPIllustrated,AddisonWesley,1994 C.Hunt,TCP/IPNetworkAdministration,O'Reilly,1995 R.RussellPacketfilteringHOWTO E.BruniLinuxFirewall,2002 C.ContavalliIptablesforFun,2003 M.Lotto,NetworkPacketFiltering,2003 G.BianchiniSistemifirewall,2002 F.BucciarelliFiltraggiodeltrafficoIPinlinux,2003 R.VeraldiFirewalls,2000 V.VecchioneNetfilter:scaccomattoall'intruso!,2002 YanRaber,LeportedelprotocolloTCP/IP UmbertoZanatta,linuxDidattica:laRete SitowebNetfilter(http://www.netfilter.org) Manpagediiptables
Belluno, 27 novembre 2004 Relatore: Ing. Mauro Barattin