Sei sulla pagina 1di 22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

IPTABLES
Manualprctico
(1.2)

Enestemanualsemuestranlashabitualesarquitecturasderedesconfirewallylaformademontar
iptablesparacadacaso,condistintasopcionesparacadaejemplo.
1.2Revision:aadidoslosmismoscasosperoconDROPpordefecto.
PorPelloXabierAltadillIzura
PelloAltadillIngenieroInformticoporlaUPVEHU
http://www.pello.info/forum/iptables
(Actualizacionesyejemplosenhttp://www.pello.infoVERSINPDF)
1.Quesunfirewall
2.Quesiptables
3.Algrano:creandounfirewallconiptables
3.1Protegerlapropiamquina
3.2FirewalldeunaLANconsalidaainternet
3.3FirewalldeunaLANconsalidaainternetconDMZ
3.4FirewalldeunaLANconsalidaainternetyVPNS
3.5Firewallpuroyduroentreredes
3.6FirewallconpolticapordefectoDROP
4.Cmodepurarelfuncionamientodelfirewall
Enlaces,notas,autor

1.Quesunfirewall
Unfirewallesundispositivoquefiltraeltrficoentreredes,comomnimodos.Elfirewallpuedeserun
dispositivofsicoounsoftwaresobreunsistemaoperativo.Engeneraldebemosverlocomounacajacon
DOSomasinterfacesderedenlaqueseestablecenunareglasdefiltradoconlasquesedecidesiuna
conexindeterminadapuedeestablecerseono.Inclusopuedeirmsallyrealizarmodificacionessobre
lascomunicaciones,comoelNAT.
Esaseraladefinicingenrica,hoyendiaunfirewallesunhardwareespecificoconunsistemaoperativo
ounaIOSquefiltraeltrficoTCP/UDP/ICMP/../IPydecidesiunpaquetepasa,semodifica,seconvierte
osedescarta.Paraqueunfirewallentreredesfuncionecomotaldebeteneralmenosdostarjetasdered.
Estaseralatipologaclsicadeunfirewall:

Figura1:esquemadefirewalltpicoentreredlocaleinternet

Esquematpicodefirewallparaprotegerunaredlocalconectadaainternetatravsdeunrouter.El
firewalldebecolocarseentreelrouter(conunnicocable)ylaredlocal(conectadoalswitchoalhubde
laLAN)
Dependiendodelasnecesidadesdecadared,puedeponerseunoomsfirewallsparaestablecer
http://www.pello.info/filez/firewall/iptables.html

1/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

distintospermetrosdeseguridadentornoaunsistema.Esfrecuentetambinquesenecesiteexponer
algnservidorainternet(comoeselcasodeunservidorweb,unservidordecorreo,etc..),yenesos
casosobviamenteenprincipiosedebeaceptarcualquierconexinaellos.Loqueserecomiendaenesa
situacinessituareseservidorenlugarapartedelared,elquedenominamosDMZozona
desmilitarizada.Elfirewalltieneentoncestresentradas:

Figura2:esquemadefirewallentreredlocaleinternetconzonaDMZparaservidoresexpuestos

Enlazonadesmilitarizadasepuedenponertantosservidorescomosenecesiten.Conestaarquitectura,
permitimosqueelservidorseaaccesibledesdeinternetdetalformaquesiesatacadoyseganaacceso
al,laredlocalsigueprotegidaporelfirewall.EstaestructuradeDMZpuedehacersetambinconun
doblefirewall(aunquecomosevesepuedeusarunnicodispositivoconalmenostresinterfacesde
red).Seraunesquemacomoeste:

Figura3:esquemadefirewallentreredlocaleinternetconzonaDMZparaservidoresexpuestoscreadocondoblefirewall(permetro)

Losfirewallssepuedenusarencualquierred.Eshabitualtenerloscomoproteccindeinternetenlas
empresas,aunqueahtambinsuelentenerunadoblefuncin:controlarlosaccesosexternoshacia
dentroytambinlosinternoshaciaelexteriorestoltimosehaceconelfirewallofrecuentementeconun
proxy(quetambinutilizanreglas,aunquedemsaltonivel).
Tambin,enempresasdehostingconmuchosservidoresalojadoslonormalesencontrarnosunooms
firewallsyaseafiltrandotodalainstalacinopartedeella:

http://www.pello.info/filez/firewall/iptables.html

2/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

Figura4:esquemadefirewallentreredes,enlaquesolosefiltraynosehaceNAT

Seaeltipodefirewallquesea,generalmentenotendrmasqueunconjuntodereglasenlasquese
examinaelorigenydestinodelospaquetesdelprotocolotcp/ip.Encuantoaprotocolosesprobableque
seancapacesdefiltrarmuchostiposdeellos,nosololostcp,tambinlosudp,losicmp,losgreyotros
protocolosvinculadosavpns.Estepodraser(enpseudolenguaje)unelconjuntodereglasdeunfirewall
delprimergrfico:
PoliticapordefectoACEPTAR.
TodoloquevengadelaredlocalalfirewallACEPTAR
Todoloquevengadelaipdemicasaalpuertotcp22ACEPTAR
Todoloquevengadelaipdecasadeljefealpuertotcp1723ACEPTAR
Todoloquevengadehora.rediris.esalpuertoudo123ACEPTAR
TodoloquevengadelaredlocalyvayaalexteriorENMASCARAR
Todoloquevengadelexterioralpuertotcp1al1024DENEGAR
Todoloquevengadelexterioralpuertotcp3389DENEGAR
Todoloquevengadelexterioralpuertoudp1al1024DENEGAR

Endefinitivaloquesehacees:
HabilitaelaccesoapuertosdeadministracinadeterminadasIPsprivilegiadas
Enmascaraeltraficodelaredlocalhaciaelexterior(NAT,unapeticindeunpcdelaLANsaleal
exteriorconlaippblica),parapodersalirainternet
Deniegaelaccesodesdeelexteriorapuertosdeadministracinyatodoloqueesteentre1y1024.
Haydosmanerasdeimplementarunfirewall:
1)PolticapordefectoACEPTAR:enprincipiotodoloqueentraysaleporelfirewallseaceptaysolose
denegarloquesedigaexplcitamente.
2)PolticapordefectoDENEGAR:todoestadenegado,ysolosepermitirpasarporelfirewallaquellos
quesepermitaexplcitamente.
Comoesobvioimaginar,laprimerapolticafacilitamucholagestindelfirewall,yaquesimplementenos
tenemosquepreocupardeprotegeraquellospuertosodireccionesquesabemosquenosinteresael
restonoimportatantoysedejapasar.Porejemplo,siqueremosprotegerunamquinalinux,podemos
hacerunnetstatln(onetstatan,onetstatputa|grepLISTEN),saberquepuertosestnabiertos,poner
reglasparaprotegeresospuertosyyaest.Paraquvamosaprotegerunpuertoquerealmentenunca
sevaaabrir?
Elnicoproblemaquepodemosteneresquenocontrolemosqueesloqueestaabierto,oqueenun
http://www.pello.info/filez/firewall/iptables.html

3/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

momentodadoseinstaleunsoftwarenuevoqueabraunpuertodeterminado,oquenosepamosque
determinadospaquetesICMPsonpeligrosos.SilapolticapordefectoesACEPTARynoseprotege
explcitamente,noslaestamosjugandounpoco.
Encambio,silapolticapordefectoesDENEGAR,anoserquelopermitamosexplcitamente,elfirewall
seconvierteenunautnticoMUROinfranqueable.Elproblemaesqueesmuchomsdifcilprepararun
firewallas,yhayquetenermuyclarocomofuncionaelsistema(seaiptablesoelquesea)yqueeslo
quesetienequeabrirsincaerenlatentacindeempezarameterreglassuperpermisivas.
Estaconfiguracindefirewalleslarecomendada,aunquenoesaconsejableusarlasinosedomina
mnimamenteelsistema.Unodelosobjetosprincipalesdeestedocumentoesmostrarlaformadecrear
estetipodefirewalls.
IMPORTANTE
Elordenenelqueseponenlasreglasdefirewallesdeterminante.Normalmentecuandohayquedecidir
quesehaceconunpaquetesevacomparandoconcadaregladelfirewallhastaqueseencuentrauna
queleafecta(match),ysehaceloquedicteestaregla(aceptarodenegar)despusdeesoNOSE
MIRARNMSREGLASparaesepaquete.Culeselpeligro?Siponemosreglasmuypermisivas
entrelasprimerasdelfirewall,puedequelassiguientesnoseapliquenynosirvandenada.

2.Quesiptables
IPtablesesunsistemadefirewallvinculadoalkerneldelinuxquesehaextendidoenormementeapartir
delkernel2.4deestesistemaoperativo.Aligualqueelanteriorsistemaipchains,unfirewalldeiptables
noescomounservidorqueloiniciamosodetenemosoquesepuedacaerporunerrorde
programacin(estoesunapequeamentira,hatenidoalgunavulnerabilidadquepermiteDoS,peronunca
tendrtantopeligrocomolasaplicacionesqueescuchanendeterminadopuertoTCP):iptablesesta
integradoconelkernel,espartedelsistemaoperativo.Cmoseponeenmarcha?Realmenteloquese
haceesaplicarreglas.Paraellosseejecutaelcomandoiptables,conelqueaadimos,borramos,o
creamosreglas.Porellounfirewalldeiptablesnoessinounsimplescriptdeshellenelquesevan
ejecutandolasreglasdefirewall.
Notas:bueno,paralosmsgeeksytocapelotas.Vale,sepuedeimplementarunscriptdeinicioen
/etc/rc.d/INIT.d(o/etc/INIT.d)conelquehagamosqueiptablesse"inicieopare"comounservidorms.
Lopodemoshacernosotrosoesprobablequevengaenladistribucin(comoenredhatporejemplo).
Tambinsepuedensalvarlasreglasaplicadasconelcomandoiptablessaveenunficheroygestionar
eseficheroconunaaplicacinofrontenddesdelaXodesdewebmin.
Vale,tenemosunamquinalinuxconsoporteparaiptables,tienereglasaplicadasyempiezana
llegar/salir/pasarpaquetes.Nonosliemos:olvidemoscuantastarjetasderedhay,quedireccionesiptiene
lamquinayolvidemossielpaqueteentraosale.Lasreglasdefirewallestnaniveldekernel,yal
kernelloquelellegaesunpaquete(digamos,unmarrn))ytienequedecidirquehacerconl.El
kernelloquehacees,dependiendosielpaqueteesparalapropiamaquinaoparaotramaquina,
consultarlasreglasdefirewallydecidirquehacerconelpaquetesegnmandeelfirewall.Esteesel
caminoqueseguiraunpaqueteenelkernel:

Figura5:cuandounpaqueteuotracomunicacinllegaalkernelconiptablessesigueestecamino

http://www.pello.info/filez/firewall/iptables.html

4/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

Comoseveenelgrfico,bsicamentesemirasielpaqueteestadestinadoalapropiamaquinaosivaa
otra.Paralospaquetes(odatagramas,segnelprotocolo)quevanalapropiamaquinaseaplicanlas
reglasINPUTyOUTPUT,yparafiltrarpaquetesquevanaotrasredesomaquinasseaplican
simplementereglasFORWARD.
INPUT,OUTPUTyFORWARDsonlostrestiposdereglasdefiltrado.Peroantesdeaplicaresasreglases
posibleaplicarreglasdeNAT:estasseusanparahacerredireccionesdepuertosocambiosenlasIPsde
origenydestino.Veremosejemplos.
EinclusoantesdelasreglasdeNATsepuedenmeterreglasdetipoMANGLE,destinadasamodificarlos
paquetessonreglaspococonocidasyesprobablequenolasusen.
Portantotenemostrestiposdereglaseniptables:
MANGLE
NAT:reglasPREROUTING,POSTROUTING
FILTER:reglasINPUT,OUTPUT,FORWARD.

3.Algrano:creandounfirewallconiptables
Enestetutorialsehaintentadodarunabreveintroduccinsobreloqueesunfirewall,sustipologas
bsicasyenconcretosepresentaelsistemaiptables.Perovamosalgranoyempezamosaver
configuracionesdefirewallconiptables,empezandodesdelamsbsicaalasmscomplejas,enlasque
seestableceladenegacincomopolticapordefecto.
Nota:serecomiendaencarecidamenteirpracticandoestasreglasenalgunamaquinalinuxdisponible,y
especialmentehacerusodelaherramientaiptrafparadepurarycomprobarelfuncionamientodeiptables.
ConiptrafpodemoscomprobarsilasconexionesTCP/IPselleganaestablecerono.Unaconexintcp/ip
empiezaconelthreewayhandshake:
LamaquinaquedeseaconectarseaotraenviaunpaqueteconflanSYN
Silaotramaquinaacepta,enviaunSYN/ACK
Entonceslamquinaestablecelaconexin.
Sielfirewallestadenegandolaconexin,coniptrafveremosquelamaquinaorigensolomandapaquetes
conelflanS(deSYN),yquedelotroladonosalenada.Saberusariptrafnosayudarmucho.

3.1Protegerlapropiamquina
Muybien,tenemosunamquinalinuxpinchadaeninternetyqueremosprotegerlaconsupropiofirewall.
Lonicoquetenemosquehacerescrearunscriptdeshellenelquesevanaplicandolasreglas.
Losscriptsdeiptablespuedenteneresteaspecto:
Saludoalaaficin(echo)
Borradodelasreglasaplicadasactualmente(flush)
AplicacindepolticaspordefectoparaINPUT,OUPUT,FORWARD
Listadodereglasiptables.

Ojoconelordendelasreglas!
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##Ejemplodescriptparaprotegerlapropiamquina
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar

http://www.pello.info/filez/firewall/iptables.html

5/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
/sbin/iptablesAINPUTilojACCEPT
#AnuestraIPledejamostodo
iptablesAINPUTs195.65.34.234jACCEPT
#AuncolegaledejamosentraralmysqlparaquemantengalaBBDD
iptablesAINPUTs231.45.134.23ptcpdport3306jACCEPT
#AundiseadorledejamosusarelFTP
iptablesAINPUTs80.37.45.194ptcpdport20:21jACCEPT
#Elpuerto80dewwwdebeestarabierto,esunservidorweb.
iptablesAINPUTptcpdport80jACCEPT
#Yelresto,locerramos
iptablesAINPUTptcpdport20:21jDROP
iptablesAINPUTptcpdport3306jDROP
iptablesAINPUTptcpdport22jDROP
iptablesAINPUTptcpdport10000jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

Notaparafreaksygeeks:siiii,queyalose,sepuedemejorarestescriptusandovariables,sepuede
ponerelcomandoconelpathcompleto,perolimtenseahacercopypaste.Paraelrestodemortales,no
olvidarsedeponerleflagsdeejecucin:chmod+xfirewall1.shochmod750firewall1.sh
Enfin,yaseve,unscriptdelosmssimple,conunaspocasreglasconlasquecerramospuertosal
pblicoalosquenotienenporqueteneracceso,salvoel80.Perocualquieraconalgodeojosehabr
dadocuentadequenisefiltraelUDPnielICMP.Apostaracualquiercosaaqueelsistematienealgn
puertoudpabierto,yademspeligrosocomoelSNMP.Comohedichoanteriormente,enestetipode
firewallesrecordablehacerunnetstatparaverquepuertosestnenestadodeescucha(abiertos),y
salvequeunrootkitnoshayamodificadolosbinarios,netstatnosdarlainformacinprecisaque
necesitamos.Haygentequesedecantaporhacerseunnmapasmismos.Cuidado:dependiendode
cmoloejecutemosquiznonosmuestretodoslospuertos,yaquesuelemirarlosbienconocidos.
Imaginemosquehemosdadounrepasoanuestrosistema,yahorasiquetenemosmejoridentificados
lospuertostcpyudpabiertos.Peroporsiacasonoscuramosensaludyalfinaldelscriptcerraremosel
rangodepuertosdel1al1024,losreservadostantoparatcpcomoudp.
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##Ejemplodescriptparaprotegerlapropiamquina
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
/sbin/iptablesAINPUTilojACCEPT
#AnuestraIPledejamostodo
iptablesAINPUTs195.65.34.234jACCEPT
#AuncolegaledejamosentraralmysqlparaquemantengalaBBDD
iptablesAINPUTs231.45.134.23ptcpdport3306jACCEPT
#AundiseadorledejamosusarelFTP
iptablesAINPUTs80.37.45.194ptcpdport20:21jACCEPT
#Elpuerto80dewwwdebeestarabierto,esunservidorweb.
iptablesAINPUTptcpdport80jACCEPT
#Cerramosrangodelospuertosprivilegiados.Cuidadoconestetipode
#barreras,anteshayqueabriralosquesitienenacceso.
iptablesAINPUTptcpdport1:1024jDROP
iptablesAINPUTpudpdport1:1024jDROP
#Cerramosotrospuertosqueestanabiertos
iptablesAINPUTptcpdport3306jDROP

http://www.pello.info/filez/firewall/iptables.html

6/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

iptablesAINPUTptcpdport10000jDROP
iptablesAINPUTpudpdport10000jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

Sencillo,no?Ahorabastaconhacercopypastedeestasreglasyaplicarlasyajustarlasensusistema
(quizsusesPostgreSQL).Sitienemiedodeperderelcontroldeunamquinaremota,pruebeelscripten
unamquinalocalyasegresedequeaplicaloqueustedquiere.Funcionarvaafuncionarseguro.
VersinconDROPpordefecto
Vale,queremosquenuestramaquinaseainexcrutableyquesolotengaabiertounpuertoimprescindible
paradardeterminadoservicio.ConDROPpordefectoseprotegelamaquinaperfectamente,aunquehay
queaadiralgunasreglasparaquelapropiamquinaseacapazdesalirainternet.Paraqu?hombre,
porquelamaquinanecesitaactualizaciones,consultarDNSporudp,sacarcorreoetc.
Veamosunposiblescript:

#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##EjemplodescriptparaprotegerlapropiamquinaconDROPpordefecto
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto:DROP
iptablesPINPUTDROP
iptablesPOUTPUTDROP
iptablesPFORWARDDROP
##Empezamosafiltrar?no!empezamosaabrir!porqueahoraestaTODOdenegado.
##Debemosdecirdemaneraexplicitaquesloquequeremosabrir
#Operarenlocalhostsinlimitaciones
/sbin/iptablesAINPUTilojACCEPT
/sbin/iptablesAOUTPUTolojACCEPT
#AnuestraIPledejamostodo
iptablesAINPUTs195.65.34.234jACCEPT
iptablesAOUTPUTd195.65.34.234jACCEPT
#EsteeselservicioqueDAlamaquinaainternet,portantotodopaqueteentranteseaceptapara
#esepuertoylossalientesvinculadosseaceptan.
/sbin/iptablesAINPUTptcpmtcpdport80jACCEPT
/sbin/iptablesAOUTPUTptcpmtcpsport80mstatestateRELATED,ESTABLISHEDjACCEPT
#Permitimosquelamaquinapuedasaliralaweb
/sbin/iptablesAINPUTptcpmtcpsport80mstatestateRELATED,ESTABLISHEDjACCEPT
/sbin/iptablesAOUTPUTptcpmtcpdport80jACCEPT
#Yatambienawebsseguras
/sbin/iptablesAINPUTptcpmtcpsport443mstatestateRELATED,ESTABLISHEDjACCEPT
/sbin/iptablesAOUTPUTptcpmtcpdport443jACCEPT
#ReglasnecesariasparaFTPpasivoyactivo.SepermitenconexionesentrantesYAestablecidas
/sbin/iptablesAINPUTptcpmtcpsport20:21mstatestateRELATED,ESTABLISHEDjACCEPT
/sbin/iptablesAOUTPUTptcpmtcpdport20:21jACCEPT
/sbin/iptablesAINPUTptcpmtcpsport1024:65535dport1024:65535mstatestateESTABLISHEDjACCEPT
/sbin/iptablesAOUTPUTptcpmtcpdport1024:65535mstatestateNEW,RELATED,ESTABLISHEDjACCEPT
#PermitimoslaconsultaaunprimerDNS
/sbin/iptablesAINPUTs211.95.64.39pudpmudpsport53jACCEPT
/sbin/iptablesAOUTPUTd211.95.64.39pudpmudpdport53jACCEPT
#PermitimoslaconsultaaunsegundoDNS
/sbin/iptablesAINPUTs211.95.79.109pudpmudpsport53jACCEPT
/sbin/iptablesAOUTPUTd211.95.79.109pudpmudpdport53jACCEPT
#Permitimosconsultarelrelojdehora.rediris.es(unpentium166)parasincronizarse
/sbin/iptablesAINPUTs130.206.3.166pudpmudpdport123jACCEPT
/sbin/iptablesAOUTPUTd130.206.3.166pudpmudpsport123jACCEPT
#BarreradebackupporsicambiamosamodoACCEPTtemporalmente
#Conestoprotegemoslospuertosreservadosyotroswellknown
/sbin/iptablesAINPUTptcpmtcpdport1:1024jDROP
/sbin/iptablesAINPUTpudpmudpdport1:1024jDROP

http://www.pello.info/filez/firewall/iptables.html

7/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

/sbin/iptablesAINPUTptcpmtcpdport1723jDROP
/sbin/iptablesAINPUTptcpmtcpdport3306jDROP
/sbin/iptablesAINPUTptcpmtcpdport5432jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

3.2FirewalldeunaLANconsalidaainternet
Ahoravamosaverunaconfiguracindefirewalliptablesparaeltpicocasoderedlocalquenecesita
salidaainternet.

Figura6:esquemadefirewalltpicoentreredlocaleinternet

Quesloquehacefalta?Obviamente,unareglaquehagaNAThaciafuera(enmascaramientoen
iptables),conloqueseharadosvecesNATenelfirewallyenelrouter.Entreelrouteryelfirewalllo
normalesquehayaunaredprivada(192.168.1.1y192.168.1.2porejemplo),aunquedependiendodelas
necesidadespuedequelosdostenganIPpblica.ElroutersesuponequehaceunNATcompletohacia
dentro(quizsalvopuerto23),oseaquedesdeelexteriornosellegaalroutersinoquedeforma
transparentese"choca"contraelfirewall.Lonormalenestetipodefirewallsesponerlapolticapor
defectodeFORWARDendenegar(DROP),peroesolovemosmsadelante.
Veamoscomoseraestefirewallgateway:
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##Ejemplodescriptparafirewallentreredlocaleinternet
##
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
/sbin/iptablesAINPUTilojACCEPT
#Alfirewalltenemosaccesodesdelaredlocal
iptablesAINPUTs192.168.10.0/24ieth1jACCEPT
#Ahorahacemosenmascaramientodelaredlocal
#yactivamoselBITDEFORWARDING(imprescindible!!!!!)
iptablestnatAPOSTROUTINGs192.168.10.0/24oeth0jMASQUERADE
#Conestopermitimoshacerforwarddepaquetesenelfirewall,osea
#queotrasmquinaspuedansaliratravesdelfirewall.
echo1>/proc/sys/net/ipv4/ip_forward
##Yahoracerramoslosaccesosindeseadosdelexterior:
#Nota:0.0.0.0/0significa:cualquierred
#Cerramoselrangodepuertobienconocido
iptablesAINPUTs0.0.0.0/0ptcpdport1:1024jDROP
iptablesAINPUTs0.0.0.0/0pudpdport1:1024jDROP
#Cerramosunpuertodegestin:webmin
iptablesAINPUTs0.0.0.0/0ptcpdport10000jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

http://www.pello.info/filez/firewall/iptables.html

8/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

Perocomosomosmuymalvadosqueremosquelosempleadossolamentepuedannavegarporinternet,
denegandoelaccesoaKazaaoedonkey.Estaseraunaconfiguracinsimpleperoefectiva.
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##Ejemplodescriptparafirewallentreredlocaleinternet
##confiltroparaquesolosepuedanavegar.
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
/sbin/iptablesAINPUTilojACCEPT
#Alfirewalltenemosaccesodesdelaredlocal
iptablesAINPUTs192.168.10.0/24ieth1jACCEPT
##AhoraconreglaFORWARDfiltramoselaccesodelaredlocal
##alexterior.Comoseexplicaantes,alospaquetesquenovandirigidosal
##propiofirewallselesaplicanreglasdeFORWARD
#Aceptamosquevayanapuertos80
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport80jACCEPT
#Aceptamosquevayanapuertoshttps
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport443jACCEPT
#AceptamosqueconsultenlosDNS
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport53jACCEPT
iptablesAFORWARDs192.168.10.0/24ieth1pudpdport53jACCEPT
#Ydenegamoselresto.Sisenecesitaalguno,yaavisaran
iptablesAFORWARDs192.168.10.0/24ieth1jDROP
#Ahorahacemosenmascaramientodelaredlocal
#yactivamoselBITDEFORWARDING(imprescindible!!!!!)
iptablestnatAPOSTROUTINGs192.168.10.0/24oeth0jMASQUERADE
#Conestopermitimoshacerforwarddepaquetesenelfirewall,osea
#queotrasmquinaspuedansaliratravesdelfirewall.
echo1>/proc/sys/net/ipv4/ip_forward
##Yahoracerramoslosaccesosindeseadosdelexterior:
#Nota:0.0.0.0/0significa:cualquierred
#Cerramoselrangodepuertobienconocido
iptablesAINPUTs0.0.0.0/0ptcpdport1:1024jDROP
iptablesAINPUTs0.0.0.0/0pudpdport1:1024jDROP
#Cerramosunpuertodegestin:webmin
iptablesAINPUTs0.0.0.0/0ptcpdport10000jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

Supongamosqueestefirewalltienealgunafuncinadicional:esunservidorproxyyademsesun
servidordecorreo.Darlefuncionalidadesdeestetipoaunfirewallnoesrecomendable,porquesinose
protegenbienesospuertososinoestactualizadoelsoftwarepuedenentrarenelfirewallabasede
xploitscomprometiendoTODAlaredlocal.Detodasformasmuchasempresasnosepuedenpermitiro
noquierentenerunamquinaparacadacosa,bastantelescuestaamuchasponerunfirewall.Portanto:
siseaadenserviciosquedebenestarabiertosalpblicoenelpropiofirewall,noslaestamosjugando,y
serecomiendapasarelservicioaotramquinayponerlaenlaDMZ.
Supongamostambinquelaempresatienecomercialesenrutayqueseconectanainternetdesdesu
porttilyconunaipdinmica.Supongamostambinqueeljefedelaempresaquiereaccederalared
localdesdecasaconunaconexinADSL.Ahoraenelfirewalldebieramostenerinstaladounservidor
SMTP,pop3,yunPPTPD.
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##Ejemplodescriptparafirewallentreredlocaleinternet

http://www.pello.info/filez/firewall/iptables.html

9/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

##conserviciosabiertosdepuerto25,110,y1723
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
iptablesAINPUTilojACCEPT
#Alfirewalltenemosaccesodesdelaredlocal
iptablesAINPUTs192.168.10.0/24ieth1jACCEPT
##Abrimoselaccesoapuertosdecorreo
#Abrimoselpuerto25,hayqueconfigurarbienelrelaydelservidorSMTP
iptablesAINPUTs0.0.0.0/0ptcpdport25jACCEPT
#Abrimoselpop3
iptablesAINPUTs0.0.0.0/0ptcpdport110jACCEPT
#Yabrimoselpuertopptpdparalaipdeladsldecasadeljefe
iptablesAINPUTs211.45.176.24ptcpdport1723jACCEPT
##AhoraconreglaFORWARDfiltramoselaccesodelaredlocal
##alexterior.Comoseexplicaantes,alospaquetesquenovandirigidosal
##propiofirewallselesaplicanreglasdeFORWARD
#Aceptamosquevayanapuertos80
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport80jACCEPT
#Aceptamosquevayanapuertoshttps
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport443jACCEPT
#AceptamosqueconsultenlosDNS
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport53jACCEPT
iptablesAFORWARDs192.168.10.0/24ieth1pudpdport53jACCEPT
#Ydenegamoselresto.Sisenecesitaalguno,yaavisaran
iptablesAFORWARDs192.168.10.0/24ieth1jDROP
#Ahorahacemosenmascaramientodelaredlocal
#yactivamoselBITDEFORWARDING(imprescindible!!!!!)
iptablestnatAPOSTROUTINGs192.168.10.0/24oeth0jMASQUERADE
#Conestopermitimoshacerforwarddepaquetesenelfirewall,osea
#queotrasmquinaspuedansaliratravesdelfirewall.
echo1>/proc/sys/net/ipv4/ip_forward
##Yahoracerramoslosaccesosindeseadosdelexterior:
#Nota:0.0.0.0/0significa:cualquierred
#Cerramoselrangodepuertobienconocido
iptablesAINPUTs0.0.0.0/0ieth0ptcpdport1:1024jDROP
iptablesAINPUTs0.0.0.0/0ieth0pudpdport1:1024jDROP
#Cerramosunpuertodegestin:webmin
iptablesAINPUTs0.0.0.0/0ieth0ptcpdport10000jDROP
#YcerramoselpuertodelservicioPPTPD,soloabiertoparaeljefe.
iptablesAINPUTs0.0.0.0/0ieth0ptcpdport1723jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

Msdifciltodava!
Ahoraqueremoscompartiralgnservicioperodeunservidorquetenemosdentrodelaredlocal,por
ejemploelIISdeunservidorwindows2000,yademspermitirlagestinremotaporterminalserverpara
estamquinaparaunaempresaexterna.Enestecasoloquehayquehaceresunredireccindepuerto.
Antesdeiptablesestosepodahacerfcilmenteconunservidorcomorinet.Rinetloquehacees
simplementeabrirunpuertoenelfirewallyalconectarsealtellevahastaelpuertodeotramquina,
comounatubera.ConIptablespodemoshacerredireccionesconunaventaja:noperdemosla
informacindeIPorigen,cosaqueconrinetsocurra.Enfin,veamoslaconfiguracin,conlasnuevas
reglasdeDNAT:
#!/bin/sh

http://www.pello.info/filez/firewall/iptables.html

10/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##Ejemplodescriptparafirewallentreredlocaleinternet
##conserviciosabiertosdepuerto25,110,y1723
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar
##REDIRECCIONES
#Todoloquevengaporelexterioryvayaalpuerto80loredirigimos
#aunamaquinainterna
iptablestnatAPREROUTINGieth0ptcpdport80jDNATto192.168.10.12:80
#LosaccesosdeunipdeterminadaaTerminalserverseredirigeneesa
#maquina
iptablestnatAPREROUTINGs221.23.124.181ieth0ptcpdport3389jDNATto192.168.10.12:3389
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
iptablesAINPUTilojACCEPT
#Alfirewalltenemosaccesodesdelaredlocal
iptablesAINPUTs192.168.10.0/24ieth1jACCEPT
##Abrimoselaccesoapuertosdecorreo
#Abrimoselpuerto25,hayqueconfigurarbienelrelaydelservidorSMTP
iptablesAINPUTs0.0.0.0/0ptcpdport25jACCEPT
#Abrimoselpop3
iptablesAINPUTs0.0.0.0/0ptcpdport110jACCEPT
#Yabrimoselpuertopptpdparalaipdeladsldecasadeljefe
iptablesAINPUTs211.45.176.24ptcpdport1723jACCEPT
##AhoraconreglaFORWARDfiltramoselaccesodelaredlocal
##alexterior.Comoseexplicaantes,alospaquetesquenovandirigidosal
##propiofirewallselesaplicanreglasdeFORWARD
#Aceptamosquevayanapuertos80
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport80jACCEPT
#Aceptamosquevayanapuertoshttps
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport443jACCEPT
#AceptamosqueconsultenlosDNS
iptablesAFORWARDs192.168.10.0/24ieth1ptcpdport53jACCEPT
iptablesAFORWARDs192.168.10.0/24ieth1pudpdport53jACCEPT
#Ydenegamoselresto.Sisenecesitaalguno,yaavisaran
iptablesAFORWARDs192.168.10.0/24ieth1jDROP
#Ahorahacemosenmascaramientodelaredlocal
#yactivamoselBITDEFORWARDING(imprescindible!!!!!)
iptablestnatAPOSTROUTINGs192.168.10.0/24oeth0jMASQUERADE
#Conestopermitimoshacerforwarddepaquetesenelfirewall,osea
#queotrasmquinaspuedansaliratravesdelfirewall.
echo1>/proc/sys/net/ipv4/ip_forward
##Yahoracerramoslosaccesosindeseadosdelexterior:
#Nota:0.0.0.0/0significa:cualquierred
#Cerramoselrangodepuertobienconocido
iptablesAINPUTs0.0.0.0/0ieth0ptcpdport1:1024jDROP
iptablesAINPUTs0.0.0.0/0ieth0pudpdport1:1024jDROP
#Cerramosunpuertodegestin:webmin
iptablesAINPUTs0.0.0.0/0ieth0ptcpdport10000jDROP
#YcerramoselpuertodelservicioPPTPD,soloabiertoparaeljefe.
iptablesAINPUTs0.0.0.0/0ieth0ptcpdport1723jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

Buenoyatenemosmontadalared,peroconvieneinsistirenqueestaltimaconfiguracin,conlas
redireccionesylosserviciosdecorreofuncionandoenelfirewallesbastanteinsegura.Quocurresi
http://www.pello.info/filez/firewall/iptables.html

11/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

hackeanelservidorIISdelaredlocal?Puesqueelfirewallnosirvedegrancosa,lopocoquepodra
hacerunavezsehaentradoenlaredlocalesevitarescaneoshaciaelexteriordesdelamquina
atacada,aunqueparaelloelfirewalldebieratenerunabuenaconfiguracincondenegacinpordefecto.
SinecesitamoseseservidorIIS,bastaconcomprarunatarjetaderedpor6odolaresycrearunaDMZ.

3.3FirewalldeunaLANconsalidaainternetconDMZ
Bueno,estosevacomplicando.Imaginemosquetenemosunaredparecidaalaanteriorperoahora
hacemoslascosasbienycolocamoseseservidorIISenunaDMZ:

Figura7:esquemadefirewallentreredlocaleinternetconzonaDMZparaservidoresexpuestos

Enestetipodefirewallhayquepermitir:
Accesodelaredlocalainternet.
Accesopblicoalpuertotcp/80ytcp/443delservidordelaDMZ
AccesodelservidordelaDMZaunaBBDDdelaLAN
ObviamentebloquearelrestodeaccesodelaDMZhacialaLAN.
QutipodereglassonlasquehayqueusarparafiltrareltrficoentrelaDMZylaLAN?Solopueden
serlasFORWARD,yaqueestamosfiltrandoentredistintasredes,nosonpaquetesdestinadosalpropio
firewall.
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##EjemplodescriptparafirewallentreredlocaleinternetconDMZ
##
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#Todoloquevengaporelexterioryvayaalpuerto80loredirigimos
#aunamaquinainterna
iptablestnatAPREROUTINGieth0ptcpdport80jDNATto192.168.3.2:80
#LosaccesosdeunipdeterminadaHTTPSseredirigeneesa
#maquina
iptablestnatAPREROUTINGieth0ptcpdport443jDNATto192.168.3.2:443
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
/sbin/iptablesAINPUTilojACCEPT
#Alfirewalltenemosaccesodesdelaredlocal
iptablesAINPUTs192.168.10.0/24ieth1jACCEPT
#AhorahacemosenmascaramientodelaredlocalydelaDMZ
#paraquepuedansalirhacafuera

http://www.pello.info/filez/firewall/iptables.html

12/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

#yactivamoselBITDEFORWARDING(imprescindible!!!!!)
iptablestnatAPOSTROUTINGs192.168.10.0/24oeth0jMASQUERADE
iptablestnatAPOSTROUTINGs192.168.3.0/24oeth0jMASQUERADE
#Conestopermitimoshacerforwarddepaquetesenelfirewall,osea
#queotrasmquinaspuedansaliratravesdelfirewall.
echo1>/proc/sys/net/ipv4/ip_forward
##PermitimoselpasodelaDMZaunaBBDDdelaLAN:
iptablesAFORWARDs192.168.3.2d192.168.10.5ptcpdport5432jACCEPT
iptablesAFORWARDs192.168.10.5d192.168.3.2ptcpsport5432jACCEPT
##permitimosabrirelTerminalserverdelaDMZdesdelaLAN
iptablesAFORWARDs192.168.10.0/24d192.168.3.2ptcpsport1024:65535dport3389jACCEPT
#hayquehacerloenunoyotrosentido
iptablesAFORWARDs192.168.3.2d192.168.10.0/24ptcpsport3389dport1024:65535jACCEPT
#porqueluego:
#CerramoselaccesodelaDMZalaLAN
iptablesAFORWARDs192.168.3.0/24d192.168.10.0/24jDROP
##CerramoselaccesodelaDMZalpropiofirewall
iptablesAINPUTs192.168.3.0/24ieth2jDROP
##Yahoracerramoslosaccesosindeseadosdelexterior:
#Nota:0.0.0.0/0significa:cualquierred
#Cerramoselrangodepuertobienconocido
iptablesAINPUTs0.0.0.0/0ptcpdport1:1024jDROP
iptablesAINPUTs0.0.0.0/0pudpdport1:1024jDROP
#Cerramosunpuertodegestin:webmin
iptablesAINPUTs0.0.0.0/0ptcpdport10000jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

Vamosaver:silasmquinasdelaDMZtienenunaippblicahayquetenermuchsimocuidadodeno
permitirelFORWARDpordefecto.SienlaDMZhayippblicaNOESNECESARIOHACER
REDIRECCIONESdepuerto,sinoquebastaconrutarlospaquetesparallegarhastalaDMZ.Estetipode
necesidadessurgencuandoporejemplotenemosdosmquinasconservidorweb(unapacheyunIIS)
Aculdelasdosleredirigimoselpuerto80?Nohaymaneradesaberlo(No,conservidoresvirtuales
tampoco,pinsalo),poresosedebenasignarIPspblicasoensudefectousarpuertosdistintos.
PortantohayqueprotegerconvenientementetodalaDMZ.Tampocoharafaltaenmascararlasalida
haciaelexteriordelaDMZ,sitieneunaippblicayatieneunapatapuestaeninternetobviamentehay
quedecirlealroutercomollegarhastaesaippblica.Aspodraserestared:

Figura8:esquemadefirewallentreredlocaleinternetconzonaDMZparaservidoresexpuestosusandoIPspblicas

Yestepodraserunfirewalladecuado:
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##EjemplodescriptparafirewallentreredlocaleinternetconDMZ
##peroconIPspblicas.
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...

http://www.pello.info/filez/firewall/iptables.html

13/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
/sbin/iptablesAINPUTilojACCEPT
#Alfirewalltenemosaccesodesdelaredlocal
iptablesAINPUTs192.168.10.0/24ieth1jACCEPT
#AhorahacemosenmascaramientodelaredlocalydelaDMZ
#paraquepuedansalirhacafuera
#yactivamoselBITDEFORWARDING(imprescindible!!!!!)
iptablestnatAPOSTROUTINGs192.168.10.0/24oeth0jMASQUERADE
#Conestopermitimoshacerforwarddepaquetesenelfirewall,osea
#queotrasmquinaspuedansaliratravesdelfirewall.
echo1>/proc/sys/net/ipv4/ip_forward
##Permitimoselaccesodesdeelexterioralospuertos80y443deDMZ
iptablesAFORWARDd212.194.89.152ptcpdport80jACCEPT
iptablesAFORWARDd212.194.89.152ptcpdport443jACCEPT
iptablesAFORWARDd212.194.89.150/30jDROP
##PermitimoselpasodelaDMZaunaBBDDdelaLAN:
iptablesAFORWARDs212.194.89.152d192.168.10.5ptcpdport5432jACCEPT
#enelotrosentidolomismo
iptablesAFORWARDs192.168.10.5d212.194.89.152ptcpsport5432jACCEPT
##permitimosabrirelTerminalserverdelaDMZdesdelaLAN
iptablesAFORWARDs192.168.10.0/24d212.194.89.152ptcpsport1024:65535dport3389jACCEPT
#hayquehacerloenunoyotrosentido
iptablesAFORWARDs212.194.89.152d192.168.10.0/24ptcpsport3389dport1024:65535jACCEPT
#porqueluego:
#CerramoselaccesodelaDMZalaLAN
iptablesAFORWARDs212.194.89.152d192.168.10.0/24jDROP
##CerramoselaccesodelaDMZalpropiofirewall
iptablesAINPUTs212.194.89.152ieth2jDROP
##Yahoracerramoslosaccesosindeseadosdelexterior:
#Nota:0.0.0.0/0significa:cualquierred
#Cerramoselrangodepuertobienconocido
iptablesAINPUTs0.0.0.0/0ptcpdport1:1024jDROP
iptablesAINPUTs0.0.0.0/0pudpdport1:1024jDROP
#Cerramosunpuertodegestin:webmin
iptablesAINPUTs0.0.0.0/0ptcpdport10000jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

ATENCIN
Merecelapenapararseaexplicarestapartedelfirewall:
##permitimosabrirelTerminalserverdelaDMZdesdelaLAN
iptablesAFORWARDs192.168.10.0/24d212.194.89.152ptcpsport1024:65535dport3389jACCEPT
#hayquehacerloenunoyotrosentido
iptablesAFORWARDs212.194.89.152d192.168.10.0/24ptcpsport3389dport1024:65535jACCEPT
#porqueluego:
#CerramoselaccesodelaDMZalaLAN
iptablesAFORWARDs212.194.89.152d192.168.10.0/24jDROP

Loquenosllevaadoscuestiones:
Porquhayqueexplicitarlaaberturaenunoyotrosentido?Porquelatercerareglacierratodoloque
vadelaDMZalaredlocal.Paraabrirelpuerto3389detcpesimprescindiblequeunpaquetedeidasea
capazdellegarhastalaDMZyqueasuvezpuedavolveralaLAN.Estodetenerqueespecificarla
aberturaenunoyotrosentidoserelpandecadadaenuniptablesconpolticaDROPpordefecto:
mejorproteccinperomstrabajo.
http://www.pello.info/filez/firewall/iptables.html

14/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

Porquseexplicitaelpuertodeorigen/destino1024:65535enlaprimeraysegundaregla?Imaginemos
queunhackerlograaccesoalamquinadelaDMZ.Sinoespecificamoselpuertodedestinoenesas
dosreglas,elhackerpuedeabrirCUALQUIERpuertodelaLANsiemprequepuedaestablecercomo
puertoorigensuyoeltcp/3389,cosafcilparaunhackerquesepaalgodeCoquetengaelprograma
pertinenteamano.Detodasformaselhackertendraquesaberqueexisteesetipodereglas,sieslisto
probaraconpuertosdegestinoconpuertosnetbios.ElproblemaesquesedejaunvnculoconlaLAN
bienparaadministrarloremotamenteoparaestablecerrelacionesdeconfianzayahesdonderesideel
peligro.
Enlasconexiones"legales"noseusacomopuertoorigennadapordebajodel1024cuandoalguiense
conectaaotropuertoensuextremoabreunpuertoporencimadel1024.Especificndoloenlareglade
firewallprotegeremosunpocomejorlaLAN,aunquelospuertosporencimade1024estarnenpeligro.
3.4FirewalldeunaLANconsalidaainternetyVPNS
Enprincipioestecasononostendraquedarmayorproblema,aunquelaprimeravezquelomontemos,
elenmascaramientonosjugarunamalapasada.Poresoconvieneecharunvistazoenestecaso.

Figura9:esquemadefirewallentreredlocaleinternetconzonaDMZydelegacionesqueaccedenaDMZ

Supongamosqueentrelosroutersyasehaestablecidountunel(conCiscossehariacreandouninterfaz
Tunnel),yquesielfirewallnosdejapodramosllegardelacentralalasdelegacionesyviceversausando
lasIPsprivadas.Vayaquesepuedehacerunpingdesdelacentrala192.168.30.xynosresponde.Para
elloesimprescindiblequeelrouterdelacentraltengaunarutametidaparallegara192.168.10.0/24ypor
supuestocadaunarutaparacadadelegacin.Antesdemeterseenelfirewallhayqueasegurarla
visibilidadentrelosroutersypoderllegarasusIPsprivadashaciendoping.
Supongamostambinqueenlacentralestaelservidordecorreoquelgicamentedebetenerelpuerto
25accesibledesdeinternet,ydebeseraccesibledesdelasdelegacionesparapuerto25,110(pop3)o
143(imap).Lasalidaainternet(web,ftp,etc..)cadaunolahaceporsulado.
Veamosunaposibleconfiguracinparaestecaso.
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##EjemplodescriptparafirewallentreredlocaleinternetconDMZ
##ydelegaciones.LasdelegacionesdebenteneraccesoalcorreodelaDMZ
##
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info

http://www.pello.info/filez/firewall/iptables.html

15/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
iptablestnatPPREROUTINGACCEPT
iptablestnatPPOSTROUTINGACCEPT
##Empezamosafiltrar
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#Todoloquevengaporelexterioryvayaalpuerto25loredirigimos
#alamaquinadelaDMZ
iptablestnatAPREROUTINGieth0\
ptcpdport25jDNATto192.168.3.2:25
#Todoloquevengaporelinterfazdelrouter(eth0)yvayaal110
#siemprequeseaunadelegacionseaceptayredirije
iptablestnatAPREROUTINGs192.168.20.0/24ieth0\
ptcpdport110jDNATto192.168.3.2:110
iptablestnatAPREROUTINGs192.168.30.0/24ieth0\
ptcpdport110jDNATto192.168.3.2:110
#Todoloquevengaporelinterfazdelrouter(eth0)yvayaal110
#siemprequeseaunadelegacionseaceptayredirije
iptablestnatAPREROUTINGs192.168.20.0/24ieth0\
ptcpdport143jDNATto192.168.3.2:143
iptablestnatAPREROUTINGs192.168.30.0/24ieth0\
ptcpdport143jDNATto192.168.3.2:143
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
iptablesAINPUTilojACCEPT
#Alfirewalltenemosaccesodesdelaredlocal
iptablesAINPUTs192.168.10.0/24ieth1jACCEPT
#AhorahacemosenmascaramientodelaredlocalydelaDMZ
#paraquepuedansalirhacafuera
#yactivamoselBITDEFORWARDING(imprescindible!!!!!)
#Cuidadoconesteenmascaramiento.
iptablestnatAPOSTROUTINGs192.168.10.0/24oeth0jMASQUERADE
iptablestnatAPOSTROUTINGs192.168.3.0/24oeth0jMASQUERADE
#Conestopermitimoshacerforwarddepaquetesenelfirewall,osea
#queotrasmquinaspuedansaliratravesdelfirewall.
echo1>/proc/sys/net/ipv4/ip_forward
#ParaquedesdelaredlocalsesalgahaciafuerahayqueENMASCARAR
#peroquepasaconlasdelegacionestambienestanfueraYNOHAYQUE
#ENMASCARAR,debemosmeterunareglaFORWARDexplicitaparaquenoenmascare
#porquesinounapeticindelaLANaotradelegacionnosemeteria
#eneltunel.
iptablesAFORWARDs192.168.10.0/24d192.168.20.0/24jACCEPT
iptablesAFORWARDs192.168.20.0/24d192.168.10.0/24jACCEPT
iptablesAFORWARDs192.168.10.0/24d192.168.30.0/24jACCEPT
iptablesAFORWARDs192.168.30.0/24d192.168.10.0/24jACCEPT
#AbrimoselaccesoparaquesepuedaacederalaDMZdesdelaLAN
#apuertosdecorreo
#EnprincipioloquevadeLAN>DMZseacepta
iptablesAFORWARDs192.168.10.0/24d192.168.3.0/24jACCEPT
#LuedodesdelaDMZalaLANsoloseacepta25,110,143
iptablesAFORWARDs192.168.3.0/24ptcpsport25\
d192.168.10.0/24jACCEPT
iptablesAFORWARDs192.168.3.0/24ptcpsport143\
d192.168.10.0/24jACCEPT
iptablesAFORWARDs192.168.3.0/24ptcpsport143\
d192.168.10.0/24jACCEPT
#CerramoselaccesodelaDMZalaLAN
iptablesAFORWARDs192.168.3.0/24d192.168.10.0/24jDROP
##CerramoselaccesodelaDMZalpropiofirewall
iptablesAINPUTs192.168.3.0/24ieth2jDROP
##Yahoracerramoslosaccesosindeseadosdelexterior:
#Nota:0.0.0.0/0significa:cualquierred
#Cerramoselrangodepuertobienconocido
iptablesAINPUTs0.0.0.0/0ptcpdport1:1024jDROP
iptablesAINPUTs0.0.0.0/0pudpdport1:1024jDROP

http://www.pello.info/filez/firewall/iptables.html

16/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

#Cerramosunpuertodegestin:webmin
iptablesAINPUTs0.0.0.0/0ptcpdport10000jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

SehanremarcadoennegritalasreglasFORWARDentreIPsprivadasdedelegaciones,yaquesinesas
reglasyconelenmascaramientodepormedionosepodraaccederalasdelegaciones.Caberesaltar
queentredelegacionesnohayvisibilidadtotal,solamentelacentralveraatodaslasdems,ylas
delegacionessolamentelacentral.
Ladelegacionesaccederanalservidordecorreoconunaredireccin,oseaqueellosseconfiguraranel
servidordecorreocomo192.168.10.1,mientrasquedesdelaLANseaccederadirectamente.Sepuede
hacerdedistintasmaneras.
LointeresanteseraponeresefirewallconDROPpordefecto,setratardemostraresaconfiguracinal
final.

3.5Firewallpuroyduroentreredes
EnestecasoolvidmonosderedeslocalesydeNAT.AqusolotendremosreglasdefiltradoINPUTy
FORWARD.Pongamosquetenemoselsiguienteescenario:

Figura10:esquemadefirewallentreredes,enlaquesolosefiltraynosehaceNAT

Enelfirewalldebemosindicarunaseriedereglasparaprotegerlosequiposqueestnalotroladodeeste
dispositivo,todosellosdelared211.34.149.0/24
Cadaunodeellosdaunserviciodeterminado,ypuedeestargestionadodesdedistintasIPs,loque
significaquehabrquedaraccesoadeterminadospuertosdegestin(22,3389,etc..).
Estepodraserelaspectodelscriptdelfirewall:
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##Ejemplodescriptparafirewallentreredes.
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info

http://www.pello.info/filez/firewall/iptables.html

17/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTACCEPT
iptablesPOUTPUTACCEPT
iptablesPFORWARDACCEPT
##Empezamosafiltrar
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#AnuestrofirewalltenemosaccesototaldesdelanuestraIP
iptablesAINPUTs210.195.55.15jACCEPT
#Paraelrestonohayaccesoalfirewall
iptablesAINPUTs0.0.0.0/0jDROP
##Ahorapodemosirmetiendolasreglasparacadaservidor
##ComosernpaquetescondestinoaotrasmquinasseaplicaFORWARD
##ServidorWEB211.34.149.2
#Accesoapuerto80
iptablesAFORWARDd211.34.149.2ptcpdport80jACCEPT
#Accesoanuestraipparagestionarlo
iptablesAFORWARDs210.195.55.15d211.34.149.2ptcpdport22jACCEPT
#Elresto,cerrar
iptablesAFORWARDd211.34.149.2jDROP
##ServidorMAIL211.34.149.3
#Accesoapuerto25,110y143
iptablesAFORWARDd211.34.149.3ptcpdport25jACCEPT
iptablesAFORWARDd211.34.149.3ptcpdport110jACCEPT
iptablesAFORWARDd211.34.149.3ptcpdport143jACCEPT
#AccesoagestionSNMP
iptablesAFORWARDs210.195.55.15d211.34.149.3pudpdport169jACCEPT
#Accesoanuestraipparagestionarlo
iptablesAFORWARDs210.195.55.15d211.34.149.3ptcpdport22jACCEPT
#Elresto,cerrar
iptablesAFORWARDd211.34.149.3jDROP
##ServidorIRC211.34.149.4
#AccesoapuertosIRC
iptablesAFORWARDd211.34.149.4ptcpdport6666:6668jACCEPT
#Accesoanuestraipparagestionarlo
iptablesAFORWARDs210.195.55.15d211.34.149.4ptcpdport22jACCEPT
#Elresto,cerrar
iptablesAFORWARDd211.34.149.4jDROP
##ServidorNEWS211.34.149.5
#Accesoapuertonews
iptablesAFORWARDd211.34.149.5ptcpdportnewsjACCEPT
#Accesoanuestraipparagestionarlo
iptablesAFORWARDs213.194.68.115d211.34.149.5ptcpdport22jACCEPT
#Elresto,cerrar
iptablesAFORWARDd211.34.149.5jDROP
##ServidorB2B211.34.149.6
#Accesoapuerto443
iptablesAFORWARDd211.34.149.6ptcpdport443jACCEPT
#Accesoaunaipparagestionarlo
iptablesAFORWARDs81.34.129.56d211.34.149.6ptcpdport3389jACCEPT
#Elresto,cerrar
iptablesAFORWARDd211.34.149.6jDROP
##ServidorCITRIX211.34.149.7
#Accesoapuerto1494
iptablesAFORWARDd211.34.149.7ptcpdport1494jACCEPT
#Accesoaunaipparagestionarlo
iptablesAFORWARDs195.55.234.2d211.34.149.7ptcpdport3389jACCEPT
#accesoaotropuertoquizadeBBDD
iptablesAFORWARDs195.55.234.2d211.34.149.7ptcpdport1434jACCEPT
#accesoaotropuertoquizadeBBDD

http://www.pello.info/filez/firewall/iptables.html

18/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

iptablesAFORWARDs195.55.234.2d211.34.149.7pudpdport1433jACCEPT
#Elresto,cerrar
iptablesAFORWARDd211.34.149.7jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

ConestafirewallysobretodograciasalasreglasdeDROPquemetemostrasespecificarloquedejamos
abiertos,protegeremosdemaneraeficaztodoslopuertosabiertosdelasmquinas.

3.6FirewallconpolticapordefectoDROP
Aqullegalaseccinparalosautnticosadministradoresdepeloenpecho.
Qusuponeelhechodeestablecercomopolticapordefectoladenegacin?
"Sedebeexplicitarcadaconexinpermitidaenlosdossentidos.
"Sedebeconocerperfectamentequdebeestarabiertoyquno.
"Esmuchosmsdifcildemantenerysisehaceconvienehacerlodesdeelprincipio.
"Notodoesmstrabajo:tambinsuponeunfirewallmuchomsseguro.
EnelejemplodelaDMZyasepresentabaestasituacinenlasreglasforwarddeunaaotrared.Para
ilustrarelDROPpordefecto,vamosamostrarlaconfiguracindelejemploanteriordefirewallentreredes
peroconpolticapordefectoDROP.
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##EjemplodescriptparafirewallentreredesconDROPpordefecto
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto:DROP!!!
iptablesPINPUTDROP
iptablesPOUTPUTDROP
iptablesPFORWARDDROP
##Empezamosafiltrar
##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN
#AnuestrofirewalltenemosaccesototaldesdelanuestraIP
iptablesAINPUTs210.195.55.15jACCEPT
iptablesAOUTPUTd210.195.55.15jACCEPT
#Paraelrestonohayaccesoalfirewall
#Enprincipioestadems,perosirebajamoslospermisostemporalmente
#noscubrelasespaldas
iptablesAINPUTs0.0.0.0/0jDROP
##Ahorapodemosirmetiendolasreglasparacadaservidor
##ComosernpaquetescondestinoaotrasmquinasseaplicaFORWARD
##ServidorWEB211.34.149.2
#Accesoapuerto80
iptablesAFORWARDd211.34.149.2ptcpdport80jACCEPT
iptablesAFORWARDs211.34.149.2ptcpsport80jACCEPT
#Accesoanuestraipparagestionarlo
iptablesAFORWARDs210.195.55.15d211.34.149.2ptcpdport22jACCEPT
iptablesAFORWARDs211.34.149.2d210.195.55.15ptcpsport22jACCEPT
##ServidorMAIL211.34.149.3
#Accesoapuerto25,110y143
iptablesAFORWARDd211.34.149.3ptcpdport25jACCEPT
iptablesAFORWARDs211.34.149.3ptcpsport25jACCEPT
iptablesAFORWARDd211.34.149.3ptcpdport110jACCEPT
iptablesAFORWARDs211.34.149.3ptcpsport110jACCEPT
iptablesAFORWARDd211.34.149.3ptcpdport143jACCEPT
iptablesAFORWARDs211.34.149.3ptcpsport143jACCEPT
#AccesoagestionSNMP
iptablesAFORWARDs210.195.55.15d211.34.149.3pudpdport169jACCEPT

http://www.pello.info/filez/firewall/iptables.html

19/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

iptablesAFORWARDs211.34.149.3d210.195.55.15pudpsport169jACCEPT
#Accesoanuestraipparagestionarlo
iptablesAFORWARDs210.195.55.15d211.34.149.3ptcpdport22jACCEPT
iptablesAFORWARDs211.34.149.3d210.195.55.15ptcpsport22jACCEPT
##ServidorIRC211.34.149.4
#AccesoapuertosIRC
iptablesAFORWARDd211.34.149.4ptcpdport6666:6668jACCEPT
iptablesAFORWARDs211.34.149.4ptcpsport6666:6668jACCEPT
#Accesoanuestraipparagestionarlo
iptablesAFORWARDs210.195.55.15d211.34.149.4ptcpdport22jACCEPT
iptablesAFORWARDs211.34.149.4d210.195.55.15ptcpsport22jACCEPT
##ServidorNEWS211.34.149.5
#Accesoapuertonews
iptablesAFORWARDd211.34.149.5ptcpdportnewsjACCEPT
iptablesAFORWARDs211.34.149.5ptcpsportnewsjACCEPT
#Accesoanuestraipparagestionarlo
iptablesAFORWARDs213.194.68.115d211.34.149.5ptcpdport22jACCEPT
iptablesAFORWARDs211.34.149.5d213.194.68.115ptcpsport22jACCEPT
#Elresto,cerrar
iptablesAFORWARDd211.34.149.5jDROP
##ServidorB2B211.34.149.6
#Accesoapuerto443
iptablesAFORWARDd211.34.149.6ptcpdport443jACCEPT
iptablesAFORWARDs211.34.149.6ptcpsport443jACCEPT
#Accesoaunaipparagestionarlo
iptablesAFORWARDs81.34.129.56d211.34.149.6ptcpdport3389jACCEPT
iptablesAFORWARDs211.34.149.6d81.34.129.56ptcpsport3389jACCEPT
##ServidorCITRIX211.34.149.7
#Accesoapuerto1494
iptablesAFORWARDd211.34.149.7ptcpdport1494jACCEPT
iptablesAFORWARDs211.34.149.7ptcpsport1494jACCEPT
#Accesoaunaipparagestionarlo
iptablesAFORWARDs195.55.234.2d211.34.149.7ptcpdport3389jACCEPT
iptablesAFORWARDs211.34.149.7d195.55.234.2ptcpsport3389jACCEPT
#accesoaotropuertoquizadeBBDD
iptablesAFORWARDs195.55.234.2d211.34.149.7ptcpdport1434jACCEPT
iptablesAFORWARDs211.34.149.7d195.55.234.2ptcpsport1434jACCEPT
#accesoaotropuertoquizadeBBDD
iptablesAFORWARDs195.55.234.2d211.34.149.7pudpdport1433jACCEPT
iptablesAFORWARDs211.34.149.7d195.55.234.2pudpsport1433jACCEPT
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

Yaesta,hemoslevantadounverdaderomuroentreinternetyelconjuntodeservidoresqueesta
Traselfirewall.Nosepuedenihacerunpingalasmquinas,salvoquesehayadadoaccesototalauna
ip.Siquisieramosdaraccesoalping,pondramosalgoas:
EsmsllevaderoaplicarelDROPpordefectocuandoelfirewallesparalapropiamquina.Elprimer
escenariodeestamanualtratabasobreestecaso,ahoralorevisamosconlapolticapordefectodrop.
#!/bin/sh
##SCRIPTdeIPTABLESejemplodelmanualdeiptables
##Ejemplodescriptparaprotegerlapropiamquina
##conpolticapordefectoDROP
##PelloXabierAltadillIzura
##www.pello.infopello@pello.info
echonAplicandoReglasdeFirewall...
##FLUSHdereglas
iptablesF
iptablesX
iptablesZ
iptablestnatF
##Establecemospoliticapordefecto
iptablesPINPUTDROP
iptablesPOUTPUTDROP

http://www.pello.info/filez/firewall/iptables.html

20/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

iptablesPFORWARDDROP
##Empezamosafiltrar
#Ellocalhostsedeja(porejemploconexioneslocalesamysql)
iptablesAINPUTilojACCEPT
iptablesAOUTPUTolojACCEPT
#AnuestraIPledejamostodo
iptablesAINPUTs195.65.34.234jACCEPT
iptablesAOUTPUTd195.65.34.234jACCEPT
#AuncolegaledejamosentraralmysqlparaquemantengalaBBDD
iptablesAINPUTs231.45.134.23ptcpdport3306jACCEPT
iptablesAOUTPUTd231.45.134.23ptcpsport3306jACCEPT
#AundiseadorledejamosusarelFTP
iptablesAINPUTs80.37.45.194ptcpdport20:21jACCEPT
iptablesAOUTPUTd80.37.45.194ptcpsport20:21jACCEPT
#Elpuerto80dewwwdebeestarabierto,esunservidorweb.
iptablesAINPUTptcpdport80jACCEPT
iptablesAOUTPUTptcpsport80jACCEPT
#Aquestnlasreglasdecerrar.Comohemoscomentadoenlaconfiguracin
#anteriorconvienetenerestoescritoporsienalgnmomentoserelajael
#firewallyscambiaadeDROPaACCEPTpordefecto
#Cerramosrangodelospuertosprivilegiados.Cuidadoconestetipode
#barreras,anteshayqueabriralosquesitienenacceso.
iptablesAINPUTptcpdport1:1024
iptablesAINPUTpudpdport1:1024
#Cerramosotrospuertosqueestanabiertos
iptablesAINPUTptcpdport3306jDROP
iptablesAINPUTptcpdport10000jDROP
iptablesAINPUTpudpdport10000jDROP
echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
#Findelscript

4.Cmodepurarelfuncionamientodelfirewall
Programastiles
IPTRAF.Sindudaalgunaunodelosprogramasmsprcticosparadepurarelfirewallesiptables,yaque
conelpodemosobservarsilaconexionesseestablecenonoesunprogramadeconsolaquees
aconsejablecontrolaryaquemuestraentiemporealeltrficoqueatraviesanuestramquinacontodo
lujodedetalles:origen/destinodeipsypuertos,trficototalotrficototalsegnelinterfazdered,etcSi
vemosmuchasconexionessimultaneasynosperdemos,existelaposibilidaddeaplicarfiltrosparacaptar
soloaquelloquenosinteresa.
NMAP.Laherramientaparaescanearpuertosporexcelencia,rechaceimitaciones.Esunaherramienta
deconsolarpida,efectivayconmultituddeopciones.Podemosusarladesdemquinasajenasanuestra
redparacomprobarsirealmenteelfirewallestafiltrandocorrectamenteyenciertamaneraparahacernos
unaideadeque"visin"puedentenerloshackersdenuestrosistema.
SHELL.Enelpropioscriptdelfirewallpodemosaadiralgunasopcionesparadescubrirfallosdesintaxis
enlasreglas.Claro,imaginemosquetenemosunfirewallde40lineasyunadeellasfallacuando
ejecutamoselscript.Cules?Esprobablequeelmensajedeerrornoaclarelosuficiente,poresose
puedeaadiralgoasalfinaldecadaregla:
...
iptablesAINPUTs195.55.234.2jACCEPT&&echo"regla21ok"
iptablesAINPUTs213.62.89.145jACCEPT&&echo"regla22ok"
...

Silareglaseejecutabienmostrarelmensajitodeok.
Otraopcinalgomascutreseraireliminandoocomentandoreglashastadarconlareglaquetienela
sintaxisincorrecta.Caberesearquepuedefallarunaregla,peroapartirdeellaelrestoseejecutancon
normalidad.

Enlaces:
http://www.pello.info/filez/firewall/iptables.html

21/22

5/11/2015

IPTABLESmanualpractico,tutorialdeiptablesconejemplos

Pginaoficial:http://www.netfilter.org
Bibliografa
Buildinginternetfirewalls:todounclsico
Otrostutoriales:
Enlapropiawebdenetfilteriptablestenemoselenlaceaotrostutoriales,aunquetodosellosestnen
perfectoingls.
Ejem,iptablesen21segundos,delmismoautorqueeste.
Notas:
Estemanualsehadesarrolladoparamostrarelusodeiptablesdesdeconfiguracionessimplesams
complejas.Sehaelaboradoconelconocimientoadquiridoabasedetortasportantosebasaenla
experienciapropia.Necesitacontinuarevisin.
Autor:

PelloXabierAltadillIzura
IngenieroenInformticaporlaUPVEHU(http://www.ehu.es)
EnsudatuvoentresusmanoselmarrndelaseguridadenIBERCOM(http://www.ibercom.com),un
ispquenosolosobrevivealtemporal,sinoquesepermiteellujodenoparardecrecer.
Sitienesalgunaduda,asaporelforodeiptables:URL:http://www.pello.info/forum/iptables
Volverarriba
PelloXabierAltadillIzura.www.pello.info

http://www.pello.info/filez/firewall/iptables.html

22/22

Potrebbero piacerti anche