Archive

Posts Tagged ‘gnu’

Sigue progresando Hurd

Mayo 6th, 2010 admin No comments

Hurd es un gran proyecto que viene siendo el reemplazo del kernel Unix, que por ahora esta teniendo un gran avance en su desarrollo, el cual ha tomado mucho tiempo por la complejidad de su arquitectura, por ahora ya son dos proyectos grandes que apoyan y desarrollan este núcleo 100 % libre.

En este mes de abril podemos leer que el proyecto Hurd ya esta empezando a tener mucho movimiento en la parte de desarrollo. lo que viene ayudando mucho es la alta actividad de los desarrolladores de ArchHurd, que con unos pocos meses de trabajo ya tiene gran parte del sistema funcionando.

Debian es de los que desde hace tiempo esta desarrollado este kernel hurd:

Actualmente, Debian sólo está disponible para Linux, pero con Debian GNU/Hurd también hemos empezado a ofrecer el GNU/Hurd como plataforma para desarrollo y servidores, así como para sistema de escritorio. No obstante, Debian GNU/Hurd todavía no ha sido distribuido oficialmente, y no lo será durante algún tiempo.

Por ahora un 66% de los paquetes de Debian estan disponibles en el port de Hurd, entre otros cambios como:

  • Se corrigió un bug en libxcl, por lo que X.org funciona “out of the box“.
  • Se creó un USB de GRUB para bootear Debian GNU/Hurd.

Otro proyecto es ArchHurd, que es un trabaja derivado de ArchLinux, lleva muchos cambios y mucho desarrollo en la cuestión de paquetes de la arquitectura i686, podemos ver el trabajo que lleva esta distribución gracias a la lista de correo:

Hemos pasado varios hitos importantes. Primero, logramos compilar cruzado un sistema booteable i686-pc-gnu. (…) ahora tenemos un toolchain actualizado y funcionando (gcc-4.4.3, glibc-2.11.1, binutils-2.20.1). Tenemos un gestor de paquetes funcionando (pacman) y la mayor parte de un sistema de desarrollo mínimo compilado (ver http://www.archhurd.org/packages.php para una lista de paquetes).

También se anunciaron otras noticias interesantes días después:

  • Se portaron los initscripts de ArchLinux a ArchHurd. Se puede ver a Hurd bootear con la apariencia de booteo familiar.
  • Una actualización al sistema permite particiones ext2 mayores a 2GB.
  • Con los initscripts vino el modo multi-usuario por defecto. Esto permite algunas sutilezas como consola VGA, similar a las consolas virtuales en Linux. Al haberse agregado shadow, los usuarios pueden tener contraseñas y se hizo más simple agregar más usuarios.
  • Hay más de 100 paquetes disponibles para ArchHurd (con solo 3 desarrolladores).
  • Hay una Wiki, una guía de instalación y una página para colaborar con el proyecto.

ArchHurd ya fue ejecutado por Alexander Preisinger en una laptop, esta es la primera vez que se ve Hurd en hardware real:

Otro gran punto es que en el Google Summer of Code 2010 se aceptaron tres proyectos de Hurd:

  • Producir imágenes funcionales del instalador de Debian para Debian GNU/Hurd.
  • Corregir problemas de compatibilidad expuestos por los casos de prueba de los proyectos. (Detalles)
  • Afinar el subsistema de VM en GNU/Hurd para actualizar la gestión de memoria virtual en Hurd/Mach a algo más cercano a kernels modernos.

Un gran avance para este genial núcleo 100% libre, que esperemos se siga desarrollando y esperemos que mas gente como nosotros podamos apoyar a este proyecto.

Visto en Picando Codigo

Basic permissions in Linux

Noviembre 21st, 2009 guerremdq No comments

Los permisos asociados a ficheros y directorios, son una de las medidas de seguridad básicas en los sistemas. Generalmente, el usuario propietario será la persona que ha creado el fichero, pero ésta puede ser alterada después de su creación. Existen tres tipos básicos de permisos, que son de:

  • Lectura: permite a los usuarios leer el archivo especificado.
  • Escritura: permite a los usuarios modificar el archivo especificado.
  • Ejecución: permite a los usuarios ejecutar el archivo especificado.

Cuando se asignan estos permisos, Linux guarda un registro de los mismos que posteriormente aparece reflejado en la lista de archivos, con lo cual, se crea un estado que se expresa mediante marcas:

  • r (read): acceso de lectura.
  • w (write): acceso de escritura.
  • x (execute): acceso de ejecución.

Dichas marcas, pueden ser visibles con un formato largo mediante el comando, ls -l. Ésta es una salida típica:

drwxr-xr-x 2 Pepe Pepe 4096 jun 6 12:50 lg
-rwxrwxr-x 1 Pepe Pepe 0 jun 6 12:49 kgl.py
drwxr-xr-x 2 Pepe Pepe 4096 jun 6 12:50 scripts

Chmod BitsFIGURA 1.1: Propiedades de la tabla de permisos

Como podemos observar en la Figura 1.1, el primer carácter especifica el tipo de recurso. En este campo existen varios:

  • - representa un archivo.
  • b representa un archivo de bloques especial.
  • c representa un archivo de caracteres especiales.
  • d representa un directorio.
  • l representa un enlace simbólico

Finalmente, los nueve caracteres restantes se dividen en tres grupos:

  • Los permisos del propietario: estos permisos muestran el acceso del propietario del archivo
  • Permisos de grupo: estos permisos muestran el acceso del grupo al archivo.
  • Permisos mundiales: estos permisos muestran los derechos que tiene el resto del mundo a acceder a este archivo (si tiene alguno).

Vamos a aplicar esto al script en Python de Pepe. Como podemos observar, este recurso es un archivo.

-rwxrwxr-x 1 Pepe Pepe 0 jun 6 12:49 kgl.py

Por consiguiente, Pepe (el propietario del archivo) tiene todos los derechos de acceso en él, con lo cual puede leer, escribir y ejecutar el archivo.

-rwxrwxr-x 1 Pepe Pepe 0 jun 6 12:49 kgl.py

De igual modo, los usuarios del grupo (del grupo Pepe) también pueden leerlo, escribirlo y ejecutarlo.

-rwxrwxr-x 1 Pepe Pepe 0 jun 6 12:49 kgl.py

Y finalmente, aquellos que no sean Pepe y que no pertenezcan a su grupo, tienen derecho a leer y ejecutar el archivo, pero en cambio, no pueden escribir en él.

En resumen:

  • El primer carácter representa normalmente si es un archivo (-) o un directorio (d).
  • El primer conjunto de los tres caracteres indica los privilegios del usuario.
  • El siguiente conjunto, los privilegios del grupo.
  • Y finalmente, el último conjunto indica los privilegios del resto de usuarios.

chmod: cambiar los permisos de los archivos

Para definir los permisos a un usuario concreto sobre un archivo o un directorio, se utiliza el comando chmod. Existen tres tipos de operadores:

  • El operador - quita los permisos.
  • El operador + agrega permisos.
  • El operador = asigna permisos.

Veámos un claro resumen de como podemos quitar, agregar o asignar estos operadores.

  • r: Éste carácter añade o quita el permiso de lectura. Ejemplo: chmod +r nombre de archivo
  • w: Éste carácter añade o quita el permiso de escritura. Ejemplo: chmod -w nombre de archivo
  • x: Éste carácter añade o quita el permiso de ejecución. Ejemplo: chmod +x nombre de archivo

Un método consiste en añadir letras (r, w, x) para asignar permisos a archivos individuales o directorios. Otro es utilizar el sistema octal, con el cual se pueden añadir valores octales y que veremos en el siguiente apartado.

Sistema octal

El sistema octal, es un sistema numérico en base 8 que utiliza los dígitos de 0 a 7.

La siguiente tabla resume el esquema octal y lo que representa cada número, aunque seguidamente lo veremos con más detalle.

Sistema octalFIGURA 1.2: Valores octales
  • 0000: Equivale a --- por lo que no tenemos ningún permiso.
  • 0001: Equivale a --x por lo que el propietario tiene permisos de ejecución.
  • 0002: Equivale a -w- por lo que el propietario tiene permisos de escritura.
  • 0004: Equivale a r-- por lo que el propietario tiene permisos de lectura.
  • 0010: Equivale a --x por lo que X grupo tiene permisos de ejecución.
  • 0020: Equivale a -w- por lo que X grupo tiene permisos de escritura.
  • 0040: Equivale a r-- por lo que X grupo tiene permisos de lectura.
  • 0100: Equivale a --x por lo que otros tienen permisos de ejecución.
  • 0200: Equivale a -w- por lo que otros tienen permisos de escritura.
  • 0400: Equivale a r-- por lo que otros tienen permisos de lectura.
  • 1000: Éste modo denominado Sticky bit, es aplicado a directorios importantes (como /tmp) con privilegios especiales. El bit asignado a un directorio sólo puede ser renombrado o borrado por el propietario del elemento del directorio o root aunque el resto tenga permisos de escritura. Además, éstos se indentifican mediante una t en la última posición de la propiedad de permisos. Ejemplo: drwxrwxrwt 13 root root 4096 jun 6 22:44 tmp
  • 2000: Éste modo denominado bit SETGID (Set Group ID) está orientado a facilitar el trabajo en grupo cuando varios usuarios deben de acceder a una colección común de ficheros y directorios. Se representan mediante la letra S. Por ejemplo, drwxrws--- 2 Pepe profesorado 4096 jun 3 22:12 Documentos el propietario del directorio y los miembros del grupo profesorado pueden acceder a este directorio. Los usuarios que no sean miembros de este grupo se “asignan” al mismo, con lo cual puede suponer un riesgo de seguridad si se definiera el valor root SUID en un programa.
  • 4000: Finalmente, éste modo denominado bit SETUID (Set User ID) es un atributo de archivo especial que indica al sistema que debe ejecutar los programas marcados con un ID de usuario en concreto. Por ejemplo, el programa vipw normalmente necesita permisos de usuario root para acceder a /etc/passwd, por tanto un usuario normal no podría cambiar dicho archivo, ya que sería demasiado peligroso otorgar a todos los usuarios acceso directo a él.

NOTA: Si los atacantes pueden explotar las debilidades de los programas root de SUID, potencialmente pueden obtener privilegios de root.
Los archivos de bit SUID y SGID pueden ser buscados de la siguiente forma: find / \( -perm -4000 -o -perm 2000 \) -ls > archivos_con_suid_sgid.txt con lo que nos hará un listado en un archivo de texto que posteriormente podemos analizar para otorgar los permisos adecuados para así, obtener un sistema mucho más seguro.

Finalmente, podemos facilitar las cosas reduciendo rápidamente los permisos del propietario, de grupos y otros usuarios a un número de tres dígitos utilizando los siguientes valores:

  • 0: Sin permisos.
  • 1: Ejecución.
  • 2: Escritura
  • 3: Escritura y ejecución (actualmente no se utiliza mucho).
  • 4: Lectura.
  • 5: Lectura y ejecución.
  • 6: Lectura y escritura.
  • 7: Todo el conjunto: lectura, escritura y ejecución.

Veámos un caso práctico:

[cloti@ ~]$ pwd; cd /home/pepe/
/home/cloti
bash: cd: /home/pepe/: Permiso denegado


[pepe@ ~]$ chmod 755 /home/pepe/; ls -l /home
drwx------ 4 cloti secretaria 4096 jun 7 01:45 cloti
drwx------ 4 juan profesorado 4096 jun 7 01:45 juan
drwxr-xr-x 4 pepe profesorado 4096 jun 7 01:41 pepe

[cloti@ ~]$ cd /home/pepe/; ls -l
-
rw-r--r-- 1 pepe profesorado 548 jun 7 02:20 Álgebras.doc
drwxr-xr-x 2 pepe profesorado 4096 jun 7 02:19 Exámenes
drwxr-xr-x 2 pepe profesorado 4096 jun 7 02:20 Física
drwxr-xr-x 2 pepe profesorado 4096 jun 7 02:20 Matemáticas
drwxr-xr-x 2 pepe profesorado 4096 jun 7 02:20 Prueba de acceso
-
rw-r--r-- 1 pepe profesorado 897 jun 7 02:20 Tema 4 Funciones.docx

Primeramente, podemos observar como el usuario cloti intenta acceder a la carpeta pepe (/home/pepe), la cual le deniega el acceso. Seguidamente, nuestro protagonista Pepe ha decidido darle permisos de lectura y ejecución a Cloti, que posteriormente ha podido acceder igual que podría hacerlo Juan siendo éste de su mismo grupo.

Fuente ; http://arrivalsec.wordpress.com

Todo sobre ataques DoS

Noviembre 16th, 2009 guerremdq No comments

El famoso ataque DoS (Denial of service) se realiza a un sistema de computadoras o red para causar que un servicio o recurso sea inaccesible a los usuarios legítimos.

Se caracterizan por su fácil ejecución y su principal rasgo es la dificultad con la que pueden ser mitigados.

Un ataque de este tipo a un servidor conectado a Internet tiene como objetivo agotar sus recursos, ya sean de ancho de banda o de procesamiento, para que sea (prácticamente) imposible acceder a él.

Realizar un ataque de estos esta a dispocision de caulquiera, siempre y cuando haya encontrado una vulnerabilidad que le permita hacer un DoS, o sino, tener un ancho de banda (Internet) mayor al IP atacada.

¿DDoS?
Un ataque DDoS es aquel que es realizado por muchas pcs atacantes, de modo de intensificar el daño producido.

Generalmente, los DDoS son producidos por botnets, una red de pcs “zombies” que actuan bajo el dominio de un hacker/lammer/newbie/etc que les dan la orden de realizar el ataque.

TIPOS DE ATAQUES DoS:

* Ataque LAND

Un ataque LAND se produce al enviar un paquete TCP/SYN falsificado con la dirección del servidor objetivo como si fuera la dirección origen y la dirección destino a la vez. Esto causa que el servidor se responda a sí mismo continuamente acabe desbordándose y al final falle.

* Ataque Conecction Flood

Todo servicio de Internet orientado a conexión (la mayoría) tiene un límite máximo en el número de conexiones simultaneas que puede tolerar. Una vez que se alcanza ese límite, no se admitirán conexiones nuevas.

Así, por ejemplo, un servidor Web puede tener capacidad para atender a mil usuarios simultáneos. Si un atacante establece mil conexiones y no realiza ninguna petición sobre ellas, monopolizará la capacidad del servidor.

Las conexiones van caducando por inactividad poco a poco, pero el atacante sólo necesita intentar conexiones nuevas constantemente, como ocurre con el caso del SYN flood.

La máquina atacada tiene constancia de la identidad real del atacante. Al menos, si sus administradore s merecen su sueldo y saben qué comandos utilizar.

Read more…

Software Freedom Day

Septiembre 29th, 2009 guerremdq No comments

El pasado sabado 26 de septiempre se realizo en la ciudad de Mar del Plata el Sofware Freedom Day, yo di una charla junto a Martin Gregorio sobre Servidores web Casero.

Aca les dejo el link de el Pdf de la charla , video y la galeria de fotos del evento.

Servidores Caseros (PDF)

Servidores Caseros (ODP)

Servidores Caseros (Video)

Galeria de Fotos flickr

Galeria de fotos en Facebook http://bit.ly/ZEfHS y http://bit.ly/G4SCO


Software Freedom Day , Mar del Plata

Septiembre 16th, 2009 guerremdq No comments

Freedom_day_Afiche_Final

Celebración a nivel mundial en Mar del Plata !! Día de la Libertad del Software 2009 (Software Freedom Day)


En esta oportunidad, el Nodo Mar del Plata del Grupo de Usuarios de GNU+Linux y Software Libre de Buenos Aires Central (gulBAC), coordina y organiza otra jornada de charlas para la difusión del Software Libre.

Ésta vez, el evento se desarrollará en el marco del Día de la Libertad del Software, una celebración mundial cuyo objetivo es mostrar al público los beneficios de utilizar software libre de alta calidad en la educación, en el gobierno, en casa, y en los negocios. En resumen, en todas partes!

Los contenidos del evento cubrirán desde lo más básico para principiantes, hasta charlas técnicas para los que ya tienen experiencia en el tema.

Está todo el mundo invitado a venir, ya que está dirigido a todo tipo de público: estudiantes, académicos, empresarios, trabajadores, funcionarios públicos, entusiastas y cualquier persona interesada aunque no posea conocimientos informáticos.

Los temas a tratar serán:

* Desarrollo web
* Entornos de escritorio
* Escuelas con Software Libre
* Servidores
* Migracion en empresas
* Sonido profesional y libre

Si siempre tuviste curiosidad por saber qué es esto del Software Libre ésta es tu oportunidad para hacerlo acercándote a una pujante comunidad de usuarios y desarrolladores que comparten la filosofía del software libre como una opción ética, válida y accesible para usar computadoras sin necesidad de sacrificar ninguna de tus libertades.

Los esperamos a todos el sábado 26 de Septiembre a las 10 horas en las instalaciones del Instituto Movilizador de Fondos Cooperativos, ubicado en la calle Hipólito Yrigoyen 1549.

Habrá sorteos y regalos. La entrada será libre y gratuita. Mas información en gulbac.org.ar

Cronograma de charlas:

  • 10:00-10:45 – Tecnologias de la Informacion para todos (LTSP en las escuelas de MPG) – Marcelo Caceres y Eduardo Fortes
  • 11:00 – 11:45 – Que es el SL – experiencias en la educacion – Carlos Rico
  • 12:00 – 13:30 – ALMUERZO
  • 13:30 – 14:15 – Basta de inventar la rueda: Frameworks en el desarrollo web – Esteban Soler
  • 14:30 – 15:15 – Migración a Software Libre en Empresas Medianas – Adolfo Spinelli
  • 15:30 – 16:15 – Servidores caseros: Tu servidor web en casa – Facundo Guerrero y Martin Gregorio
  • 16:30 – 17:00 – BREAK
  • 17:00 – 17:45 – Sonido profesional y libre – Gabriel Nicolás González Ferreira
  • 18:00 – 18:45 – Awesome: un WM diferente – Sebastian Montini
  • 19:00 – 19:45 – A confirmar !
  • 20:00 – 20:10 – SORTEOS-CIERRE

Power by Debian, Apache