Linux Magazine 82
-
Upload
h-luis-garcia-real -
Category
Documents
-
view
365 -
download
3
Transcript of Linux Magazine 82
-
DVD
SCIENTIFIC 6.2
DVD DEFE
CTUOSO?
Si crees que
tu DVD est e
n mal estado
, escrbenos
a
dvd@linux-m
agazine.es pa
ra diagnostic
arlo o para q
ue
te enviemos
uno nuevo.
3Nmero 82W W W . L I N U X - M A G A Z I N E . E S
[1] Scientific Linux: http:// www.
scientificlinux. org/
[2] Fermilab: http:// www. fnal. gov/
[3] CERN: http:// www. cern. ch/
RECURSOS
Este DVD contiene Scientific Linux, un
sistema operativo completo y con apli-
caciones listas para ser utilizadas.
Scientific viene en versin Live, por lo
que puede ser arrancada y probada sin
instalar nada en el disco duro.
Para empezar a usar tu Linux, inserta el
DVD en el reproductor y rearranca el
ordenador. Si no aparece el men del
DVD, tienes que ajustar la BIOS para
arrancar desde el disco. Para hacerlo,
normalmente has de pulsar una tecla
durante las primeras fases del arran-
que del ordenador (habitualmente F2 o
Supr), buscar el men que permite
cambiar la secuencia de arranque de
dispositivos y colocar el lector de DVDs
en el primer lugar de la secuencia. Pos-
teriormente se guardan los cambios y
se sale de la herramienta de
configuracin para que se reinicie el
arranque. Como cada BIOS es dife-
rente, recomendamos consultar la
documentacin del fabricante para
realizar esta operacin.
Para instalar Scientific de manera per-
manente en tu disco duro, busca la
aplicacin de instalacin en la carpeta
Desktop.
Arranque
Este mes os traemos en nuestro DVD una distro que jams habamos incluido
antes, pero que est consolidndose tanto por su excelente pedigr, como por la
solvencia de sus creadores.
Scientific Linux [1] es la distro creada conjuntamente por el laboratorio Fermi [2] de
Estados Unidos, y CERN [3] de Europa, ambos centros luminarios en el campo de la
fsica terica y pioneros en avances cientficos y tecnolgicos.
A la hora de escoger un sistema operativo que sirviese a ambas instituciones, tanto
para estaciones de trabajo, como servidores, grids y clusters, y que adems permitiese
la transferencia tecnolgica entre las dos organizaciones, optaron por GNU/ Linux, y
Scientific es el resultado. Diseado para la mxima compatibilidad y alta computa-
cin, Scientific es un clon de Red Hat Enterprise Linux, en este caso de RHEL 6.2.
Como tal, prima la estabilidad, integracin e interoperabildad por encima de la nove-
dad. No hay que esperar las ltimas versiones de las ms novedosas aplicaciones en
Scientific, ese no es su propsito. Ms bien lo que se busca es una distro slida y fiable
en extremo, apropiada para su uso en empresas e instituciones, ya sea en su rol de ser-
vidor, como escritorio orientado a la productividad.
-
EDITORIAL
4 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
Me disculpar el lector que me salga
un poco de tema este mes y no
dedique esta columna a hablar
sobre si la escala G es preferible a la H, o del
ltimo diorama que estoy construyendo,
cosa que, como comprador de Lnea Magna,
es lo que usted espera.
La razn: tengo ordenador nuevo. Bueno,
es de segunda mano, pero con un poco de
limpiamuebles y paos de alcohol, quedar
como una patena. Y es un verdadero orde-
nador: con monitor, teclado y todo. Es de la
subasta del ayuntamiento de Munich que
tanto est dando que hablar. Un amigo
muniqus ha adquirido varias unidades y
los est vendiendo por correo (lo intent en
el MosBay, pero su cuenta fue cancelada ful-
minantemente). El mo, un IIOrion Penta-
core del 2007, me lo deja por el precio de
envo (gracias Oliver). Es un chollo, porque,
aunque el teclado est en alemn y tengo
que pagar la inevitable tasa MOStrans para
cambiar las licencias del software a mi nom-
bre, al ser aplicaciones que no se actualizan
desde el 2006, me sale slo por 800 euros.
Lo malo es que tampoco tienen soporte y, si
habis tenido algn cacharro de estos en el
pasado, ya sabis lo que significa que un
slo componente se corrompa, aunque sea
el Buscaminas: Hay que tirarlo todo a la
basura.
Pero, si a alguien le interesa, habr ms de
donde ha venido ste. Con la crisis y el coste
de las licencias, los bvaros no pueden man-
tener un parque tan grande y han anunciado
que venden un 40% de los equipos. Adems,
cuando implanten el nuevo MosOS 12, van a
descubrir que un buen nmero de mquinas
no va a poder con l y tendrn que volver a
subastar para sufragar en parte la compra de
hardware s soportado. Naturalmente, con el
ritmo de devaluacin actual del hardware,
que est en torno de un 50% cada tres
meses, podrn sustituir como mucho una
dcima parte de lo que subasten. Eso enco-
ger su parque an ms. En total, calculo
que el nmero de equipos de la administra-
cin de Munich se quedar en un 25% de lo
que era hace dos aos, y no en un 60%,
como haban previsto. Eso significa que
muchos funcionarios tendrn que volver a la
mquina de escribir y a compartir tiempo de
ordenador con sus compaeros.
Segn Oliver, ya tienen a los sysadmins,
que tambin han visto cmo han recortado
sus servidores, calculando las combinacio-
nes para optimizar el tinglado. Pero ya pue-
den hacer cbalas, ya, que la hemorragia de
fondos directamente achacable a la depen-
dencia tecnolgica va a seguir, con miles de
horas/ hombre anuales de productividad per-
didos. Smese el coste de volver al papel (el
espacio para almacenar archivos, la papelera
con membretes, y la logstica de trasladar
toda esa celulosa de un sitio a otro no sale
gratis) y, se mire como se mire, es una mala
decisin.
Claro que no hay muchas ms opciones y
ninguna es buena. Se pueden subir los
impuestos, como se ha hecho en algunas
comunidades espaolas, pero eso siempre es
impopular y, con el paro que hay, se cae en
un crculo vicioso, donde lo que se recauda
por un lado, se ha de soltar por el otro en
concepto de subsidios, con lo que tampoco le
llegar a las juntas y generalitats para las
licencias y al final tendrn que reducir su
parque informtico igual.
Te pones a pensarlo y es que incluso en la
administracin ms corrupta, al menos el
dinero de las cuchipandas, prostitutas y pala-
cetes se queda en el pas, al menos en parte
alimenta a una economa local, aunque sea
una economa subterrnea y negra. Mucho
se fuga a Andorra, Gibraltar y Leichenstein,
s. Pero y esto? La estafa de la informtica de
estos ltimos 20 aos es una fuga de capital
legal y consentida en toda regla.
No ayuda en absoluto que, tal y como est
montado el tinglado, no haya ninguna indus-
tria TI nacional que merezca la pena mencio-
nar. Ni puede haberla, claro. A lo ms que se
puede aspirar es a ser filial, partner o distri-
buidor de MOScorp. Hasta las ttulos acad-
micos los expide el MOSchool hoy en da.
No s exactamente a cunto asciende
exactamente lo que aporta la industria TI al
PIB nacional, y no lo s entre otras cosas por-
que he agotado mi suscripcin a MOSCarta y
me quedan demasiadas pocas horas de
MOSn este mes para consultar los Gophers
de las instituciones relevantes.
Tampoco creo que encontrara lo que
busco: el MOStorage no permite ni siquiera a
la Administracin publicar datos almacena-
dos con sus tecnologas, incluso si han sido
recabados a cargo de nuestros impuestos. Es
ms, an en el caso improbable de que
encontrara la informacin, es poco probable
que el software que viene con el ordenador
de Oliver me sirviera para descifrarla, no al
menos sin comprar una licencia MOSCPAL
para el visualizador de documentos preinsta-
lado.
Con lo cual parece que, al final, le cueste lo
que les cueste a los muniqueses, saldrn
mejor parados con su vuelta obligatoria al
papel. Al menos ellos podrn consultar sus
propios documentos, aunque suponga tener
que desplazarse a algn centro oficial para
leerlos de un libro de registro.
Ah va una confesin, querido lector: Hace
aos, antes de desarrollar mi aficin por los
trenes, all por los 80, yo era un fan de la
informtica. Es ms, perteneca a un club y
escribamos nuestros propios programas
para nuestros propios Spectrums, Commo-
dores y Apples (S! Apple, la misma
empresa que ha hecho su fortuna como la
mayor depositaria de propiedad intelectual e
industrial del planeta, aos ha, fabricaba
ordenadores).
Poco a poco los equipos domsticos se
hicieron ms ligeros, ms veloces, con mayor
resolucin y ms memoria. Eso hubiera sido
bueno si simultneamente se hubieran
expandido las funcionalidades. Pero eso no
es lo que ocurri, sino ms bien todo lo con-
trario: se elimin la funcionalidad de introdu-
cir instrucciones; en vez de un teclado, los
nuevos modelos venan con joysticks; se
suprimieron los lenguajes de programacin
poniendo como excusa que suponan una
amenaza para el usuario (y que podan inva-
lidar la garanta) y se evolucion hacia la
situacin actual, en la cual los nicos progra-
mas que se pueden ejecutar son los que se
compran en EPROMs no grabables.
Ha sido gradual, pero la potencia de los
ordenadores se ha incrementado de manera
indirectamente proporcional a su utilidad.
Hoy en da, ya sabemos en qu ha quedado
eso: la informtica domstica es un vehculo
para la idiotizacin, mientras que la corpora-
tiva es un vehculo para la extorsin.
Sinceramente, creo que ms hubiera
valido que la revolucin informtica MOS
nunca se hubiera producido.
Y ahora hablemos de trenecitos elctri-
cos
Paul C. Brown
Director
ESTS LEYENDO LM
-
miento y s particip y se aprovech activa-
mente de la organizacin de cuchipandas,
magnos eventos y obras faranicas (inclu-
yendo la construccin y adjudicacin de
un enorme edificio de 1.500 metros cua-
drados), de esos que tanto criticaba el
seor Cayetano en aquella entrevista.
Nos alegramos de que CENATIC haya
descubierto su vena asctica y les enco-
mendamos por su compromiso de colabo-
racin a reducir una burbuja que ellos mis-
mos ayudaron a inflar.
Pero lo que no vamos a hacer es felicitar
a las instituciones por hacer lo correcto,
por hacer lo que deberan haber hecho
desde el principio, por ser un poco menos
tteres de grandes corporaciones e intere-
ses personales y por empezar a tratar con
respeto los dineros que sus ciudadanos les
tienen encomendados.
NOTICIAS
Entorno Tecnolgico Operativo. Segn Teo-
domiro Cayetano, quien se mostr evasivo
sobre el tema en nuestra entrevista dispo-
nible en [2], los cambios afectarn de
forma transversal a todos los departamen-
tos y organismos del Gobierno, con el pro-
psito principal de cambiar radicalmente
el modelo organizativo y el entorno tecno-
lgico actualmente implantados.
La declaracin de intenciones de la
Junta con respecto al software libre se toca
un poco de pasada, indicndose en la nota
de prensa de CENATIC que
Jos Antonio Monago resalt el pasado
mircoles que el cambio que se est produ-
ciendo en la regin tambin es notable en
nuevas tecnologas, siendo un camino que
pasa por la apuesta por el software libre.
En este sentido, ha anunci [sic] que los
trabajadores de la Administracin Pblica
utilizarn en un futuro muy prximo este
software, que supondr un significativo
ahorro para la Administracin.
Segn CENATIC, el gobierno anterior no
cumpli las expectativas de desarrollo TI
en la Administracin y ahora se busca
reorientar la misma para aproximarla y
equipararla a la que debiera ser la realidad
tecnolgica.
Curiosamente, durante todo el tiempo
que existi el CENATIC antes de que
entrara el actual gobierno, la fundacin no
dijo ni mu sobre este asunto del incumpli-
La Migracin de losGobiernosParece que la clase poltica, responsable de
administrar los bienes pblicos, ha descu-
bierto la plvora del software libre y que
con eso, al menos en parte, se puede ayu-
dar a balancear las cuentas.
Esto viene a colacin de la noticia sobre
un nuevo decreto del gobierno vasco del
que informa en un comunicado, en el cual
se indica que El decreto proporcionar al
sector TIC del Pas Vasco la posibilidad de
ponerse a la vanguardia de la industria del
software libre.
Pues van a tener que correr mucho, por
que llegan con 10 aos de retraso. En pol-
tica eso ser poco ms de dos legislaturas.
En tecnologa es una era geolgica.
La razn del cambio, la que siempre se
esgrime estos das: la pasta. Ninguna men-
cin a la implcita superioridad tcnica
actual y potencial del SwL, de la transpa-
rencia, del respeto a estndares, la crea-
cin de riqueza local y dems ventajas.
De momento, tenemos buenas intencio-
nes un tanto difusas y la noticia de que se
ha adaptado una web para que un trmite
lo puedan realizar los usuarios de GNU/
Linux y Mac, y no slo los de Windows,
como ocurra hasta ahora.
Mientras tanto, Extremadura se enfrenta
a su particular RETO. Y es que RETO son
las ocurrentes siglas de Reorganizacin del
LibreOffice va ms AllCon ocasin de la publicacin de la versin
3.5.2 de LibreOffice, hay una interesante
entrevista en Mucktware [1] con Charles H.
Schultz, uno de los miembros fundadores
del Open Document Foundation.
De entre las cosas que nos enteramos,
est el trabajo que se est realizando para
llevar LibreOffice a Android y el proyecto
LibreOffice Online. Segn Schultz, este
ltimo proyecto tiene ms puntos en
comn con Microsoft Office 365, donde se
cuenta con un cliente local y se interacta
con una interfaz a los documentos en la
nube, que con Google Docs, donde toda la
interfaz es web.
Sin embargo, una importante distincin:
A diferencia de MSOffice 365, donde all
your documents are belong to us
(siendous Microsoft, naturalmente), en
LibreOffice podrs utilizar la nube oficial
del proyecto, Dropbox o servicios similares,
otro proveedor de nube cualquiera o crear
tu propia nube personal o corporativa, con
lo que la privacidad de tus documentos
est asegurada.
Pero hay ms: LibreOffice tambin per-
mitir la edicin colaborativa simultnea.
Eike Rathke, de Red Hat, lleva ya algn
tiempo trabajando en dotar a LibreOffice de
la capacidad de permitir la edicin colabo-
rativa y simultnea de documentos y, como
muestra el vdeo demostrativo, es ms que
un sueo. Las implicaciones son tremen-
das, permitiendo que varias personas intro-
duzcan y corrijan los datos en un hoja de
clculo, acabando con la pesadilla de las
mltiples versiones de un mismo docu-
mento y el desfase con versiones anti-
guas Las posibilidades son fantsticas.
Esto convertir a LibreOffice en la suite
ofimtica de referencia en la comparticin
interactiva de documentos.
NOTICIAS
[1] Entrevista a Charles H. Schultaz:
http:// www. muktware. com/ news/
3509/ libreoffice-online-will-be-real-
competitor-microsoft-office-365
[2] LibreOffice como suite ofimtico
colaborativo: http:// people. gnome.
org/ ~michael/ blog/
2012-03-26-collaboration. html
RECURSOS
[1] El gobierno Vasco ahora quiere Soft-
ware Libre: http:// guai. internautas.
org/ html/ 480. html
[2] RETO en Extremadura: http:// www.
cenatic. es/ hemeroteca-de-cenatic/
2-cenatic-en-la- red/ 39834-se- ini-
cian-las- actuaciones-del- plan- reto-
del- gobierno- de-extremadura
[3] Teodomiro Cayetano habla con
Linux Magazine: http:// goo. gl/ O7J4n
RECURSOS
8 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
-
PORTADA Trucos SSH
10 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
SSH InteractivoUna vez que se abre una conexin SSH
ssh -l usuario_remoto
y se introduce la con-
trasea del usuario
en el equipo
remoto, SSH
reenviar todas
las entradas de
teclado al
equipo
remoto.
Un
hecho
poco cono-
cido es que se
pueden utilizar
secuencias de
escape para controlar el propio SSH.
La tilde al comienzo de una lnea le
indica a SSH que espere una secuencia
de escape; el siguiente carcter ser el
comienzo del comando: por ejemplo,
~#> lista las conexiones SSH y ~ ter-
mina la conexin actual, algo til si la
shell no responde. Para obtener una
El trmino SSH (Shell Segura) se
refiere tanto al protocolo de red
como al conjunto de herramien-
tas que brindan a los administradores la
capacidad de conectarse a dispositivos
remotos por medio de una conexin
segura. SSH les permite disponer de una
herramienta nica para conectarse a sis-
temas remotos, as como una coleccin
de aplicaciones remotas para poder reali-
zar ejecuciones remotas de programas,
copiado remoto y acceso X11 remoto
junto con diversos escenarios de reenvo
de puertos. SSH surgi en 1995, mientras
que la popular implementacin libre
OpenSSH [1] lo hizo con el cambio del
milenio
SSH y las herramientas del paquete
SSH ssh, slogin, scp y sftp han reem-
plazado completamente legendarias
herramientas UNIX como rsh, rlogin,
rcp y telnet. Cada uno de estos coman-
dos ejecuta un intrprete de comandos
en un equipo remoto y permite que los
usuarios puedan invocar programas.
Como cada cliente necesita una cuenta
de usuario en el equipo donde se tienen
que ejecutar los comandos, todos los
comandos mencionados, por esta
razn, realizan un proceso de autentica-
cin.
Debido a que los comandos SSH utili-
zan una infraestructura criptogrfica de
clave pblica, el paquete SSH tambin
incluye las herramientas para el proceso
de autenticacin ssh-keygen, ssh-agent y
ssh-add. La sintaxis completa, inclu-
yendo el conjunto entero de opciones,
aparece cuando se teclea ssh sin parme-
tros o cuando se teclea el comando man
ssh.
lista de todos los comandos soportados,
puede teclear ~? (Figura 1). La
opcin -e permite especificar un carc-
ter diferente para introducir secuencias
de escape en SSH.
Haciendo ms cosas con SSH
CONEXIONESPROTEGIDASLa mayora de los administradores saben que SSH es una herramienta til para establecer conexiones
cifradas con ordenadores remotos. Pero SSH an puede hacer mucho ms, incluyendo transferir ficheros,
reenviar puertos e incluso servir de base a una VPN genuina. POR THOMAS DRILLING
-
Dependiendo de la disposicin del
teclado, puede que sea necesario presio-
nar la tecla dos veces para obtener el
carcter tilde (~) como sucede
con Ubuntu antes de teclear el
carcter requerido. (Tngase
en cuenta que los caracte-
res visibles ~? de la
Figura 1 son slo por
motivos de ilustra-
cin. En una
situacin
real, la
secuen-
cia de
escape no
aparecer
como texto
visible tras el
prompt).
CopiandoFicheros
SSH permite transferir
ficheros con el comando
scp; sin embargo, la
mayora de los adminis-
tradores tienden a utili-
zar el comando rsync,
mucho ms potente, lo que
significa que scp est dejn-
dose de utilizar, aunque es ade-
cuado para la mayora de los casos.
Tecleando man scp se obtiene la sinta-
xis completa. En el caso ms simple se
introducira:
scp Fichero1 U
nombre_usuario@host:Fichero2
Para transferir ficheros en la otra direc-
cin, hay que teclear:
scp usuario@host:Fichero1 U
Fichero2
Para realizar una copia recursiva de un
rbol de directorios completo hay que
aadirle el parmetro -r.
SshfsSi desea una solucin ms elegante,
probablemente desee montar el sistema
de ficheros remoto por medio de SSH, lo
cual se puede hacer gracias a la herra-
mienta sshfs (Figura 2). Como SSH
autentica y cifra cualquier dato que se
transfiera, sshfs es una herramienta
muy til para transferir de forma segura
datos a travs de Internet. Sshfs le pro-
porciona a un usuario no privilegiado la
posibilidad de montar un sistema de
ficheros remoto usando SSH; sin
embargo, esta tcnica requiere el uso
del mdulo FUSE (Sistema de Ficheros
en el Espacio del Usuario [2]) en el lado
cliente. En el lado del servidor, sshfs
slo requiere un servidor SSH con un
subsistema SFTP. Si instala el paquete
sshfs en el lado cliente, el gestor de
paquetes instalar automticamente
fuse-utils y lib-fuse2.
En el caso ms simple, la sintaxis para
sshfs ser la siguiente:
Transferencia de Datos conClientes GrficosAlgunos administradores de ficheros
(por ejemplo, Midnight Commander)
pueden utilizar una conexin SSH para
acceder al sistema de ficheros de un
equipo remoto (Figura 3). El mtodo mc
no requiere de soporte en el kernel del
equipo cliente. El administrador de fiche-
ros de Gnome, Nautilus, tambin soporta
el protocolo SSH; el administrador slo
tiene que teclear la direccin necesaria
como una URL completa en la barra de
direcciones (por ejemplo, ssh://
ordenador/ ruta). (La versin 3.2.1 actual
de Nautilus en Gnome 3 no muestra por
defecto la barra de direcciones, de modo
que hay que presionar Ctrl + L para acti-
varla, como se muestra en la Figura 4).
Nautilus mostrar entonces el cuadro de
dilogo de conexin SSH.
Trucos SSH PORTADA
11Nmero 82W W W . L I N U X - M A G A Z I N E . E S
Figura 1: SSH puede controlarse por medio de secuencias de escape.
Figura 2: El contenido de /root en el servidor remoto, uno con SSH y el otro usando sshfs.
-
PORTADA Trucos SSH
14 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
se puede acceder a SSH por medio del
esclavo KIO fish, como sigue:
fish://equipo/ruta
o se puede incluir la cuenta del usuario:
fish://usuario@equipo/ruta
Dolphin tambin ha dejado de mostrar a
los usuarios la barra de direcciones URL
por defecto en la ltima versin; sin
embargo, podr encontrar rpidamente
esta funcin en Ver | Direccin | Barra de
direcciones editable. Dolphin mostrar
entonces inmediatamente el cuadro de
dilogo de autenticacin de usuarios; no
obstante, usa el nombre de usuario local
que actualmente se est utilizando por
defecto y habr que sobrescribir los valo-
res con los del usuario remoto.
Por supuesto, el usuario podr conec-
tarse al servidor SSH con un nombre de
usuario diferente:
ssh://usuario@servidor/ruta
Si prefiere una solucin mejor, puede
utilizar el asistente de Nautilus en
Archivo | Conectar con el servidor,
seleccionar la entrada ssh del cuadro
desplegable Tipo de servicio en la
parte de destalles de servidor del cua-
dro de dilogo Conectar con el servidor
e introducir los datos de autenticacin
en los cuadros de texto correspondien-
tes del cuadro de dilogo. Por cierto,
este tipo de conexin SFTP/ SSH fun-
cionar con la mayora de las aplica-
ciones Gnome.
KDE lleva bastante tiempo ofreciendo
soporte a SSH. En Dolphin o Konqueror,
Los usuarios de KDE pueden tambin
aadir una carpeta de red SSH como
marcador en Dolphin en Lugares | Red
seleccionando Aadir carpeta de red.
A propsito, la sintaxis Fish de KDE
tambin sirve para acceder a ficheros
remotos en el contexto completo de
KDE por medio de Archivo | Abrir en la
mayora de las aplicaciones KDE. Los
usuarios tienen que activar las entradas
de direcciones editables en el selector
de ficheros de KDE; para ello, hay que
hacer clic con el botn derecho del
ratn en la ruta actual en el selector de
ficheros para abrir el men desplegable
del selector de ficheros, y seleccionar
Editar en vez de Navegar, que viene por
defecto.
Usando CompresinSSH tambin soporta compresin, lo cual
puede ser realmente til si la red es un
cuello de botella. La compresin de la
comunicacin entre ssh y sshd podra
requerir ms sobrecarga computacional
en ambos extremos, pero para compen-
sarlo, SSH slo tiene que transferir alre-
dedor del 50 por ciento de los paquetes.
Si se tiene la compresin activada de
forma permanente en el lado del servi-
dor, usando una lnea Compression yes
en el fichero /etc/ssh/sshd_config, se
podrn acelerar las transferencias DSL o
RDSI lentas en combinacin con el reen-
vo de puertos.
De forma similar, es posible configurar
la compresin de forma permanente en
el lado cliente con una lnea Compres-
sion yes en $HOME/.ssh/config. Para
activar temporalmente las transmisiones
comprimidas, puede usarse simplemente
la opcin -C, que no hay que confundir
con -c, que especifica el tipo de cifrado
en las conexiones cifradas.
sshfs usuario@host:ruta U
punto-de-montaje-local U
[opciones]
Modo MaestroEl modo maestro proporciona a los admi-
nistradores la capacidad de abrir mlti-
ples conexiones lgicas SSH sobre una
conexin fsica abriendo una conexin
SSH como maestra. Luego podr enrutar
el resto de las conexiones SSH al mismo
host con la misma cuenta de usuario en
el otro extremo por medio de la conexin
Figura 3: Midnight Commander puede utilizar SSH para acceder a los directorios remotos.
Figura 4: Nautilus 3.2.1 fuerza al usuario a activar manualmente la barra de direcciones pre-
sionando [Ctrl]+[L].
-
maestra sin tener que abrir una cone-
xin fsica nueva. En este caso, el cliente
usa un socket UNIX en el maestro y no
directamente en el servidor en el otro
extremo; se debe especificar un socket
maestro.
La transferencia de mltiples sesiones
por medio de un canal maestro tambin
puede ofrecer beneficios importantes
con respecto a la latencia. Para configu-
rar esto hay que aadir las siguientes
lneas al fichero $HOME/.ssh/config:
Host *
ControlPath ~/.ssh/U
master-%l-%r@%h:%p
ControlMaster auto
Host * indica que el resto de la
configuracin se usar para conectarse a
cualquier host; por otro lado, se podra
introducir un nombre de host esttico.
ControlMaster auto le indica a SSH que
utilice una conexin existente para el
modo maestro si es posible; de otro
modo, SSH abrir una conexin nueva.
La siguiente entrada
ControlPath ~/.ssh/U
master-%l-%r@%h:%p
le seala a SSH dnde tiene que crear el
fichero del socket que represente la
conexin. %r se reemplaza por el nom-
bre de la conexin, %h por el del host y
%p por el nmero de puerto. La cone-
xin maestra ser entonces referenciada
de la siguiente forma:
ssh -M -S $HOME/.ssh/socket U
usuario@host
Para abrir cualquier conexin siguiente
al mismo host con la misma cuenta de
usuario, hay que teclear:
ssh -S $HOME/.ssh/socket U
usuario@host
Reenvo X11El reenvo X11 permite la ejecucin de
programas con interfaz de usuario gr-
fica en un ordenador remoto por medio
de SSH y muestra su salida en el escrito-
rio local. Esta tcnica funciona de forma
independiente al sistema operativo del
ordenador remoto, suponiendo que el
programa siga el estndar X11, lo que en
Trucos SSH PORTADA
15Nmero 82W W W . L I N U X - M A G A Z I N E . E S
de -X y pasar el valor ForwardX11=yes.
Tambin tenemos la opcin de establecer
ForwardX11 yes en $HOME/.ssh/config.
Construyendo Tneles conSSHSSH tambin permite asegurar (virtual-
mente) cualquier otro protocolo, como el
clsico POP3 o las conexiones inseguras
VNC. El reenvo de puertos permite a los
administradores redirigir puertos indivi-
duales a travs de una conexin SSH
segura, con SSH actuando como proxy
que acepte la conexin en un extremo
del tnel SSH y conecte el extremo de la
conexin con el servidor de destino en el
otro extremo.
SSH soporta dos modos de operacin
diferentes, el reenvo de puertos locales
y el reenvo de puertos remotos, que a
menudo se denominan tneles salientes
y entrantes aunque el reenvo de puer-
tos locales se utiliza con mayor frecuen-
cia. La direccin en la que se establece el
tnel es decir, el reenvo local o remoto
de puertos viene definido por los par-
metros -L y -R.
El reenvo de puertos local reenva una
conexin desde un puerto de un cliente
local libremente seleccionado a travs de
un canal seguro SSH a un puerto del ser-
vidor remoto; esto es un tnel saliente
la prctica se restringe a Linux, BSD y
UNIX.
A pesar de que existen multitud de
alternativas de control remoto de forma
grfica, SSH tiene la ventaja de venir de
forma gratuita en cualquier sistema
Linux. Hay que admitir que el control
remoto basado en GUI con SSH no es
muy rpido, pero para un uso ocasional
para la administracin de un sistema, el
reenvo de X11 puede ser adecuado.
Para activar el reenvo X11 es preciso
utilizar la opcin -X (que no hay que
confundir con la opcin -x en minscu-
las, que desactiva la funcin de reenvo
de puertos). El reenvo X11 slo le pro-
porciona al programa del ordenador
remoto privilegios restringidos en la
pantalla local, lo cual puede ocasionar
que la aplicacin falle de forma ocasio-
nal. Si existen problemas debido a los
privilegios, se le puede proporcionar al
programa acceso completo con la
opcin -Y, aunque esta opcin no se
recomienda.
Debemos evitar el uso de la opcin -Y
si no se confa en el administrador del
ordenador remoto; -Y instala un tnel,
que un atacante podra utilizar tambin
para atacar la pantalla usando el tnel de
forma inversa. Por otro lado, se puede
llamar a SSH con el parmetro -o en vez
Figura 5: Configurando un tnel SSH para proteger el protocolo FTP que no es seguro. El usua-
rio puede abrir la conexin FTP segura desde el cliente usando un puerto local.
-
la cuenta de usuario dilli. Al mismo
tiempo, se encuentra a la escucha del
puerto 4444 de ws1-kubu para reenviar
lo que le llegue al puerto 21 del ordena-
dor www. thomas-drilling. de; las comuni-
caciones utilizan una conexin SSH pre-
viamente configurada. El administrador
de la mquina local ws1-kubu puede
crear una conexin FTP de esta forma
(Figura 5):
drilling@ws1-kubu:~$ sudo U
ftp localhost 4444
Segn la pgina del manual, la sintaxis
de la funcin de reenvo de puertos es la
siguiente:
ssh -L [bind_address:]port:U
host:port user@remotehost
Esta sintaxis es ligeramente confusa.
Los parmetros host y remotehost en
esta notacin sintctica se refieren al
mismo servidor remoto, ya que host es
desde el punto de vista del sistema
remoto. Por ello, se puede implementar
como localhost:21 en vez de www.tho-
mas- drilling.de:21, ya que localhost se
refiere a la perspectiva del ordenador
remoto.
Cuando se elige un puerto de entrada
(SSH), hay que tener en cuenta que el
usuario no tiene permiso para utilizar
un puerto privilegiado por debajo del
1024 a menos que se sea root, lo cual
explica por qu se utilizan nmeros de
puertos grandes para su uso local en el
reenvo de puertos. El segundo parme-
tro port especifica el puerto de destino
para la operacin de reenvo; de este
modo, esta configuracin se refiere al
nmero de puerto del servicio que se va
a tunelar. S slo se desea realizar reen-
vo de puerto e impedir que se ejecute
un intrprete de comandos del ordena-
dor remoto, se puede aadir el parme-
tro -N (Figura 6).
Si se quiere acceder, digamos, a un
servidor de correo POP3 de un servidor
virtual por medio de una conexin
cifrada, se puede montar un tnel SSH
cifrado para el puerto 110 del Vserver
usando reenvo de puertos:
ssh usuario@servidor -L U
4444:servidor:110
Ahora, lo nico que hay que hacer es
poner localhost como servidor de correo
POP3 y como puerto el 4444 en el cliente
de correo electrnico, por ejemplo en
Thunderbird, para cifrar la transmisin
sin necesitar que el servidor de correo
tenga que soportar SSL (Figura 7).
El reenvo de puertos remotos fun-
ciona de forma similar pero al contrario
que el reenvo de puertos locales; dicho
de otro modo, la conexin llega al puerto
del equipo en el que sshd se est ejecu-
tando. El servidor redirige los datos a tra-
vs del tnel SSH a un puerto arbitrario
configurable en el cliente. La sintaxis es
la siguiente:
ssh usuarioremoto@servidoremoto U
-R puertoremoto:localhost:U
puertolocal
Reenvo Dinmico con SSHGracias a la opcin dinmica -D, un
cliente SSH puede actuar como un servi-
dor SOCKS (proxy SOCKS) y automati-
zar el acceso a servidores remotos por
medio de tneles SSH. El reenvo de
clsico. La sintaxis general para iniciar el
reenvo local de puertos es:
ssh usuarioremoto@hostremoto -LU
localport:hostremoto:portremoto
El siguiente ejemplo crea un tnel para
una conexin FTP insegura usando el
puerto estndar 21 a travs de la cone-
xin SSH. Un servidor FTP se encuentra
en ejecucin en la mquina www.
thomas-drilling. de, y el ordenador cliente
ws1-kubu abre la conexin segura SSH y
a continuacin ejecuta el cliente FTP en
una sesin de terminal separada con una
direccin de destino cuyo puerto es el
4444 del ordenador local.
drilling@ws1-kubu:~$ U
sudo ssh [email protected]
thomas-drilling.de -L 4444U
:www.thomas-drilling.de:21
Este comando abre una conexin segura
SSH en el cliente SSH local al ordenador
remoto www. thomas-drilling. de usando
PORTADA Trucos SSH
18 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
Figura 7: El reenvo de puerto local permite asegurar el protocolo no seguro POP3 a la hora de
acceder a un servidor de correo remoto, incluso si el servidor POP no soporta SSL.
Figura 6: El parmetro -N evita que se abra el intrprete de comandos del sistema remoto en
el reenvo de un puerto local.
-
puertos dinmicos es tambin til si
deseamos acceder a un servicio que se
encuentre en un servidor en casa o en
una empresa por medio de un tnel
seguro desde un punto de acceso WLAN
pblico.
Para el servicio es necesario un cliente
SOCKS, como por ejemplo un navegador
web. En las opciones de conexin del
navegador, hay que introducir el cliente
SSH local como servidor proxy con un
nmero de puerto configurable. Como
las transmisiones entre el ordenador
cliente y el router WLAN no se encuen-
tran cifradas en un punto de acceso
WLAN y por ello pueden ser ledas por
un sniffer en la red, esta solucin es
siempre til si necesitamos transmitir
credenciales de acceso o cualquier otro
dato sensible para acceder a nuestro pro-
pio servidor por medio de la web. Se
puede montar un tnel al sshd remoto de
la siguiente forma:
ssh -D puerto usuario@servidor
Ahora slo queda introducir el cliente
SSH local y el puerto como proxy SOCKS
en el navegador; la Figura 8 muestra un
ejemplo usando Firefox.
De nuevo, la opcin -N es til para
indicarle al cliente que abra el tnel pero
que no abra un intrprete de comandos
en el servidor. El uso de un tnel SSH
como proxy SOCKS est bastante relacio-
nado con las VPN; la nica diferencia
reside en que, aunque el trfico de datos
desde las aplicaciones que se usan se va
a travs del tnel SSH en la
configuracin del proxy, las peticiones
DNS no; esto quiere decir que el tnel no
es adecuado para tareas tales como la
navegacin annima.
Si deseamos utilizar la tcnica del
tnel con otros programas o servicios
aparte de HTTP sobre SSH, los usuarios
de Linux deberan tener en cuenta que
algunos programas no soportan proxies
SOCKS. Si fuera este el caso, se podra
instalar en Linux tsocks y aadir el
siguiente fichero de configuracin
/etc/socks/tsocks.conf:
server = localhost
server_port = 12222
server_type= 4
VPN sobre SSH: Un TnelTUN/ TAPOpenSSH Version 4.3 o posteriores pro-
porcionan la opcin -w que permite a los
usuarios configurar una VPN con un
tnel de Capa 2 o Capa 3 con adaptado-
res de red virtuales (interfaces TUN/
TAP). Sin embargo, esta tcnica invo -
lucra al servidor del administrador y la
carga de los mdulos del kernel en el
lado del cliente para los dispositivos
TUN/ TAP usando modprobe. Dicho de
otro modo, la solucin no es apta para
escenarios ad hoc como los cybercafs.
Para configurar los adaptadores de red
virtuales requeridos debemos introducir
el siguiente comando:
ifconfig tun0 10.0.2.1 U
netmask 255.255.255.252
La configuracin del servidor debera ser
similar a sta:
ifconfig tun0 10.0.2.2 U
netmask 255.255.255.252
route add -host host_destino U
dev eth0
Trucos SSH PORTADA
-
de nuestro ordenador de la oficina, se
puede aplicar el siguiente truco, que de
nuevo se basa en el reenvo de puertos
remotos.
Es necesario que en la empresa exista
un servidor OpenSSH en ejecucin,
incluso si el cortafuegos impide las peti-
ciones al puerto 22. Para activar un ser-
vidor SSH, se pueden instalar tanto
openssh-client como los componentes del
servidor SSH en la forma de paquete ssh
en el caso de que ninguno de los dos
estuviese ya instalado en el sistema. Los
administradores de Debian y Ubuntu
pueden tambin ejecutar tasksel desde la
lnea de comandos y luego seleccionar el
grupo de paquetes Servidor OpenSSH.
Para seguir este ejemplo, hay que ser
administrador del servidor remoto, o
tener la autorizacin para realizar los
experimentos, ya que probablemente
vaya a infringir las polticas de seguri-
dad de su empresa. En casa, va a necesi-
tar asegurarse de que es capaz de acep-
tar conexiones SSH; es probable que
tenga que instalar tambin los paquetes
del servidor as como el cliente
OpenSSH.
Adems, el ordenador de su casa nece-
sita tener una direccin DnyDNS para
que sea remotamente accesible. Una vez
que el servidor SSH se encuentre funcio-
nando en el ordenador de su casa, abra
un tnel SSH con reenvo de puerto
remoto para el puerto 22 en el servidor
de la empresa haca el servidor sshd de
su casa, pero usando la direccin
DynDNS accesible pblicamente:
ssh usuario@ordenador_de_casa U
-R 4444:ordenador_de_casa:22
Luego, deje el tnel y ejecute ssh usua-
rio@ordenador_de_casa -p 4444 a travs
del tnel para abrir otro tnel hacia el
servidor de la empresa usando el
nmero de puerto especificado para el
reenvo remoto (4444).
Este ejemplo demuestra el principio de
tneles inversos, aunque esta tcnica
puede que no tenga xito en el escenario
actual, ya que el cortafuegos de la
empresa no permitir el paso a las peticio-
nes al puerto 22. La mayora de los corta-
fuegos de las empresas estn configura-
dos de esta forma, pero permiten las peti-
ciones al puerto 80 (HTTP). Nada puede
impedirnos dejar el servidor SSH de casa
escuchando en un puerto diferente por
ejemplo, el puerto 80. Pero, una vez ms,
recuerde que podra estar violando las
polticas de la empresa o incluso infrin-
giendo las leyes en algunas jurisdicciones.
ConclusionesSSH puede hacer mucho ms que simple-
mente abrir intrpretes de comandos
remotos, y muchos administradores de
sistemas an no han descubierto su
potencial al completo. Si se toma el
tiempo necesario para investigar las
opciones, podra descubrir que SSH con-
vierte en obsoletas las VPN propietarias
para la transferencia de archivos. De
hecho, suponiendo que tenga las ltimas
versiones del servidor y del cliente SSH,
SSH ofrece lo ltimo en seguridad para
autenticacin y cifrado para un amplio
rango de escenarios de accesos remotos.
Tras introducir estos comandos, el usua-
rio en el cliente podr establecer un
tnel VPN:
ssh -l usuario -p sshd-puerto U
-w0:0 host-destino
Adems, hay que activar la
configuracin sshd en el servidor de
Linux estableciendo la opcin Permit-
Tunnel yes.
Vase el artculo sobre conexiones con
tneles SSH que aparece en este mismo
nmero de la revista para aprender ms
sobre tneles SSH.
Agujereando el CortafuegosLos mtodos discutidos aqu demuestran
claramente la potencia de SSH, especial-
mente con el reenvo de puertos. Todos
los ejemplos han sido expuestos en un
entorno amigable. Pero SSH tambin
puede ser utilizado en un entorno hostil.
Por ejemplo, si nuestro propio cortafue-
gos bloquea el puerto 22, pero necesita-
mos acceder de forma segura a los datos
PORTADA Trucos SSH
20 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
[1] Sitio web de OpenSSH:
http:// openssh. org
[2] FUSE: http:// fuse. sourceforge. net
RECURSOS
Figura 8: Con el reenvo de puertos dinmicos, el cliente SSH acta como proxy SOCKS. El
usuario slo tiene que aadir el localhost y el puerto correspondiente en la configuracin del
servidor.
-
Tneles SSH PORTADA
21Nmero 82W W W . L I N U X - M A G A Z I N E . E S
El acceso remoto a travs de un
enrutado inseguro como el de
Internet presenta muchos riesgos:
el sniffing de conexiones WLAN desde
un punto de acceso pblico, por ejem-
plo, no es especialmente complicado
para un intruso experimentado. Existen
numerosas soluciones y productos dispo-
nibles en el mercado que nos permiten
acceder con seguridad a nuestro propio
servidor desde el exterior. La compleji-
dad de estas herramientas vara con el
tipo de uso y los requisitos de seguridad.
Varias de estas soluciones existen ni-
camente para dar soporte a diversos
modelos de tneles. La alternativa ms
obvia para un tnel es una VPN. Desde
el punto de vista funcional, cualquier
tecnologa VPN tiene la tarea de hacer
un tnel a travs del inseguro entorno de
Internet.
El clsico tnel VPN difiere de otros
tipos de tneles sobre redes TCP/ IP, ya
que transporta todos los paquetes de red
de forma independiente a los protocolos
de nivel superior. Pero un problema con
la VPN es que no se puede configurar
sobre la marcha: hay que planificarla y
configurarla desde el principio. La herra-
mienta Sshuttle [1] es til para la crea-
cin de una VPN rpida. Se basa en una
conexin SSH en combinacin con un
proxy socks transparente, dndonos de
esta manera una opcin para configurar
una conexin segura con herramientas
incorporadas. Sshuttle difiere de un
tnel SSH basado en TUN/ TAP (vase el
cuadro titulado Tnel TUN/ TAP),
reduciendo al mnimo la necesidad de
una configuracin previa.
La VPN del Pobre
En contraste con la VPN clsica, un tnel
SSH es bastante fcil de instalar y confi-
gurar. A diferencia de una VPN, un tnel
SSH requiere un tnel separado para cada
protocolo. Por otro lado, puede funcionar
sin necesidad de un software complejo o
especializado en el servidor o el cliente.
Sshuttle, que fue creado por el estu-
diante canadiense Avery Pennarun [2],
Configurar conexiones de tunel SSH con Sshuttle y PuTTY
El Tneldel Tiempo
Una conexin a prueba de sniffers es una buena idea si accedemos a
nuestros datos privados viajando. Sshuttle y PuTTY nos ayudan a
crear una conexin segura con unos pasos de pre-configuracin mni-
mos. POR THOMAS DRILLING
Heiko Bennewitz - 123RF.com
La versin 4.3 o posterior de OpenSSH proporciona la opcin -w que permite a los
usuarios configurar una VPN. Desde entonces, los usuarios son capaces de configurar
tneles de Capa 2 o Capa 3 con adaptadores de red virtuales (interfaces TUN/ TAP).
Sin embargo, el enfoque de TUN/ TAP no es til para el escenario descrito en este art-
culo debido a que se requiere algo de preparacin en el servidor y el cliente en forma de
cargar los mdulos del kernel para los dispositivos TUN/ TAP. Adems, es necesario
configurar el demonio SSH en el servidor, permitiendo la opcin PermitTunnel yes.
Los comandos del Listado 1 muestran cmo configurar los adaptadores de red virtuales
correspondientes del servidor y cliente. Despus de hacer esto, el cliente tiene la opcin
de utilizar SSH para un tnel VPN:
$ ssh -l usuario -p puerto-sshd -w0:0 host_objetivo
Tnel TUN/ TAP
-
PORTADA Tneles SSH
22 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
es una herramienta de lnea de coman-
dos, escrita en Python, que ofrece a los
usuarios la capacidad de operar una VPN
basada en SSH entre ordenadores Linux,
BSD y MacOS X. Para utilizar Sshuttle es
necesario tener acceso SSH a la mquina
remota y tener configurado Python en su
lugar correspondiente en los dos extre-
mos de la conexin.
Sshuttle implementa un servidor proxy
transparente que no requiere ninguna
configuracin, y al contrario que con el
simple reenvo de puertos descrito ante-
riormente, en realidad nos permite pasar
a travs de peticiones DNS. Sshuttle es
relativamente nuevo, y es probable que
no lo encontremos en los repositorios de
Linux ms importantes. Las fuentes del
programa, con licencia GPLv2, estn dis-
ponibles en Github en forma de archivo
tar o zip.
Descomprimimos el programa en un
directorio. Slo necesitamos tener acceso
de root en el cliente, ser root no es obli-
gatorio para el servidor. El servidor o
equipo remoto tiene que ejecutar el
demonio SSH. Para implementar el soft-
ware, iniciamos sesin en el cliente
como root, cambiamos al directorio que
contiene los archivos de programa des-
comprimidos, y establecemos una cone-
xin con el host remoto tecleando el
siguiente comando:
$ sshuttle -r U
usuario@nombrehost 0.0.0.0/0 -vv
A continuacin, introducimos la contra-
sea para la cuenta de usuario en el host
remoto o servidor, y esperamos a que el
programa establezca la conexin (vase
la Figura 1).
Si no configuramos ninguna restric-
cin para la red (por ejemplo 0.0.0.0/0
aqu, que se puede abreviar como 0/ 0),
Sshuttle ser de gran utilidad como un
proxy para el trfico TCP, por ejemplo, si
el cliente se encuentra en un entorno no
confiable, como un punto de acceso
pblico.
Es fcil comprobar si el tnel est
activo. Simplemente navegamos hasta
un sitio web como http:// www.
stilllistener. addr. com/ checkpoint1/ test1.
Si el tnel est funcionando, deberamos
ver la direccin IP del servidor remoto o
el host, de lo contrario, veremos la direc-
cin del router local (vase la Figura 2).
Se recomienda precaucin si vamos a
utilizar Sshuttle desde el interior de la
red de nuestra
empresa: dado
que el pro-
grama no nece-
sita permisos
de root en el
servidor o host
remoto, abre un
agujero en la infraestructura de seguri-
dad y tambin podra estar violando la
poltica de empresa. Adems, Sshuttle es
bastante nuevo y an no ha pasado
pruebas exhaustivas.
PuTTY como Alternativa
Si slo tenemos acceso a un ordenador
con Windows, podemos probar el cliente
SSH PuTTY [3], que hace que sea muy
fcil configurar un tnel SSH (vase la
Figura 3). En el lado del cliente, el pro-
grama acta como un proxy Socks. Esto
significa que necesitamos redireccionar
los servicios sobre los que queremos
hacer un tnel, como HTTP en un nave-
gador web, a los proxies. Como usuario,
slo tendremos que introducir el nombre
del servidor al que abriremos la cone-
xin SSH en la pestaa Sesin de PuTTY,
y luego guardar el perfil cuando haya-
mos terminado.
El cuadro de dilogo para la
configuracin del tnel SSH se encuentra
en el rbol jerrquico a la izquierda
debajo de Conexin | SSH | Tneles
(vase la Figura 4). Introducimos cual-
quier puerto libre en el cuadro de texto
Puerto fuente. Entonces podremos acce-
der al proxy en este puerto, el 12222 en
este ejemplo.
A continuacin, habilitamos bien la
opcin Auto o Dinmica y pulsamos
sobre Abrir. El servidor SSH nos pide
que confirmemos la firma en el primer
contacto, y en una nueva ventana de ter-
minal nos pide el nombre de usuario y la
contrasea correspondiente. Si deseamos
establecer una conexin similar traba-
jando desde un cliente Linux, podemos
utilizar el siguiente comando:
$ ssh -N -D12222 U
usuario@servidor
-N evita lanzar un programa en el servi-
dor, y -D nos permite especificar el
puerto SOCKS local.
Cuando utilizamos PuTTY, es una
buena idea aadir la opcin -f para
enviar la solicitud a segundo plano. Si
todos los parmetros son correctos,
PuTTY abrir la conexin SSH, y podre-
mos aadir el cliente PuTTY como un
proxy en alguna otra aplicacin.
En Firefox 8, en el cuadro de prefe-
rencias, elegimos Avanzadas y pulsa-
mos en la pestaa Redes. En la seccin
Conexin, pulsamos el botn
Figura 1: Sshuttle es muy til, ya que se basa enteramente en herramientas habituales de un
ordenador con Linux.
01 # Client
02 ifconfig tun0 10.0.2.1 netmask 255.255.255.252
03 # Server
04 # IP address on target computer
05 ifconfig tun0 10.0.2.2 netmask 255.255.255.252
06 route add -host target_host dev eth0
Listing 1: Un Tnel TUN/ TAP
-
Tneles SSH PORTADA
23Nmero 82W W W . L I N U X - M A G A Z I N E . E S
hasta una pgina web como http://
whatismyipaddress. com. Si la pgina
web muestra la direccin IP del ordena-
dor remoto en lugar de la direccin del
host local, todo funciona segn lo pre-
visto.
La diferencia entre esta instalacin y
una verdadera conexin VPN es que,
aunque el trfico de datos desde las apli-
caciones que utilizamos se ejecutan a
travs del tnel establecido en la
configuracin del proxy, las peticiones
de DNS no lo hacen, lo que significa que
el tnel SSH es no apto para navegacin
annima.
Si desea hacer un tnel con otros pro-
gramas o servicios, adems de HTTP a
travs de SSH, los usuarios de Linux
deben tener en cuenta que algunos pro-
gramas no son compatibles con servido-
res proxy SOCKS. Si este es el caso,
podemos cambiar al wrapper de Tsocks,
que proporciona acceso a la librera
alternativa tsocks [4].
Conclusiones
Si queremos evitar el esfuerzo de crear
un software complejo para el acceso oca-
sional por VPN, Sshuttle es una opcin
perfecta. El programa no requiere el
reenvo de puertos y, si fuera necesario,
Configuracin. Para empezar, habilita-
mos Configuracin manual del proxy e
introducimos un valor de localhost
para el host SOCKS. A continuacin,
introducimos el nmero de puerto que
hemos seleccionado en la
configuracin de PuTTY para el
Puerto, y adicionalmente nos asegura-
mos de que la opcin SOCKS v5 est
activada.
Si todo esto funciona, deberamos ser
capaces de utilizar las aplicaciones web
a travs del tnel. Para probar la
configuracin slo tenemos que navegar
tunelar los protocolos que utilicemos de
forma segura a travs de Internet.
Adicionalmente, Sshuttle incluso nos
ayudar si el demonio SSH en el lado
servidor no ha habilitado la funcin
interna de tnel.
Figura 3: El cliente de SSH PuTTY permite a
los usuarios establecer conexiones SSH
desde un host de Windows.
Figura 2: Probamos el tnel con la pgina de prueba stilllistener. addr. com. Si el tnel no est funcionando, deberamos ver la direccin de nues-
tro router (izquierda). Si funciona, veremos la direccin del servidor remoto o el host (derecha).
[1] Sshuttle: https:// github. com/
apenwarr/ sshuttle
[2] Apenwarr: http:// apenwarr. ca
[3] PuTTY: http:// www. chiark. greenend.
org. uk/ ~sgtatham/ putty/
[4] Librera Tsocks:
http:// tsocks. sourceforge. net/
RECURSOS
Figura 4: PuTTY ofrece un cuadro separado
para configurar el tnel SSH.
-
PORTADA Monitorizacin SSH con Ruby
24 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
cio en disco de forma inesperada. Un
pequeo script utiliza SSH y Ruby para
iniciar sesin automticamente en un
cierto nmero de mquinas, descubre
todas las particiones y comprueba el
espacio en disco. La configuracin es
mnima, slo hay que configurar el
acceso SSH y aadir una tarea de cron
recibiremos un correo electrnico
cuando el espacio est bajo.
Para empezar, vamos a suponer que
deseamos medir todos los discos en los
hosts test1.dominio , test2.dominio y
test3.dominio.
Configuracin de unaSesin SSHLo primero que tenemos que hacer es
crear una autenticacin SSH sin necesi-
dad de contrasea. Si no lo hemos
hecho previamente, es necesario gene-
rar un par de claves pblica/ privada
con el siguiente comando:
ssh-keygen -t rsa -N
La administracin de sistemas a
menudo implica monitorizar
muchos pequeos detalles. Como
cualquier administrador de sistemas
sabe, es fcil tener un pequeo pro-
blema, como un directorio /tmp o /var/
log lleno, y que se convierta en un
masivo dolor de cabeza. Slo necesita-
mos tener una particin completa de
una mquina vital para provocar el caos
total.
Afortunadamente, existen potentes
herramientas de software libre que
pueden resolver este problema.
Muchas de ellas, como Zabbix y Cacti,
pueden comprobar el espacio libre en
disco, pero su configuracin es com-
plicada, siendo a menudo ms comple-
jas de lo necesario. Una desconfigura-
cin del sistema de monitorizacin
puede dejarlo peligrosamente sin pro-
teccin.
En este artculo mostraremos una
manera sencilla de asegurar que nuestro
Linux y FreeBSD no se quedan sin espa-
Por ahora, cuando se nos pregunta si
deseamos una contrasea, lo dejamos
en blanco (vase la Figura 1). Una con-
trasea permite cifrar la clave, pero
como el script va a ejecutarse sin super-
visin, no introduciremos ninguna.
(Valdra la pena usar una contrasea y
almacenar las claves descifradas en
memoria con sshagent, pero esto est
fuera del alcance de este artculo.)
A continuacin, cada servidor remoto
debe estar configurado para aceptar la
clave, por lo que necesitamos ejecutar el
siguiente comando en cada uno de
ellos:
cat ~/.ssh/id_rsa.pub | U
cat - >> ~/.ssh/authorized_keys
Este comando nos pedir la contrasea
para test1.dominio. Sin embargo, los
futuros inicios de sesin utilizarn la
autenticacin RSA en su lugar y no nos
pedirn la clave (vase la Figura 2). Para
Control de discos con SSH y Ruby
Observador Silencioso
El seguimiento de una red repleta de discos puede ser algo complicado,
pero Ruby y SSH pueden facilitar las cosas. POR DAVID BERUBE
Ren
jith K
rish
nan
- 123R
F.co
m
-
deshacer este proceso, eliminamos la
lnea correspondiente del archivo ~/
.ssh/ authorized_keys del servidor en
cuestin. Para cada servidor que desee-
mos comprobar, es necesario repetir
este proceso de autorizacin.
Un sencillo comando ssh debera veri-
ficar que nuestro inicio de sesin ha
funcionado.
Y deberamos estar conectados sin tener
que introducir una contrasea. Debido a
las matemticas del cifrado de clave
pblica, podemos tener confianza en la
seguridad de este mecanismo, dando
por hecho que la clave privada (~/ .ssh/
id_rsa) permanece segura. Incluso si el
archivo authorized_keys se recupera
desde test1.dominio, se tendra que
recuperar el archivo id_rsa.pub desde
nuestra mquina local.
El archivo id_rsa.pub realiza la misma
funcin bsica que la contrasea de
antes: sirve como una prueba de identi-
dad para nuestra mquina, pero, a dife-
rencia de una contrasea habitual, este
archivo no se enva al servidor remoto,
lo que es ms seguro y la mayor ven-
taja del cifrado de clave pblica.
Monitorizacin del Espacioen DiscoEn este punto, ya podemos acceder con
seguridad a las mquinas en cuestin. A
continuacin necesitaremos una va
para monitorizar los espacios en disco
de las mismas. El Listado 1 muestra un
script que hace justamente eso.
Debemos tener en cuenta que la
secuencia de comandos del Listado 1
requiere que tengamos instalado tanto
el sistema RubyGems [1], como Ruby on
Rails, adems de Ruby en s, por
supuesto. Tras haber descargado e insta-
lado RubyGems, podemos instalar Rails
de la siguiente manera:
gem install rails
Una vez que las dependencias se han
instalado, el script es fcil de utilizar.
Monitorizacin SSH con Ruby PORTADA
25Nmero 82W W W . L I N U X - M A G A Z I N E . E S
Figura 1: Los resultados de generar una
nueva clave.
001 require rubygems
002 require action_view
003 require active_support/core_ext/numeric/bytes
004 include ActionView::Helpers::NumberHelper
005 require optparse
006
007 # Default values:
008 $block_size = 512.bytes
009
010 warning_limit_absolute = 128.megabytes /
$block_size
011 warning_limit_ratio = 0.05 # 5 percent
012 skippable_filesystems = [ swapfs, devfs,
procfs, iso9660]
013 skippable_mount_points = []
014 email_to = nil
015 email_from = nobody@localhost
016 smtp_host = nil
017 smtp_port = nil
018
019 # Parse command line options from user:
020
021 OptionParser.new do |o|
022
023 o.on(-a LIMIT, --absolute-limit LIMIT, Abso-
lute limit (megabytes, default 128)) { |x| war-
ning_limit_absolute= (x.to_i.megabytes) /
$block_size }
024 o.on(-r LIMIT, --ratio-limit LIMIT, Ratio
limit (ratio, default 0.05)) { |x|
warning_limit_ratio = x.to_f }
025
026 o.on(-b BLOCK_SIZE,--block-size BLOCK_SIZE,
Block size (bytes, default 512)) { |x| $block_size
= x.to_i }
027
028 o.on(-m EMAIL, --mail-to EMAIL, Email results
to EMAIL (default none)) { |x| email_to = x}
029 o.on(-f EMAIL, --mail-from EMAIL, Set from
address when mailing results (default nobody@local-
host)) { |x| email_from = x}
030
031 o.on(--skippable_filesystems FS1,FS2,FS3, Skip
file systems (defaults to swapfs, devfs, procfs,
iso9660)) { |x| skippable_filesystems = x}
032 o.on(--skippable_mount_points
/dir1,/dir2,/dir3, Skip mount points (defaults to
none)) { |x| skippable_mount_points = x}
033
034 o.on(-h,--help, Print this message) { puts o;
exit; }
035
036 o.parse!
037
038 end
039
040 hosts = ARGV
041
042
043 def format_blocks(blocks)
044 number_to_human_size(blocks.to_i*$block_size)
045 end
046
047 class MonitorResults
048 cattr_accessor :warnings, :errors, :email_body
049 @@warnings = []
Listado 1: ssh_disk_monitor_rb
-
tes: un lmite absoluto de 128 MB y un
lmite de ratio de 0,05. El primero signi-
fica que si el espacio en el disco cae por
debajo de 128 para (casi) cualquier dis-
positivo instalado, se presenta un aviso.
El segundo significa que si la relacin de
espacio libre a la capacidad total es
menor que 0,05 (5%), se reportar una
advertencia. (Como veremos en un
segundo, ignorar automticamente
algunos de los dispositivos, tales como
sistemas de archivos de slo lectura).
Con la opcin -a podemos eliminar el
lmite absoluto, y con -r cambiamos el
lmite de ratio. Por ejemplo, el siguiente
comando establece los lmites en
2048MB y el 2%:
ruby ssh_disk_monitor.rb U
-a 2048 -r 0.02 U
El script ignora algunos tipos de siste-
mas de archivos de forma predetermi-
nada, por ejemplo, devfs y SwapFs no
se comprobarn. Podemos reemplazar
la lista de sistema de archivos con la
opcin --skippable_filesystems, e ignorar
Por ejemplo, si deseamos comprobar
tres mquinas, test1.dominio,
test2.dominio y test3.dominio, podemos
ejecutar:
ruby ssh_disk_monitor.rbU
El comando anterior inicia sesin en
test1.dominio como usuario y verifica si
hay poco espacio en disco (Figura 3). De
forma predeterminada, tiene dos lmi-
PORTADA Monitorizacin SSH con Ruby
26 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
050 @@errors = []
051 @@email_body =
052
053 def self.warn(w)
054 puts w
055 @@email_body
-
los puntos de montaje mediante el uso
de la opcin --skippable_mount_points.
Por ejemplo, los siguientes comandos
ignoran cualquier sistema de archivos
montado como /mnt/ punto o /mnt/ otro-
punto:
ruby ssh_disk_monitor.rbU
--skippable_mount_pointsU
/mnt/punto,/mnt/otropuntoU
Por ltimo, debemos tener en cuenta
que podemos enviar los resultados con
la opcin --mail-to:
ruby ssh_disk_monitor.rbU
--mail-to una_direccion@dominioU
Por supuesto, todas estas opciones se
pueden combinar como se desee. Aun-
que los comandos anteriores se ejecuta-
ron de forma interactiva, por lo general
se ejecutarn a partir de un cronjob.
Cmo Funciona?El script del Listado 1 comienza por
analizar las opciones de lnea de coman-
dos. Para hacerlo, tenemos disponibles
varias libreras de Ruby. Este script en
particular utiliza la librera optparse.
Optparse es parte de Ruby, por lo que
no necesitamos instalar nada especial.
En Ruby, los argu-
mentos de lnea de
comandos se alma-
cenan en la matriz
ARGV. Optparse
elimina cualquier
cosa que se
parezca a una
opcin de lnea de
comandos (por
ejemplo, si
comienza por -
o --), y deja los ele-
mentos restantes
en ARGV.
El script inicia-
liza algunas variables utilizadas para
contar advertencias y errores, y define
una funcin format_blocks. Esta funcin
se utiliza posteriormente para formatear
tamaos de disco con formato indicado
por el comando df a tamaos legibles: 1
GB, 30 MB, etc. Para hacerlo hace uso
de la funcin number_to_human_size
de Ruby on Rails.
A continuacin, el script recorre todos
los nombres de host especificados en la
lnea de comandos, los cuales se pasan
a SSH, por lo que pueden ser nombres
simples o bajo la forma usuario@host.
El espacio de disco en la mquina
remota se recupera entonces de la
siguiente manera:
output = ` ssh #{hostU
BLOCKSIZE=U
#{$block_size} df -P`
El comando ssh se utiliza para ejecutar
el comando df en la mquina remota.
Debemos tener en cuenta que la forma
particular utilizada es df -P, que esta-
blece que la salida ser (supuesta-
mente) compatible POSIX y, por lo
tanto, tericamente uniforme. En la
prctica, el tamao de bloque repor-
tado vara. El script suaviza las diferen-
cias estableciendo explcitamente la
variable de entorno BLOCKSIZE. El
valor por defecto utilizado por este
script es de 512
bytes, pero se
puede reemplazar
con la opcin -B.
Seguidamente,
el script analiza la
salida. Divide
cada lnea con la
expresin regular
/\s+/, lo que significa que cada
columna se separa por uno o ms
caracteres en blanco. Con esta infor-
macin, el script ignora las entradas
que se encuentren en nuestra lista de
sistemas de ficheros a omitir o puntos
de montaje a omitir.
Cada sistema de archivos se compara
con los dos criterios: el ratio y los lmi-
tes absolutos. Si un sistema de archivos
falla con uno de los dos criterios, el
script genera una advertencia.
Por ltimo, se imprime un resumen.
Si se especific la opci --mail-to en la
lnea de comandos, se enva un
informe por correo electrnico a cual-
quier direccin que introdujera el
usuario.
ConclusinCon algo de programacin, los sistemas
de vigilancia a travs de SSH pueden
funcionar bien para un buen nmero de
casos de uso. En este caso particular, es
una buena solucin. En otros, es posible
que no funcione tan bien, y si un gran
nmero de scripts diferentes se conec-
tan a travs de SSH, el retraso en la cre-
acin de nuevas conexiones podra ser
excesivo. En esos supuestos, es proba-
ble que sea ms prudente procesar las
conexiones por lotes.
Evidentemente, existen muchos otros
enfoques y protocolos que se pueden
utilizar por ejemplo, si necesitamos
almacenar datos histricos, es posible
que desee ver uno ms completo, como
Zabbix [2], Cactus [3] o Nagios [4]. Sin
embargo, el que hemos examinado aqu
puede funcionar bien en muchos casos,
sirviendo adems como un mecanismo
de seguridad para protegernos contra
errores de configuracin.
Monitorizacin SSH con Ruby PORTADA
27Nmero 82W W W . L I N U X - M A G A Z I N E . E S
[1] RubyGems.org: http:// rubygems. org/
[2] Zabbix: http:// www. zabbix. com/
[3] Cacti: http:// www. cacti. net/
[4] Nagios: http:// www. nagios. org/
RECURSOS
Figura 3: Un ejemplo de ejecucin de ssh_disk_monitor.rb.
Figura 2: Un archivo .ssh/ id_rsa.pub de ejemplo.
David Berube es consultor, orador y
autor de Practical Rails Plugins, Practi-
cal Reporting with Ruby and Rails y
Practical Ruby Gems. Podemos contac-
tar con l en info@berubeconsulting.
com.
EL AUTOR
-
Un arenero sandbox permite a los
nios jugar con seguridad sin
destruir nada de valor. Este prin-
cipio, que funciona perfectamente en el
mundo real, tambin funciona en el
reino virtual. El arenero digital tiene un
objetivo ms restrictivo, pero la idea es
la misma: crear un entorno para los pro-
gramas, en el cual, cualquier dao que
se pueda causar no afecte a todo el sis-
tema.
En este contexto, dao significa pro-
blemas con el cdigo y el entorno opera-
tivo. El objetivo es que cualquier efecto
no deseado quede constreido al
entorno de pruebas.
Arkose [1], creado por Stphane Gra-
ber, es un entorno de pruebas que se
basa en los mismos conceptos tecnolgi-
cos que LXC (Linux Container, [2]).
Arkose, que se introdujo en el kernel en
la versin 2.6.29, se basa en los espacios
de nombres del kernel [3] para aislar
recursos y Cgroups [4] para restringirlos,
lo que lo hace apropiado tanto para con-
tener aplicaciones como sistemas.
Segn el sitio web del proyecto,
Arkose le permite arrancar cualquier
binario instalado en un contenedor con-
figurable. Puede elegir cunto espacio de
disco usar, si debe tener acceso a la red
y si debe ser capaz de acceder a su direc-
torio /home.
PRCTICO Arkose
28 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
Arkose se ha diseado para ser simple.
No ofrece un abanico de caractersticas
como los ms sofisticados entornos de
pruebas, pero es rpido y sencillo. Es
posible lanzar una aplicacin dentro de
un entorno de pruebas con una simple
orden o incluso desde el mismo gestor de
archivos Nautilus (Figura 1).
Tal y como veremos ms tarde en este
artculo, Arkose usa el sistema de archi-
vos superpuesto AuFS para simular el
acceso al sistema de archivos local. Esto
significa que la aplicacin que se ejecuta
en el contenedor no sabe que se est eje-
cutando en un contenedor restringido.
Adems, es prctico como herramienta
de seguridad y para desarrollo. Este
entorno de pruebas rpido y seguro per-
mite construir y probar aplicaciones de
manera que no harn ningn dao per-
manente al sistema anfitrin.
Cmo Funciona Arkose?La funcionalidad Cgroups ha estado dis-
ponible en las versiones del kernel de
Linux desde la 2.6.24. Cgroups permite
al kernel agrupar procesos y ejecutarlos
en un proceso especfico, o usarlos como
una unidad desde el punto de vista del
scheduler. En un sistema Linux, esta tc-
nica permite seleccionar un grupo de
procesos definido y asignarle recursos,
mientras que el kernel puede tomar las
jerarquas en consideracin. El controla-
dor de recursos de la memoria del kernel
asla estos grupos del resto del sistema y
restringe los programas que consumen
mucha memoria si es necesario. Si
Cgroups est activado en el kernel, se
usar para gestionar todos los recursos,
sin importarle si hay procesos de espacio
de usuario, sus hilos o los hilos del ker-
nel.
AuFS [5], un derivado de UnionFS,
muestra cambios del sistema de archivos
en el entorno de pruebas. AuFS es un sis-
tema de archivos superpuesto que se usa
Aislar aplicaciones en un entorno de pruebas con Arkose
Probando 1 2 3Arkose le permite confinar software potencialmente peligroso en un entorno de pruebas sandbox virtual, que
proteja su sistema de errores y prdida de datos. POR THOMAS DRILLING
M
ark
Sp
iele
r, Fo
tolia
Figura 1: Arkose ofrece slo una mnima can-
tidad de opciones para configurar el entorno
de pruebas.
-
29Nmero 82W W W . L I N U X - M A G A Z I N E . E S
para simular escritura en un medio
donde no se puede escribir. De esta
manera, Arkose da a cada usuario Linux
una solucin sencilla para poner sus pro-
gramas en un entorno de pruebas.
InstalacinUsar Arkose en Natty Narwhal es muy
sencillo. De hecho, Ubuntu 11.04 es la
primera distro que aade Arkose de
manera predeterminada a sus reposito-
rios de paquetes e incluye una interfaz
grfica con integracin en Nautilus. Para
instalar Arkose en Ubuntu, selecciona-
mos los paquetes arkose, arkose-gui (la
interfaz grfica) y arkose-nautilus (la
integracin en Nautilus) del gestor de
paquetes.
Tendremos que cumplir los siguientes
requisitos: la versin 1.3 necesita al
menos el kernel 2.6.36 con AuFS2 habili-
tado esto viene predeterminado en
Ubuntu 11.04. Tambin necesitaremos
tener LXC, Python, GTK y un emulador
de terminal X (estas herramientas son
parte de la configuracin predetermi-
nada de Ubuntu).
Desafortunadamente, el repositorio de
Ubuntu slo ofrece actualmente la ver-
sin 0.3.2 de Arkose, siendo recomenda-
ble instalar la versin actual de
desarrollo 1.3.2 si deseamos trabajar con
l. En Ubuntu Natty esto se puede
hacer sin demasiados problemas, habili-
tando el repositorio PPA ppa:arkose-
devel/ stable, donde encontraremos tam-
bin la versin 1.3.2 para Ubuntu 10.10.
Tambin se puede descargar la versin
1.3.1 directamente desde Launchpad [6].
La interfaz (arkose-gui) est disponible
en el men Aplicaciones | Herramientas
de sistema | Aplicacin de escritorio de
entorno de pruebas Arkose despus de la
instalacin. Lanzar un programa en el
entorno de pruebas es muy sencillo:
seleccionando Abrir en un entorno de
pruebas en Nautilus necesita tener el
paquete arkose-nautilus instalado para
acceder a esta opcin (ver la Figura 1).
ConfiguracinArkose muestra un dilogo con la ruta al
programa seleccionado o al binario. Pul-
sando Mostrar las opciones del entorno
de pruebas se obtiene acceso a ms
opciones (Figura 2).
Tamao del contenedor permite definir
el tamao mximo del contenedor. Esto
establece un lmite a la cantidad de
memoria RAM que el programa puede
solicitar, al nmero de instancias que
puede generar de s mismo y a la canti-
dad de documentos y archivos tempora-
les que puede crear.
Si queremos guardar la configuracin
del programa y los cambios, despus de
salir del entorno de pruebas, selecciona-
mos una de las siguientes opciones
Directorio /home real (en lugar de copy-
on-write) o Directorio /tmp real (en lugar
de copy-on-write). La opcin soporte de
red debera ser obvia le proporciona
acceso a la red al programa activo en el
contenedor.
La versin 1.3 aade la opcin Tipo de
almacenamiento con dos botones de
radio: ext4 (disco duro) y tmpfs (memo-
ria). tmpfs le dice a Arkose que man-
tenga los cambios visibles al programa
en la RAM en vez de escribirlos en ~/
.arkose/ .
Tambin puede lanzar Arkose tecle-
ando sudo arkose en la lnea de coman-
dos. Si se introduce man arkose, lista las
opciones que son iguales a las disponi-
bles en el cuadro de dilogo.
Arkose 1.3Un programa controlado por Arkose se
ejecuta aislado del resto del sistema, de
manera que no puede acceder a los ser-
vicios que se ejecutan en el sistema anfi-
trin, tales como D-Bus. De hecho, con
Arkose 0.3.2, no se puede acceder
siquiera a Pulseaudio.
Esta restriccin se ha levantado en la
versin 1.3, la cual introduce un buen
nmero de cambios decisivos. Por
ejemplo, ahora, los programas gestio-
nados por Arkose 1.3 pueden emitir
sonido a travs de Pulseaudio y usar
dispositivos de vdeo tipo webcams.
Adems, Arkose tiene su propio Servi-
dor X aislado. Por ltimo, pero no
menos importante, la versin 1.3 enva
actualmente comunicaciones a travs
de D-Bus.
ConclusionesLinux tiene un buen abanico de mtodos
para encerrar aplicaciones crticas para
la seguridad o potencialmente inestables
en un entorno de pruebas. Las opciones
van desde la simple redireccin del
directorio raz, hasta una completa vir-
tualizacin del sistema operativo en con-
tenedores de recursos.
Si lo nico que buscamos es aislar
aplicaciones individuales, no necesita-
mos matar moscas a caonazos: con
Arkose tenemos las solucin que busca-
mos, siendo una herramienta que nos
permite instalar y usar complejas tecno-
logas de contenedor de Linux como un
usuario normal.
Arkose PRCTICO
Figura 2: La integracin con Nautilus per-
mite a los usuarios ejecutar cualquier binario
en el entorno de pruebas.
Linux tiene un gran cantidad de tecnolo-
gas para pruebas, desde la redireccin a
un sistema de archivos con chroot, hastala virtualizacin de un entorno o sistema
operativo (OpenVZ, Linux VServer), emu-
lando de forma completa el hardware del
anfitrin.
Todas estas tecnologas que, o bien pro-
porcionan un contexto virtual para un
programa o restringen los derechos del
mismo de manera que no puedan causar
(virtualmente o no) daos en el anfitrin,
los podemos calificar, en principio, como
entornos de pruebas. Estas soluciones
incluyen contenedores de recursos como
OpenVZ, Linux VServer, Solaris Zones,
Parallels Virtuozzo, User Mode Linux
(UML), o LXC (Linux Container), todas las
cuales son tecnologas de virtualizacin.
Los programas como KVM/ Qemu, Bochs,
FAUmachine, o Xen y VMware, tambin
crean entornos de pruebas. El desarrolla-
dor de Fedora Daniel Walsh viene des-
arrollando un entorno de pruebas basado
en SELinux desde hace algn tiempo.
Herramientas de Prueba
[1] Arkose: http:// www. stgraber. org/
category/ arkose
[2] Contenedores Linux (LXC):
http:// lxc. sourceforge. net
[3] Espacios de nombre del Kernel:
http:// lxc. sourceforge. net/ index. php/
about/ kernel-namespaces
[4] Cgroups: http:// www. mjmwired. net/
kernel/ Documentation/ cgroups/
[5] AuFS: http:// aufs. sourceforge. net
[6] Arkose en Launchpad: https://
launchpad. net/ arkose/ trunk/ 1. 3
RECURSOS
-
Aadir una interfaz de usuario
ordenada para nuestros propios
programas escritos en Object Pas-
cal es una tarea aburrida y rutinaria que
lleva mucho tiempo. Para simplificar las
tareas repetitivas que derivan de los resul-
tados de innumerables clases, Borland
desarroll Delphi a mediados de los 90. En
el entorno de desarrollo Delphi, los pro-
gramadores pueden usar el ratn para
armar una interfaz en poco tiempo. Por
desgracia, Delphi es caro y slo est dispo-
nible para Windows.
El entorno de desarrollo totalmente
libre, Lazarus [1], ofrece una alternativa
que est a la altura de su equivalente
comercial. Depende del popular compila-
dor Free Pascal, tiene un enorme abanico
de funciones, est incluido en la mayora
de las distribuciones y es compatible con
el venerable Delphi en muchas reas. Ade-
ms funciona tambin en Windows y Mac
OS X
Tablero de DibujoCuando se arranca por primera vez, Laza-
rus bombardea al desarrollador con un
montn de ventanas, pero los programa-
dores de Delphi rpidamente se sentirn
como en casa (Figura 1). Para empezar,
seleccionamos el componente grfico que
necesitamos de la paleta situada en la
parte superior de la pantalla y la llevamos
al dilogo Formulario esta es la manera
en la que Lazarus se refiere a los dilogos
y a las ventanas en el programa resultante.
Una vez depositado el elemento, pode-
mos usar las asas para redimensionarlo
(igual que con una herramienta de dibujo)
y ponerlo en la posicin correcta. El ajuste
ms fino y la modificacin de las propie-
dades, tales como las etiquetas de boto-
nes, pertenecen al dominio del inspector
de objetos.
En una ventana de edicin, Lazarus
genera automticamente el cdigo de
fondo que ser necesario para aadir a la
lgica del programa. El inspector de obje-
tos nos ayudar a hacerlo. No solamente
DESARROLLO Lazarus
30 Nmero 82 W W W . L I N U X - M A G A Z I N E . E S
Entorno de desarrollo Lazarus para Free Pascal
La Pizarra de PascalLazarus es un IDE para Free Pascal que permite a los desarrolladores crear interfaces grficas multiplata-
forma con un par de clics y un poco de cdigo. POR TIM SCHURMANN
Figura 1: Lazarus da la bienvenida a los desarrolladores con numerosas ventanas. El Formula-
rio vaco en el centro es la ventana principal de la aplicacin resultante.
Vik
tor C
ap
, 123R
Ff.c
om
-
lista todos los posibles eventos que com-
prende la interfaz grfica seleccionada,
sino que tambin nos permitir seleccio-
narlos para asignar los mtodos existentes
o crear uno vaco.
Obligaciones y ArteLazarus ofrece el tpico conjunto de carac-
tersticas de cualquier entorno de
desarrollo. El gestor de proyecto nos
ayuda a controlar todos los aspectos com-
plejos, y una ventana del inspector de pro-
yecto nos mantiene al tanto de todos los
archivos y paquetes relacionados. Para
compilar una aplicacin, normalmente
slo necesitaremos pulsar el botn verde
de ejecucin. Si fuera necesario, podemos
asignar configuraciones individuales de
compilacin para cada proyecto.
Los errores se listan en una ventana
aparte, y pulsando una alerta vamos direc-
tamente a la zona del cdigo relacionada
(Figura 2). El depurador integrado nos
ayuda a investigar cuelgues y paradas del
programa en los puntos de ruptura que
hemos definido previamente en la ventana
del editor, o tambin podemos ejecutar
paso a paso el programa para ver el valor
de las variables.
El editor ofrece la funcionalidades que
podramos esperar de un IDE profesional,
incluyendo el resaltado de sintaxis y el
plegado de cdigo. El completado de
cdigo sugiere mtodos posibles y nom-
les, tales como bucles for, o bloques
begin/end.
Para declarar una clase, lo nico que
necesitamos hacer es establecer los mto-
dos y propiedades y pulsar un atajo de
teclado para crear automticamente un
mtodo bsico vaco, junto con los
correspon dientes mtodos get y set. Quick
Syntax Check descubre errores tipogrficos
antes de la compilacin, y otros asistentes
nos sealan bloques de cdigo abiertos o
IFDEF/ENDIF.
Perro GuaLazarus tiene una buena seleccin de
herramientas para ayudar a los desarrolla-
dores a navegar por el cdigo. Por ejem-
plo, podemos buscar de una manera flexi-
ble y reemplazar el cdigo con el uso de
expresiones regulares. Adems de esta
bsqueda de texto completo, tenemos un
navegador de cdigo que slo busca
paquetes y nombre de unidades, as como
designadores para un trmino especfico.
La ventana CodeExplorer nos ayuda a
hacer un seguimiento de los programas
ms largos. Crea un esquema de todos los
tipos, variables, interfaces, implementa-
ciones y unidades que usamos, y salta a la
correspondiente posicin en el cdigo con
un simple clic. Code Observer, incluido en
CodeExplorer, indica estilos de programa-
cin deficientes, tales como indentacin
incorrecta o procedimientos excesiva-
mente largos o vacos. Otras ventanas nos
muestran las dependencias entre las uni-
dades y los formularios que hemos creado
hasta ese momento. Un editor FPDoc
bres de clases, y ayuda a rellenar parme-
tros e incluso aade los obligatorios end
despus de begin (Figura 3).
Un atajo de teclado nos permite aadir
comentarios en las lneas seleccionadas
o aplicarles sangrado. Podemos almace-
nar bloques de cdigo que usamos fre-
cuentemente en plantillas. Para usar el
cdigo, pulsamos un atajo de teclado
seguido de Ctrl+J para decirle a Lazarus
que reemplace toda la plantilla. El
entorno de desarrollo incluye plantillas
de cdigo para las constructos ms usua-
Lazarus DESARROLLO
31Nmero 82W W W . L I N U X - M A G A Z I N E . E S
Figura 2: El depurador integrado permite a los desarrolladores investigar errores en el cdigo,
tales como esta falta ortogrfica.
Figura 3: El editor hace sugerencias mientras tecleamos.
-
que para ello se basa en una biblioteca
heredada del sistema. Los desarrolladores
tienen que elegir qu biblioteca usar al
compilar. Los usuarios de Linux pueden
seleccionar entre Qt, Gtk+ o Gtk2 y
soporte para el conjunto de herramientas
Free Pascal GUI [2]. fpGUI actualmente
est en desarrollo.
LCL est disponible para otros sistemas
operativos. Soporta las funciones del sis-
tema necesarias directamente en Win-
dows y Windows CE, y podemos elegir
entre Cocoa y Carbon en Mac OS X. La
Figura 4 muestra la estructura de LCL y
cmo se relaciona con los componentes
individuales.
Transferencia deConocimientoGracias a LCL, podemos escribir de forma
sencilla aplicaciones
multiplataforma que
solamente necesitare-
mos recompilar en el
sistema operativo obje-
tivo (escribir una vez,
compilar en cualquier
parte). Lazarus es en s
la prueba de lo bien que
funciona en la prctica:
el entorno de desarrollo
se program entera-
mente usando LCL, y
nosotros podemos
reconstruirlo rpida-
mente al vuelo, para
usarlo con una biblioteca de interfaz gr-
fica diferente, seleccionando un elemento
del men.
Los desarrolladores tienen que tener en
cuenta dos pequeos problemas. Por un
lado, un par de interfaces (p.ej, Qt) estn
an oficialmente en beta, si bien son muy
estables, y los desarrolladores las usan
habitualmente en trabajos de produccin.
Por otro lado, LCL intenta seguir las direc-
trices de la interfaz grfica de usuario del
sistema operativo de destino. Esto puede
llevar a que los componentes acten de
manera distinta en las dif