Está en la página 1de 48

1

ADMINISTRADOR
Enero, 2008
INDICE DE CONTENIDO
INTRODUCCIN................................................................................ ...........................4
OBJETIVO GENERAL........................................................................... ..........................5
OBJETIVOS ESPECFICOS......................................................... ...................................5
INSTALACIN SEGURA DE LINUX................................................................... ..............6
Elecci! "e l#$ %e"i#$ "e i!$&'l'ci!................................................. ....................6
(ERRA)IENTAS GEN*RICAS DE AD)INISTRACIN.............................................. ........6
EL SISTE)A LINUX CO)O ROUTER.................................................................. ............+
CORTAFUEGOS............................................................................................................ .,
Cl'$i-ic'ci! "e C#.&'-/e0#$ ......................................................... .........................,
Te.%i!#l#01' "e C#.&'-/e0#$...................................................................... .............2
FIRE3ALLS SOBRE LINUX....................................................................... ...................14
I5&'6le$......................................................................................................... .........17
Fi.e8'll Pe.$#!'l Fi.e$&'.&e.................................................................................. ..15
C#!-i0/.'ci!......................................................................... ...............................16
SEGURIDAD................................................................................... ............................1,
ARC(IVOS DEL SISTE)A.................................................................................... ........49
:e&c:5'$$8"......................................................................... ..................................49
:e&c:$;'"#8.................................................................................... .......................49
:e&c:0.#/5$.......................................................................... ..................................49
:e&c:0$;'"#8.................................................................................. .......................49
:e&c:l#0i!."e-$............................................................................................. ...........41
:e&c:$;ell$.................................................................................. ............................41
:e&c:$ec/.e&&<........................................................................ ................................41
Se0/.i"'" "e '.c;i=#$ : Si$&e%' "e '.c;i=#$................................................ ........41
PLUGGABLE AUT(ENTICATION )ODULES >PA)?.......................................................44
SEGURIDAD DE CONTRASE@AS................................................................... ..............47
Al%'ce!'%ie!&# "e C#!&.'$eA'$...................................................................... ....44
SEGURIDAD BBSICA DE SERVICIOS DE RED......................................... .....................44
4
5$................................................................................................................... ........44
l$#-.............................................................................................................. ...........45
ARC(IVOS BBSICOS DE CONFIGURACIN DE RED....................................................45
&c5C8.'55e.$....................................................................................... ..................46
TCP:IP D SEGURIDAD DE REDES................................................... .............................4+
)eE#.'. l#$ '$5ec&#$ "e TCP:IP.................................................................. ............4+
Se0/.i"'" PPP.................................................................... ...................................4,
Se0/.i"'" IP >IPSec?................................................................. .............................42
DO)AIN NA)E SDSTE) >DNS?........................................................................... ........42
El '.c;i=# ;#$&.c#!-....................................................................... ........................79
V'.i'6le$ "e e!&#.!#............................................................................................. .71
LIG(T3EIG(T DIRECTORD ACCESS PROTOCOL >LDAP?...................................... .......74
O5e!LDAP ........................................................................................................ .....74
C#!-i0/.'ci! "e O5e!LDAP ............................................................................. ....74
Se.=ici#$ "e Di.ec&#.i# < LDAP............................................. .................................77
(e..'%ie!&'$ G.F-ic'$ "e A"%i!i$&.'ci!.............................................. ...............75
De$c.i5ci#!e$ .............................................................................. .........................75
S(ELLS D SCRIPTS.................................................................................. ...................76
S;ell$ i!&e.'c&i=#$.................................................................... .............................7+
S;ell$ Di$5#!i6le$............................................................................................. .....49
P.#0.'%'ci! $c.i5&$ e! B'$;....................................................... ........................44
V'.i'6le$ e! B'$;............................................................................ ......................47
C#%5'.'ci#!e$.............................................................................................. ........44
OPTI)IGAR EL SISTE)A......................................................................... ....................45
Re$#l=e. l#$ 5.#6le%'$ "e %e%#.i' 5.i!ci5'l..................................................... ..45
)/c;' /&iliH'ci! "e CPU....................................................... ...............................46
Re"/ci. el !I%e.# "e ll'%'"'$.............................................................. ...............46
)/c;' /&iliH'ci! "e "i$c#................................................................................... ..4+
ENLACES DE INTER*S........................................................................................... .....4,
7
INTRODUCCIN
Los profundos cambios sociales exigen a los ciudadanos el aprendizaje de toda una serie de
herramientas bsicas indispensables para desenvolverse en la nueva sociedad, la Sociedad
de la Informacin. El Sistema perativo !"#$Linux ha tenido un gran auge en los %ltimos
a&os ' cada vez son ms las personas (ue optan por este sistema como herramienta de
trabajo para llevar a cabo su labor diaria.
El mdulo de )dministrador tiene como propsito fundamental preparar a profesionales para
administrar adecuadamente servidores bajo Sistema perativo !"#$Linux,
proporcionndoles los conocimientos prcticos para ello ' generndoles un sentido de
anlisis ' creatividad para (ue puedan actuar adecuadamente ante las diversas situaciones
en su trabajo diario.
La labor de un )dministrador del Sistema perativo !"#$Linux en el mundo laboral actual,
exige un alto nivel de conocimientos t*cnicos (ue deben ser aplicados de forma exitosa para
garantizar un alto nivel en la calidad de servicios, sin embargo, es necesario ir ms all para
lograr el uso de los recursos t*cnicos ' humanos de forma eficiente. En este sentido, este
mdulo profundiza los conceptos ' t*cnicas vistas en el mdulo de soporte as+ como adiciona
nuevos conceptos referentes a los distintos servicios (ue puede proveer un servidor bajo
!"#$Linux ' cul es la mejor forma de implementarlos.
4
OBJETIVO GENERAL
,apacitar al participante para administrar adecuadamente servidores bajo Sistema perativo
!"#$Linux
OBJETIVOS ESPECFICOS
Al -i!'liH'. el c/.$# el 5'.&ici5'!&e e$&'.F e! l' c'5'ci"'" "eJ
Instalar el Sistema perativo !"#$LI"#- .ebian Etch de manera segura.
A5lic'. l' '/&#%'&iH'ci! "e &'.e'$ %e"i'!&e l' 5.#0.'%'ci! "e $c.i5&$.
/anejar las herramientas gen*ricas de administracin.
I!$&'l'ci! < c#!-i0/.'ci! "e c#.&'-/e0#$
C#!-i0/.'. < '"%i!i$&.'. e-icie!&e%e!&e l#$ $e.=ici#$ "e '/&e!&ic'ci! "e /$/'.i#$
"e .e".
5
INSTALACIN SEGURA DE LINUX
#na adecuada instalacin de Linux es el primer paso para tener un sistema estable ' seguro.
0a' varios trucos (ue hacen ms fcil la instalacin, as+ como algunos asuntos (ue es mejor
llevarlos a cabo durante la instalacin como la estructura de un disco duro.
Eleccin de los edios de ins!"l"cin
Este es el elemento n%mero uno, (ue afectar a la velocidad de instalacin ' en buena
medida la seguridad. #no de los m*todos preferidos por los usuarios es la instalacin v+a ftp,
'a (ue colocar temporalmente una tarjeta de red en una m(uina es algo rpido e indoloro, '
alcanzar velocidades superiores a 1 /egab'te$seg acaba siendo una instalacin rpida.
La instalacin desde el ,.23/ suele ser la ms fcil, 'a (ue se puede arrancar desde
ellos, el Linux encuentra el ,. sin tener (ue apuntar a directorios o tener (ue preocuparse
por los nombres de archivos con ma'%sculas o min%sculas 4al contrario (ue ocurre en la
instalacin basada en disco duro5. Se trata de un medio original de Linux.
678 9 rpida, re(uiere una tarjeta de red, ' un servidor de ftp.
0778 9 tambi*n rpida, ' algo ms segura (ue hacer una llamada a un 678 p%blico
Samba.
"6S 9 no tan rpida, pero puesto (ue el "6S est implementado en la ma'or+a de las
redes #"I- existentes.
,.3/9 si se tiene un lector de ,.3/ rpido, la mejor apuesta es introducir el ,.
' arrancar desde *l, pulsar E"7E3 unas cuantas veces ' 'a est listo. )hora, se
puede arrancar desde la ma'or+a de los ,.3/:s de Linux.
.isco duro 9 generalmente la ms tediosa, las ventanas confunden los nombres de
archivo, la instalacin desde una particin ext; suele ser algo menos tediosa.
Imgenes IS en ,..
#ERRA$IENTAS GEN%RICAS DE AD$INISTRACIN
En el campo de la administracin, tambi*n se pueden tomar en cuenta algunas herramientas,
como las pensadas de forma gen*rica para la administracin<
6
Lin&'con(< esta es una herramienta gen*rica de administracin donde se agrupan los
diferentes aspectos de administracin en una interfaz de men%s textual= *sta se puede
utilizar en casi cual(uier distribucin !"#$Linux, ' soporta diversos detalles propios de
cada una.
)e*in< esta es otra herramienta de administracin pensada para una interfaz >eb=
funciona con una serie de plugins (ue pueden se a&adidos para cada servicio (ue se
desea administrar= normalmente cuenta con formularios donde se especifican los
parmetros de configuracin de los servicios= adems, ofrece la posibilidad, si se
activa, de permitir la administracin remota desde cual(uier m(uina con navegador.
Los entornos de escritorio de !nome ' ?.E se sirven del concepto de @8anel de
controlA, el cual permite la gestin, tanto el aspecto visual de las interfaces grficas,
como tratar algunos parmetros de los dispositivos del sistema.
EL SISTE$A LINUX CO$O ROUTER
#n sistema Linux puede funcionar haciendo la funcin de router, simplemente se conecta a
dos o ms redes ' sabiendo, a partir de su tabla de rutas, por (u* interfaz puede alcanzar
cada red, dirige los pa(uetes entre una ' otra red. Este ser un funcionamiento como router
esttico. 8ara ello es necesario (ue la caracter+stica I8 forBarding 4o routing entre interfaces5
est* activada en el n%cleo del sistema. Si no est activada, cuando llegue un pa(uete por
una interfaz, no podr dirigirse hacia otra interfaz, por(ue no estar permitido el routing entre
ellos.
Se puede comprobar si est activo el I8 forBarding con el comando<
[root@linux entrega04-1]# cat /proc/sys/net/ipv4/ip_forward
0
En este caso, la salida C indica (ue no est activado el routing del Dernel. Se puede activar
mediante el comando<
+ec,o - ./01oc/s2s/ne!/i034/i05(o16"1d
Los dos m*todos siguientes, har+an el cambio permanente. El primero consiste en cambiar el
archivo de configuracin del Dernel 4$etc$s'sctl.conf5, colocando el siguiente valor<
+
ne!7i0347i05(o16"1d 8 -
tra opcin para (ue Linux funcione como router, es la de instalar un servidor especializado
de routing en nuestro sistema Linux. La sola capacidad de routing, nos permite conectar
varias redes, pero nos surge otro problema ma'or< la seguridad. Esto hace (ue la ma'or+a de
sistemas Linux 4' no Linux5 (ue interconectan redes, incorporen capacidades de seguridad,
como los cortafuegos.
CORTAFUEGOS
#n cortafuegos 4o fireBall5 es un componente o conjunto de componentes (ue restringen el
acceso entre una red protegida e Internet, o entre varias redes. Inclu'e tanto componentes
hardBare como softBare, configuraciones ' definicin de pol+ticas de seguridad.
Es(uema de red con cortafuegos
Su propsito es doble, proteger los sistemas ' servicios internos de los ata(ues del exterior, '
controlar los accesos hacia Internet de nuestros usuarios.
Cl"si(ic"cin de Co1!"(&e9os
Seg%n el nivel de la pila de protocolos sobre el (ue trabajan, se pueden clasificar los
cortafuegos en<
Co1!"(&e9os de Ni3el de 1ed: el control de trfico a nivel de red consiste en analizar
todos los pa(uetes (ue llegan a una interfaz de red, ' decidir si se les deja pasar o no,
en base al contenido de los mismos< protocolo, direccin de origen, direccin de
destino, puerto origen ' puerto destino fundamentalmente.
Su operacin se asemeja a la de un guardia de trfico (ue en un cruce decide (u*
,
carros pueden pasar ' cules no, dependiendo de su origen ' su destino. 8uesto (ue
analizar esta informacin es mu' sencillo, este tipo de cortafuegos suelen ser mu'
rpidos ' transparentes al usuario. Se suelen denominar de filtrado de pa(uetes
4pacDet a filter5. #na mejora sobre este tipo de cortafuegos, ser+an los de Inspeccin
de Estado 4Stateful Inspection5 (ue adems, inspeccionan en el interior de los
pa(uetes para comprobar si cumplen las pol+ticas de seguridad.
Co1!"(&e9os de Ni3el de A0lic"cin: se basan en la instalacin de intermediarios
4proxies5, tambi*n conocidos como pasarelas 4application gateways5. El cliente,
situado en un lado del cortafuegos, habla con un intermediario situado en el propio
cortafuegos. Este intermediario lo identifica, registra sus peticiones ', si est permitido,
las encamina hacia el verdadero servidor situado al otro lado del cortafuegos. La
contestacin regresa por el mismo camino, (uedando igualmente registrada.
El control se hace interceptando las comunicaciones a nivel de aplicacin, modificando
el protocolo para incluir medidas adicionales de seguridad. El cortafuegos debe
conocer los detalles del protocolo de cada servicio (ue intercepta, analizar su correcto
funcionamiento ' a&adir los pasos de control precisos a los mismos. 8or ejemplo,
s(uid es un prox' (ue debe conocer el protocolo 0778 para recoger las peticiones de
los navegadores cliente ' redirigirlas al servidor destino. El cortafuegos es, por tanto,
mucho ms inteligente ' posee a un control ms fino de todo el proceso de
comunicacin, aun(ue esto supone una ma'or carga de trabajo ' penalizacin en
eficiencia. )dems, normalmente exigen realizar modificaciones en la aplicacin del
usuario, como por ejemplo, decirle al navegador (ue utilice el prox'.
Te1inolo9;" de Co1!"(&e9os
En una ar(uitectura de sistema cortafuegos, encontramos una serie de t*rminos o
componentes como son<
,os! *"s!in: 4tambi*n se denomina gates5 es un sistema especialmente asegurado,
pero (ue puede recibir ata(ues por estar accesible desde Internet. 7iene como funcin
ser el punto de contacto de los usuarios de la red interna de una organizacin con otro
tipo de redes. El host bastin filtra trfico de entrada ' salida, ' tambi*n oculta la
configuracin de la red hacia fuera.
2
filtrado< tambi*n se conoce como screening, ' a los dispositivos (ue lo implementan se
les denomina chokes.
.e la combinacin de estos elementos, filtrado ' host bastin, surgen las siguientes
ar(uitecturas de cortafuegos<
Co1!"(&e9os de (il!1"do de 0"<&e!es =Screening outer >: un fireBall sencillo puede
consistir en un dispositivo capaz de filtrar
pa(uetes, un choDe. Easado en aprovechar
la capacidad de algunos routers 2
denominados screening routers para hacer
un enrutado selectivo, es decir, para
blo(uear o permitir el trnsito de pa(uetes
mediante listas de control de acceso en
funcin de ciertas caracter+sticas de las
tramas, de forma (ue el router act%e como
pasarela de toda la red.
D&"l?#oed #os! =!ost en dos
"onas>< este modelo de cortafuegos
est formado por m(uinas e(uipadas
con dos tarjetas de red ' denominadas
dual2homed hosts, en las (ue una de
las tarjetas se conecta a la red interna
para proteger ' la otra a la red externa.
En esta configuracin el choDe ' el
bastin coinciden en el mismo e(uipo.
19
Sc1eened #os!: un paso ms en t*rminos de seguridad de los cortafuegos es la
ar(uitectura screened host o choDe2gate,
(ue combina un router con un host
bastin, ' donde el principal nivel de
seguridad proviene del filtrado de
pa(uetes 4es decir, el router es la primera
' ms importante l+nea de defensa5. En la
m(uina bastin, %nico sistema accesible
desde el exterior, se ejecutan los proxies
de las aplicaciones, mientras (ue el
choDe se encarga de filtrar los pa(uetes (ue se puedan considerar peligrosos para la
seguridad de la red interna, permitiendo %nicamente la comunicacin con un reducido
n%mero de servicios.
Sc1eened S&*ne! =#$%>: la ar(uitectura Screened Subnet, tambi*n conocida como
red perimetral o Fona .esmilitarizada 4.e2/ilitarized Fone o ./F5 a&ade un nivel ms
de seguridad en las ar(uitecturas de cortafuegos, situando una subred 4la ./F5 entre
las redes externa e interna, de forma (ue se consiguen reducir los efectos de un
ata(ue con *xito al host
bastin. En los modelos
anteriores, si la seguridad
del host bastin se ve
comprometida, la amenaza
se extiende
automticamente al resto de
la red. ,omo la m(uina
bastin es un objetivo
interesante para muchos
piratas, la ar(uitectura ./F intenta aislarla en una red perimetral de forma (ue un
intruso (ue accede a esta m(uina, no consiga un acceso total a la subred protegida.
Screened subnet es la ar(uitectura ms segura, pero tambi*n la ms compleja= se
utilizan dos routers, denominados exterior e interior, conectados ambos a la red
11
perimetrala. En esta red ./F, (ue constitu'e el sistema cortafuegos, se inclu'e el
host bastin ' tambi*n se podrn incluir sistemas (ue re(uieran un acceso controlado,
como bater+a de modems, el servidor Beb o el servidor de correo, (ue sern los
%nicos elementos visibles desde fuera de nuestra red.
FIRE)ALLS SOBRE LINUX
Los cortafuegos pueden estar basados en la combinacin de un hardBare ' un softBare
especializado, constitu'endo cajas preparadas para realizar esa funcin, como por ejemplo
los "oDia o I8, los ,isco 8I- o las cajas de StoneSoft. tros, sin embargo, estn construidos
sobre un sistema operativo de propsito general, (ue se blinda ' prepara para funcionar
como cortafuegos. En este caso, podemos tener un sistema operativo Solaris, >indoBs o
Linux sobre los (ue se ejecuta un softBare como el 6ireBall21 de ,hecD 8oint.
Linux se puede encontrar en las dos opciones. 0a' empresas (ue utilizan linux sobre un
hardBare espec+fico, dando una caja lista para ser utilizada como cortafuegos, como el
i6orce de Sun /icros'stems. 7ambi*n podemos coger un sistema Linux sobre un 8, e
instalar un cortafuegos. Lo ms normal, en ambos casos, es utilizar las caracter+sticas de
cortafuegos (ue incorpora el propio Dernel de Linux< i0!"*les.
#n sistema cortafuegos puede ofrecer sus servicios a una red (ue se sit%a detrs de *l,
denominndose cortafuegos de la red, o el cortafuegos protege a la propia m(uina en la
(ue se ejecuta, denominndose cortafuegos personal.
8ara un cortafuegos de red, se puede utilizar distribuciones especializadas, (ue incorporan
facilidades de administracin por medio de navegador, integran prox's ' utilidades
adicionales. Se puede encontrar en este segmento a Smooth>all 4BBB.smoothBall.org5 o
I8,op 4BBB.ipcop. org5. El proceso a seguir consiste en descargarse la imagen IS de la
distribucin, grabar el ,. e iniciar la instalacin. El proceso es mu' guiado ' va haciendo las
preguntas correspondientes para configurar el cortafuegos a gusto del usuario.
8ara un cortafuegos personal, trabajamos con nuestra distribucin favorita ' se configura
iptables para a&adir seguridad. Sin embargo, el trabajar directamente con iptables puede ser
mu' engorroso ' existen interfaces grficas (ue nos permiten la configuracin ' el trabajo de
forma ms fcil.
14
I0!"*les
La principal herramienta de cortafuegos para Linux a partir de los Dernels ;.G es iptables,
estos reemplazan al anterior ipchains de los Dernels de la versin ;.; ' a ipfBadm de los
Dernels ;.C. La funcin de iptables es la de establecer, mantener e inspeccionar las reglas de
filtrado de pa(uetes I8 en el n%cleo de Linux.
Iptables decide (u* pa(uete de informacin puede pasar, seg%n unos criterios (ue se
almacenan en unas listas. Las listas se componen de reglas con un orden determinado,
donde la %ltima regla introducida ser la %ltima regla en aplicarse.
,uando un pa(uete llega, se mira en (u* lista debe aplicarse. En esa lista 4iptables las llama
tablas5 se empieza por la primera regla. Si la regla no es aplicable al pa(uete, se pasa a la
siguiente regla. ,uando una regla es aplicable 4match5 al pa(uete, se ejecuta la accin (ue
ha'a sido definida en la regla 4descartar el pa(uete, aceptarlo, enrutarlo, etc5.
3ecorrido de un pa(uete utilizando iptables
,uando iptables recibe el pa(uete 415, se comprueba si el destino final es nuestra propia
m(uina o es otra, por(ue estemos funcionando como router$gateBa' o cortafuegos. 8ara
los pa(uetes (ue van a la propia m(uina se aplican las reglas I"8#7 4;5 ' para pa(uetes
(ue van a otras redes o m(uinas se aplican las reglas 63>)3. 4G5. Las reglas de
#78#7 4H5 se aplican cuando un pa(uete es enviado desde nuestra m(uina al exterior.
I"8#7,#78#7 ' 63>)3. son los tres tipos de reglas de filtrado 46IL7E35. )ntes de
aplicar esas reglas es posible aplicar reglas de ")7 ' de /)"!LE.
17
La estructura de un comando iptables es la siguiente <
i0!"*les ?! @!"*l"A ?@o0cionesA @1e9l"A @c1i!e1ioA ?B @"ccinA
donde cada elemento significa lo siguiente<
2t ItablaJ 22K esta parte del comando especifica cul es la tabla en la (ue aplicamos la
regla. Existen H tipos de tablas< 6IL7E3, ")7 ' /)"!LE, siendo filter la tabla por
defecto si se omite esta parte del comando.
Fil!e1C es la tabla donde se a&aden las reglas relacionadas con el filtrado de pa(uetes.
N"!, se refiere a las conexiones (ue sern modificadas por el fireBall, como por
ejemplo, a enmascarar conexiones, realizar redirecciones de puertos, etc. ' $"n9le
es parecido a "at, pero tiene la posibilidad de modificar ms valores del pa(uete.
2IopcionesJ 22K las opciones bsicas del comando son las siguientes <
AC para a&adir 4)ppend 5 una regla.
LC es para listar 4List5 las reglas.
FC es para borrar 46lush5 todas las reglas o en el caso de (ue I"8#7,
63>)3. o #78#7 sean dados como argumento, se borrarn las reglas
asociadas slo a esa clase.
PC establece la pol+tica 48olic'5 por defecto del fireBall. 8or defecto es
aceptar todas las conexiones.
IreglaJ 22K reglas vlidas son I"8#7, 63>)3. ' #78#7.
IcriterioJ 22K a(u+ es donde se especificarn las caracter+sticas del pa(uete (ue
casar con esta regla. )lgunos ejemplos son<
?s < direccin de origen 4source5. 8uede ser una direccin I8 o una red. 2s
1L;.1MN.1.C$;G
?d < direccin de destino. 2d NG.OM.PH.H
?0 < tipo de protocolo 47,8,#.8,I,/85. 2p 7,8
?s0o1! < puerto de origen
14
?d0o1!: puerto de destino 22dport ;H
?i Q in2interface < el interfaz por el (ue se entra 2i ethC
?o Q 2out2interface< el interfaz por el (ue se sale 2o pppC
2j IaccionJ 22K a(u+ establecemos (u* es lo (ue ha' (ue hacer con el pa(uete. Las
posibles acciones son <
ACCEPT< aceptar el pa(uete.
REJECT o DROP< desechar el pa(uete. La diferencia entre ellos reside en
(ue .38 descartar el pa(uete silenciosamente ' 3ERE,7 emitir un
pa(uete I,/8 8ort #nreachable, indicando (ue est cerrado el puerto.
REDIRECT redirigir el pa(uete a donde se indi(ue en el criterio del
comando.
LOG archiva el pa(uete para su posterior anlisis.
0a' dos maneras de implementar un fireBall, seg%n la pol+tica por defecto (ue
especifi(uemos<
Pol;!ic" 0o1 de(ec!o ACEPTAR< se aceptan por defecto todos los pa(uetes. Slo se
denegar lo (ue se diga expl+citamente. El e(uivalente ser la pol+tica de acceso a un
bingo< pueden entrar todas las personas, excepto a(uellas cu'o ."I aparezca en la
lista de acceso prohibido.
Pol;!ic" 0o1 de(ec!o DENEGAR: 7odo est denegado, ' slo se permitir pasar por el
fireBall a(uello (ue se permita expl+citamente. El e(uivalente ser+a el acceso a la
cmara de cajas de seguridad de un banco. El acceso est prohibido a todo el mundo
' se habilita una lista de personas autorizadas a entrar. 8ara un cortafuegos, se
recomienda aplicar esta pol+tica por defecto.
Fi1e6"ll Pe1son"l Fi1es!"1!e1
En realidad es un interface grfico para iptables, mu' %til para configurar nuestro
cortafuegos, 'a sea como cortafuegos personal o como cortafuegos para proteger una red.
Lo primero (ue haremos es instalarlo. 8ara ello utilizamos el siguiente comando<
15
+"0!?9e! ins!"ll (i1es!"1!e1
8odemos lanzar el cortafuegos ejecutando desde la l+nea de comandos #firestarter& Esta
opcin mostrar las conexiones activas en nuestra m(uina en tiempo real.
Con(i9&1"cin
La forma ms fcil es con el asistente, (ue podemos llamar desde la entrada ,ortafuegos '
Ejecutar asistente, desde el men% principal.
Si pulsamos )delante, pasamos a una ventana en la (ue se puede seleccionar el interfaz de
nuestro sistema (ue se conecta a Internet. En esta opcin estamos seleccionando el fireBall
personal (ue protege nuestra m(uina del mundo exterior. )dems, seleccionamos (ue el
cortafuegos se active al conectarnos a Internet.
16
La siguiente pantalla nos permite decidir si el fireBall de nuestro sistema adems funcionar
como pasarela para otros sistemas, convirti*ndose en el guardin de nuestra red. 8ara ello,
debemos contar con otra interfaz de red distinta de la anterior, (ue se conectar a la red
protegida. En este caso, como solamente (ueremos un fireBall personal, no activamos la
opcin 'ctivar la co(partici)n de la conexi)n a *nternet. Si (uisi*ramos (ue *ste sea el
cortafuegos de nuestra red, debemos especificar la interfaz conectada a la red de rea local
interna ' si (ueremos activar el servidor de .0,8 para dar direcciones automticamente.
1+
Sa se ha terminado una configuracin bsica del cortafuegos para uso personal. 8odemos
guardar las reglas e iniciar el cortafuegos.
SEGURIDAD
0o' en d+a existen muchos elementos (ue afectan la seguridad de un computador. 8or
ejemplo<
TEst en red la m(uinaU
T0a' cuentas interactivas de usuarios 4telnet$ssh5U
TSe utilizan las m(uinas como estaciones de trabajo o se trata de un servidorU
Esta %ltima es de gran relevancia, pues las Estaciones de 7rabajo ' los Servidores
tradicionalmente son mu' diferentes, aun(ue la l+nea se difumina con la introduccin de
potentes ' baratos 8,s, a medida (ue los sistemas operativos se aprovechan de ello. Sin
embargo, la principal diferencia entre los computadores no suele estar en el hardBare, ni
si(uiera en el Sistema perativo, sino en los pa(uetes de softBare (ue traen instalados ' en
el modo en (ue los usuarios acceden a la m(uina 4interactivamente, en la consola, etc.5. En
este sentido, se mencionan algunas reglas de carcter general (ue permitirn ahorrar
bastantes penurias<
/antener a los usuarios alejados de los servidores. Es decir, no proporcionarles shells
de login interactivos, a menos (ue sea un re(uerimiento absoluto.
1,
Elo(uear las estaciones de trabajo.
#tilizar la criptograf+a all+ donde sea posible para almacenar claves en texto simple,
n%meros de tarjetas de cr*dito ' otro tipo de informacin delicada.
Escanear regularmente la red en busca de puertos abiertos, softBare instalado (ue no
deber+a estar ah+, compararlo con resultados anteriores.
Es importante resaltar (ue la seguridad no es una solucin, es un modo de vida. 0ablando
en t*rminos generales, las estaciones de trabajo$servidores son utilizados por gente (ue no
se suele preocupar en absoluto por la tecnolog+a (ue llevan por debajo, lo %nico (ue (uieren
es tener listo su trabajo ' recoger su correo de forma peridica. Sin embargo, ha' muchos
usuarios (ue tendrn la habilidad suficiente como para modificar sus estaciones de trabajo,
para bien o para mal. ) esto ha' (ue a&adirle (ue la ma'or+a de los usuarios tienen acceso
f+sico a sus estaciones de trabajo, lo cual (uiere decir (ue ha' (ue blo(uearles el acceso si
se (uiere hacer las cosas bien.
#tilizar las claves de las EIS para mantener a los usuarios alejados de la EIS.
,onfigurar la m(uina para (ue arran(ue %nicamente del disco duro adecuado.
"o dar acceso de root a los usuarios, utilizar sudo para proporcionar acceso a
comandos privilegiados cuando sea necesario.
#tilizar cortafuegos para (ue incluso si se instalan servicios estos no sean accesibles
al resto del mundo.
bservar regularmente la tabla de procesos, puertos abiertos, softBare instalado,
entre otros en busca de cambios.
Establecer pol+ticas de seguridad escrita (ue los usuarios puedan entender, '
fortalecerla.
Eorrar todo tipo de objetos peligrosos 4ejemplo, compiladores5, a menos (ue sean
necesarios en un sistema.
,on la configuracin adecuada, una estacin Linux es casi a prueba de usuarios 4nada es
1CCV seguro5, ' generalmente mucho ms estable.
12
ARC#IVOS DEL SISTE$A
/e!c/0"ss6d
El archivo de contrase&as es sin discusin el archivo ms cr+tico en Linux 4' en la ma'or+a de
otros #nix5. ,ontiene el mapa de nombres de usuarios, identificaciones de usuarios ' la I.
del grupo primario al (ue pertenece esa persona. 7ambi*n puede contener el archivo real,
aun(ue es ms probable 4' mucho ms seguro5 (ue utilice contrase&as con shadoB para
mantener las contrase&as en $etc$shadoB.
Las contrase&as se guardan utilizando un hash de un slo sentido 4el hash utilizado por
defecto es cr'pt, las distribuciones ms nuevas soportan /.O, (ue es significativamente ms
robusto5. Las contrase&as no pueden obtenerse a partir de la forma cifrada, sin embargo, se
puede tratar de encontrar una contrase&a utilizando fuerza bruta para pasar por el hash
cadenas de texto ' compararlas, una vez (ue encuentres una (ue coincide, sabes (ue has
conseguido la contrase&a. Esto no suele ser un problema por s+ mismo, el problema surge
cuando los usuarios escogen claves (ue son fcilmente adivinables.
/e!c/s,"do6
El archivo de shadoB alberga pares de nombres de usuario ' contrase&as, as+ como
informacin contable, como la fecha de expiracin, ' otros campos especiales. Este archivo
deber+a protegerse a toda costa, ' slo el root deber+a tener acceso de lectura a *l.
/e!c/91o&0s
El archivo de grupos contiene toda la informacin de pertenencia a grupos, ' opcionalmente
elementos como la contrase&a del grupo 4generalmente almacenado en gshadoB en los
sistemas actuales5. #n grupo puede no contener miembros 4por ejemplo, no est usado5,
slo un miembro o m%ltiples miembros, ' la contrase&a es opcional 4' no se suele usar5.
/e!c/9s,"do6
Similar al archivo shadoB de contrase&as, este archivo contiene los grupos, contrase&as '
miembros. .e nuevo, este archivo deber+a ser protegido a toda costa, ' slo el usuario root
deber+a tener permiso de lectura al mismo.
49
/e!c/lo9in7de(s
Este archivo permite definir algunos valores por defecto para diferentes programas como
useradd ' expiracin de contrase&as. 7iende a variar ligeramente entre distribuciones e
incluso entre versiones, pero suele estar bien comentado ' tiende a contener los valores por
defecto.
/e!c/s,ells
El archivo de shells contiene una lista de shells vlidos, si el shell por defecto de un usuario
no aparece listado a(u+, (uizs no pueda hacer login interactivamente.
/e!c/sec&1e!!2
Este archivo contiene una lista de tt':s desde los (ue el root puede hacer un login. Los tt':s
de la consola suelen ir de $dev$tt'1 a $dev$tt'M. Los puertos serie son $dev$tt'SC ' superiores
por lo general.
Si se (uiere permitir al root hacer login v+a red, entonces se debe a&adir $dev$tt'p1 '
superiores 4si ha' HC usuarios conectados ' el root intenta conectar, el root aparecer como
procedente de $dev$tt'pH15. !eneralmente, slo se deber+a permitir conectar al root desde
$dev$tt'1, ' es aconsejable deshabilitar la cuenta de root, sin embargo antes de hacer esto,
se debe instalar sudo o un programa (ue permita al root acceder a comandos.
Se9&1id"d de "1c,i3os / Sis!e" de "1c,i3os
En Linux, el sistema de archivos extH 4E-7endido, versin H5. )lgo as+ como el standard
#"I- de toda la vida soporta permisos de archivos 4lectura, escritura, ejecucin, sticD' bit,
suid, guid, etc.5, propiedad de archivos 4usuario, grupo, otros5, ' otro tipo de estndares.
#na de sus desventajas es (ue no se puede hacer journaling. Sin embargo, Linux tiene
excelente softBare 3)I., soportando bastante bien los "iveles C, 1 ' O 43)I. no tiene (ue
ver con la seguridad, pero por supuesto tiene (ue ver con la estabilidad5.
Las utilidades bsicas para interactuar con archivos son< WlsW, WchoBnW, WchmodW ' WfindW.
tras inclu'en ln 4para creacin de enlaces5, stat 4muestra informacin de un archivo5 '
muchas ms. En cuanto a la creacin ' mantenimiento de sistemas de archivos por s+
mismos, se tienen WfdisDW 4el viejo fdisD5, WmDfsW 4/a?e 6ileS'stem, (ue formatea
41
particiones5, ' WfscDW 46ileS'stem ,hec?, (ue suele arreglar problemas5.
#n sistema Linux se puede comprometer con facilidad si se consigue acceso a ciertos
archivos, por ejemplo la capacidad para leer un archivo de claves sin shadoB da como
resultado la posibilidad de ejecutar contrase&as cifradas contra cracD, encontrando con
facilidad las contrase&as d*biles.
La ma'or parte de la seguridad son los permisos de usuarios. En Linux, un archivo es
:propiedad: de H entidades separadas, un #suario, un !rupo ' tros 4(ue es el resto5. El
usuario root es el (ue puede asignar a (u* usuario pertenece un archivo ' a (u* grupo,
puede tambi*n cambiar los permisos de un archivo ' ver$editar el mismo.
Linux no aporta todav+a proteccin a los usuarios sobre el root 4lo cual muchos lo consideran
algo bueno5. Igualmente, cual(uiera (ue sea due&o del directorio en (ue est el objeto 4sea
un usuario$grupo$otros con los permisos adecuados sobre el directorio padre5 puede,
potencialmente, editar los permisos 4' puesto (ue el root es due&o de $ puede hacer cambios
(ue involucren cual(uier lugar del sistema de archivos5.
PLUGGABLE AUT#ENTICATION $ODULES =PA$>
8)/ para Linux, es una suite de librer+as compartidas (ue permiten al administrador local del
sistema escoger cmo autentifican a los usuarios las aplicaciones. 8)/ introduce una capa
de middleBare entre la aplicacin ' el mecanismo real de autentificacin. #na vez (ue el
programa est 8)/ificado, podr ser utilizado por el programa cual(uier m*todo de
autentificacin (ue soporte 8)/. )dems de esto, 8)/ puede manejar cuentas ' datos de
sesiones, lo cual no suelen hacer bien los mecanismos habituales de autentificacin.
8or ejemplo, usando 8)/ se puede deshabilitar con facilidad el acceso de login a los
usuarios normales entre las Mpm ' las Mam, ' cuando hagan login, se les puede autentificar
v+a escner retinal. 8or defecto, los sistemas las versiones ms recientes de .ebian son
conscientes de 8)/.
.e esta forma, en un sistema con soporte 8)/, todo lo (ue se debe hacer para implementar
el shadoB en contrase&as es convertir los archivos de contrase&as ' de grupos, '
posiblemente a&adir una o dos l+neas a algunos archivos de configuracin de 8)/ 4si no las
tienen 'a a&adidas5.
44
En resumen, 8)/ proporciona una gran cantidad de flexibilidad al manejar la autentificacin
de usuarios con el %nico re(uerimiento de uno o dos mdulos 8)/ para manejarlo. Es
necesario este tipo de flexibilidad si se pretende (ue Linux sea un sistema operativo de tipo
empresarial. Las distribuciones (ue no vengan como W8)/ificadasW se pueden convertir, pero
re(uiere mucho esfuerzo 'a (ue se tiene (ue recompilar todos los programas con soporte
8)/, instalar 8)/, entre otras. En este sentido, probablemente sea ms fcil cambiarse a
una distribucin 8)/ificada si va a suponer un re(uisito.
tros beneficios de un sistema orientado a 8)/ es (ue ahora se puede hacer uso de un
dominio "7 para autentificar usuarios, lo cual (uiere decir (ue se pueden plantar estaciones
Linux en una red /icrosoft 'a existente sin tener (ue comprar "IS $ "ISX para "7 ' pasar
por todo el proceso de instalarlo.
SEGURIDAD DE CONTRASEDAS
En todo sistema operativo tipo #"I- se dan varias constantes, ' una de ellas es el archivo
$etc$passBd ' la forma en (ue funciona. 8ara (ue la autentificacin de usuario funcione
correctamente se necesitan 4como m+nimo5 alg%n tipo de archivo4s5 con #I. a mapas de
nombres de usuarios, !I. a mapas de nombres de grupos, contrase&as para todos los
usuarios ' dems informacin variada. El problema es (ue todo el mundo necesita acceso al
archivo de contrase&as ' durante muchos a&os, la solucin ha sido bastante simple '
efectiva, simplemente, se hace un hash de las contrase&as ' se guarda el hash, cuando un
usuario necesite autentificar, toma la contrase&a (ue introduce, la pasa por el hash ' si
coincide, evidentemente se trataba de la misma contrase&a. El problema (ue tiene esto es
(ue la potencia computacional ha crecido enormemente, ' ahora se puede tomar una copia
del archivo de contrase&as e intentar abrirlo mediante fuerza bruta en una cantidad de tiempo
razonable. 8ara resolver esto ha' varias soluciones<
#tilizar un algoritmo de hashing WmejorW, como /.O.
)lmacenar las contrase&as en alguna otra parte. Linux ha implementado la segunda
desde hace tiempo, se llama contrase&as con shadoB. En el archivo de contrase&as,
se reemplaza la contrase&a por una :x:, lo cual le indica al sistema (ue verifi(ue tu
contrase&a contra el archivo shadoB 4se hace lo mismo con el archivo de grupos ' sus
contrase&as5.
47
Al"cen"ien!o de Con!1"seE"s
Esto es algo (ue la ma'or+a de los usuarios no suelen tener en cuenta. T,mo se pueden
almacenar las contrase&as de forma seguraU El m*todo ms obvio es memorizarlas, pero
suele tener sus inconvenientes, si se administran HC sitios diferentes, por lo general se
tendrn HC contrase&as diferentes, ' una buena contrase&a tiene ms de N caracteres de
longitud, ' por lo general no es la cosa ms fcil de recordar. Esto conduce a (ue mucha
gente utilice la misma contrase&a en diferentes sistemas. #na mejor opcin es almacenar las
contrase&as en un formato cifrado, generalmente de forma electrnica en el computador o en
el palm pilot, de forma (ue slo ha' (ue recordar una contrase&a para desblo(uear el resto.
8ara esto se puede utilizar algo tan simple como 8!8 o !nu8!.
SEGURIDAD BFSICA DE SERVICIOS DE RED
0s
El programa ps muestra el estado de procesos 4informacin disponible en el sistema de
archivos virtual $proc5. La opcin ms com%nmente utilizada es Wps 2xauW, (ue muestra algo
as+ como toda la informacin (ue siempre se (uiere saber.
La forma ms fcil de aprender a leer la salida de ps es irse a la pgina del manual de ps '
aprender a (u* se refiere cada campo 4la ma'or+a se explican por s+ mismos, tales como el
V ,8#, mientras (ue algunos como SIFE son un poco ms oscuros< SIFE es el n%mero de
pginas de memoria de GD (ue est utilizando un programa5.
8ara averiguar (u* programas se estn ejecutando, una apuesta segura es hacer :man
YnombreZdeZcomandoK:= lo cual casi siempre suele sacar la pgina del manual (ue
pertenece a ese servicio 4como httpd5. 7e dars cuenta de (ue servicios como telnet, ftpd,
identd ' otros no aparecen aun(ue est*n ah+. Esto es debido a (ue se ejecutan desde inetd,
el WsuperservidorW.
8ara encontrar estos servicios, se debe mirar en $etc$inetd.conf o en la salida de Wnetstat 2vatW
la cual informa acerca de casi cual(uier cosa relacionada con la red. Es especialmente
buena para sacar listados de conexiones ' socDets activos. )l usar netstat se puede
encontrar (u* interfaces estn activas ' en (u* puertos.
44
lso(
lsof es un prctico programa cu'a idea es similar a la de ps, excepto en (ue muestra (u*
archivos$etc estn abiertos, lo cual puede incluir socDets de red. .esafortunadamente, el lsof
mucha informacin, de modo (ue ser necesario utilizar grep o redireccionarlo mediante less
4Wlsof [ lessW5 para hacerlo ms cmodo de leer.
ARC#IVOS BFSICOS DE CONFIGURACIN DE RED
0a' varios archivos de configuracin importantes, (ue controlan (u* servicios ejecuta Linux '
cmo lo hacen. /uchos de ellos se encuentran en diferentes localizaciones dependiendo de
cmo se instalar Linux ' los servicios. Los lugares habituales son<
"1c,i3o de con(i9&1"cin del se13ido1 Ine!d:
$etc$inetd.conf
archivos de inicio de varios tipos< $etc$rc.d$\ $etc$\
Lo mejor (ue se puede hacer es imaginarse (u* servicios se (uieren ejecutar, '
deshabilitar$borrar el resto.
inetd.conf es el responsable de iniciar los servicios, generalmente a(uellos (ue no necesitan
ejecutarse de continuo, o (ue estn basados en sesiones 4como telnet o ftpd5. Ello es debido
a (ue la sobrecarga (ue supondr+a ejecutar un servicio constantemente 4como telnet5 ser+a
ma'or (ue el costo de inicio ocasional cuando el usuario (uisiera utilizarlo.
8ara algunos servicios 4como ."S5 (ue sirven a muchas conexiones rpidas, la sobrecarga
de arrancar servicios cada pocos segundos ser+a ma'or (ue tenerlo constantemente
ejecutndose. .e igual forma ocurre con servicios como ."S ' el correo, donde el tiempo es
cr+tico, sin embargo unos pocos segundos de retraso en empezar una sesin de ftp no le
hacen da&o a nadie. El servicio en s+ se llama inetd ' se ejecuta al arrancar, de modo (ue se
le puede parar$arrancar$recargar manipulando el proceso inetd. ,ada vez (ue se hagan
cambios a inetd.con, ha' (ue reiniciar inetd para hacer efectivos los cambios, Dillall 91 inetd
lo reiniciar correctamente. ,omo de costumbre, las lineas del inetd.conf se pueden
comentar con un ] 4lo cual es una forma mu' simple ' efectiva de deshabilitar servicios como
rexec5. Se aconseja desabilitar tantos servicios de inetd.conf como sea posible, por lo
45
general los (ue se suelen usar son ftp, pop e imap. Se deber+a reemplazar telnet ' los
servicios por el SS0 ' servicios como s'stat$netstat ' finger proporcionan demasiada
informacin. El acceso a programas arrancados por inetd se puede controlar con facilidad
mediante el uso de 7,8Z>3)88E3S.
!c0561"00e1s
#sar tcpZBrappers hace (ue el asegurar servidores contra intrusos externos sea bastante
simple. tcpZBrappers se controla desde dos archivos<
$etc$hosts.alloB $etc$hosts.den'
8rimero se comprueba hosts.alloB, ' las reglas se comprueban desde la primera a la %ltima.
Si encuentra una regla (ue permita espec+ficamente entrar 4por ejemplo, una regla (ue
permita entrar al host, dominio, mscara de subred, etc.5 ' deja conectarse al servicio. Si no
se puede encontrar ninguna regla (ue corresponda en hosts.alloB, entonces va a comprobar
hosts.den' en busca de una regla (ue deniegue la entrada. .e nuevo se comprueban las
reglas de hosts.den' desde la primera a la %ltima, ' la primera regla (ue encuentre (ue
deniega acceso 4por ejemplo, una regla (ue deshabilite el host, dominio, mscara de subred,
etc.5 significa (ue no deja entrar. Si tampoco se puede encontrar una regla (ue deniegue la
entrada, entonces por defecto deja entrar.
Si se deja activado un servicio (ue no deber+a figurar en inetd.conf ' no se tiene una pol+tica
de denegacin por defecto, se pueden tener problemas. Es ms seguro 4' lleva un poco ms
de trabajo, pero a la larga es menor (ue tener (ue reinstalar el servidor5 tener reglas de
denegacin por defecto para el cortafuegos ' tcpZBrappers, de modo (ue si se olvida algo
por accidente, por defecto no tendr acceso. Si se instala algo para lo cual necesitan tener
acceso los usuarios ' se olvida poner reglas, enseguida se (uejarn ' se podr rectificar el
problema rpidamente. 6allar por precaucin ' denegar accidentalmente algo es ms seguro
(ue dejarlo abierto.
/e!c/se13ices
El archivo de servicios es una lista de n%meros de puertos, el protocolo ' el nombre
correspondiente. El formato es< nombre2de2servicio puerto$protocolo alias ] comentario
4opcional5. 8or ejemplo< time HP$udp timserver
46
rlp HL$udp resource ] localizacin de recursos
name G;$udp nameserver
Bhois GH$tcp nicname ] generalmente al sri2nic
domain OH$tcp
domain OH$udp
8or ejemplo, este archivo se utiliza cuando se ejecuta :netstat 2a:, ' por supuesto no se utiliza
cuando se ejecuta :netstat 2an:.
TCP/IP G SEGURIDAD DE REDES
El 78,$I8 se cre en una *poca ' en una situacin donde la seguridad no era algo (ue
concerniera demasiado. Inicialmente, :Internet: 4entonces llamada )rpanet5, consist+a en unos
pocos hosts, todo eran sitios acad*micos, grandes empresas o gobiernos. 7odo el mundo se
conoc+a, ' acceder a Internet era un asunto serio. La suite de protocolos 7,8$I8 es bastante
robusta, pero no est prevista para la seguridad 4por ejemplo, autentificacin, verificacin,
cifrado, etc.5.
Interceptar pa(uetes, leer la carga de los datos, ' dems, es algo bastante fcil en el Internet
de ho' en d+a. Los ata(ues ms comunes son los ata(ues de negacin de servicio, 'a (ue
son los ms fciles de ejecutar ' los ms dif+ciles de impedir, seguidos del sniffing de
pa(uetes, escaneo de puertos ' otras actividades relacionadas.
Los nombres de hosts no apuntan siempre a la direccin I8 correcta, ' las direcciones I8:s no
siempre se pueden resolver al nombre de host adecuado. Si es posible, no se debe utilizar
autentificacin basada en nombres de hosts. 8uesto (ue el envenenamiento de cach*s ."S
es algo relativamente sencillo, confiar la autentificacin en una direccin I8 reduce el
problema al spoofing, lo cual es algo ms seguro, pero de ning%n modo completamente
seguro. "o existen mecanismos extendidos para verificar (ui*n envi los datos ' (ui*n los
est recibiendo, excepto mediante el uso de sesiones o cifrado a nivel I8.
$eBo1"1 los "s0ec!os de TCP/IP
Se examina la red con el comando atsar, o tambi*n con netstat 2i o con netstat 2s [ more,
para analizar si existen pa(uetes fragmentados, errores, drops, overfloBs, entre otros, (ue
4+
puedan estar afectando a las comunicaciones ' con esto al sistema= por ejemplo, en un
servidor de "6S, "IS, 6tp o >eb.
Si se detectan problemas, se debe analizar la red para considerar las siguientes actuaciones<
6ragmentar la red a trav*s de elementos activos (ue descarten pa(uetes con
problemas, o (ue no son para m(uinas del segmento.
8lanificar dnde estarn los servidores para reducir el trfico hacia *stos, as+ como
tambi*n los tiempos de acceso.
)justar los parmetros del kernel 4$proc$sys$net$5, por ejemplo, para obtener mejoras
en el throughput hacer< echo MCC K $proc$s's$net$core$netdev max bacDlog 4por defecto
HCC5.
Se9&1id"d PPP
888 permite conexiones 7,8$I8, I8-$S8- ' "etEE#I sobre l+neas serie, la esencia de una
conexin 888 consiste en dos dispositivos informticos 4un computador, un 8alm 8ilot, un
servidor de terminales, entre otros, conectados sobre enlaces de serie. )mbos extremos
llaman al 888, se negocia la autentificacin ' se establece el enlace. 888 no tiene soporte
real para cifrado, de modo (ue si se necesita un enlace seguro ha' (ue invertir en alg%n tipo
de softBare ^8".
La ma'or+a de los sistemas llaman a 888 de la siguiente manera< se hace un login al e(uipo
' luego se invoca al login shell del 888= por supuesto (ue esto significa (ue el nombre de
usuario ' contrase&a se env+an en texto claro sobre la l+nea, ' (ue ha' (ue tener una cuenta
en ese tipo de e(uipo. En este caso el 888 no negocia la autentificacin en absoluto.
#n m*todo algo ms seguro de gestionarlo es utilizar 8)8 48assBord )uthentification
8rotocol 2 8rotocolo de )utentificacin de ,ontrase&as5. /ediante 8)8, la autentificacin se
hace internamente mediante 888, de modo (ue no se re(uiere una cuenta real en el
servidor. Sin embargo el nombre de usuario ' la contrase&a se siguen enviando en texto
claro, pero al menos el sistema es algo ms seguro dada la inexistencia de cuentas de
usuario reales.
El tercer 4' mejor5 m*todo para la autentificacin es utilizar ,0)8 4,hallenge 0andshaDe
4,
)uthentication 8rotocol, 8rotocolo de )utentificacin .esaf+o23espuesta5. )mbas partes se
intercambian llaves p%blicas ' las utilizan para cifrar los datos (ue se env+an durante la
secuencia de autentificacin, de modo (ue el nombre de usuario ' la contrase&a estn
relativamente a salvo de intrusos, ' sin embargo las transmisiones de datos se hacen con
normalidad.
Se9&1id"d IP =IPSec>
Seguridad I8 4I8Sec5 es el cifrado del trfico de red. "o se puede cifrar la informacin de la
cabecera ni el trailer, pero se puede cifrar la carga %til. Esto permite asegurar protocolos
como 88$>>> sin tener (ue cambiarlos de ninguna forma, puesto (ue el cifrado se hace
en el nivel I8. 7ambi*n permite conectar de forma segura L)"s ' clientes entre s+, sobre
redes inseguras 4como Internet5.
DO$AIN NA$E SGSTE$ =DNS>
El direccionamiento en 7,8$I8 se basa en n%meros de H; bits. Evidentemente, esos
n%meros no son fciles de recordar, mientras (ue si lo es el nombre (ue se le asigna a cada
m(uina. Existe una aplicacin (ue es capaz de traducir nombres a direcciones I8, ' es
conocida como sistema de resolucin de nombres 4."S5, la cual es
una aplicacin (ue encuentra la direccin I8 correspondiente a una m(uina de la (ue se
conoce su nombre, no se tienen (ue incluir rutinas para ello, 'a (ue en las librer+as
estndares 4libc5 existen 'a rutinas preparadas, como gethostb'name4H5 o gethostb'addr4H5.
En otros sistemas las rutinas se encuentran en otras librer+as distintas de la libc pero esto no
sucede en Linux. )l conjunto de rutinas (ue hacen estas tareas se les conoce como @sistema
de resolucinA. En una red pe(ue&a no es dif+cil mantener una tabla $etc$hosts en cada
m(uina, ' modi_carla. 8ero resulta complicado cuando ha' muchas m(uinas 'a (ue, en
principio, cada una necesita una copia de $etc$hosts.
#na solucin a esto es compartir esta ' otras bases de datos con el "IS, o sistema
desarrollado por Sun /icros'stems ' conocido tambi*n como de informacin de red pginas
amarillas. En este caso, las bases de datos como la de $etc$hosts se mantienen en un
servidor "IS central ' los clientes accedern a ellas de forma transparente al usuario. En
todo caso, esta solucin solo es aconsejable para redes pe(ue&as o medianas, 'a (ue
implican mantener un archivo central $etc$hosts (ue puede crecer mucho, ' luego distribuirlo
42
entre los servidores "IS.
En Linux, como en muchos otros sistemas #nix, el servicio de nombres se realiza mediante
un programa llamado named. )l iniciarse, carga un conjunto de archivos maestros en su
cache ' espera peticiones de procesos locales o remotos.
,uando hablamos del @sistema de resolucinA, no nos referiremos a una aplicacin en
particular, sino a la biblioteca de resolucin es decir, un conjunto de funciones (ue pueden
encontrarse en las bibliotecas estndar del lenguaje ,. Las rutinas principales son
gethostb'name4;5 ' gethostb'addr4;5, (ue buscan la direccin I8 de una m(uina a partir
del nombre ' viceversa. Es posible con_gurarlas para (ue simplemente miren en el archivo
hosts local 4o remoto, si se usa "IS5. tras aplicaciones, como smail, pueden incluir
diferentes rutinas para esto ' necesitan cierto cuidado.
El "1c,i3o ,os!7con(
El archivo host.conf es fundamental para controlar la con_guracin del sistema de resolucin
de nombres. Se encuentra en el directorio $etc e indica al sistema de resolucin (ue servicios
debe usar ' en (ue orden.
Las opciones del archivo host.conf deben estar en lineas distintas. Los campos deben
separarse por blancos 4espacios o tabuladores5. Las opciones disponibles son las siguientes<
o1de1< determina el orden en el (ue los servicios de resolucin se usan. pciones
vlidas son bind para usar el servidor de nombres, hosts para buscar en $etc$hosts '
nis para buscar con "IS. 8uede especi_carse cual(uiera de las anteriores, ' el orden
de aparicin determina (u* servicio se prueba en primer lugar para intentar resolver el
nombre.
&l!i: va con las opciones on u o ' determina si una m(uina del archivo $etc$hosts K
puede tener distintas direcciones I8 o no. Esta opcin no tiene efecto en peticiones v+a
"IS o ."S.
nos0oo(: ."S le permite encontrar un nombre de m(uina perteneciente a una
direccin I8 dada utilizando el dominio in2addr.arpa. Los intentos de los servidores de
nombres de proporcionar un nombre falso se conocen en Ingl*s como spoo_ng. 8ara
evitar esto, el sistema puede configurarse para comprobar si las direcciones I8
79
originales estn de hecho asociadas con el nombre obtenido. Si no, el nombre ser
rechazado ' se retornar un error. Esta opcin se activa poniendo nospoof on.
"le1!: esta opcin puede ir con las palabras on u o , si se activa, cual(uier intento de K
dar nombre falso sera anotado con un mensaje enviado al sistema de registros s'slog.
!1i: lleva un nombre de dominio como argumento (ue se (uitar a los nombres antes
de buscar su direccin. Es %til para las entradas del archivo hosts, (ue podrn as+ ir
solos los nombres de m(uinas, sin el dominio. ,uando se bus(ue una m(uina con
el nombre de dominio local este ser eliminado, haciendo (ue la b%s(ueda en el
archivo $etc$hosts tenga *xito. Esta opcin puede ir repetida con varios dominios, de
modo (ue su m(uina podr+a ser local a diversos dominios.
V"1i"*les de en!o1no
Existen algunas variables de entorno (ue establecen opciones (ue tienen mas prioridad
sobre las puestas en el archivo host.conf. Estas son<
1esol3 ,os! con(: espec+fica un archivo alternativo a $etc$host.conf.
1esol3 se13 o1de1: establece la opcin e(uivalente a la orden order del archivo
anterior. los servicios pueden ser hosts, bind '$o nis, separados por comas, espacios,
puntos o puntos ' coma.
1esol3 s0oo( c,ecH: determina la pol+tica seguida frente a los nombres falsos. Estar
completamente desactivada con la opcin o . con las opciones Barn ' Barn o se K K
realizaran comprobaciones contra los nombres falsos, pero en el primer caso se
mandaran los avisos al registro. un valor \ activa las comprobaciones contra nombres
falsos, pero las anotaciones en el registro se dejan como diga el archivo host.conf.
1esol3 &l!i: el valor on activa la opcin @multiA, ' el valor o la desactiva K
1esol3 o3e11ide !1i do"ins: esta variable lleva una lista de dominios por defecto,
similar a la puesta en el archivo host.conf con la opcin trim.
1esol3 "dd !1i do"ins< esta variable lleva una lista de dominios por defecto (ue se
a&ade a las (ue se dan en el archivo host.conf.
71
LIG#T)EIG#T DIRECTORG ACCESS PROTOCOL =LDAP>
L.)8 es un protocolo a nivel de aplicacin (ue permite el acceso a un servicio de directorio
ordenado ' distribuido para buscar diversa informacin en un entorno de red7 L.)8 tambi*n
es considerado una base de datos 4aun(ue su sistema de almacenamiento puede ser
diferente5 al (ue pueden realizarse consultas.
0abitualmente, almacena la informacin de login 4usuario ' contrase&a5 ' es utilizado para
autenticarse aun(ue es posible almacenar otra informacin 4datos de contacto del usuario,
ubicacin de diversos recursos de la red, permisos, certificados, etc5.
En conclusin, L.)8 es un protocolo de acceso unificado a un conjunto de informacin sobre
una red.
O0enLDAP
Se trata de una implementacin libre del protocolo (ue soporta m%ltiples es(uemas por lo
(ue puede utilizarse para conectarse a cual(uier otro L.)8. 7iene su propia licencia, la
penL.)8 8#ELI, LI,E"SE, al ser un protocolo independiente de la plataforma, varias
distribuciones LI"#-
penL.)8 tiene cuatro componentes principales<
slapd 2 demonio L.)8 autnomo.
slurpd 2 demonio de replicacin de actualizaciones L.)8 autnomo.
3utinas de biblioteca de soporte del protocolo L.)8.
#tilidades, herramientas ' clientes.
Con(i9&1"cin de O0enLDAP
A1c,i3os de Con(i9&1"cin: $etc$openldap$\
In(o1"cin so*1e l" con(i9&1"cin: configurar los servidores sl"0d ' sl&10d puede
ser complejo. )segurar el directorio L.)8, especialmente si se estn almacenando
datos no p%blicos como bases de datos de contrase&as, puede ser tambi*n una tarea
desafiante. Se necesita modificar los archivos $etc$openldap$slapd.conf '
$etc$openldap$ldap.conf para ajustar penL.)8 a las necesidades particulares.
74
Los recursos (ue pueden a'udar con tpicos tales como, elegir un directorio de
configuracin, controladores ' definiciones de bases de datos, ajustes del control de
acceso, lanzarlos como un usuario diferente a root ' establecer el entorno c,1oo!,
inclu'en<
La pgina de manual de sl"0d
La pgina de manual de slapd.conf
La !u+a del )dministrador de penL.)8 ;.;
Los documentos (ue se encuentran en http<$$BBB.openldap.org$pub$
Se13icios de Di1ec!o1io 2 LDAP
En el contexto de las redes de computadores, se denomina directorio a una base de datos
especializada (ue almacena informacin sobre los recursos, u WobjetosW, presentes en la red
4tales como usuarios, computadores, impresoras, etc.5 ' (ue pone dicha informacin a
disposicin de los usuarios de la red. 8or este motivo, esta base de datos suele estar
optimizada para operaciones de b%s(ueda, filtrado ' lectura ms (ue para operaciones de
insercin o transacciones complejas. Existen diferentes estndares (ue especifican servicios
de directorio, siendo el denominado -.OCC tal vez el ms conocido.
El estndar -.OCC define de forma nativa un protocolo de acceso denominado .)8 4.irector'
)ccess 8rotocol5 (ue resulta mu' complejo 4' computacionalmente pesado5 por(ue est
definido sobre la pila completa de niveles SI. ,omo alternativa a .)8 para acceder a
directorios de tipo -.OCC, L.)8 4LightBeight .irector' )ccess 8rotocol5 ofrece un protocolo
ligero casi e(uivalente, pero mucho ms sencillo ' eficiente, dise&ado para operar
directamente sobre 7,8$I8. )ctualmente, la ma'or+a de servidores de directorio -.OCC
incorporan L.)8 como uno de sus protocolo de acceso.
L.)8 permite el acceso a la informacin del directorio mediante un es(uema cliente2servidor,
donde uno o varios servidores mantienen la misma informacin de directorio 4actualizada
mediante r*plicas5 ' los clientes realizan consultas a cual(uiera de ellos. )nte una consulta
concreta de un cliente, el servidor contesta con la informacin solicitada '$o con un puntero
donde conseguir dicha informacin o datos adicionales 4normalmente, el WpunteroW es otro
servidor de directorio5.
77
Internamente, el modelo de datos de L.)8 4derivado de -.OCC, pero algo restringido5 define
una estructura jerr(uica de objetos o entradas en forma de rbol, donde cada objeto o
entrada posee un conjunto de atributos. ,ada atributo viene identificado mediante un nombre
o acrnimo significativo, pertenece a un cierto tipo ' puede tener uno o varios valores
asociados. 7oda entrada viene identificada un+vocamente en la base de datos del directorio
mediante un atributo especial denominado nombre distinguido o dn 4distinguished name5. El
resto de atributos de la entrada depende de (u* objeto est* describiendo dicha entrada. 8or
ejemplo, las entradas (ue describen personas suelen tener, entre otros, atributos como cn
4common name5 para describir su nombre com%n, sn 4surname5 para su apellido, mail para
su direccin de correo electrnico, etc. La definicin de los posibles tipos de objetos, as+
como de sus atributos 4inclu'endo su nombre, tipo, valor4es5 admitido4s5 ' restricciones5, (ue
pueden ser utilizados por el directorio de un servidor de L.)8 la realiza el propio servidor
mediante el denominado es(uema del directorio. Es decir, el es(uema contiene las
definiciones de los objetos (ue pueden darse de alta en el directorio.
El nombre distinguido de cada entrada del directorio es una cadena de caracteres formada
por pares YtipoZatributoKQYvalorK separados por comas, (ue representa la ruta invertida (ue
lleva desde la posicin lgica de la entrada en el rbol hasta la ra+z del mismo. 8uesto (ue se
supone (ue un directorio almacena informacin sobre los objetos (ue existen en una cierta
organizacin, cada directorio posee como ra+z 4o base, en terminolog+a L.)85 la ubicacin
de dicha organizacin, de forma (ue la base se convierte de forma natural en el sufijo de los
nombres distinguidos de todas las entradas (ue mantiene el directorio. Existen dos formas de
nombrar, o estructurar, la ra+z de un directorio L.)8<
"ombrado WtradicionalW< formado por el pa+s ' estado donde se ubica la organizacin,
seguida por el nombre de dicha organizacin. 8or ejemplo, la ra+z o base de la
#niversidad 8olit*cnica de ^alencia podr+a ser algo as+< WoQ#8^, stQ^alencia, cQESW.
"ombrado basado en nombres de dominio de Internet 4es decir, en ."S5< este
nombrado utiliza los dominios ."S para nombrar la ra+z de la organizacin. En este
caso, la base de la #8^ ser+a< WdcQupv, dcQesW. Este es el nombrado (ue vamos a
utilizar puesto (ue permite localizar a los servidores de L.)8 utilizando b%s(uedas
."S.
) partir de esa base, el rbol se subdivide en los nodos ' subnodos (ue se estime oportuno
74
para estructurar de forma adecuada los objetos de la organizacin, objetos (ue se ubican
finalmente como las hojas del rbol. .e esta forma, el nombre distinguido de cada entrada
describe su posicin en el rbol de la organizacin 4' vice2versa5, de forma anloga a un
sistema de archivos t+pico, en el (ue el nombre absoluto 4un+voco5 de cada archivo e(uivale
a su posicin en la jerar(u+a de directorios del sistema, ' vice2versa.
#e11"ien!"s G1I(ic"s de Adinis!1"cin
Entre las diferentes herramientas grficas con las (ue se puede manipular un directorio de
tipo L.)8 en Linux, existe una denominada .irector' )dministrator, sencilla ' cmoda para
su instalacin.
8ara instalarlo se debe descargar el pa(uete director'2administrator ' ejecutar el comando<
# apt-get install directory-ad(inistrator
#na vez instalado, se invoca su ejecutable 4di1ec!o12?"dins!1"!o15. La primera vez (ue se
ejecuta, lanza un asistente (ue pide la informacin sobre el servidor de L.)8, la base del
directorio, una credencial para la conexin 4WdnW ' contrase&a5, etc. #na vez terminado el
asistente, deber+a aparecer la ventana principal, donde se visualizar un objeto por cada
usuario ' grupo dado de alta en el directorio.
)ntes de seguir, se tiene (ue ir a las opciones de configuracin para activar la codificacin
de contrase&as WmdOW ' para desactivar el uso del atributo Wauth8assBordW para almacenar la
contrase&a. ) partir de ese momento, 'a se est en condiciones de a&adir, modificar ' borrar
usuarios ' grupos del directorio, mediante una simple interaccin con la herramienta.
Si esta herramienta se convierte en la herramienta fundamental de gestin de usuarios '
grupos en el dominio Linux, se necesita tener en mente un par de precauciones< en primer
lugar, si se desea mantener la filosof+a de grupos privados, se debe crear el grupo privado de
un usuario antes (ue el propio usuario, 'a (ue en este %ltimo paso slo se puede
seleccionar su grupo primario. S en segundo lugar, se tiene (ue gestionar manualmente los
directorios de conexin de los usuarios (ue se crean.
Desc1i0ciones
ld"0"dd 22K abre una conexin a un servidor L.)8, enlaza ' a&ade entradas.
75
ld"0co0"1e 22K abre una conexin a un servidor L.)8, enlaza ' hace una
comparacin usando los parmetros especificados.
ld"0dele!e ??. abre una conexin a un servidor L.)8, enlaza ' borra una o ms
entradas.
ld"0odi(2 22K abre una conexin a un servidor L.)8, enlaza ' modifica entradas.
ld"0od1dn 22K abre una conexin a un servidor L.)8, enlaza ' modifica el 3." de
las entradas.
ld"00"ss6d 22K es una herramienta para establecer la contrase&a de un usuario
L.)8.
ld"0se"1c, 22K abre una conexin a un servidor L.)8, enlaza ' hace una b%s(ueda
usando los parmetros especificados.
ld"06,o"i 22K abre una conexin a un servidor L.)8, enlaza ' realiza una
operacin Bhoami.
sl"0"dd 22K se usa para a&adir entradas especificadas en el formato Intercambio de
.irectorio de L.)8 4L.I65 en una base de datos slapd.
sl"0c"! 22K se usa para generar una salida L.)8 L.I6 basada en el contenido de una
base de datos slapd.
sl"0d 22K es el servidor L.)8 independiente.
sl"0inde' 22K se usa para regenerar +ndices slapd basados en el contenido actual de
una base de datos.
sl"00"ss6d 22K es una utilidad de contrase&as penL.)8.
sl&10d 22K es el servidor r*plica L.)8 independiente.
li*l*e1 2 li*ld"0 22K estas librer+as dan soporte a los programas L.)8 ' suministran
funcionalidad a otros programas (ue interactuan con L.)8.
S#ELLS G SCRIPTS
Shell, es un t*rmino gen*rico (ue se utiliza para nombrar a un programa (ue sirve de
76
interfaz entre el usuario ' el n%cleo 4Dernel5 del sistema !"#$Linux. Es una utilidad (ue le
permite a los usuarios interactuar con el Dernel por medio de la interpretacin de comandos
(ue *stos mismos introducen en la l+nea de comandos o en los archivos de tipo shell script.
Estos shell son los (ue los usuarios ven del sistema, 'a (ue el resto del sistema operativo
permanece esencialmente oculto a sus ojos. El shell se encuentra escrito de la misma forma
(ue un proceso 4programa5 de usuario= no se encuentra integrado en el Dernel, sino (ue se
ejecuta de la misma forma (ue un programa ms del usuario.
)l arrancar el sistema !"#$Linux, *ste suele presentarle a los usuarios una interfaz de cara
determinada= esta interfaz puede ser tanto de texto, como grfica. .ependiendo de los
modos, o niveles, de arran(ue del sistema, 'a sea con los diferentes modos de consola de
texto o con modos donde directamente se cuente con un arran(ue grfico en - >indoB.
8ara el caso de los modos de arran(ue grfico, la interfaz se compone de alg%n
administrador de acceso por medio del cual se gestiona el proceso de login del usuario
desde una interfaz grfica, en la (ue se le pide la informacin de entrada correspondiente,
como su identificador de usuario ' su clave de acceso, o passsBord.
En !"#$Linux son mu' comunes los gestores o administradores de acceso< xdm (ue es
propio de - >indoB, gdm 4!nome5, ' Ddm 4?.E5, as+ como tambi*n alg%n otro asociado a
diferentes administradores de ventanas 4BindoB managers5. )l validar el acceso, el usuario
se encuentra dentro de la interfaz grfica de - >indoB con alg%n administrador de ventanas,
como !nome o ?.E. Si se desea interactuar desde un shell interactivo, slo se debe abrir
alguno de los programas de emulacin de terminal disponibles. Si se accesa por modo
consola, en texto, una vez validados se obtendr el acceso directo al shell interactivo.
tro ejemplo de la obtencin de un shell interactivo es el acceso remoto a la m(uina, 'a sea
por medio de cual(uiera de las posibilidades de texto como telnet, rlogin, ssh, o las grficas
como los emuladores - >indoB.
S,ells in!e1"c!i3os
)l iniciar un shell interactivo, se muestra un prompt de cara al usuario, el cual le indica (ue
puede introducir una l+nea de comando. .espu*s de introducirla, el shell asume la
responsabilidad de validarla ' poner los procesos necesarios en ejecucin, mediante una
7+
serie de fases<
Leer e interpretar la l+nea de comandos.
Evaluar los caracteres @comod+nA como ` \ U u otros.
!estionar las redirecciones de E$S necesarias, los pipes ' los procesos en segundo
plano 4bacDground5 necesarios 4a5.
/anejar se&ales.
8reparar la ejecucin de los programas.
En general, las l+neas de comandos pueden ser ejecuciones de comandos del sistema,
comandos propios del shell interactivo, puestas en marcha de aplicaciones o shell scripts.
Estos shell scripts son archivos de texto (ue contienen secuencias de comandos de sistema,
sumado a una serie de comandos propios del shell interactivo, ms las estructuras de control
necesarias para procesar el flujo del programa 4tipo Bhile, for, entre otros5.
Los archivos script se ejecutan de forma directa por el sistema bajo el nombre (ue se le ha'a
dado a dicho archivo. 8ara ejecutarlos, se invoca el shell junto con el nombre del archivo, o
bien se le conceden permisos de ejecucin al shell script.
.e cierta forma, se puede ver el shell script como cdigo de un lenguaje interpretado (ue se
ejecuta sobre el shell interactivo correspondiente. 8ara el administrador, los shell scripts son
mu' importantes bsicamente por dos razones<
1. La configuracin del sistema ' de la ma'or+a de los servicios proporcionados se llevan
a cabo por medio de herramientas proporcionadas en forma de shell scripts.
;. La forma principal para automatizar los procesos de administracin es por medio de la
creacin de shell scripts por parte del administrador.
7odos los programas (ue se invocan por medio de un shell poseen tres archivos
predefinidos, especificados por los correspondientes descriptores de archivos 4file handles5.
Estos archivos son por defecto<
1. standard input 4entrada estndar5< es la (ue en general se le asigna al teclado del
terminal o consola= utiliza el descriptor n%mero C, tambi*n, en #"I- los archivos
7,
utilizan descriptores enteros.
;. standard output 4salida estndar5< en general, se le asigna a la pantalla del terminal,
utiliza el descriptor 1.
H. standard error 4salida estndar de errores5< *ste en general se le asigna a la pantalla
del terminal= utiliza el descriptor ;.
Esto destaca el hecho de (ue cual(uier programa ejecutado desde el shell tendr por defecto
la entrada asociada al teclado del terminal, su salida hacia la pantalla ', en el caso de
producirse errores, tambi*n los env+a a la pantalla. 8or otro lado, los shells normalmente
ofrecen los tres mecanismos presentados a continuacin<
1. 3edireccin< 'a (ue los dispositivos de E$S ' los archivos se tratan de la misma forma
en #"I-, el shell los trata a todos slo como archivos. .esde el punto de vista del
usuario, se pueden redefinir los descriptores de los archivos para (ue los flujos de
datos de un descriptor va'an a cual(uier otro descriptor= a esto se le conoce como
redireccin.
;. 7uber+as 4pipes5< la salida estndar de un programa puede ser utilizada como entrada
estndar de otro por medio de estas tuber+as o pipes. ^arios programas pueden ser
conectados entre s+ mediante *stas para formar lo (ue se denomina un pipeline.
H. ,oncurrencia de programas de usuario< los usuarios pueden ejecutar varios
programas al mismo tiempo, indicando (ue su ejecucin se va a producir en segundo
plano 4bacDground5, en t*rminos opuestos a primer plano 4o foreground5, donde se
tiene un control exclusivo de pantalla. tro uso consiste en permitir trabajos largos en
segundo plano al usuario, interactuar con el shell con otros programas en primer
plano.
En el caso de los shells #"I-$Linux estos tres aspectos suponen en la prctica<
1. 3edireccin< un comando va a poder recibir su entrada o salida desde otros archivos o
dispositivos.
;. 8ipes< encadenamiento de varios comandos, con transmisin de sus datos< comando1
[ comando; [ comandoH.
72
Esta instruccin indica (ue comando1 recibir una posible entrada de teclado, enviar
su salida a comando;, (ue la recibir como entrada, ' *ste producir salida hacia
comandoH, (ue la recibe ' produce su salida hacia salida estndar, la pantalla, por
defecto.
H. ,oncurrencia en segundo plano< cual(uier comando ejecutado con el bac al final de la
l+nea se ejecuta en segundo plano ' el prompt del shell se devuelve de forma
inmediata al mismo tiempo (ue contin%a su ejecucin.
Se le puede dar seguimiento a la ejecucin de los comandos con el comando ps ' sus
opciones, el cual permite ver el estado de los procesos en el sistema. 7ambi*n se cuenta con
la orden Dill, la cual permite eliminar los procesos (ue todav+a se encuentren en ejecucin, o
(ue ha'an incurrido en alguna condicin de error< Dill pid permite @matarA el proceso n%mero
pid, donde pid (ue es el identificador asociado al proceso, (ue es un n%mero entero (ue el
sistema le asigna ' (ue puede obtenerse por medio del comando ps.
S,ells Dis0oni*les
La independencia del shell con respecto al Dernel del sistema operativo, sabiendo (ue el
shell es slo una capa de interfaz, permite disponer de varios de *stos en el sistema. )lgunos
de los ms comunes son<
El shell Eash 4bash5< el shell Linux por defecto.
El shell Eourne 4sh5< *ste ha sido desde siempre el shell estndar #"I-, ' el (ue todos
los #"I- poseen en alguna versin. En general, es el shell por defecto del
administrador 4root5. El Eash en !"#$Linux es a menudo una versin mejorada del
Eourne. El indicador, o prompt, por defecto es a menudo un c`c 4en root un c]c5.
El shell ?orn 4Dsh5< este es un superconjunto del Eourne, 'a (ue se mantiene cierta
compatibilidad, escrito en )7a7 por .avid ?orn a mediados de los ochenta, donde se
hizo cierta mezcla de funcionalidades del Eourne ' del ,, ms alg%n agregado. El
prompt por defecto es el `.
El shell , 4csh5< tiene unos cuantos agregados interesantes al Eourne, como un
histrico de comandos, alias, aritm*tica desde la l+nea de comandos, completa los
nombres de los archivos ' control de trabajos en segundo plano. El prompt por defecto
49
para los usuarios es bVc, una ventaja de los scripts en , shell es (ue, como su nombre
indica, su sintaxis se basa en el lenguaje ,.
)spectos (ue son comunes a todos los shells
7odos permiten la escritura de shell scripts (ue son luego interpretados al ser
ejecutados 'a sea por el nombre, si el archivo cuenta con permiso de ejecucin, o 'a
sea pasndolo como parmetro al comando del shell.
Los usuarios del sistema cuentan con un shell por defecto asociado a ellos. Esta
informacin se proporciona al crear las cuentas de los usuarios. El administrador
asigna un shell a cada usuario, o bien si no se asigna el shell por defecto, bash en
!"#$Linux. Esta informacin se guarda en el archivo de passBords en $etc$passBd.
,ada shell es realmente un comando ejecutable, (ue se encuentra presente en los
directorios $bin en !"#$Linux 4o $usr$bin5.
Se pueden escribir shell scripts en cual(uiera de *stos, pero se debe ajustar a la
sintaxis de cada uno, (ue es normalmente diferente, 'a (ue a veces existen slo
pe(ue&as diferencias. La sintaxis de las construcciones, as+ como los comandos
internos, se encuentran bien documentados en la pgina man de cada shell.
,ada shell cuenta con algunos archivos de arran(ue asociados, llamados archivos de
inicializacin, donde cada usuario puede adaptarlos a sus necesidades, inclu'endo
cdigo, variables, caminos 4path5.
La potencia en la programacin radica en la combinacin de la sintaxis de cada shell
4de sus construcciones5, con los comandos internos de cada shell, ' una serie de
comandos #"I- mu' utilizados en los scripts, como por ejemplo los grep, sed, aBD.
Si como usuarios se utiliza un shell determinado, nada impide arrancar una copia
nueva de shell, llamada subshell, 'a sea el mismo u otro diferente. Slo se invoca por
el nombre del ejecutable, 'a sea el sh, bash, csh o Dsh. 7ambi*n, al ejecutar un shell
script se lanza un subshell con el shell (ue corresponda para ejecutar el script
solicitado.
41
.iferencias bsicas entre los shells
Eash es el shell por defecto en !"#$Linux, si no se especifica lo contrario al momento
de crear la cuenta del usuario. En otros sistemas #"I- suele ser el shell Eourne 4sh5.
Eash es compatible con sh, adems incorpora algunas caracter+sticas de los otros
shells, csh ' Dsh.
)rchivos de arran(ue< sh, Dsh cuentan con .profile, en la cuenta del usuario, ' se
ejecuta en el login del usuario, adems el Dsh suele poseer un .Dshrc el cual se
ejecuta a continuacin= el csh utiliza .Login, (ue se ejecuta al iniciarse el login del
usuario una sola vez, .logout, antes de la salida de la sesin del usuario, ' .cshrc, (ue
es parecido al .profile, en cada subshell , (ue se inicia. Eash utiliza el .bashrc ' el
.bashZprofile. )dems, el administrador puede colocar variables ' caminos comunes
en el archivo $etc$profile (ue se ejecutar antes (ue los archivos con los (ue cuente
cada usuario. Los archivos de inicializacin de los shell se colocan en la cuenta del
usuario al ser creada, en general, se copian del directorio $etc$sDel, donde el
administrador puede dejar unos es(ueletos de los archivos preparados.
Los scripts de configuracin del sistema o de servicios suelen escribirse en shell
Eourne 4sh5, 'a (ue la ma'or+a de los #"I- as+ los ten+an. En !"#$Linux tambi*n se
pueden encontrar algunos en Eash.
Se puede identificar en (u* shell se ejecuta el script por medio del comando file, por
ejemplo file YnombrescriptK. tambi*n al examinar la primera l+nea del script, (ue
suele ser< ]d$bin$nombre, donde nombre es bash, sh, csh, Dsh ... Esta l+nea le dice, en
el momento de ejecutar el script, (u* shell se debe utilizar a la hora de interpretarlo, o
sea, (u* subshell ha' (ue lanzar para su ejecucin. Es mu' importante (ue todos los
scripts la contengan, 'a (ue si no, se intentarn ejecutar en el shell por defecto, (ue
en este caso es Eash, ' la sintaxis puede no corresponder, lo (ue genera muchos
errores sintcticos durante la ejecucin.
P1o91""cin sc1i0!s en B"s,
7odos los scripts Eash deben comenzar con la l+nea< ]d$bin$bash. Esta l+nea le indica al shell
utilizado por el usuario, el (ue se tenga activo en ese momento, con (u* shell se debe
ejecutar el script (ue aparezca a continuacin.
44
El script puede ser ejecutado de dos formas diferentes<
8or ejecucin directa desde la l+nea de comandos, siempre (ue se cuente con permiso
de ejecucin. En caso contrario, se coloca el permiso con< chmod Xx script.
8or ejecucin mediante el shell, se hace un llamado al shell expl+citamente< bash
script.
Se debe tener en cuenta (ue sea cul sea el m*todo de ejecucin, siempre se est creando
un subshell donde se va a ejecutar el nuevo script.
V"1i"*les en B"s,
La asignacin de variables se realiza por< variable Q valor , el valor de la variable puede ser
visualizado con< echo `variable, donde c`c hace referencia al valor de la variable.
La variable por defecto slo puede ser visualizada en el script, o en el shell. Si *sta debe ser
visible fuera del script, a nivel de shell o de cual(uier shell hijo, o subshell, (ue se genere
despu*s, ser necesario @exportarlaA adems de asignarla. En este caso, se pueden hacer
dos cosas<
1. )signar ' exportar despu*s< var Q valor
export var
;. Exportar en la asignacin< export var Q valor
En los scripts Eash se tienen algunas variables predeterminadas accesibles<
`12`"< con esta variable se guardan los argumentos pasados como parmetros al
script desde la l+nea de comandos.
`C < con esta variable se guarda el nombre del script, (ue ser+a el parmetro C de la
l+nea de comandos.
`\ < con esta variable se guardan todos los parmetros del 1 al ".
` < con esta variable se guardan todos los parmetros, pero con comillas dobles 4@ A5
en cada uno de ellos.
`U ,@StatusA< con esta variable se guarda el valor devuelto por el %ltimo comando
47
ejecutado. esta es %til para verificar las condiciones de error, 'a (ue #"I- suele
devolver C si la ejecucin ha sido correcta, ' un valor diferente como cdigo de error.
tro elemento importante en las asignaciones es el uso de las comillas<
Las @doblesA permiten (ue sea considerado todo como una unidad.
Las bsimplesc son parecidas, pero se ignoran los caracteres especiales (ue se
encuentren dentro.
Las inclinadas hacia la iz(uierda fcomandof, son utilizadas para evaluar el interior, si
existe alguna ejecucin o sustitucin (ue hacer. En primer lugar, se ejecuta el
contenido ' se sustitu'e lo (ue hab+a por el resultado de la ejecucin.
8or ejemplo< var Q flsf guarda el listado del directorio en `var.
Co0"1"ciones
8ara el caso de las condiciones a menudo se utiliza la orden test expresin o directamente
IexpresinJ. Las condiciones disponibles pueden ser agrupadas por<
,omparacin num*rica< 2e(, 2ge, 2gt, 2le, 2lt, 2ne, correspondiendo a< igual (ue, ms
grande o igual (ue 4ge5, ms grande (ue, menor o igual (ue 4le5, menor (ue, distinto
(ue.
,omparacin de cadenas< Q , d Q , 2n, 2z, correspondiendo a cadenas de caracteres<
iguales, diferentes, con longitud ma'or (ue C, longitud igual a cero o vac+o.
,omparacin de archivos< 2d, 2f 2r, 2s, 2B, 2x. El archivo es< un directorio, un archivo
ordinario, es legible, es no vac+o, es escribible, es ejecutable.
Eooleanos entre expresiones< d, 2a, 2o, condiciones de not, and ' or.
44
OPTI$IJAR EL SISTE$A
) continuacin se presentan algunas recomendaciones para optimizar el sistema en funcin
de los datos obtenidos<
Resol3e1 los 01o*le"s de eo1i" 01inci0"l
Se debe procurar (ue la memoria principal pueda recibir un porcentaje elevado de procesos
en ejecucin, 'a (ue si no es as+, el sistema operativo podr paginar e ir al sBap= esto
significa (ue la ejecucin de ese proceso se degradar de forma. Si se agrega memoria, el
tiempo de respuesta mejorar bastante. 8ara esto, se debe tener en cuenta el tama&o de los
procesos 4SIFE5 en estado R ' agregarle la (ue utiliza el kernel, (ue se puede obtener con el
comando des9.
Luego se deber comparar con la memoria f+sica ' analizar si el sistema se encuentra
limitado por la memoria= se podr ver mucha actividad de paginacin con atsar 2r ' -p. Las
soluciones para la memoria son obvias, o se incrementa la capacidad o se reducen las
necesidades. 8or el coste actual de la memoria se recomienda ms incrementar su tama&o,
(ue emplear muchas horas para ganar un centenar de b'tes por (uitar, ordenar o reducir
re(uerimientos de los procesos en su ejecucin. 3educir los re(uerimientos puede llevarse a
cabo reduciendo las tablas del kernel, (uitando mdulos, limitando el n%mero mximo de
usuarios, reduciendo los buffers, etc.= todo lo cual degradar el sistema, el llamado efecto
burbuja, ' las prestaciones sern peores, en algunos casos, el sistema puede (uedar
totalmente no operativo.
tro aspecto (ue se puede reducir es la cantidad de memoria de los usuarios eliminando
procesos redundantes ' cambiando la carga de trabajo. 8ara esto, se deber darle
seguimiento a los procesos (ue estn durmiendo 4zombies5 ' eliminarlos, o a(uellos (ue no
progresan en su entrada$salida, se debe saber si son procesos activos, cunto de ,8# llevan
gastado ' si los busuarios estn por ellosc. Si se cambia la carga de trabajo se utiliza la
planificacin de colas para (ue los procesos (ue necesitan una gran cantidad de memoria se
puedan ejecutar en horas de poca actividad, por ejemplo, por la noche lanzndolos con el
comando at.
45
$&c," &!iliK"cin de CPU
En general, ofrece el tiempo idle, los valores bajos. ,on ps o top se deben analizar los
procesos (ue bdevoran ,8#c ' tomar ciertas decisiones como, posponer su ejecucin=
pararlos temporalmente= cambiar la prioridad, (ue es el menos conflictivo de todos, ' se
puede utilizar el comando renice prioridad 8I.= optimizar el programa, para la prxima vez= o
cambiar la ,8#, o agregar otra. ,omo 'a se mencion, !"#$Linux utiliza el directorio $proc
para mantener todas las variables de configuracin del kernel (ue pueden ser analizadas ',
en cierto caso, bajustadasc, para lograr prestaciones diferentes o mejores.
8ara lograrlo, se debe utilizar el comando systune dump > tmpsysfile para obtener todas las
variables ' sus valores en el archivo $tmp$s'sfile. Este archivo se puede editar, cambiar la
variable correspondiente ' luego utilizar el comando systune -c tmpsysfile para cargarlas
una vez ms en el $proc. El comando systune tambi*n lee por defecto si no tiene la opcin 2c
de $etc$s'stune.conf.
En el caso de !"#$Linux, a diferencia de otros sistemas operativos, es un valor fijo dentro
del cdigo, 'a (ue se encuentra optimizado para las diferentes funcionalidades, sin embargo,
es posible tocarlo. Se puede @jugarA, a riesgo del (ue lo hace, con las variables !I"#$S"%&'
4o (I"'$!)$!I"#S5 en 4.ebian5 Dernel2source2;.G.1N$Dernel$sched.c, (ue por defecto, se
ajusta para (ue el timeslice sea aproximadamente de OC milisegundos.
Red&ci1 el nLe1o de ll""d"s
tra prctica com%n ' recomendada para mejorar las prestaciones es reducir el n%mero de
llamadas al sistema de ma'or coste en tiempo de ,8#. Estas llamadas son las invocadas,
en general, por el shell fork45 ' e*ec45. #na configuracin inadecuada de la variable +%!,
puede tener una relacin desfavorable de ejecucin, 'a (ue la llamada e*ec45 no guarda
nada en cach*, el directorio actual 4indicado por .$5. 8ara esto, siempre se deber configurar
la variable +%!, con el directorio actual como %ltima ruta. 8or ejemplo, en bash 4o en
.bashrc5 se hace< e*port +%!, - .+%!,. Si no es as+, no se encuentra el directorio actual, o
si se encuentra, se rehace la variable +%!, para ponerlo como %ltima ruta. Se debe tener en
cuenta (ue una alta actividad de interrupciones puede afectar a las prestaciones de la ,8#
con relacin a los procesos (ue ejecuta.
46
8or medio del monitoreo 4atsar -I5 se puede mirar cual es la relacin de interrupciones por
segundo ' tomar las decisiones con respecto a los dispositivos (ue las causan.
$&c," &!iliK"cin de disco
.espu*s de la memoria, un tiempo de respuesta bajo puede ser debido al sistema de discos.
En primer lugar, se debe verificar (ue se disponga de tiempo de ,8#, por ejemplo, idle K
;CV, ' (ue el n%mero de entrada$salida sea elevado, por ejemplo, K HC entrada$salida$s,
utilizando atsar -u ' atsar -d. Las soluciones pasan por<
En un sistema multidisco< planificar dnde se encontrarn los archivos ms
utilizados para e(uilibrar el trfico hacia *stos. En situaciones cr+ticas, se puede
considerar la compra de un sistema de discos 3)I. (ue realizan este ajuste de
forma automtica.
Se debe tener en cuenta (ue se obtienen mejores prestaciones sobre dos discos
pe(ue&os (ue sobre uno grande del tama&o de los dos anteriores.
En el caso de los sistemas con un %nico disco, en general se realizan, desde el
punto de vista del espacio, cuatro particiones de la siguiente forma, desde fuera
hacia dentro< $, swap, $usr, $home= este genera p*simas respuestas de
entrada$salida por(ue si, por ejemplo, un usuario compila desde su directorio
$home$user ' el compilador se encuentra en $usr$bin, la cabeza del disco se
mover por toda su longitud. En este caso es mejor unir las particiones $usr '
$home en una sola, (ue es ms grande, aun(ue puede representar algunos
inconvenientes con respecto al mantenimiento.
Incrementar los buffers de la cach* de entrada$salida.
4+
ENLACES DE INTER%S
BBB.ldap2es.org
http<$$BBB.bdat.net$documentos$ldap$
http<$$platea.pntic.mec.es$gjmartine$router$router.html
http<$$BBB.iec.csic.es$,3I87"/I,"$consejos$cortafuegoslinux.html
http<$$roble.pntic.mec.es$gsgonzale$linux$cortafuegos.html
http<$$BBB.masadelante.com$fa(2cortafuegos.htm
http<$$BBB.BiDilearning.com$tutorial$manualZpracticoZdeZiptables$LPOO
http<$$club.telepolis.com$jagar1$#nix$Scripts.htm
4,

También podría gustarte