• RSS OPENCHARLA (OGG)
  • RSS PLANET
  • RSS FORO
  • AGRADECIMIENTOS

Grupo de usuarios GNU / Linux Tijuana, Baja California México.

  • galería
  • videos
  • planet
  • foro
  • podcasts
  • irc chat
  • contacto
  • google group
Bienvenido a la comunidad de Linuxeros de la esquina de México: Tijuana, Baja California, México.

Información

  • Ayuda
  • Recomendaciones de Software Libre
  • Installfest
  • Acerca del GUL Tijuana
  • Enlaces Linux

Eventos

  • Escucha al GULTij en la radio
  • Software Freedom Day 2010
  • Eventos anteriores

@gultij

Temporada 2, Episodio 3

zoftweb — Jue, 2012-04-26 22:18

Notas

Temas:

  • Inicie sesión para enviar comentarios
  • Leer más

Temporada 2, Episodio 2

zoftweb — Lun, 2012-03-19 12:20

Notas

Temas:

  • Inicie sesión para enviar comentarios
  • Leer más

Temporada 2, Episodio 1

Notas:

TEMAS

  • Leer más

Temporada 1, Episodio 4

zoftweb — Dom, 2012-01-01 22:59

Notas

Temas:

  • Inicie sesión para enviar comentarios
  • Leer más

Actividades

rugebiker — Jue, 2009-12-03 00:53

Planet

  • jmedina: Instalando paquetes en Debian 5 desde el repositorio archives
    Si estas leyendo este post es probable que te encuentres en la necesidad de instalar algún paquete en tu distribución GNU/Linux Debian 5.x pero te encuentras que los depositos configurados en APT ya no se encuentran disponibles ya que el soporte de Debian 5 expiro hace algunos meses.. Mi recomendación personal es que si es posible [...]
  • Alinermedia: Linux Kernel Summit 2012
    Linux Kernel Summit 2012 en San Diego!!! Informes aquí: https://events.linuxfoundation.org/events/linux-kernel-summit Y Aquí: https://events.linuxfoundation.org/events/linuxcon
  • alvarezp: JavaScript debe desaparecer de la Web

    script

    En recientes días escribí un post sobre cómo hacer nuestra navegación más segura usando Opera (en inglés). El principio de operación es simple: deshabilitar JavaScript por defecto excepto para aquellos sitio en los que plenamente confío.

    No fue capricho. En alguna ocasión mordí un anzuelo y, sin intención, mi PC participó en un ataque masivo contra Freenode. ¿Cómo ocurrió? Visité una página que tenía un código malicioso de JavaScript, el cual se ejecutó automáticamente (tal vez gracias a onMouseOver o a onLoad) y mandó spam a dicha red. Me bloquearon varias horas y tuve que contactar a los administradores para explicar el caso. Ellos lidian con este tipo de cosas todo el tiempo (¡señal!).

    alvarezp-banned

    No es el único tipo de problema de seguridad de JavaScript. Tampoco es el único ataque facilitado por JavaScript: como referencia les dejo XSS, X/CSRF, Clickjacking, Revestimiento de interfaz (UI redressing), fuga de datos personales, etc. No que requieran de este lenguaje, sino que con él son mucho más fáciles de implementar sin que el navegador pueda detectarlos.

    Busqué formas de evitar llegar a esa conclusión; después de todo, la mayoría de los sitios Web usan JavaScript. ¿Es posible que el navegador sólo ejecute código bien intencionado? No. Una computadora es tonta. No puede distinguir código malicioso. Incluso existe una broma sobre el tema. ¿Cómo le hacen los antivirus? Se basan en firmas y bases de datos alimentadas por humanos y aún así a veces arrojan falsos positivos. Peor aún, también arrojan falsos negativos.

    Sin embargo yo necesito una forma de confiar en mi PC. En el momento en que pierde mi confianza, no sé si está interceptando lo que tecleo o lo que transmito, o si las páginas que me muestra son ilegítimas, o si los programas está alterados de otro modo. No sé si mis passwords y datos de tarjetas de crédito están siendo transmitidos por la red a algún cibercriminal. Y no, no estoy exagerando. Desde el momento en que pierde mi confianza tengo que aplicarle un análisis forense, aunque, por lo general, sale más rápido reinstalar.


    (Mikko Hyppönen presenta en TED un listado de datos de tarjetas de crédito, como los roba un cíbercriminal.)

    Mikko Hyppönen presenta en TED un listado de datos de tarjetas de crédito, como los roba un cíbercriminal.

    Lo mismo ocurre con el navegador. Yo confío en que el navegador me permite mantener el control mientras navego. Si no confío en el navegador no puedo confiar en los datos que se envían o se reciben, en el contenido de los sitios que visito o si realmente estoy yendo a los sitios que creo. Si mi navegador está comprometido ni siquiera puedo confiar en el cifrado SSL, por lo que ni con HTTPS puedo asegurar la confidencialidad o integridad de mis transacciones.

    No por nada existe NoScript para FireFox.

    Analogía con otro error histórico: los privilegios de administrador

    No porque sea la opción más popular significa que sea la mejor o la más segura. Me recuerda a los llamados derechos de administrador. Cuando comencé a usar a Linux, en tiempos de Windows 2000 y cuando 98 era todavía lo más popular, los linuxeros me decían que nunca usara mi PC como root (”root” el usuario privilegiado en Linux, similar al “Administrator”). Yo pensaba: pero entonces no puedo instalar programas, no puedo configurar hardware, mi CD-RW no puede pedir todo el CPU y es propenso a fallas de escritura, no puedo ‘tunear’ mi sistema igual, etc. Todos esos “problemas” eran precisamente los motivos para no usar root por defecto. ¡Es bueno que no tan fácilmente se instale un programa o hardware! ¡Es bueno que no cualquier programa se adueñe del CPU! ¡Es bueno que no tan fácil se puedan hacer ajustes al sistema!

    No porque sea la opción más popular significa que sea la mejor o la más segura. Windows 9x era lo más popular en ese entonces y 2000, intentando traerse el núcleo de NT, ahora multiusuario, apenas comenzaba a tomar auge. Muchos programas se rompieron por ese cambio de paradigma.

    Ese pequeño cambio de pensar tenía muchísimas ventajas. En Linux y en Mac es rarísimo ver un virus. No que no los haya, pero no son tan fáciles de hacer y tenemos más líneas de defensa. Cada usuario tiene su espacio bien segmentado. Un usuario no puede ver el contenido de otro usuario. Un usuario no puede dañar el sistema, sólo su propia cuenta. Si un virus se inyecta en el sistema es porque explotó una vulnerabilidad y se reconoce como tal.

    Pero seguía existiendo la necesidad de instalar programas, y no era fácil. Había que resolver el problema. Aquí es donde tenemos que hacer una pausa, quedarnos en “still” y analizar las posibles rutas:

    • Considerar que el problema es la falta de privilegios por default y cambiarse a usar root por default, como lo hacía Windows 2000. Windows 9x ni siquiera tenía el concepto de privilegios; todos eran “administradores”.
    • Considerar que el problema es el tedio, y crear métodos seguros para hacer fácil la escalación controlada de privilegios, pero manteniendo un nivel aceptable de seguridad. Habría que inventarlo de ser necesario.

    Afortunadamente en Linux cuenta con su y sudo. Igual, para Windows XP SP2, Microsoft mejoró significativamente la delimitación de las facultades de los usuarios restringidos. Si en Windows 2000 muchos programas se rompieron, con este cambio hubo otra barrida; era obvio. Muchos programadores se quejaron, pero era necesario. En Windows Vista incluyeron UAC pero el plan estuvo mal ejecutado. Me han contado que en Windows 7 finalmente dieron en el clavo. Se tardaron más de 10 años, pero así se hace un cambio de esta magnitud.

    Yo veo el uso de JavaScript como estar en la primera opción, atacando el problema incorrecto, y hay que pasarse a la segunda opción. Con la popularidad actual de JavaScript, el cambio tendría que ser sumamente doloroso, pero igualmente necesario.

    De vuelta al tema

    La única manera de estar seguros contra ataques de JavaScript es apagándolo. Si no lo hago así, cualquier persona puede ejecutar código en mi navegador con simplemente incluirlo en un sitio que yo visite. El código puede ser confiable o malicioso, y en cualquiera de los casos se ejecuta sin mi consentimiento, es decir, antes de yo validar o aceptar dicha ejecución. La única forma de prevenirlo es que yo lo habilite sólo para los dominios en los que confío.

    ¿Basta con deshabilitar JavaScript? No. Hay otros modos de atacar, pero JavaScript los facilita tremendamente; la mayoría de los ataques están basados y ofuscados con JavaScript.

    ¿Qué fue lo que salió mal?

    ¿Cómo es que pasamos del deseo de ser productivos, a tener corriendo en nuestras computadoras un lenguaje que permite rastrearnos, atacar otros sitios, etc.?

    La escalera de la programación

    Peldaño 0. Todo comienza por el principio, y en este caso, las computadoras son simples máquinas que harán lo que su operador le diga. A fin de cuentas eso son: viles, patéticas y despreciables herramientas que simplemente siguen las órdenes de un humano. El programa se hace en un lenguaje cualquiera.

    Peldaño 1. No todos los humanos tienen la capacidad de hablarle a una PC en su idioma. Las instrucciones son demasiado primitivas y básicas, de modo que se vuelve una mezcla de ciencia y arte. Se requiere de tiempo y dedicación para hacer un programa medianamente complejo. Entonces, otras personas hacen programas por nosotros. Nosotros nos limitamos a instalarlos en nuestra PC. La PC sigue haciendo lo que el operador le dice… o no exactamente: hará lo que le diga el programador por medio de la autorización del operador.

    Existe ahora un punto débil: el operador ahora debe confiar en el programador, pues las instrucciones pueden ser maliciosas. ¿Qué tal si el código del programador, como parte del programa, dice que tome archivos y los mande por correo o por fax? La computadora no puede distinguir la intención de esa instrucción. El código puede ser sintáctica y semánticamente válido y aún así realizar funciones maliciosas. Sólo queda, como línea de defensa, que el operador tome la decisión de instalar el programa o no, según su confianza en el programador.

    Esto es crucial. Es imprescindible la libertad de autorización del operador. Esta libertad se puede ver afectada por engaños, por ejemplo, si el programador le muestra un código diferente al operador del que se va a ejecutar, o si el operador no es hecho consciente de lo que está instalando.

    XKCD nos cuenta la historia de una madre que le cambió de nombre a su hijo para borrar la base de datos de la escuela de su hijo. Una PC no distingue intenciones buenas de malas.

    XKCD nos cuenta la historia de una madre que le cambió de nombre a su hijo para borrar la base de datos de la escuela de su hijo. Una PC no distingue intenciones buenas de malas.

    Sin embargo, se presenta una excepción cuando el programador y el operador son la misma persona. Siempre es más satisfactorio lograr que el programa haga algo que ir a instalar ese programa en la PC, ¡y desmiéntanme! Es sumamente aburrido instalar un programa. Es más aburrido cuando el programador cometió un error y hay que ir a reinstalar una versión nueva, y aún más aburrido cuando esto ocurre una y otra vez.

    Peldaño 2. Hay que instalar los programas en PCs que están aquí cerca o allá en el cerro. Su instalación puede requerir cambios en el sistema, potencialmente rompiendo la configuración de la máquina misma. Entonces la industria contempla la posibilidad de ejecutar un programa sin necesidad de ser instalado. Esto simplificaría las implementaciones, ahorraría dinero significativamente y se enfocaría el esfuerzo en el desarrollo del programa, y no en su instalación. La necesidad es obvia: un lenguaje que no requiera compilación, cuyo resultado no requiera una instalación, que funcione en todos lados de forma predecible, que no padezca del infierno de las dependencias (librerías), etc. Y luego existen diferentes computadoras con diferentes características, versiones de sistema operativo, etc.

    La escalera de la Web

    Por otra parte, se genera otra línea de escalafones de tecnología, la de la World Wide Web:

    Peldaño A. El formato de la Web es HTML, que es como hablar de un .doc, pero en lugar de binario, en texto plano. El HTML tiene la característica de que el archivo se renderiza por diferentes programas en diferentes plataformas y da resultados suficientemente similares. Se vislumbra a la Web como algo multiplataforma (vamos a dejar la discusión de los múltiples navegadores para otra ocasión).

    Peldaño B. La necesidad de la interactividad de las páginas Web. Más que una necesidad por hacer páginas interactivas, es resolver necesidades de interactividad muy específicas. Por ejemplo, el HTML no incluye semántica para mostrar selectores de fecha o validar direcciones de correo electrónico. El manejo masivo de información comienza a pedir menús de árbol expandibles, tan comúnmente usados en el escritorio. Resulta natural querer poner un menú contraíble en una página. Al iniciar como un lenguaje de texto genérico, HTML no podía dar suficiente semántica para que un navegador ofrezca estas capacidades él mismo. Al final todos pecaron: los navegadores populares no ofrecieron una forma de ofrecer tablas de contenido a partir de las etiquetas H1 a H6. HTML no se extendió con nuevos tipos de elementos INPUT, por ejemplo.

    Tabla de Contenido generada automáticamente por Wikipedia para sus documentos. De forma similar, un navegador podría generar automáticamente la TdC según lo indiquen los elementos H1 a H6.

    Tabla de Contenido generada automáticamente por Wikipedia para sus documentos. De forma similar, un navegador podría generar automáticamente la TdC según lo indiquen los elementos H1 a H6.

    Desafortunadamente para HTML, todo mundo le quiso poner diferentes funciones para hacer algo “innovador”, como las etiquetas MARQUEE, BLINK y FRAME. Tuvo que llegar el momento de estandarizar, simplificar y reencauzar el lenguaje. Esto también demoró su progreso.

    Aquí entra el auge de JavaScript. Por sí misma, la interactividad no debería ser riesgosa para los usuarios. El problema es la aplicación de la misma por medio de un lenguaje de programación (es decir, de propósito general) en lugar de un lenguaje de formato, semántico, específico. Aquí es donde se rompe el peldaño 1: el código escrito en este lenguaje se ejecuta en el navegador sin intervención del usuario.

    La unión de ambas escaleras

    Al final, se unen las dos escaleras para crear un monstruo. En la combinación navegador-JavaScript, los desarrolladores encuentran una plataforma para resolver el problema de la difícil implementación (descrito en el peldaño 2), mientras que el boom de la interactividad (peldaño B) facilita el auge. Lo anterior, a pesar del romper la libertad de autorización del usuario u operador (descrito en el peldaño 1). JavaScript hace que la implementación de programas sea extremadamente simple, pero a costa del usuario. Ahora el usuario tiene una plataforma de propósito mezclado: por una parte la lectura de la Web y por otra la de aplicaciones Web.

    Sobre este ladrillo roto se han estado construyendo más tecnologías. Al principio las aplicaciones web eran páginas cuya interactividad se extendía con JavaScript, pero cada vez se depende más de JavaScript. Ahora hay sitios que generan las páginas mismas desde el script. Esto crea un nivel extra de abstracción que los navegadores no pueden optimizar fácilmente. Al final se traduce en mayor consumo de memoria y CPU, haciendo cada vez más lento al navegador en general. Para mi gusto, es un abuso generalizado de JavaScript, pero que también devela una especie de ruta natural, una ruta de menor resistencia, que es mejor atacar por los cuernos.

    ¿Qué necesitamos?

    Lo que deberíamos tener es:

    • Una forma de convertir las aplicaciones Web en aplicaciones de escritorio, sin esfuerzo para el programador.
    • Una forma de instalar e integrar fácilmente estas nuevas aplicaciones, sin esfuerzo para el usuario.
    • Una forma de distinguir entre la mera interactividad de documento y una aplicación hecha y derecha. La única forma que yo veo, infalible, es desaparecer JavaScript de la lectura de la Web, a favor de mejoras semánticas a HTML y CSS y dejar JavaScript para aplicaciones Web, fuera del navegador.

    ¿Funcionaría, al menos en concepto?

    CSS es un lenguaje sumamente poderoso. Sin necesidad de JavaScript se pueden efectos muy interesantes. Esta página muestra 30 efectos con CSS puro que se pueden hacer hoy por hoy.

    ¿Podría comprar un boleto de avión sin JavaScript? Poco a poco sería más factible hacer una compra de avión menos frustrante. El wizard estaría programado del lado del servidor y se usaría HTML5 (o tal vez sería necesario inventar algo nuevo) para mejorar la accesibilidad y la interactividad (validaciones, controles de fecha y demás). Imagino que el contenido del wizard se va acumulando en la misma página conforme se llena, alimentado por procesos del lado del servidor. De esta forma podría imprimirse todo el wizard una vez lleno. Habría que estar al pendiente del tiempo restante a la expiración de la sesión. El elemento META podría contener un atributo “session_expiration” y el elemento FORM podría contener un atributo de “partial_action” que permitiría al navegador poner un contador en segundos y un botón de “refresh” para mantener la sesión activa y refrescar el estado del wizard.

    ¿Podría tener validaciones arbitrarias del lado del cliente? Afortunadamente HTML5 ya permite esto con el atributo pattern, en el que se le puede poner una expresión regular a cumplir como requisito para enviar el formulario. HTML5Pattern muestra algunos ejemplos de validación arbitraria por expresión regular.

    ¿Funcionarían los SSO como Google Accounts, etc.? Probablemente también se necesiten extensiones semánticas, pero quisiera que que el navegador tuviera un indicador de cuentas en las que tengo sesión en este momento, principalmente basados en OpenID, BrowserID y otros protocolos abiertos. Sería responsabilidad de Facebook desarrollar su propio “provider” para Facebook Connect.

    Lo que se lograría

    • Yo tendría que aceptar antes de permitir la instalación de la aplicación “Facebook”, “Twitter” o “Hangout”.
    • Al distinguir una aplicación Web de una página Web, las plataformas de aplicación web (que ya no serían los navegadores) permitirían una más fácil integración entre la aplicación y el escritorio (iconos, lectura de documentos, etc).
    • Yo podría confiar en mi navegador.
    • La sola lectura de páginas web no consumiría tantos recursos como una aplicación Web.
    • Poco a poco el HTML iría evolucionando para soportar nativamente lo que hacen las aplicaciones Web. Así ha ocurrido con HTML5, por ejemplo, con los nuevos elementos INPUT.
    • Sería más difícil que me rastrearan, como con Google Analytics y demás.
    • Funcionaría mejor el botón de Anterior.
    • Funcionaría mejor el botón de Imprimir.
    • Las páginas serían mucho más “accesibles”.
    • La barra de estado siempre diría la verdad. Hoy en día hay forma de que uno sombree una liga y lo que se muestra en la barra de estado sea diferente que el sitio al que el navegador mande (*cough* Facebook *cough*).
    • Se reduce el footprint de los lectores de páginas Web y se dedica JavaScript (o cualquier otro lenguaje) para aplicaciones especializadas.
  • kwame: Screencast’s nueva temporada – Vim tips

    Esta nueva temporada de screencasts va a estar dedicada a Vim. Vim (del inglés Vi IMproved) es una versión mejorada del editor de texto vi, presente en todos los sistemas UNIX.
    Su autor, Bram Moolenaar, presentó la primera versión en 1991, fecha desde la que ha experimentado muchas mejoras. La principal característica tanto de Vim como de Vi consiste en que disponen de diferentes modos entre los que se alterna para realizar ciertas operaciones, lo que los diferencia de la mayoría de editores comunes, que tienen un sólo modo en el que se introducen los órdenes mediante combinaciones de teclas o interfaces gráficas.

    Vim es uno de los mejores amigos no solamente de un sysadim sino también de developers. Estén atentos a estos screencasts de vim.

    Post to Twitter

  • tonymoyoy: SELinux booleans ejemplo

    Antes de meterme con las etiquetas en SELinux quiero mostrar un simple ejemplo del uso de los booleans.

    En este caso tengo un servidor Apache configurado para hacer uso de los directorios de los usuarios, el Index de tony muestra lo siguiente:

    [root@server1 ~]# cat /home/tony/public_html/index.html
    Querido diario
    Estoy usando selinux

    Si revisamos el boolean httpd_enable_homedirs con un simple cat veremos lo siguiente:

    [root@server1 ~]# cat /selinux/booleans/httpd_enable_homedirs 
    0 0[root@server1 ~

    0 0 significa que esta deshabilitado

    Y si tratamos de ver los archivos del usuario tony con apache pasa lo siguiente:


    [root@server1 ~]# curl -L localhost/~tony
    403 Forbidden
    Forbidden You don't have permission to access /~tony
    on this server.
    Apache Server at localhost Port 80
    [aqui edite el formato para que sea facil de leer, curl muestra el html sin procesarlo]


    Ahora si habilitamos la variable en SELinux de la siguiente manera:

    [root@server1 ~]# setsebool httpd_enable_homedirs on
    Podemos comprobar con un cat:

    [root@server1 ~]# cat /selinux/booleans/httpd_enable_homedirs 
    1 1[root@server1 ~]# 
    Y si volvemos a hacer el request de la pagina veremos que ya tenemos permiso de ver el contenido:


    [root@server1 ~]# curl -L localhost/~tonyQuerido diario
    Estoy usando selinux

    Existe muchos otros booleans para httpd y la mayoria estan deshabilitados por default lo cual es bueno para la seguridad ya que en caso de que sea comprometido el servicio este tendra una capacidad de ejecutar acciones limitada por SELinux pues ese uno de los objetivos de esta capa de seguidad. 

  • tonymoyoy: grepeando 1


    grepear es un verbo comun para algunos de nosotros, esta es la primera serie de usos de este comando.


    Imprimir las lineas que contengan la palabra error en el archivo crazy.log

    grep error crazy.log

    Imprimir las lineas que contengan la palabra debug en el archiv crazy.log sin importar el case

    grep -i debug crazy.log

    Imprimir las lineas que contengan  la cadena May  1 21:40:48 del archivo crazy.log

    grep "May  1 21:40:48" crazy.log

    Imprimir las lineas que contengan la palabra 0x2256fa0 o 0x2588790 del archivo crazy.org

    grep '0x2256fa0\|0x2588790' crazy.log

    Cuenta el numero de lineas de archivo crazy.log que contienen la palabra error

    grep -c error crazy.log

    Imprime las lineas que inicien con # del archivo crazy.log

    grep  ^# crazy.log

    Imprime las lineas que no inicien con # del archivo crazy.log

    grep  -i ^# crazy.log

    Imprime una linea antes de la palabra DEBUG y una linea despues de la palabra DEBUG  del archivo crazy.log

    grep -B 1 -A 1 DEBUG crazy.log

    http://unixhelp.ed.ac.uk/CGI/man-cgi?grep
  • alvarezp: stats.gawk
    $ cat bin/stats.gawk
    #!/usr/bin/gawk -f
    
    {
    	d = $1 ~ /^[0-9]/;
    }
    
    d && !f {
    	M = $1;
    	m = $1;
    	f = 1;
    }
    
    d && $1 > M {
    	M = $1;
    }
    
    d && $1  m {
    	m = $1;
    }
    
    d {
    	c += 1;
    	s += $1;
    	ss += $1*$1;
    }
    
    END {
    	OFS = "\t";
    	a = s/c;
    	print "cnt,min,max,sum,avg,stdev:", c, m, M, s, a, sqrt(ss/c-a**2);
    }
    

    Ejemplo de uso:

    $ ls -s1 | ./stats.gawk
    cnt,min,max,sum,avg,stdev:	53	4	33064	78860	1487.92	6125.08
    
  • tonymoyoy: Iniciando con SELinux
    Creo que es comun deshabilitar SELinux para que no nos moleste pero vamos a ver que es lo que puede hacer por nosotros.

    Este es un minitutorial con un poco de teoria, ejemplo semi-practico y algunos comandos, para esto utilice Scientific Linux 6.2 (en CentoOS 6 y RedHat 6 tambien debe funcionar).

    Para revisar el status de SELinux en nuesta PC:


    [root@mars-t3 ~]# sestatus
    SELinux status:                 enabled
    SELinuxfs mount:                /selinux
    Current mode:                   enforcing
    Mode from config file:          enforcing
    Policy version:                 24
    Policy from config file:        targeted


    Aqui es en donde y como esta configurado SELinux: 

    [root@mars-t3 ~]# grep -v '^#' /etc/sysconfig/selinux
    SELINUX=enforcing
    SELINUXTYPE=targeted 


    Si se tiene que habilitar es necesario un reboot.


    Como ejercicio vamos a limitar un usuario agregandolo al rol guest_u para que no tenga GUI, Networking, acceso a sudo o su y que no pueda ejecutar scripts.

    Antes necesitamos instalar lo siguiente:

    [root@mars-t3 ~]#yum -y install policycoreutils-python

    Cree un usuario llamado tony, y usando semanage podemos ver que no esta limitado, no aparece en la lista:

    [root@mars-t3 ~]# semanage login -l
    Login Name                SELinux User              MLS/MCS Range          
    __default__               unconfined_u              s0-s0:c0.c1023          
    root                      unconfined_u              s0-s0:c0.c1023          
    system_u                  system_u                  s0-s0:c0.c1023  


    Podemos logearnos con el usuario tony y ver lo siguiente:

    [tony@mars-t3 ~]$ id -Z;ping -c 2 google.com
    unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023PING google.com (74.125.224.166) 56(84) bytes of data.
    64 bytes from 74.125.224.166: icmp_seq=1 ttl=48 time=19.2 ms
    64 bytes from 74.125.224.166: icmp_seq=2 ttl=48 time=19.3 ms
    --- google.com ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 10049ms
    rtt min/avg/max/mdev = 19.256/19.293/19.331/0.143 ms
    id -Z nos da nuestro id con el contexto de SELinux

    Ahora le pondremos el perfil de guest_u usando semanage:

    [root@mars-t3 ~]# semanage login -a -s guest_u tony

    Volvemos a logernos con el usuario tony:

    [tony@mars-t3 ~]$ id -Z;ping -c 2 google.com
    guest_u:guest_r:guest_t:s0
    ping: icmp open socket: Permission denied
    Y asi es como aparece en semanage:

    [root@mars-t3 ~]# semanage login -l | grep tonytony                      guest_u                   s0   

    Estos cambios se tomas una vez que el usuario vuelve a hacer login. 


    Para que el usuario tony no pueda ejecutar scripts, en este ejemplo tenemos lo siguiente y vemos que tiene un script que puede ejecutar:

    [tony@mars-t3 ~]$ ls -al exe
    -rwxrwxr-x. 1 tony tony 26 Apr  8 13:40 exe
    [tony@mars-t3 ~]$ cat exe
    #!/bin/bash
    ps > procesos
    [tony@mars-t3 ~]$ ./exe
    [tony@mars-t3 ~]$ cat procesos
      PID TTY          TIME CMD
     8332 pts/1    00:00:00 bash
     8399 pts/1    00:00:00 exe
     8400 pts/1    00:00:00 ps


    modificamos la variable booleana allow_guest_exec_content que esta en /selinux/booleans/ de la siguiente manera:


    [root@mars-t3 ~]# setsebool allow_guest_exec_content off

    Volvemos a entrar con el usuario tony y vemos lo siguiente

    [tony@mars-t3 ~]$ ls -al exe
    -rwxrwxr-x. 1 tony tony 26 Apr  8 13:40 exe
    [tony@mars-t3 ~]$ ./exe
    -bash: ./exe: Permission denied

    Hay muchas otras cosas que se pueden hacer con SELinux pero por ahora esto solo fue un ejemplo.


  • kwame: WindowMaker Screencast

    Este es un screencast que tenía ganas de grabar desde hace ya mucho tiempo. WindowMaker es el window manager que utilizo desde ya hace mucho tiempo. Aquí se los dejo.

    Post to Twitter

  • tonymoyoy: sshpass
    sshpass es una pequeña herramienta (potencialmente insegura) para conectarse via ssh de forma no interactiva a otras maquinas en caso de no tener configuradas llaves para ssh lo cual es mas recomendable que este metodo.

    Se puede usar de las siguientes maneras:

    Especificando un archivo donde esta el password: 


    jesus@bart ~ $ sshpass -f secret.txt ssh -l tony 192.168.2.131
    Welcome to Linux Mint 12 Lisa (GNU/Linux 3.0.0-12-generic x86_64)
    Welcome to Linux Mint
     * Documentation:  http://www.linuxmint.com
    Last login: Tue Mar 27 21:06:24 2012 from 192.168.2.131
    tony@bart ~ $ 


    Modo Fearless escribiendo el password directamente:

    jesus@bart ~ $ sshpass -p 'lala123' ssh -l tony 192.168.2.131
    Welcome to Linux Mint 12 Lisa (GNU/Linux 3.0.0-12-generic x86_64)
    Welcome to Linux Mint
     * Documentation:  http://www.linuxmint.com
    Last login: Tue Mar 27 21:12:43 2012 from 192.168.2.131
    tony@bart ~ $ 


    Creando y Usando una variable de entorno llamada SSHPASS:

    jesus@bart ~ $ export SSHPASS=lala123
    jesus@bart ~ $ sshpass -e ssh tony@192.168.2.131
    Welcome to Linux Mint 12 Lisa (GNU/Linux 3.0.0-12-generic x86_64)
    Welcome to Linux Mint
     * Documentation:  http://www.linuxmint.com
    Last login: Tue Mar 27 21:13:33 2012 from 192.168.2.131
    tony@bart ~ $ 


    Nota, en Ubuntu (Mint) tenia la version 1.04 ya cual no sirve, asi que baje-compile-instale la version 1.05 la cual funciona bien.

    http://sourceforge.net/projects/sshpass/

Foro

  • condicones if para un text y checkbox en vb6
    por luffy (Publicado Mié Sep 21, 2011 1:08 am)
    bueno tengo que hacer un programa que sino e escrito nada en el textbox ps que no me deje activar el checkbox y ps les dejo mi codigo si me pudieran orientar xD

    de antemano gracias

    If Text1.Text = text Then

    Check1.Enabled = True

    else Text1.Text = " " Then

    Check1.Cnabled = False

    end if

    bueno aqui sengun yo estoy haciendo la condicion si el cuadro de textbox es igual a lo que se escriba pues que me deje activar el checkbox

    si no se escribe nada ps que no medeje activarlo :D

    bueno es todo gracias

    Read Main Topic
  • Programdor traduce Firefox a su lenguan dialecta.
    por xpzion7 (Publicado Jue Ago 18, 2011 9:10 am)
    Rodrigo, un ingeniero agrónomo graduado de la Universidad de Chapingo, Estado de México, decidió entonces aplicar los conocimientos sobre software libre que adquirió en la organización Ingenieros sin Fronteras, donde trabajó cuando era alumno de la Universidad de Zaragoza, en el noreste de España.

    Realizaban proyectos sustentables en poblaciones vulnerables, y uno de ellos implicaba al software libre. Los equipos de cómputo funcionaban con Ubuntu (un sistema operativo creado en Linux). "Aprendí las bondades del software libre para poder cambiar el idioma a las aplicaciones”, recuerda

    Ahora que el 80% del navegador Mozilla ya está traducido al zapoteco, Rodrigo recuerda sus comienzos en la traducción, cuando la Fundación Mozilla México se interesó en su idea y comenzaron a trabajar juntos para traducir línea por línea los casi 21,000 caracteres que componen el código de esta aplicación.


    Fuente: http://mexico.cnn.com/tecnologia/2011/08/15/la-filosofia-del-software-libre-se-adentra-en-los-pueblos-indigenas

    Read Main Topic
  • firefox proxy
    por luffy (Publicado Jue Ago 11, 2011 7:14 pm)
    bueno e estado usando firefos proxy ace unos dias y ps al agregar proxys y tratar de usar unaa como para todas las direcciones ps no me hagarra el internet y ps la verdad no se alguien me puede ayudar C:
    :D




























    .

    Read Main Topic
  • ¿saber los datos de una persona por el correo?
    por luffy (Publicado Mar Ago 09, 2011 9:47 am)
    bueno eso ya lo hice XD y no le saque mucho XD gracias :D

    Read Main Topic
  • Recuperar Datos
    por dualbus (Publicado Dom Ago 07, 2011 8:59 am)
    Saludos xpzion7, ¿por qué no intentas en San Diego? Una búsqueda de 'san diego hard disk drive recovery' en Google me arrojó bastantes resultados. La recuperación de datos de un disco duro con problemas eléctricos/mecánicos no debe ser hecha por cualquiera.

    Read Main Topic
Distribuir contenido

Sitio elaborado con Drupal, un sistema de gestión de contenido de código abierto
  • galería
  • videos
  • planet
  • foro
  • podcasts
  • irc chat
  • contacto
  • google group

Copyleft Grupo de Usuarios Linux de Tijuana v.3.0 Beta Creative Commons License