MANEJO DE PERMISOS ESPECIALES Y ATRIBUTOS DE ARCHIVOS PARA SISTEMAS GNU/LINUX

Hamnlet G. Rivera Lagares

<hrivera@codigolibre.org>

Junio del 2008
Fundación Código Libre Dominicano

http://www.codigolibre.org

Este tutorial se distribuye bajo Licencia GFDL

Índice general

1. Los bits SUID, SGID y sticky bit
IFIF sntrodu™™ión F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IFIFIF gon™eptos prelimin—res F F F F F F F F F F F F F F F F F F F F F F IFPF il ƒ…sh F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IFQF iv ƒqsh F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IFRF il sti™ky ˜it F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IFRFIF ist—˜le™iendo permisos espe™i—les F F F F F F F F F F F F F F F F

1
I I I Q S U

2. Permisos preestablecidos con umask
PFIF il ™om—ndo um—sk F F F F F F F F F F F F F F F F F F F F F F F F F F F F

8
V

3. Normas prácticas para aumentar la seguridad
QFIF nosuidD nodevD noexe™

10

F F F F F F F F F F F F F F F F F F F F F F F F F F IH

QFPF ƒistem—s de (™heros en red F F F F F F F F F F F F F F F F F F F F F F F F IH QFQF um—sk F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F II QFRF vimit—r re™ursos F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F II QFSF wtmpD utmp F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F II QFTF l—stlogD f—illog F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IP QFUF €ermisos de es™ritur— F F F F F F F F F F F F F F F F F F F F F F F F F F IP F F F F F F F F F F F F F F F F F F F F F F F F IQ QFUFIF pi™heros extr—ños

QFUFPF pi™heros peligrosos F F F F F F F F F F F F F F F F F F F F F F F F IQ

i

Atributos de un archivo 14 RFIF porm—to del m—nd—to ™h—ttr F F F F F F F F F F F F F F F F F F F F F F F IT RFIFIF etri˜utos F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IT RFPF ijemplos F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IU Fundación Código Libre Dominicano http://www.Íxhsgi qixi‚ev ii 4.codigolibre.org Hamnlet Rivera Lagares .

2. 1. El SUID il ˜it de SUID o setuid se —™tiv— so˜re un (™hero —ñ—diéndole RHHH — l— represenE t—™ión o™t—l de los permisos del —r™hivo y otorgándole —demás permiso de eje™u™ión —l propiet—rio del mismoY —l h—™er estoD en lug—r de l— x en l— primer— tern— de los permisosD —p—re™erá un— s o un— S si no hemos otorg—do el permiso de eje™u™ión ™orrespondiente @en este ™—so el bit no tiene efe™toAX rootdm—tem—ti™oX£5 ™hmod RUUU GtmpG—r™hivoI rootdm—tem—ti™oX£5 ™hmod RRRR GtmpG—r™hivoP I .Capítulo1 Los bits SUID.1. Conceptos preliminares r—˜itu—lmenteD los permisos de los —r™hivos en …xsˆ se ™orresponden ™on un número en o™t—l que v—rí— entre HHH y UUUY sin em˜—rgoD existen unos permisos espe™i—les que h—™en v—ri—r ese número entre HHHH y UUUU se tr—t— de los ˜its de perm—nen™i— sticky bit (1000). SGID y sticky bit 1. SGID (2000) y SUID (4000).1.1. Introducción €—r— evit—r que otros usu—rios —™™ed—n — nuestros (™heros en los sistem—s …xsˆ se est—˜le™en (™heros p—r— indi™—r quien y ™ómo pueden —™™eder — esos (™herosF istos permisos jueg—n un p—pel import—nte y— que en los sistem—s …xsˆ todos son (™herosF gu—ndo se es™ri˜e —lgo en el monitor p—r— el sistem— oper—tivo se est— es™ri˜iendo en un (™heroD de igu—l form— ™u—ndo se leen l—s puls—™iones del te™l—do el sistem— oper—tivo est— leyendo un (™heroD el ™orrespodiente —l te™l—doF qr—™i—s — este típo de —˜str—™™ión tenemos un sistem— —lt—mente ™on(gur—˜leF 1.

codigolibre.org Hamnlet Rivera Lagares .1. Los bits SUID. SGID y sticky bit rootdm—tem—ti™oX£5 ls El GtmpG—r™hivoI Erwsrwxrwx I root other H pe˜ W IUXSI GtmpG—r™hivoI rootdm—tem—ti™oX£5 ls El GtmpG—r™hivoP ErEƒrE ErE E I root other H pe˜ W IUXSI GtmpG—r™hivoP rootdm—tem—ti™oX£5 P il ˜it SUID —™tiv—do so˜re un (™hero indi™— que todo —quél que eje™ute el —r™hivo v— — tener dur—nte l— eje™u™ión los mismos privilegios que quién lo ™reóY di™ho de otr— form—D si el —dministr—dor ™re— un (™hero y lo setuid—D todo —quel usu—rio que lo eje™ute v— — disponerD h—st— que el progr—m— (n—li™eD de un nivel de privilegio tot—l en el sistem—F r—y que —™l—r que p—r— que este permiso fun™ineD el —r™hivo de˜e tener el permiso de eje™ión p—r— el propiet—rio del (™heroF iste permiso solo es —pli™—˜le — (™heros ˜in—riosF €odemos verlo ™on el siguiente ejemploX rootdm—tem—ti™oXGhomeGminixgnu5 vim testsuidF™ 5in™lude `stdioFhb 5in™lude `unistdFhb m—in@A { printf@4…shX 7dD i…shX 7d’n4Dgetuid@ADgeteuid@AAY } rootdm—tem—ti™oXGhomeGminixgnu5 g™™ Eo testsuid testsuidF™ ehor— le —sign—mos el permiso —de™u—doX rootdm—tem—ti™oXGhomeGminixgnu5 ™hmod uCs testsuid o ˜ien pudo h—˜er sido en modo o™t—lX rootdm—tem—ti™oXGhomeGminixgnu5 ™hmod RUSS testsuid rootdm—tem—ti™oXGhomeGminixgnu5 ls El testsuid ErwsrExrEx I root root RQHS pe˜ IH HPXQR testsuid rootdm—tem—ti™oXGhomeGminixgnu5 su minixgnu minixgnudm—tem—ti™oX£6 id uidaSHH@minixgnuA gidaSHH@usersA groupsaSHH@usersA minixgnudm—tem—ti™oX£6 FG testsuid …shX SHHD i…shX H Fundación Código Libre Dominicano http://www.

SGID y sticky bit Q €odemos ™ompro˜—r que el usu—rio minixgnuD sin ningún privilegio espe™i—l en el sistem—D ™u—ndo eje™ut— nuestro progr—m— setuid—do de prue˜— está tr—˜—j—ndo ™on un EUID @i'e™tive UIDA HD lo que le otorg— todo el poder del —dministr—dor @(jémonos que éste último es el propiet—rio del eje™ut—˜leAY si en lug—r de este ™ódigo el eje™ut—˜le fuer— un— ™opi— de un shellD el usu—rio minixgnu tendrí— todos los privilegios del root mientr—s no (n—li™e l— eje™u™iónD es de™irD h—st— que no se te™lee exit en l— líne— de ™om—ndosF 1.1.codigolibre.org Hamnlet Rivera Lagares . EL SGID „odo lo que —™—˜—mos de ™oment—r ™on respe™to —l bit setuid es —pli™—˜le —l ˜it setgid pero — nivel de grupo del (™hero en lug—r de propiet—rioF in lug—r de tr—˜—j—r ™on el EUID del propiet—rioD todo usu—rio que eje™ute un progr—m— setgid—do tendrá los privilegios del grupo —l que pertene™e el —r™hivoF €—r— —™tiv—r el bit de setgid sum—remos 2000 — l— represent—™ión o™t—l del permiso del (™hero y —demás h—˜remos de d—rle permiso de eje™u™ión — l— tern— de grupoY si lo h—™emosD l— s o S@si el permiso de eje™u™ión no está —™tiv—doA —p—re™erá en lug—r de l— x en est— tern—F ƒi el (™hero es un dire™torio y no un —r™hivo pl—noD el ˜it setgid —fe™t— — los (™heros y su˜dire™torios que se ™reen en élX estos tendrán ™omo grupo propiet—rio —l mismo que el dire™torio setgid—doD siempre que el pro™eso que los ™ree pertenez™— — di™ho grupoF vos ˜its de setuid y setgid d—n — …xsˆ un— gr—n )exi˜ilid—dD pero ™onstituyen —l mismo tiempo l— m—yor fuente de —t—ques internos —l sistem— @entendiendo por —t—ques internos —quellos re—liz—dos por un usu—rio —utoriz—do o no desde l— propi— máquin—D gener—lmente ™on el o˜jetivo de —ument—r su nivel de privilegio en l— mism—AF gu—lquier sistem— …xsˆ tiene un ™ierto número de eje™ut—˜les setuid—dos yGo setgid—dosF g—d— uno de ellosD ™omo —™—˜—mos de ™oment—rD se eje™ut— ™on los privilegios de quien lo ™reó @gener—lmente el root u otro usu—rio ™on ™iertos privilegiosA lo que dire™t—mente impli™— que ™u—lquier usu—rio tiene l— ™—p—™id—d de l—nz—r t—re—s que es™—pen tot—l o p—r™i—lmente —l ™ontrol del sistem— oper—tivoX se eje™ut—n en modo privilegi—do si es el —dministr—dor quien ™reó los eje™ut—˜lesF ividentementeD est—s t—re—s h—n de est—r ™ontrol—d—s de un— form— exh—ustiv—D y— que si un— de ell—s se ™omport— de form— —norm—l @un simple ™ore dumpA puede ™—us—r d—ños irrep—r—˜les —l sistem—Y t—nto es —sí que h—y innumer—˜les do™umentos que de(nenD o lo intent—nD p—ut—s de progr—m—™ión ™onsider—d— segur—F ƒi por ™u—lE quier motivo un progr—m— setuid—do f—ll— se —sume inmedi—t—mente que present— un pro˜lem— de segurid—d p—r— l— máquin—D y se re™omiend— resete—r el bit de setuid ™u—nto —ntesF istá ™l—ro que —segur—r ™omplet—mente el ™omport—miento ™orre™to de un progr—m— es muy difí™ilD por no de™ir imposi˜leY ™—d— ™ierto tiempo suelen —p—re™er f—llos Fundación Código Libre Dominicano http://www.3. Los bits SUID.

1. SGID y sticky bit R @˜ugsA en (™heros setuid—dos de los diferentes ™lones de …xsˆ que ponen en peligro l— integrid—d del sistem—F inton™esD por qué no se —dopt— un— solu™ión r—di™—lD ™omo elimin—r este tipo de —r™hivosc r—y un— sen™ill— r—zónD el riesgo que present—n no se ™orre inútilmenteD p—r— tent—r —l —z—rD sino que los —r™hivos que se eje™ut—n ™on privilegios son estri™t—mente ne™es—rios en …xsˆD —l menos —lgunos de ellosF †e—mos un ejemploF …n (™hero setuid—do ™lási™o en ™u—lquier ™lon es /bin/passwdD l— orden p—r— que los usu—rios pued—n ™—m˜i—r su ™ontr—señ— de entr—d— —l sistem—F xo h—™e f—lt— —n—liz—r ™on mu™ho det—lle el fun™ion—miento de este progr—m— p—r— d—rse ™uent— que un— de sus fun™iones ™onsiste en modi(™—r el (™hero de ™l—ves(/etc/passwd o /etc/shadow)F istá ™l—ro que un usu—rio per se no tiene el nivel de privilegio ne™es—rio p—r— h—™er esto @in™luso es posi˜le que ni siquier— pued— leer el (™hero de ™l—vesAD por lo que frente — este pro˜lem— t—n simple existen v—ri—s solu™ionesF €odemos —sign—r permiso de es™ritur— p—r— todo el mundo —l (™hero de ™ontr—señ—sD podemos deneg—r — los usu—rios el ™—m˜io de ™l—ve o podemos o˜lig—rles — p—s—r por l— s—l— de oper—™iones ™—d— vez que quier—n ™—m˜i—r su ™ontr—señ—F €—re™e o˜vio que ningun— de ell—s es —propi—d— p—r— l— segurid—d del sistem— @quizás l— últim— lo se—D pero es impr—™ti™—˜le en máquin—s ™on un número de usu—rios ™onsider—˜leAF €or t—ntoD de˜emos —sumir que el bit de setuid en /bin/passwd es impres™indi˜le p—r— un ™orre™to fun™ion—miento del sistem—F ƒin em˜—rgoD esto no siempre su™ede —síD en un sistem— …xsˆ inst—l—do out of the ˜ox el número de (™heros setuid—dos suele ser m—yor de ™in™uent—Y sin perjudi™—r —l ™orre™to fun™ion—miento de l— máquiE n—D este número se puede redu™ir — menos de ™in™oD lo que viene — indi™—r que un— de l—s t—re—s de un —dministr—dor so˜re un sistem— re™ién inst—l—do es minimiz—r el número de (™heros setuid—dos o setgid—dosF xo o˜st—nteD t—mpo™o es ™onveniente elimin—rlosD sino simplemente resete—r su ˜it de setuid medi—nte chmodF €—r— —sign—r el SGID en modo o™t—l de˜emos sum—r dos —l primer ˜yteF gomo dijimos —nteriormenteD si este permiso est— —sign—doD ™u—ndo lo ve—mos —p—re™erá un— s o S dependiendo de si el permiso de eje™u™ión está —™tiv—do o noF rootdm—tem—ti™oX£6 ™hmod PUSP —rhivo rootdm—tem—ti™oX£6 ls El —rhivo ErwxrEsEwE I root root pe˜ IH PHXQQ —r™hivo rootdm—tem—ti™oX£5 ls El G˜inGpingB ErwsrExrEx I root ˜in IRHTR w—y IH PHHU G˜inGping ErwsrExrEx I root ˜in IRHTR w—y IH PHHU G˜inGpingT rootdm—tem—ti™oX£5 ™hmod Es G˜inGping rootdm—tem—ti™oX£5 ls El G˜inGping Fundación Código Libre Dominicano http://www.codigolibre.org Hamnlet Rivera Lagares . Los bits SUID.

org Hamnlet Rivera Lagares .1. sn™luso podrí— ™re—r un— ˜—se de d—tos de progr—m—s ƒ…sh ™on rootdm—tem—ti™oX5 (nd G Etype f ’@ Eperm EHRHHH Eo Eperm EHPHHH ’AbGv—rGsuid y posteriormente veri(™—r si h— —p—re™ido —lguno nuevo ™on el siguiente s™riptX for (™h in (nd G Etype f ’@ Eperm EHRHHH Eo Eperm EHPHHH ’A do if 3 grep 6(™h Gv—rGsuid then e™ho 46(™h es un nuevo (™hero ™on ƒ…sh4 ( done e™ho e™tu—liz— l— ˜—se de d—tos si es ne™es—rio \ 1. Los bits SUID.4.codigolibre. El sticky bit il sti™ky ˜it o ˜it de perm—nen™i— se —™tiv— sumándole 1000 — l— represent—™ión o™t—l de los permisos de un determin—do —r™hivo y otorgándole —demás permiso de eje™u™iónY si h—™emos estoD veremos que en lug—r de un— x en l— tern— ™orrespondiente —l resto de usu—rios —p—re™e un— t @si no le hemos d—do permiso de eje™u™ión —l —r™hivoD —p—re™erá un— TAX rootdm—tem—ti™oX£5 ™hmod IUUU GtmpG—r™hivoI rootdm—temt—ti™oX£5 ™hmod IUUR GtmpG—r™hivoP Fundación Código Libre Dominicano http://www. SGID y sticky bit ErwxrExrEx I root ˜in IRHTR w—y IH PHHU G˜inGping S „—m˜ién hemos de est—r —tentos — nuevos (™heros de est—s ™—r—™terísti™—s que se lo™—li™en en l— máquin—Y dem—si—d—s —pli™—™iones de …xsˆ se inst—l—n por defe™to ™on eje™ut—˜les setuid—dos ™u—ndo re—lmente este ˜it no es ne™es—rioD por lo que — l— hor— de inst—l—r nuevo softw—re o —™tu—liz—r el existente hemos de —™ord—rnos de resete—r el ˜it de los (™heros que no lo ne™esitenF ispe™i—lmente gr—ve es l— —p—ri™ión de —r™hivos setuid—dos de los que el —dministr—dor no tení— ™onst—n™i— @ni son —pli™—™iones del sistem— ni un —pli™—™iones —ñ—did—sAD y— que esto ™—si en el IHH 7 de los ™—sos indi™— que nuestr— máquin— h— sido ™omprometid— por un —t—™—nteF €—r— lo™—liz—r los (™heros ™on —lguno de estos ˜its —™tivosD podemos eje™ut—r l— siguientes ordenesX rootdm—tem—ti™oX£5 (nd G ’@ Eperm ERHHH Eo Eperm EPHHH ’A Etype f Eexe™ b ls El \{\} \.

1. setgid o stickyF €or supuestoD podemos —™tiv—r v—rios de ellos — l— vez simplemente sum—ndo sus v—loresF in l— situ—™ión po™o pro˜—˜le de que ne™esitár—mos todos los ˜its —™tivosD sum—rí—mos UHHH — l— tern— o™t—l UUUX rootdm—tem—ti™oX£5 ™hmod H GtmpG—r™hivo rootdm—tem—ti™oX£5 ls El GtmpG—r™hivo E E E E E E E E E E I minixgnu minixgnu H pe˜ W HSXHS GtmpG—r™hivo rootdm—tem—ti™oX£5 ™hmod UUUU GtmpG—r™hivo rootdm—tem—ti™oX£5 ls El GtmpG—r™hivo Fundación Código Libre Dominicano http://www.org Hamnlet Rivera Lagares . 2000 o 1000 — los permisos norm—les p—r— —™tiv—r respe™tiv—mente los bits setuid.codigolibre. Los bits SUID. SGID y sticky bit rootdm—tem—ti™oX£5 ls El GtmpG—r™hivoI Erwxrwxrwt I root other H pe˜ W IUXSI GtmpG—r™hivoI rootdm—tem—ti™oX£5 ls El GtmpG—r™hivoP ErwxrwxrE„ I root other H pe˜ W IUXSI GtmpG—r™hivoP T ƒi el ˜it de perm—nen™i— de un (™hero está —™tiv—do @re™ordemos que si —p—re™e un— „ no lo estáA le est—mos indi™—ndo —l sistem— oper—tivo que se tr—t— de un —r™hivo muy utiliz—doD por lo que es ™onveniente que perm—nez™— en memori— prin™ip—l el m—yor tiempo posi˜leY est— op™ión se utiliz—˜— en sistem—s —ntiguos que disponí—n de muy po™— ‚ewD pero hoy en dí— prá™ti™—mente no se utiliz—F vo que si que sigue vigente es el efe™to del sticky bit —™tiv—do so˜re un dire™torioD en este ™—so se indi™— —l sistem— oper—tivo queD —unque los permisos norm—les dig—n que ™u—lquier usu—rio pued— ™re—r y elimin—r (™heros @por ejemploD un UUU o™t—lAD sólo el propiet—rio de ™ierto —r™hivo y el —dministr—dor pueden ˜orr—r un —r™hivo gu—rd—do en un dire™torio ™on est—s ™—r—™terísti™—sF iste ˜itD que sólo tiene efe™to ™u—ndo es —™tiv—do por el —dministr—dor @—unque ™u—lquier usu—rio puede h—™er que —p—rez™— un— t o un— T en sus (™heros y dire™toriosAD se utiliz— prin™ip—lmente en dire™torios del sistem— de (™heros en los que interes— que todos pued—n es™ri˜ir pero que no todos pued—n ˜orr—r los d—tos es™ritosD ™omo /tmp/ o /var/tmp/F ƒi el equiv—lente o™t—l de los permisos de estos dire™torios fuer— simplemente UUU en lug—r de IUUUD ™u—lquier usu—rio podrí— ˜orr—r los (™heros del restoF ƒi pens—mos que p—r— evit—r pro˜lem—s podemos simplemente deneg—r l— es™ritur— en dire™torios ™omo los —nteriores t—m˜ién est—mos equivo™—dosX mu™hos progr—m—s ™omo ™ompil—doresD editores o gestores de ™orreo —sumen que v—n — poder ™re—r (™heros en /tmp/ o /var/tmp/D de form— que si no se permite — los usu—rios h—™erlo no v—n — fun™ion—r ™orre™t—menteY por t—ntoD es muy re™omend—˜le p—r— el ˜uen fun™ion—miento del sistem— que —l menos el dire™torio /tmp/ teng— el ˜it de perm—nen™i— —™tiv—doF el prin™ipio h—˜i—mos ™oment—do que el equiv—lente o™t—l de los permisos en …xsˆ puede v—ri—r entre 0000 y 7777F remos visto que podí—mos sum—r 4000.

Los bits SUID. Estableciendo permisos especiales vos posi˜les v—lores de todo lo que hemos di™ho h—st— —hor—D serí—n los siguientesX EEEEEEEEE a H EEEEEEEEt a I EEEEEsEEE a P EEEEEsEEt a Q EEsEEEEEE a R EEsEEEEEt a S EEsEEsEEE a T EEsEEsEEt a U €redetermin—doD si permisos espe™iles fit de persisten™i—D sti™ky ˜it fit sgid de grupo fit sgid y sti™ky ˜it fit suid fit suid y sti™ky ˜it fit suid y sgid fit suidD sgidD sti™ky ˜it elgo que se de˜e tener en ™uent—D es lo que de™id—mos est—˜le™er ™on permisos de ˜it SUID y SGIDD y— que —l est—˜le™erlos ™u—lquier usu—rio podrá eje™ut—rlos ™omo si fuer— el propiet—rio origin—l de ese —r™hivo o progr—m—F isto puede tener ™onse™ue™i—s de segurid—d muy sever—s en su sistem—F is ˜uen— prá™ti™— ™onider—r si es ™onveniente que un usu—rio norm—l eje™ute —pli—™iones que son propi—s del superus—rio @rootA — tr—vés del ™—m˜io de ˜its SUID o SGIDF is mejor —ltern—tiv— us—r los ™om—ndos sudo y suF Fundación Código Libre Dominicano http://www.4. SGID y sticky bit Erwsrwsrwt I minixgnu minixgnu H pe˜ W HSXHS GtmpG—r™hivo U ƒi en lug—r de espe™i(™—r el v—lor o™t—l de los permisos queremos utiliz—r l— form— sim˜óli™— de ™hmodD utiliz—remos +t p—r— —™tiv—r el ˜it de perm—nen™i— o sticky bitD g+s p—r— —™tiv—r el de setgid y u+s p—r— h—™er lo mismo ™on el de setuidY si queremos resete—rlosD utiliz—mos un signo E en lug—r de un C en l— líne— de órdenesF 1.org Hamnlet Rivera Lagares .1.1.codigolibre.

Capítulo2 Permisos preestablecidos con umask 2.1. El comando umask il ™om—ndo umask est—˜le™e l— más™—r— de permisos de —r™hivos y dire™toriosF is de™irD los nuevos dire™torios y —r™hivos que se ™re—n o˜tienen el v—lor de los permisos — p—rtir de los v—lores de umaskF minixgnudm—tem—ti™oX£6 um—sk HHHP @o en form—to sim˜óli™o ™on l— op™ión EƒA minixgnudm—tem—ti™oX£6 um—sk Eƒ uarwxDgarwxDoarx vo —nterior indi™— que un dire™torio y —r™hivos eje™ut—˜les se ™re—rán ™on los permisos UUS y los —r™hivos ™omunes ™on los permisos TTRF isto se logr— rest—ndo de UUU el v—lor de umask @UUUEHHPA y @TTT E HHPA respe™tiv—menteF il primer v—lor de um—sk ™orresponde p—r— los v—lores de SUID. GUID o sticky bit que por defe™to es ™ero HF minixgnudm—tem—ti™oX£6 um—sk HHHP gre—mos un —r™hivo y según l— más™—r— de˜emos tener TTTEHHP ó rwErwEr E E minixgnudm—tem—ti™oX£6 tou™h muestr— minixgnudm—tem—ti™oX£6 ls El muestr— ErwErwErE E minixgnu minixgnu H e˜r PS IQXQQ muestr— ehor— ™reemos un dire™torio y según l— más™—r— de˜emos tener UUU!HHPaUSS o rwxrwxrEx minixgnudm—tem—ti™oX£6 mkdir nuevo V .

org Hamnlet Rivera Lagares .codigolibre. Permisos preestablecidos con umask minixgnudm—tem—ti™oX£6 ls Eld nuevo drwxrwxrEx P minixgnu minixgnu RHWT e˜r PS IQXSS nuevo W €—r— est—˜le™er el v—lor de l— más™—r—D simplemente se us— el mismo ™om—ndo umask seguido del v—lor de más™—r— que se deseeX minixgnudm—tem—ti™oX£6 um—sk HHPP €—r— (—j—rlo en l— se™™iónD enton™es es ne™es—rio —gr—g—rlo —l F˜—sh•pro(le o F˜—sh•r™ de nuestro home de usu—rioF Fundación Código Libre Dominicano http://www.2.

2. noexec ƒ—lvo ™—sos ex™ep™ion—lesD no de˜erí— h—˜er ningun— r—zón p—r— que se permit— l— eje™u™ión de progr—m—s SUID SGID en los dire™torios home de los usu—riosF isto lo podemos evit—r us—ndo l— op™ión nosuid en el —r™hivo /etc/fstab p—r— l—s p—rti™iones que teng—n permiso de es™ritur— por —lguien que no se— rootF „—m˜ién puede ser útil us—r nodev y noexec en l—s p—rti™iones de los dire™™torios person—les de y en /varD lo que prohí˜e l— ™re—™ión de dispositivos de ˜loques o ™—r—™ter y eje™u™ión de progr—m—sF 3.1.Capítulo3 Normas prácticas para aumentar la seguridad eunque se— ne™es—rio tener ™l—ros los ™on™eptos y dedi™—rle —lgo de tiempo — un— ™orre™t— pl—ni(™—™iónD t—mpo™o los peligros expuestos tienen por qué —sust—r — n—dieF „od—s l—s distri˜u™iones de qx…Gvinux tr—en unos v—lores por defe™to que son más que r—zon—˜les p—r— ™u˜rir un—s ne™esid—des norm—lesF 3. nodev. nosuid. Sistemas de cheros en red ƒi export— sistem—s de —r™hivos ví— NFSD —segúrese de ™on(gur—r /etc/exports ™on los —™™esos lo más re™tri™tivos posi˜lesF isto signi(™— no us—r pl—ntill—sD no permitir —™™eso de es™ritur— — root y mont—r ™omo sólo le™tur— siempre que se— posi˜leF IH .

4.3. utmp wtpm este —r™hivo es un (™hero ˜in—rio @su ™ontenido no puede ser leeido dire™E t—mente ™on el ™om—ndo ™—t o simil—resA que —lm—™en— inform—™ión rel—tiv— — ™—d— Fundación Código Libre Dominicano http://www. Limitar recursos €ong— el límites —l sistem— de (™heros en lug—r de ilimit—do ™omo está por defe™toF €uede ™ontrol—r el límite por usu—rio utiliz—ndo el módulo PAM de límite de re™ursos y /etc/pam.3.confF €or ejemploD los límites p—r— un grupo users podrá p—re™er — estoX dusers h—rd ™ore H dusers h—rd npro™ SH dusers h—rd rss SHHH isto di™e que se prohi˜— l— ™re—™ión de (™heros ™oreD restringe el número de pro™esos — SHD y restringe el uso de memori— por usu—rio — SwF 3.5. wtmp.d/limits.codigolibre.org Hamnlet Rivera Lagares . umask gon(gur— l— más™—r— de ™re—™ión de (™heros p—r— que se— lo más restri™tiv— posi˜leF ƒon h—˜itu—les HPPD HQQD y l— más restri™tiv— HUUD y —ñ—dirl— — /etc/proleF il ™om—ndo umask se puede us—r p—r— determin—r el modo de ™re—™ión de (™heros por defe™to en su sistem—F is el ™omplemento o™t—l — los modos de (™hero dese—doF ƒi los (™heros si ™re—n sin ningún mir—miento de est—do de permisosD el usu—rio de form— in—dvertid—D podrá —sign—r permisos de le™tur— o es™ritur— — —lguien que no de˜erí— tenerlosF he form típi™—D el est—do de umask in™luye HPPD HPU y HUUD que es lo más restri™tivoF xorm—lmente umask se pone en /etc/prole y por t—nto se —pli™— — todos los usu—rios del sistem—F €or ejemploD puede tener un— líne— p—re™id— — l— siguienteX 5 €one el v—lor por defe™to de um—sk del usu—rio um—sk HQQ isté seguro de que el v—lor umask de root es HUUD lo ™u—l des—™tiv— los permisos de le™tur—D es™ritur— y eje™u™ión p—r— otros usu—riosD s—lvo que expli™ít—mente use ™hmod@IAF ƒi está us—ndoD y utiliz— su esquem— de ™re—™ión de identi(™—dor de grupos y usu—riosD sólo es ne™es—rio us—r HHP p—r— umaskF isto se de˜e — que —l ™re—r un usu—rio se ™re— un grupo ex™lusivo p—r— ese usu—rioF 3. Normas prácticas para aumentar la seguridad II 3.

faillog il (™hoero lastlog es un —r™hivo ˜in—rio gu—rd—do gner—lmente en /var/log/lastlog y que ™ontiene un resgistro p—r— ™—d— usu—rio ™on lo fe™h— y l— hor— de su últim— ™onexiónD podemos visu—liz—r estos d—tos p—r— un usu—rio d—do medi—nte who o ngerF il (™hero faillog es equiv—lente —l —nteriorD pero en lug—r de gu—rd—r inform—™ión so˜re l— fe™h— y hor— del último —™™eso —l sistem—D lo h—™e del útimo intento de —™™eso de ™—d— usu—rioY un— ™onexión es f—llid— si el usu—rio te™le— in™orre™t—mente su ™ontr—señ—F ist— infor—m—™ión se muestr— l— siguiente vez que di™ho usu—rio entr— ™orre™t—mente —l sistem—F 3. Permisos de escritura vos (™heros ™on permiso de es™ritur— glo˜—lD p—rti™ul—rmente los del sistem—D pueden ser un —gujero de segurid—d si un ™r—™ker o˜tiene —™™eso — su sistem— y los modi(™—F edemásD los dire™torios ™on permiso de es™ritur— glo˜—l son peligrososD y— que perE miten — un ™r—™ker —ñ—dir y ˜orr—r los (™heros que quier—F €—r— lo™—liz—r los (™heros ™on permiso de es™ritur— glo˜—lD use el siguiente ™om—ndoX Fundación Código Libre Dominicano http://www.codigolibre. whoAF vos (™heros /var/log/wtmp y /var/run/utmp ™ontienen los registros de ™oneE xión de todos los usu—rios de su sistem—F ƒe de˜e m—ntener su integrid—dD y— que determin—n ™uándo y desde dónde entró en su sistem— un usu—rio o un poten™i—l inE trusoF vos (™heros de˜erí—n tener los permisos TRRD sin —fe™t—r — l— norm—l oper—™ión del sistem—F 3. Normas prácticas para aumentar la seguridad IP ™onexión y des™onexión —l sistem—D €odemos ver su ™ontenido ™on órdenes ™omo lastF vos registros gu—r—d—dos en este —r™hivo y t—m˜ien el el (™hero wtpmD tienen el form—to de l— estru™tur— utpmD que ™ontien infom—™ión ™omo nom˜re de usu—rioD l— líne— por l— que —™™edeD el lug—r desde donde lo h—™e y l— hor— de —™™esoF €—r— ver l— estru™tur— del ™lon …xsˆ que est—s tr—˜j—ndo puede eje™ut—r @man getutentAF utpm este —r™hivo es un (™hero ˜in—rio ™on inform—™ión de ™—d— usu—rio que está ™one™t—do en un momento d—doFFFD el progr—m— /bin/login gener— un registro en este (™hero ™u—ndo un us—rio ™one™t—D mientr—s que init lo elimin— ™u—ndo des™one™t—F €—r— visu—liz—r el ™ontenido de este —r™hivo podemos utiliz—r ordenes ™omo @last. lastlog.7.3.org Hamnlet Rivera Lagares .6. w.

Ficheros peligrosos v— lo™—liz—™ión de (™heros .org Hamnlet Rivera Lagares .3.rhosts de˜erí— ser uno de los de˜eres regul—res de l— —dministr—™ión de su sistem—D y— que estos (™heros no se de˜erí—n permitir en sus sistem—F ‚e™uerde que un ™r—™ker sólo ne™esit— un— ™uent— insegur— p—r— poten™i—lE mente o˜tener —™™eso — tod— su redF €uede lo™—liz—r todos los (™heros .7. Ficheros extraños vos (™heros sin propiet—rio t—m˜ién pueden ser un indi™io de que un intruso h— —™™edido — su sistem—F €uede lo™—liz—r los (™heros de su sistem— que no tienen propiet—rio o que no pertene™en — un grupo ™on el ™om—ndoX rootdm—tem—ti™oX5 (nd G Enouser Eo Enogroup Eprint 3.2.codigolibre.rhosts de su sistem— ™on el siguiente ™om—ndoX rootdm—tem—ti™oX5 (nd Ghome En—me Frhosts Eprint Nota: entes de ™—m˜i—r permisos en ™u—lquier sistem— de (™herosD esté seguro de que entiende lo que h—™eF xun™— ™—m˜ie permisos de un (™hero simplemente porque p—rez™— l— form— fá™il de h—™er que —lgo fun™ioneF ƒiempre de˜e determin—r porqué el (™hero tiene esos permisos y el propiet—rio —ntes de modi(™—rlosF Fundación Código Libre Dominicano http://www.1. Normas prácticas para aumentar la seguridad rootdm—tem—ti™oX5 (nd G Eperm EP Eprint IQ y esté seguro de s—˜er por qué tienen esos permisos de es™ritur—F in el ™urso norm—l de un— oper—™ión los (™heros tendrán permisos de es™ritur—D in™luidos —lgunos de /dev y enl—™es sim˜óli™osF 3.7.

Capítulo4 Atributos de un archivo in el sistem— de (™heros extP y extQ de qx…Gvinux existen ™iertos —tri˜utos p—r— los —r™hivos que pueden —yud—r — in™rement—r l— segurid—d de un sistem—F he todos ellosD de ™—r— — l— segurid—d —lgunos no nos interes—n dem—si—doD pero otros sí que se de˜en tener en ™uent—F …no de los —tri˜utos interes—ntes quizás el que más es aF „—n import—nte es que sólo el —dministr—dor tiene el privilegio su(™iente p—r— —™tiv—rlo o des—™tiv—rloF il —tri˜uto a so˜re un —r™hivo indi™— que este sólo se puede —˜rir en modo es™ritur— p—r— —ñ—dir d—tosD pero nun™— p—r— elimin—rlosF in qué in)uye esto ™on l— segurid—dc is simpleD ™u—ndo un intruso h— ™onseguido el privilegio su(™iente en un sistem— —t—™—doD lo primero que suele h—™er es ˜orr—r sus huell—s p—r— esto existen mu™hos progr—m—s @denomin—dos z—ppersD rootkitsFFFA queD junto — otr—s fun™ionesD elimin—n estru™tur—s de ™iertos (™heros de log ™omo lastlog. users. w o simil—resD no ve— ni r—stro de l— ™onexión que el —t—™—nte h— re—liz—do — l— máquin—F ividentementeD si estos —r™hivos de log poseen el —tri˜uto a —™tiv—doD el pir—t— y sus progr—m—s lo tienen más difí™il p—r— ˜orr—r d—tos de ellosF ehor— viene l— siguiente ™uestiónD si el pir—t— h— ™onseguiE do el su(™iente nivel de privilegio ™omo p—r— poder es™ri˜ir y ˜orr—r en los (™heros @en l— m—yorí— de …xsˆs p—r— re—liz—r est— t—re— se ne™esit— ser rootAD simplemente h— de resete—r el —tri˜uto a del —r™hivoD elimin—r los d—tos ™omprometedores y volver — —™tiv—rloF y˜vi—menteD esto es —sí de simpleD pero siempre hemos de re™ord—r que en l—s redes h—˜itu—les no suelen ser —t—™—d—s por pir—t—s ™on un mínimo nivel de ™ono™imientosD sino por los intrusos más nov—tos de l— redD t—n nov—tos que gener—lmente se limit—n — eje™ut—r progr—m—s desde sus )—m—ntes ‡indows sin tener ni l— más remot— ide— de lo que están h—™iendo en …xsˆD de form— que un— prote™™ión t—n element—l ™omo un (™hero ™on el )—g a —™tiv—do se ™onvierte en —lgo imposi˜le de modi(™—r p—r— ellosD ™on lo que su —™™eso qued— ™onvenientemente registr—do en el sistem—F ytro —tri˜uto del sistem— de —r™hivos extP y extQ es i @(™hero inmut—˜leAF …n —r™hivo IR . who. wtmp o utmpF esí ™onsiguen que ™u—ndo —lguien eje™ute last.

codigolibre.4. Atributos de un archivo IS ™on este )—g —™tiv—do no se puede modi(™—r de ningun— form—D ni —ñ—diendo d—tos ni ˜orrándolosD ni elimin—r el —r™hivoD ni t—n siquier— enl—z—rlo medi—nte lnF sgu—l que su™edí— —ntesD sólo el —dministr—dor puede —™tiv—r o des—™tiv—r el —tri˜uto i de un (™heroF €odemos —prove™h—r est— ™—r—™terísti™— en los —r™hivos que no se modiE (™—n fre™uentementeD por ejemplo mu™hos de los ™ontenidos en /etc @en donde se en™uentr—n (™heros de ™on(gur—™iónD s™ripts de —rr—nqueFFFD in™luso el propio (™heE ro de ™ontr—señ—s si el —ñ—dir o elimin—r usu—rios t—mpo™o es fre™uente en nuestro sistem—AY de est— form— ™onseguimos que ningún usu—rio pued— modi(™—rlos in™luso —unque sus permisos lo permit—nF gu—ndo —™tivemos el —tri˜uto i en un —r™hivo hemos de tener siempre en ™uent— que el —r™hivo no v— — poder ser modi(™—do por n—dieD in™luido el —dministr—dorD y t—mpo™o por los progr—m—s que se eje™ut—nen l— máquin—Y por t—ntoD si —™tivár—mos este —tri˜uto en un (™hero de logD no se gr—˜—rí— ningun— inform—™ión en élD lo que evidentemente no es ™onvenienteF „—m˜ién hemos de re™ord—r que los —r™hivos t—mpo™o v—n — poder sen enl—z—dosD lo que puede ser pro˜lemáti™o en —lgun—s v—ri—ntes de qx…Gvinux que utiliz—n enl—™es duros p—r— l— ™on(gur—™ión de los (™heros de —rr—nque del sistem—F etri˜utos que t—m˜ién pueden —yud—r — implement—r un— ™orre™t— políti™— de segurid—d en l— máquin—D —unque menos import—ntes que los —nterioresD son s y SF ƒi ˜orr—mos un —r™hivo ™on el —tri˜uto s —™tivoD el sistem— v— — rellen—r sus ˜loques ™on ™eros en lug—r de efe™tu—r un simple unlinkD p—r— —sí di(™ult—r l— t—re— de un —t—™—nte que intente re™uper—rloY re—lmenteD p—r— un pir—t— experto esto no supone ningún pro˜lem—D simplemente un retr—so en sus propósitosF €or su p—rteD el —tri˜uto S so˜re un (™hero h—™e que los ™—m˜ios so˜re el —r™hivo se es™ri˜—n inmedi—t—mente en el dis™o en lug—r de esper—r el sync del sistem— oper—tivoF eunque no es lo h—˜itu—lD ˜—jo ™iert—s ™ir™unst—n™i—s un (™hero de log puede perder inform—™ión que —ún no se h—y— vol™—do — dis™oF sm—ginemos por ejemplo que —lguien se ™one™t— —l sistem— y ™u—ndo éste registr— l— entr—d—D l— máquin— se —p—g— sú˜it—menteY tod— l— inform—™ión que —ún no se h—y— gr—˜—do en dis™o se perderáF eunque ™omo de™imosD esto no suele ser h—˜itu—l D si nuestro sistem— se —p—g— fre™uentemente sí que nos puede interes—r —™tiv—r el ˜it S de ™iertos (™heros import—ntesF ‰— hemos tr—t—do los —tri˜utos del sistem— de (™heros extP y extQ que pueden in™rement—r l— segurid—d de qx…GvinuxY v—mos — ver —hor—D sin entr—r en mu™hos det—lles @re™ordemos que tenemos — nuestr— disposi™ión l—s págin—s del m—nu—lA ™ómo —™tiv—r o des—™tiv—r estos —tri˜utos so˜re (™herosD y t—m˜ién ™ómo ver su est—doF €—r— lo primero utiliz—mos l— orden chattrD que re™i˜e ™omo p—rámetros el nom˜re del —tri˜uto junto — un signo + o -D en fun™ión de si dese—mos —™tiv—r o des—™tiv—r el —tri˜utoD y t—m˜ién el nom˜re del —r™hivo ™orrespondienteF ƒi lo que dese—mos es visu—liz—r el est—do de los diferentes —tri˜utosD utiliz—remos lsattrD ™uy— s—lid— indi™—rá ™on l— letr— ™orrespondiente ™—d— —tri˜uto del —r™hivo o un signo E en el Fundación Código Libre Dominicano http://www.org Hamnlet Rivera Lagares .

Atributos de un archivo ™—so de que el —tri˜uto no esté —™tiv—doF IT 4.1.org Hamnlet Rivera Lagares .1.1. = h—™e que sol—mente h—y—n los —tri˜utos espe™i(™—dosF Atributos A h—™e que l— fe™h— del último —™™eso en el —r™hivoD no se— modi(™—d—F il —tri˜uto D ™u—ndo se tr—t— de un dire™torioD est—˜le™e que los d—tos se es™ri˜en il —tri˜uto de form— sin™róni™— en el dis™oF is de™ir los d—tos se es™ri˜en inmedi—t—mente en lug—r de esper—r l— oper—™ión ™orrepondiente del sistem— oper—tivoF is equiv—lente — l— op™ión dirsync del ™om—ndo mountD pero —pli™—d— — un ™onjunto de —r™hivosF iste —tri˜uto tr—˜—j— igu—l que el —tri˜uto SD ™on l— diferen™i— de que este último tr—˜—j— so˜re —r™hivos y el primero so˜re dire™toriosF il —tri˜uto j en sistem—s de —r™hivos extQD ™u—do se mont—n ™on l—s op™iones data=ordered o data=writebackD se est—˜le™e que el —r™hivo será es™rito el regisE tro por di—rio @JournalAF ƒi el sistem— de —r™hivos se mont— ™on l— op™ión data=journalD todo el sistem— de —r™hivo se es™ri˜e en el registro por di—rio y por t—nto el —tri˜uto no tiene efe™toF in —tri˜uto u ™u—ndo un —r™hivo ™on este —tri˜uto es elimin—doD sus ™ontenidos son gu—rd—dos permitiendo re™uper—r el —r™hivo ™on —lgun— herr—mient— p—r— t—l prpósitoF Fundación Código Libre Dominicano http://www. Formato del mandato chattr ™h—ttr ‘E‚†“ CEa‘e—™hdijsƒu“ ‘Ev versión“ —r™hivos v— op™ión R ™—m˜i— re™ursiv—mente los —tri˜utos de los dire™torios y sus ™ontenidosF il oper—dor 4.4.codigolibre.

distribuir y/o mo- dificar este documente bajo los términos de Licencia de Documentacion Libre GNU.4.org Fundación Código Libre Dominicano Hamnlet Rivera Lagares . Atributos de un archivo IU 4.codigolibre. Ejemplos il siguiente ejemplo list— los —tri˜utos del —r™hivo prue˜—FtxtF minixgnudm—tem—ti™oX£6 ls—ttr prue˜—Ftxt E E E E E E E E E E E E E E prue˜—Ftxt minixgnudm—tem—ti™oX£6 ™h—ttr C— prue˜—Ftxt ƒi volvemos — list—r los —tri˜utos del —r™hivoD o˜tendremos l— siguiente s—lid— minixgnudm—tem—ti™oX£6 ls—ttr prue˜—Ftxt E E E E E — E E E E E E E E prue˜—Ftxt €—r— elimin—r el modo de solo —djunt—r del ejemplo —nterioD solo tenemos que eje™t—r lo siguienteX minixgnudm—tem—ti™oX£6 ™h—ttr E prue˜—Ftxt ehor— en el siguiente m—nd—to se est—˜le™erá que el —r™hivo se le —greg—rá los —triE ˜utos S y s minixgnudm—tem—ti™oX£6 ™h—ttr Cƒs prue˜—Ftxt ‰ posteriormente —l list—r sus —tri˜utos o˜tenemos lo siguienteX minixgnudm—tem—ti™oX£6 ls—ttr prue˜—Ftxt s E ƒ E E E E E E E E E E E prue˜—Ftxt il siguinte m—nd—to le —greg— el —tri˜uto inmnut—˜le —l —r™hivo prue˜—FtxtF minixgnudm—tem—ti™oX£6 ™h—ttr Ci prue˜—Ftxt emigo le™tor le invito — prue˜—r ™on ™—d— un— de l—s op™iones de éste ™om—ndoD y— que esto le servirá de prá™ti™— y p—r— le mejor entendimiento de lo que se h— es™rito en este do™umentoF ispero este tutori—l pued— ser útil — los —migos de l— ™omuni—d—d del ƒoftw—re vi˜reF 1 Se garantiza el permiso para copiar. 1 Licencia de este documento http://www. versión 3.2.0 o cualquier otra versión publicada por la Free Software Foundation.

Sign up to vote on this title
UsefulNot useful