Está en la página 1de 8

IPTABLESEN21SEGUNDOS

1. QuesIPTABLES?
Enlinux,elfiltradodepaquetessecontrolaaniveldelkernel.
Existenmodulosparaelkernelquepermitendefinirunsistemadereglasparaaceptaro
rechazarlospaquetes
olascomunicacionesquepasanporelsistema.Estossistemasdereglasconformanloquese
conocecomofirewallocortafuegos;enotrossistemaslosfirewallpuedenestar
implementadosensoftwareyestardesvinculadosdelsistemaoperativo,peroenelcasode
linux,elfirewallsepuedemontaraniveldekernelynoesnecesarioinstalarunsoftware
adicionalqueparamasINRIavecestieneagujeros.
EnversionesdeKernelanterioresala2.4sedisponadelosmdulosIPCHAINSpara
montarfirewalls,ascomodeotrosmdulosdesoporteparacomunicacionesconcretas
(enmascaramientodeFTP,deIRC,RealAudioetc.).
GraciasaIPCHAINS,ademsdepoderdefinirnormasdefirewallmuyprecisas,tambin
podahacerqueunlinuxfuncionaracomogatewayenmascarandotodaslaspeticionesde
unaLAN.
IPCHAINShamuerto,vivaIPCHAINS.Apartirdelkernel2.4seestadandosoporteaotro
moduloparafiltradodepaquetesmuchomspotentequeIPCHAINS,llamadoIPTABLES.
ParaaccederaciertossitesftptendremosproblemasusandoIPCHAINSconelkernel2.4.A
pesardequeIPCHAINSsigafuncionando,yanotendremoslosantiguosmdulospara
solventarlosproblemasdeaccesoaserviciosespeciales,
YserecomiendapasarseaIPTABLES.
Enelsiguientegrficosedistingueelcaminoquesiguenlospaquetesalpasarporun
firewallconIPTables,ynosguasobrelaformadeaplicarlasreglas.
(Engeneral,aloqueserutaatravsdelfirewallseleaplicaFORWARDyaloquevaal
firewallseleaplicaINPUT).
2.DiferenciasrespectoaIPCHAINS
IPTABLESesmscompletoqueIPCHAINS,permiteuncontrolanmspreciso,aunquetambin
esms
complejo.
Enprincipioelsistemasiguesiendoelmismo.Hayquecargarunmodulodelkernel(sepuede
hacerenelpropioscriptdefirewall),yejecutarunscriptdeshellconvencionalquetieneelaspecto
deunconjuntodereglas.Unscriptdeestetiposepodracomplicarysofisticartantocomose
deseara,esoyaescuestindecadacual.
Elscriptgeneralmente:Comienzacargandolosmodulosnecesarios(losimprescindiblesylos
auxiliares,comoeldeftpmasquerading),Establecealgnbitcomoporejemploeldeforwarding.
Luegoborratodaslasreglasactuales(flush).Establecelaspolticaspordefectoparalaaceptacin,
reenvoysalida.Yfinalmentevaaplicandotodaslasreglasdefirewall,quevaranenormente
dependiendodelasnecesidadesdecadared.Elordendealgunospuntosnotieneporqueser

siempreas..Porlogeneral,unaaproximacinbuenasueleserCERRARtodopordefecto,eir
abriendoloquesenecesite.Aunqueestaltimaaproximacindamuchomsquebraderosde
cabeza.
Aloquebamos,diferenciasrespectoaIPCHAINS.
Lasintaxis,obviamente,aunquenomucho.
DENYnoexiste,ahoraseraDROP.
MASQyREDIRECTnoexistencomodestinosdepaquetes.
REJECTextendidosconmasopciones
LOGconmsopciones,muytilparamonitorizarydepurar
ymsquesepuedenverenelHowtoyenotraspginas.

3.Elementosbsicos
Ordenesbsicas:
iptablesF:efectivamente,flushdereglas
iptablesL:si,listadodereglasqueseestanaplicando
iptablesA:append,aadirregla
iptablesD:borrarunareglas,etc
Ejemploderegla:
#Reglaqueaceptaconexionesalpuerto80
iptablesAINPUTieth0s0.0.0.0/0pTCPdportwwwjACCEPT
ANATOMIADELAREGLA:
iptables:commandoiptables(nohayqueolvidarquelasreglassonunshellscript)
A:append,opcinparaaadirlaregal
INPUT:estadodelpaquete(alentraresinput).
ieth0:interfazderedeth0
s0.0.0.0/0:direccindeacceso(cualquieraenestecaso)
pTCP:tipodepuerto
dport:puertodedestino
jACCEPT:destinodelpaquete(seacepta,podraserDROP,LOG,REJECT,..)
Guarpidadeflags:
s:sourceaddress.Ej:s192.168.1.0/24
d:destino.Ej:d84.56.73.3
p:tipodeprotocolo(TCP,UDP,ICMP).Ej:pTCP
sport:puertodeorigen
dport:puertodedestino
i=ininterface:elinterfazporelqueseentra(eth0,eth1,ppp0,)
o=outinterface:elinterfazporelquesesale(eth0,eth1,ppp0,)
Notas:
iseusaconreglasINPUTyFORWARD

oseusaconreglasFORWARDyOUTPUT
Apartirdeestasnormasbsicas,conociendolaanatomabsicadeunaregla,yviendoejemplosya
tenemos
suficientematerialparahacernosconeldominiodeIPTABLES.
4.Ejemplosdeconfiguracin.
Ejemplodefirewallsimple.
Hala,ahvavolcado:
#!/bin/sh
###################################################
##SCRIPTdeIPTABLES##
##PelloXabierAltadillIzura##
##I+D+I+Ientiemporecord##
##Investigacion,Desarrollo,##
##InnovacioneIMPLANTACION##
####
##Estescriptesdeejemplo##
##ynoeselmejorejemplo,##
##perofuncionaenRedHat7.2##
##yesmuypedagogico##
###################################################
##NotasparausuariosdeIPCHAINS:
#ipchainseiptablessonmodulosdelkernelque
#NOpuedenconvivirjuntos
#DENYahoraesDROP
#LosLOGseguardandeotraforma
echonAplicandoReglasdeFirewall...
##Instalandomodulos
modprobeip_tables
modprobeip_nat_ftp
modprobeip_conntrack_ftp
##Variables
EXTIF="eth0"#Laquevaalrouter
INTIF="eth1"#LaquevaalaLAN
##Primerasreglas
/sbin/iptablesPINPUTACCEPT#INPUTseaceptapordefectoMALHECHO
/sbin/iptablesFINPUT
/sbin/iptablesPOUTPUTACCEPT#OUTPUTseaceptapordefecto,weno..
/sbin/iptablesFOUTPUT
/sbin/iptablesPFORWARDACCEPT#FORWARDseaceptapordefectobuf
/sbin/iptablesFFORWARD
/sbin/iptablestnatF

##sedeniega80yseguardalog(ejemplo)
/sbin/iptablesAINPUTi$INTIFs0.0.0.0/0pTCPdportwwwjLOGlogprefix
"IPTablesFW>"
/sbin/iptablesAINPUTi$INTIFs0.0.0.0/0pTCPdportwwwjDROP
##Accesoal3128(proxysquid)desdeLAN
/sbin/iptablesAINPUTi$INTIFs192.168.1.0/24pTCPdport3128jACCEPT
#Elrestosetira
/sbin/iptablesAINPUTi$INTIFs0.0.0.0/0pTCPdport3128jDROP
##Accesoal143desdeLAN
/sbin/iptablesAINPUTi$INTIFs192.168.1.0/24pTCPdport143jACCEPT
##AccesoalsshdesdelaLAN
/sbin/iptablesAINPUTi$EXTIFs213.195.64.0/24pTCPdport22jACCEPT
##Accesoalsshunrangoexterno
/sbin/iptablesAINPUTi$EXTIFs213.195.64.0/24pTCPdport22jACCEPT
#elrestosetira
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0pTCPdport22jDROP
##Accesoalpuerto25
/sbin/iptablesAINPUTi$EXTIFs213.191.89.0/24pTCPdport25jACCEPT
/sbin/iptablesAINPUTi$INTIFs192.168.1.0/24pTCPdport25jACCEPT
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0pTCPdport25jDROP
##FORWARD
#Quemehagalogdetodoelforward
/sbin/iptablesAFORWARDjLOG
##HeaquielforwardparalaLAN,unareglamgica
iptablestnatAPOSTROUTINGoeth1jMASQUERADE
#Esepeazodebitquehayquehabilitar
echo1>/proc/sys/net/ipv4/ip_forward
Ejemplodefirewallmscompleto
Esteejemploesalgomsserio,yaquelaregladeinputpordefectoesDROP.Estapolticade
reglasesla
mssegura,yaquepordefectosedenegarTODO,ypocoapocosevanhabilitandolasentradas
precisas.
#!/bin/sh
##SCRIPTdeIPTABLES
##PelloXabierAltadillIzura
echonAplicandoReglasdeFirewall...
##Paramoselipchainsyquitamoselmodulo
/etc/rc.d/init.d/firewallstop
rmmodipchains
##Instalandomodulos

modprobeip_tables
modprobeip_nat_ftp
modprobeip_conntrack_ftp
##Variables
IPTABLES=iptables
EXTIF="eth1"
INTIF="eth0"
##Enestecaso,
##latarjetaeth1eslaquevaalROUTERylaeth0ladelaLAN
##Primerasreglas
/sbin/iptablesPINPUTDROP
/sbin/iptablesFINPUT
/sbin/iptablesPOUTPUTACCEPT
/sbin/iptablesFOUTPUT
/sbin/iptablesPFORWARDACCEPT
/sbin/iptablesFFORWARD
/sbin/iptablestnatF
###Enprincipio,silasreglasINPUTpordefectohacenDROP,nohariafalta
###metermasreglas,perositemporalmentesepasaaACCEPTnoestademas.
##TodoloquevienedeciertaIPsedejapasar(administradoresremotos)
/sbin/iptablesAINPUTi$EXTIFs203.175.34.0/24d0.0.0.0/0jACCEPT
##Ellocalhostsedeja
/sbin/iptablesAINPUTilojACCEPT
/sbin/iptablesAOUTPUTolojACCEPT
##Aceptaralexterioral80yal443
#Permitirsalidaal80
/sbin/iptablesAINPUTi$EXTIFptcpsport80jACCEPT
/sbin/iptablesAOUTPUTo$EXTIFptcpdport80jACCEPT
#Permitirsalidaal443
/sbin/iptablesAINPUTi$EXTIFptcpsport443jACCEPT
/sbin/iptablesAOUTPUTo$EXTIFptcpdport443jACCEPT
##SALIDASMTPParaqueelservidorsepuedaconectaraotrosMTA
#PermitirsalidaSMTP
/sbin/iptablesAINPUTi$EXTIFptcpsport25jACCEPT
/sbin/iptablesAOUTPUTo$EXTIFptcpdport25jACCEPT
##SALIDAFTPParaqueelservidorsepuedaconectaraFTPs
/sbin/iptablesAINPUTi$EXTIFptcpsport21mstatestateESTABLISHEDjACCEPT
/sbin/iptablesAOUTPUTo$EXTIFptcpdport21mstatestateNEW,ESTABLISHEDj
ACCEPT
#ftpactivo
/sbin/iptablesAINPUTi$EXTIFptcpsport20mstatestateESTABLISHED,RELATEDj
ACCEPT
/sbin/iptablesAOUTPUTo$EXTIFptcpdport20mstatestateESTABLISHEDj
ACCEPT

#ftppasivo
/sbin/iptablesAINPUTi$EXTIFptcpsport1024:65535dport1024:65535mstatestate
ESTABLISHEDjACCEPT
/sbin/iptablesAOUTPUTo$EXTIFptcpsport1024:65535dport1024:65535mstate
stateESTABLISHED,RELATEDjACCEPT
##Elaccesoal19720desdefuera,DENEGADO
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0d0.0.0.0/0ptcpdport19720jDROP
##Elaccesoal19720desdedentro,ACEPTADO
/sbin/iptablesAINPUTi$INTIFs192.168.9.0/24ptcpdport19720jACCEPT
##Elaccesoal19721desdefuera,DENEGADO
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0d0.0.0.0/0ptcpdport19721jDROP
##ElaccesoalSSHdesdefuera,DENEGADO
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0d0.0.0.0/0ptcpdport1972jDROP
##ElaccesoalSMTPdesdedentro,permitido.
/sbin/iptablesAINPUTi$INTIFptcpdport25jACCEPT
##ElaccesoalSMTPdesdefuera,DENEGADO
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0d0.0.0.0/0ptcpdport25jDROP
##Accesoal80desdeelinteriorACCEPTADOPARADOSIPs
/sbin/iptablesAINPUTi$INTIFs192.168.9.11/32ptcpdport80jACCEPT
/sbin/iptablesAINPUTi$INTIFs192.168.9.54/32ptcpdport80jACCEPT
##Accesoal80desdeelinteriorDENEGADOPARAELRESTO
#/sbin/iptablesAINPUTi$INTIFs192.168.9.0/24ptcpdport80jDROP
##AccesoalPROXY
/sbin/iptablesAINPUTi$INTIFs192.168.9.0/24ptcpdport8082jACCEPT
/sbin/iptablesAINPUTi$INTIFs192.168.10.0/24ptcpdport8082jACCEPT
/sbin/iptablesAINPUTs127.0.0.0/8ptcpdport8082jACCEPT
#Desdeelexteriordenegado
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0ptcpdport8082jDROP
##AccesoaPOP3eIMAPdesdeelEXTERIOR,DENEGADO
/sbin/iptablesAINPUTi$INTIFs192.168.9.0/24ptcpdport110jACCEPT
/sbin/iptablesAINPUTi$INTIFs192.168.9.0/24ptcpdport143jACCEPT
/sbin/iptablesAINPUTi$INTIFs192.168.10.0/24ptcpdport110jACCEPT
/sbin/iptablesAINPUTi$INTIFs192.168.10.0/24ptcpdport143jACCEPT
##AccesoaPOP3eIMAPdesdeelEXTERIOR,DENEGADO
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0ptcpdport110jDROP
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0ptcpdport143jDROP
##Accesoal8082desdefuera,DENEGADO
/sbin/iptablesAINPUTi$EXTIFs0.0.0.0/0ptcpdport8082jDROP
##FORWARD
#Quemehagalogdetodoelforward

#/sbin/iptablesAFORWARDjLOG
#Heaquielforward
##Normageneral
##iptablestnatAPOSTROUTINGoeth1jMASQUERADE
iptablestnatAPOSTROUTINGoeth1s192.168.9.11/32jMASQUERADE
iptablestnatAPOSTROUTINGoeth1s192.168.9.16jMASQUERADE
iptablestnatAPOSTROUTINGoeth1s192.168.9.54/32jMASQUERADE
iptablestnatAPOSTROUTINGoeth1s192.168.9.0/24jMASQUERADE
iptablestnatAPOSTROUTINGoeth1s192.168.10.0/24jMASQUERADE
#Habilitarelforwarding
echo1>/proc/sys/net/ipv4/ip_forward

5.Reglasdeproteccin
Tranquilos,aqunovamosahablardelaltimamazadecartasMagicquemehecomprado,nide
formulas
parasalirairososjugandoaLaLlamadadeCthulhu,entreotrascosasporquenojuegoaesascosas
raras.
Enestabreveseccinlistamosalgunasreglasparaprotegernuestroequipoyporextensinlared,
deciertosataquesmuyhabitualesenlasredescomoelsmurfyotrasformasdeinundacinyDoS.
Esrecomendableusartodasestasnormas?Segncomoadministremoselniveldeparanoia.
Nota:hayquedarvaloresconcretosalasvariables$
#Deshabilitarbroadcast
/bin/echo"1">/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#Deshabilitarelpingquizdiscutible.
/bin/echo"1">/proc/sys/net/ipv4/icmp_echo_ignore_all

#Deshabilitarlaredireccindelping
/bin/echo"0">/proc/sys/net/ipv4/conf/all/accept_redirects
#Registrarlosaccesosextraos,paquetesfalseados,etc..
/bin/echo"1">/proc/sys/net/ipv4/conf/all/log_martians
#AntifloodingoinundacindetramasSYN.
iptablesNsynflood
iptablesAINPUTi$IFACEptcpsynjsynflood
iptablesAsynfloodmlimitlimit1/slimitburst4jRETURN
iptablesAsynfloodjDROP

#Guardarlosaccesosconpaquetesfragmentados,recursoutilizadoparatirar
#servidoresyotrasmaldades(bugenApacheporejemplo)
iptablesAINPUTi$IFACEfjLOGlogprefix"Fragmento!"
iptablesAINPUTi$IFACEfjDROP


#Antispoofing(falseodeiporigen)
iptablesAINPUTi$IFACEs$IPADDRjDROP
iptablesAINPUTi$IFACEs$CLASS_AjDROP
iptablesAINPUTi$IFACEs$CLASS_BjDROP
iptablesAINPUTi$IFACEs$CLASS_CjDROP
iptablesAINPUTi$IFACEs$CLASS_D_MULTICASTjDROP
iptablesAINPUTi$IFACEs$CLASS_E_RESERVED_NETjDROP
iptablesAINPUTi$IFACEd$LOOPBACKjDROP
iptablesAINPUTi$IFACEd$BROADCASTjDROP
(bienexplicadoenelscriptdelinuxguruz)
#ProxyTransparent:peticionesalpuerto80redirigiralSQUID(3128)
iptablestnatAPREROUTINGptcps0.0.0.0/0dport80jREDIRECTto3128

También podría gustarte