Antes de comenzar es importante hacer notar que esta guía se enfocará al mundo Debian GNU/Linux y sus derivadas, en donde por supuesto se incluye Ubuntu Linux. Después de hacer la breve aclaratoria podemos comenzar.
¿Es importante la firma de los paquetes?
La firma de los paquetes es una funcionalidad fundamental para evitar el posible cambio adrede en los ficheros binarios o fuentes distribuidos a través de sitios espejos (mirrors), de esta manera nos libramos de la posibilidad de un ataque man in the middle, el cual básicamente consiste en la intercepción de la comunicación entre el origen y el destino, el atacante puede leer, insertar y modificar los mensajes (en este caso particular, los ficheros) compartidos entre las partes sin que cada una de ellas se percate que la comunicación se ha visto comprometida.
Nuestro objetivo
Un sistema automatizado de actualización de paquetes, también es sumamente importante eliminar cualquier posibilidad de amenaza que pueda surgir al aprovecharse de la automatización del proceso de actualización, por ejemplo, debemos evitar a toda costa la distribución de troyanos que comprometarán la integridad de nuestros sistemas.
Un poco de historia…
No fue sino hasta la aparición de la versión 0.6 de la interfaz apt en donde se realiza la autenticación de ficheros binarios y fuentes de manera transparente haciendo uso de una Infraestructura de clave pública (en inglés, Public Key Infrastructure o PKI). La PKI se basa en el modelo GNU Privacy Guard (GnuPG) y se ofrece un enorme despliegue de keyservers internacionales.
Detectando la autenticidad de los paquetes
Como se menciono anteriormente desde la versión 0.6 de la interfaz apt se maneja de manera transparente el proceso de autentificación de los paquetes. Asi que vamos a hacer una prueba, voy a simular la instalación del paquete clamav.
$ sudo aptitude --simulate install clamav
Obteniendo por respuesta lo siguiente:
Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado extendido Inicializando el estado de los paquetes... Hecho Se instalarán automáticamente los siguientes paquetes NUEVOS: arj clamav-base clamav-freshclam libclamav1 libgmp3 unzoo Se instalarán los siguiente paquetes NUEVOS: arj clamav clamav-base clamav-freshclam libclamav1 libgmp3 unzoo 0 paquetes actualizados, 7 nuevos instalados, 0 para eliminar y 0 sin actualizar. Necesito descargar 3248kB de ficheros. Después de desempaquetar se usarán 4193kB. ¿Quiere continuar? [Y/n/?] Y The following packages are not AUTHENTICATED: clamav clamav-freshclam clamav-base libclamav1 Do you want to continue? [y/N] N Cancela.
Si nos fijamos bien en la respuesta anterior notaremos que ciertos paquetes no han podido ser autentificados. A partir de este punto es responsabilidad del administrador del sistema el instalar o no dichos paquetes, por supuesto, cada quien es responsable de sus acciones, yo prefiero declinar mi intento por el momento y asegurarme de la autenticidad de los paquetes, para luego proceder con la instalación normal.
Comienza la diversión
Ahora bien, vamos a mostrar la secuencia de comandos a seguir para agregar las llaves públicas dentro del keyring por defecto. Antes de entrar en detalle es importante aclarar que el ejemplo agregará la llave pública del grupo os-cillation, quienes se encargan de mantener paquetes para el entorno de escritorio Xfce (siempre actualizados y manera no-oficial) para la distribución Debian GNU/Linux (también sirven para sus derivadas, como por ejemplo Ubuntu Linux).
Importando la llave pública desde un servidor GPG
$ gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys 8AC2C0A6
El comando anterior simplemente importara la llave especificada (8AC2C0A6) desde el servidor con el cual se ha establecido la comunicación, el valor de la opción --keyserver sigue cierto formato, el cual es: esquema:[//]nombreservidor[:puerto], los valores ubicados entre corchetes son opcionales, cuando hablamos del esquema nos referimos al tipo de servidor, regularmente utilizaremos como esquema hkp para servidores HTTP o compatibles.
Si el comando anterior se ejecuto de manera correcta, el proceso nos arrojará una salida similar a la siguiente:
gpg: key 8AC2C0A6: public key "os-cillation Debian Package Repository (Xfld Package Maintainer) <debian-packages@os-cillation.com>" imported
La instrucción anterior solamente variará de acuerdo al keyserver y la clave que deseemos importar. En www.pgp.net está disponible un buscador que le facilitará la obtención de los datos necesarios.
Exportando y añadiendo la llave pública
$ gpg --armor --export 8AC2C0A6 | sudo apt-key add -
Con el comando anterior procedemos a construir la salida en formato ASCII producto de la exportación de la llave especificada y a través del pipe capturamos la salida estándar y la utilizamos como entrada estándar en el comando apt-key add, el cual simplemente agregará una nueva llave a la lista de llaves confiables, dicha lista puede visualizarse al hacer uso del comando apt-key list.
Aunque parezca evidente la aclaratoria, recuerde que si usted no puede hacer uso de sudo, debe identificarse previamente como superusuario.
Finalmente…
Para finalizar recuerde que debe actualizar la lista de paquetes.
$ sudo aptitude update
Ahora podemos proceder a instalar los paquetes desde el repositorio que hemos añadido como fuente confiable.
Una vez más, genial!
Gracias Milmazz por hacernos la vida más facil.
Un saludo
Tu tampoco te quedas atrás Cutoff. Gracias por el comentario, asi provoca redactar más seguido.
Me sale keyserver timed out
, Ademas supongo o que es mi ignoracia pero de donde saco 8AC2C0A6 enel caso de otro servidor
gracias
Si lo deseas puedes usar http://www.keyserver.net/, el
8AC2C0A6que mencionas es el Key ID de este repositorio en particular. En el enlace anterior el Key ID lo podrás encontrar a la derecha de los resultados como algo similar a esto:0xBB845E97, solo tendrás que copiar lo que viene después de0xCorrecto , Ya instale edubuntu y entre ala guia -ubuntu, cambie mis repositorios y sigo sin poder actualizar. Agradeceria el archivo de repositorio y los pasos previos para actualizar con apt.get o aptide. Posiblemente omiti alguno.
estoy usando apt-cacher. En ese caso, ¿puedo hacer que se validen los paquetes?, pues siempre falla al bajar los archivos release.gpg.
Desde ya gracias. Sergio
acabo de instalar edubuntu, soy profesor, pero ahora me he convertido en ignorante de edubuntu, por favor ayudenme, de donde obtengo la informaCION PARA PODER CAPACITARME CON ESTO , LO QUE HE VISTO ES GENIAL PARA REVOLUCIONAR LA FORMA DE ENSEÑAR Y APRENDER.
gracias
Saludos, en primer lugar puedes incorporarte al canal
#edubuntu-esen el servidor de Freenode desde Xchat por ejemplo, alli puedes interactuar con otros miembros del canal, en donde comparten el uso de uno de los sabores de ubuntu, edubuntu. Otro canal que podria interesarte es el de#ubuntu-es, en donde mucha gente (me incluyo) da soporte y pasa un rato ameno.En guia-ubuntu.org puedes encontrar muchas recetas que te serviran para comenzar, quizá otras un poco más avanzadas.
Si quieres estar al tanto de las noticias de algunos bloggers que escriben sobre ubuntu te recomiendo ver Planeta Ubuntu.
Para terminar y no por ello menos importante, en la red existe una Net Etiquette, por favor documentate sobre ella, se considera que el uso de mayúsculas es equivalente a gritar, por favor, no lo vuelvas a hacer. Peace!
lo siento por el tiempo de retraso
pero bueno tengo un ploblema con keys (la primera parte)
me dice algo haci:
gpg: WARNING: options in `/home/luz/.gnupg/gpg.conf’ are not yet active during this run
luego me pide hacer esto:
usage: gpg [options] [filename]
soy un poco nuevo se nota :p
pero = si hay alguien vivo
si me puede ayudar
me interesa el tema
gracias