Linux Magazine 82

download Linux Magazine 82

of 75

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

    ssh [email protected]

    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.

    ssh [email protected]

    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

    [email protected]

    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

    [email protected]

    [email protected]

    [email protected]

    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

    [email protected]

    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

    [email protected]

    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