Mostrando entradas con la etiqueta debian. Mostrar todas las entradas
Mostrando entradas con la etiqueta debian. Mostrar todas las entradas

Instalación de Debian a un directorio

El uso de máquinas virtuales para comprobar ciertos cambios en probar cosas es algo ya cada vez más habitual. Sin embargo hay ocasiones en las que puede ser necesario instalar un sistema Debian dentro de un directorio de nuestro sistema para hacer pruebas o realizar instalaciones de otra arquitectura diferente.
Por ejemplo, una máquina con Debian de 64bits puede tener otro sistema de 32bits para hacer ciertas pruebas. Para este tipo de tareas, en Debian es muy sencillo instalar un sistema base dentro de un directorio utilizando la herramienta debootstrap.

Instalación

Lo primero es instalar debootstrap.
shell> apt-get install debootstrap

Uso

Una vez tenemos instalada la utilidad, únicamente debemos de crear el directorio sobre el que instalar la nueva máquina, por ejemplo,
shell> mkdir /data/debian-i386
Y luego emplear debootstrap para crear la nueva instalación
shell> debootstrap \
       --arch=i386 \
       wheezy \
       /mnt/debian-i386/ \
       http://ftp.debian.org/debian/
Este proceso tardará un poco y cuando termine nos mostrará un mensaje de que el proceso terminó correctamente.
I: Base system installed successfully.
Y para emplear el nuevo sistema tendremos ahora que 'conectarnos' con chroot a él.
shell> chroot /mnt/debian-i386
Esta nueva consola que acabamos de abrir es en la máquina Debian instalada. Para salir de él, como en cualquier sistema. La ventaja es que no hay que apagarla y podemos copiar ficheros directamente a él, ya que es un directorio en nuestro sistema real.
Leer más

Instalación de Oracle Java en Ubuntu

Una de las tareas que en su época se dio como más tediosa en sistemas GNU/Linux, fue la instalación de Java. Java la versión oficial, no el paquete libre, que ese viene en los repositorios, por lo que su instalación también es sencilla.
Sin embargo, gracias a la expansión de Ubuntu, la gente de Oracle creó una PPA que simplifica y mucho el proceso de instalación de Java. Los pasos a realizar, a continuación.

Instalación del nuevo repositorio

Como ya de dijo, Java está disponible para sistemas Debian desde el Oracle Java PPA, por lo que en primer lugar debemos de importarlo en nuestro sistema.
shell> add-apt-repository -y ppa:webupd8team/java
gpg: keyring `/tmp/tmp6gk849hs/secring.gpg' created
gpg: keyring `/tmp/tmp6gk849hs/pubring.gpg' created
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp6gk849hs/trustdb.gpg: trustdb created
gpg: key EEA14886: public key "Launchpad VLC" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

Actualización de las fuentes

Como hemos añadido un nuevo lugar de fuentes, actualizamos el listado de paquetes,
shell> apt-get update

Instalación de Oracle Java

Ahora ya tenemos disponibles las diferentes versiones de Java que hay en los repositorios,
shell> apt-cache search oracle java
...
oracle-java6-installer - Oracle Java(TM) Development Kit 6
oracle-java6-set-default - Set Oracle JDK 6 as default Java
oracle-jdk7-installer - Oracle JDK7 Installer meta package
oracle-java7-installer - Oracle Java(TM) Development Kit 7
oracle-java7-set-default - Set Oracle JDK 7 as default Java
oracle-java8-installer - Oracle Java(TM) Development Kit 8
oracle-java8-set-default - Set Oracle JDK 8 as default Java
Por lo que seleccionamos la que queremos instalar y el resto será automático. Únicamente debemos de aceptar el acuerdo de licencia.
shell> apt-get install oracle-java7-installer

Comprobación

Cuando finalice la instalación, ya tenemos java y javac, entre otros, disponibles en el sistema
shell> javac -version
javac 1.7.0_72

shell> java -version
java version "1.7.0_72"
Leer más

Limitar velocidad de descarga para APT

Con los nuevos métodos de trabajo que se están implantando en entornos grandes, cada vez resulta más necesario tener un método de control que limite ciertos problemas de colapso de red. Uno de ellos es la instalación/actualización de paquetes en los servidores. Imaginaros que tenemos una red de 100 ordenadores con Debian/Ubuntu y decidimos instalar un nuevo paquete en todos. Herramientas como salt stack  hacen esta trabajo realmente sencillo y rápido,
shell> salt -G 'os:Debian' pkg.install vim
y mandar a 100 equipos descargar un mismo paquete en un mismo momento, puede provocar un colapso de red y ésta afectaría a todos los equipos y personas que estén en ella.
Para evitarlo, si empleamos herramientas de orquestación, por ejemplo para sistemas Debian, es muy recomendable configurar un máximo de velocidad de descarga desde los repositorios APT. Así evitaremos un sobre saturar de la red. Hacerlo es tan sencillo como crear el fichero /etc/apt/apt.conf.d/99limit con el siguiente contenido,
Acquire
{
   Queue-mode "access";
   http
   {
      Dl-Limit "25";
   };
};
Tras guardarlo, la próxima vez que empleemos apt, la velocidad de descarga se limitará a los kbs aquí establecidos (más o menos).
Leer más

Soporte VLAN en Debian

El concepto VLAN se emplea para separar através de una misma red física, varias redes virtuales. Esta separación, aunque sencilla de entender, no es tan sencilla a nivel de red. Para dar soporte VLAN, el equipo que se quiere conectar a dicha VLAN, debe marcar aquellos paquetes que se envían por el interfaz de VLAN con el tag correspondiente. A mayores, los equipos intermedios deben también de soportar esta característica, aunque a día de hoy, esto no suele ser ya un problema.

Soporte a VLAN

En sistemas Debian, para añadir el soporte para manejar VLANs, únicamente requiere instalar el paquete vlan.
shell> apt-get install vlan
A continuación necesitamos cargar el módulo que da soporte a VLANs, 8021q.
shell> modprobe 8021q
Y puesto que nos interesa que cada vez que el equipo arranque, dicho soporte exista, hacemos que se cargue.
shell> echo 8021q >> /etc/modules

Creando VLAN

Con el soporte para VLAN añadido, crear una nueva VLAN en el sistema es tan simple como añadir la VLAN y crear el interfaz por el que dar salida a dicha VLAN.
shell> vconfig add eth0 700
shell> ifconfig eth0.700 10.100.10.77/24
Como se puede observar, la VLAN 700, tiene como interfaz asociado el eth0.700, el decir, el interfaz virtual 700. Con esto conseguimos que todos los paquetes que salgan por dicho interfaz se marquen con el tag 700.

Solución estática

Por supuesto, lo escrito hasta aquí hace únicamente que la VLAN esté presente en el sistema hasta que éste se reinicie. Si queremos que este nuevo interfaz quede presente, tendremos que añadirlo al fichero de interfaces, junto con su configuración.
auto eth0.700
iface eth0.700 inet static
 address 10.100.10.77
 netmask 255.255.255.0

Borrando VLAN

Si llegado el momento, por lo que sea debemos de borrar una VLAN, vconfig tiene también forma de hacerlo,
shell> vconfig rem eth0.700
Leer más

Debian Squeeze LTS

Hace unos meses os hablé de que por fin Debian iba a tener una versión LTS (Long Term Support) y cómo activar dicho repositorio de seguridad. Puedes leer el artículo entero aquí.
Pues bien, hoy se dió a conocer una vulnerabilidad  que afecta a GNU/Linux, sí la de bash, de la que os hablaré con más detenimiento en otro momento. Quiero aprovechar para recordar que actualicéis.
Eso es lo más importante, un sistema actualizado es menos vulnerable. Aun así, si estáis empleando Debian Squeeze acordaros de incluir la línea de LTS en vuestro fichero sources.list y también, como recomendación instalar el paquete debian-security-support.
Lo primero será actualizar el sources.list, añadiendo lo siguiente,
deb http://ftp.debian.org/debian squeeze-lts main contrib
Para a continuación,
shell> apt-get update
shell> apt-get upgrade
Si no tenías este nuevo repositorio verás que se actualizan bastantes paquetes de interés, según la finalidad del sistema.

Aun así, no todos los paquetes incluidos en Debian Squeeze van a tener soporte LTS, sino que algunos terminarán por dejar de mantenerse. Para tener un listado de aquellos paquetes instalados en el equipo y que pueden no tener soporte, está el comando check-support-status. Para instalarlo,
shell> apt-get install debian-security-support
shell> check-support-status
Ended security support for one or more packages

Unfortunately, it has been necessary to end security support for some
packages before the end of the regular security maintenance life cycle.

The following packages found on this system are affected by this:

* Source:libplrpc-perl, ended on 2014-05-31 at version 0.2020-2
  Details: Not supported in squeeze LTS
  Affected binary package:
  - libplrpc-perl (installed version: 0.2020-2)

Limited security support for one or more packages

Unfortunately, it has been necessary to limit security support for some
packages.

The following packages found on this system are affected by this:

* Source:php5
  Details: See README.Debian.security for the PHP security policy
  Affected binary packages:
  - libapache2-mod-php5 (installed version: 5.3.3-7+squeeze21)
  - php5 (installed version: 5.3.3-7+squeeze21)
  - php5-cli (installed version: 5.3.3-7+squeeze21)
  - php5-common (installed version: 5.3.3-7+squeeze21)
  - php5-curl (installed version: 5.3.3-7+squeeze21)
  - php5-gd (installed version: 5.3.3-7+squeeze21)
  - php5-mysql (installed version: 5.3.3-7+squeeze21)

Tienes más información acerca de lo aquí comentado en howtoforge.com.
Leer más

dpkg: warning: package not in database

Si tienes un sistema perfectamente instalado y funcionando y con todos los paquetes que necesitas, una de las formas más cómodos que Debian/Ubuntu ofrece para sacar un listado de los paquetes instalados y poder pasárselos a otro sistema para que quede con la mismos es empleando el comando dpkg.
Lo primero es sacar el listado de los paquetes del servidor origen, tal como sigue:
shell> dpkg --get-selections > packages.list
A continuación, en el nuevo servidor los importamos e instalamos,
shell> dpkg --set-selections < packages.list
shell> apt-get dselect-upgrade

Si durante este proceso aparece este error,
dpkg: warning: package not in database
La solución es relativamente sencilla,
shell> apt-get install dselect
shell> dpkg --set-selections < packages.list
shell> apt-get dselect-upgrade
Y ya tenemos una copia de todos los paquetes instalados en el sistema origen en el sistema destino.
Leer más

Repositorios Debian squeeze LTS

Desde ya hace un tiempo se venía rumoreando y finalmente se hizo realidad: Debian 6.0 [squeeze] será la primera Debian con soporte LTS. Tras este anuncio por parte de la comunidad, era de esperar algún tipo de cambio o modificación y estos no se hicieron esperar.
Por un lado han creado una nueva lista oficial para brindar el soporte que se merece esta LTS. Te puedes suscribir a ella desde aquí.
Y por otro lado, quizás el cambio más importante de momento, es que se ha creado un nuevo repositorio para los paquetes LTS. Así que si empleas Debian squeeze y pretendes aprovechar este largo tiempo de soporte es hora de que edites tu fichero de repositorios y pongas el siguiente para binarios,
deb http://http.debian.net/debian squeeze-lts main contrib non-free
Y este otro si también deseas tener el código fuente de los paquetes,
deb-src http://http.debian.net/debian squeeze-lts main contrib non-free
Por cierto, Debian squeeze LTS tendrá soporte hasta el 6 de Febrero 2016.
Leer más

Instalación de paquetes en GNU/Linux

Por suerte, desde hace ya muchos años instalar o desinstalar paquetes en los diferentes sistemas operativos de base Linux se hizo mucho más sencillo. Al principio de los tiempos, instalar algo era casi para "nativos del código fuente". Aun recuerdo la época en la que había que compilar los binarios con todas sus dependencias. Conseguías más rendimiento, puede ser, si sabías lo que hacías, pero actualizar un paquete era casi misión imposible. El trabajo casi nunca compensaba el esfuerzo.
Por suerte, el mundo Linux avanzó y las principales distribuciones tienen desde hace mucho tiempo repositorios en los que ofrecen software ya compilado y empaquetado. Así, instalar o actualizar un paquete es una tarea muy sencilla. Pero por supuesto, cada distribución, optó por un método diferente y para nada homogéneo, ni de paquetes ni de instrucciones para la instalación.
A continuación os dejo aquí una tabla comparativa de los comandos que cada distribución tiene para hacer la misma tarea. En todos los casos, los paquetes a instalar vienen de los repositorios que estén configurados en cada uno de los sistemas.
Linux OS
search
install
update
remove
Debian
Ubuntu
Linux Mint
apt-cache search [pkg] apt-get install [pkg] apt-get upgrade apt-get remove [pkg]
Fedora
Red Hat
CentOS
yum search [pkg] yum install [pkg] yum update yum remove [pkg]
Mandriva
Mageia
urpmi -y [pkg] urpmi [pkg] urpmi-auto-select urpme [pkg]
OpenSuse zypper search [pkg] zypper install [pkg] zypper update zypper remove [pkg]
Arch pacman -Ss [pkg] pacman -S [pkg] pacman -Syu pacman -R [pkg]
Gentoo emerge -s [pkg] emerge [pkg] emerge -uD [pkg] emerge -C [pkg]
Es muy recomendable tener presente esta chuleta de ayuda siempre que tengáis que manejar más de un sistema de base Linux de una familia diferente.
Leer más

Debian squeeze: Error de GPG

La semana pasada se descubrió un interesante y grave fallo de seguridad en el paquete OpenSSL. Existía una función con la palabra reservada goto que podía aprovecharse para hacer cosas extrañas y entre otras, crear certificados SSL no válidos.
La verdad es que la primera vez que lo leí, me quedé bastante sorprendido, pues hacía años que no veía el goto, muy famoso en lenguajes deprecated, como pueden ser Pascal o Cobol. Pero cierto es que se usa también en lenguajes como C. Una vez apareció el bug, presente desde 2005, y la forma de explotarlo, era lógico que alguien lo hiciera. Imaginaros la sorpresa, y susto, que llevé cuando una buena amiga me pasa este fallo que le estaba dando una debian al intentar actualizar el listado de paquetes.
shell> apt-get update
...
W: Error de GPG: http://ftp.es.debian.org squeeze-updates Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 8B48AD6246925553
Lo primero que pensé, alguien accedió a los servidores de es.debian.org y está haciendo cosas raras. Ya bien hayan sido hackeados o bien alguien haya conseguido redireccionar todo el tráfico a otras máquinas. Por suerte, emplear paquetes firmados sirve de algo. Después de una búsqueda inicial y observar que el certificado de es.debian no había sido violado, tocaba arreglar el problema. Instalar paquetes desde servidores que no confías no es buena idea.
Comenzamos viendo el listado repositorios que tenía el servidor configurados.
shell> cat /etc/apt/sources.list
deb http://ftp.es.debian.org/debian/   squeeze main
deb http://security.debian.org/        squeeze/updates main
deb http://ftp.es.debian.org/debian/   squeeze-updates main
Los servidores era buenos y estaban bien. No había nada extraño y desde el equipo contestaba la IP que era de esperar a dicho DNS. Entonces, ¿qué es lo que podía estar pasando?
Se me ocurrió entonces ver dentro de los paquetes instalados, la versión del paquete de llaves de debian que tenía instalado. Por suerte, no hacía mucho que había actualizado un equipo a squeeze y me acordaba que ese paquete se había actualizado con nuevas claves. Así que antes de seguir pensando que hay algo extraño, vamos a lo sencillo,
shell> dpkg -l |grep debian-archive-keyring
ii  debian-archive-keyring  2010.08.28  GnuPG archive keys of the Debian
He aquí el problema. La versión del paquete que está instalada no es la última. Cuando alguien actualizó ese sistema a squeeze se olvidó de actualizar uno de los paquetes más importantes. Concretamente el paquete con las nuevas llaves de los servidores. Al usar las llaves antiguas, apt daba error de clave desconocida, pues efectivamente no tenía la correcta. Para solucionarlo, actualizamos el paquete debian-archive-keyring.
shell> apt-get install debian-archive-keyring
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se actualizarán los siguientes paquetes:
  debian-archive-keyring
1 actualizados, 0 se instalarán, 0 para eliminar y 96 no actualizados.
...
gpg: Cantidad total procesada: 7
gpg:               importadas: 2  (RSA: 2)
gpg:              sin cambios: 5
gpg: no se encuentran claves absolutamente fiables
Tras actualizar el paquete a su última versión, apt ya no da error y el funcionamiento es el esperado, ya que las claves GPG son reconocidas.
shell> apt-get update
...
Descargados 7137 kB en 4seg. (1622 kB/s)                       
Leyendo lista de paquetes... Hecho
Lo que fue un susto inicialmente, quedó en una breve anécdota y únicamente hizo falta actualizar uno de los paquete más sencillos y a la vez más importantes del sistema. Lo que sí, casualidades de la vida, justo pasó en el momento más inoportuno con un fallo que podía haber puesto en jaque a numerosos sistemas.
Leer más

Instalar Metasploit en Debian Wheezy

Hace ya algún tiempo escribí un artículo sobre cómo instalar Metasploit en Debian (squeeze). Hoy, después de un tiempo sin arrancar Metasploit, tras actualizarlo, obtengo el siguiente error,
Metasploit requires the Bundler gem to be installed
Tras investigar un poco, veo que el problema es que el framework ha evolucionado y ahora necesita una versión de Ruby superior, así que no me queda más remedio que actualizar. Así que paso mi sistema de Squeeze (old-stable) a Wheezy (stable). Tarde o temprano lo había que hacer, así que manos a la obra.
Tras los típicos update, upgrade y dist-upgrade ya tengo el sistema en la última versión estable de Debian y listo para arrancar Metasploit.
Ahora voy a hacer un pequeño inciso para aquella gente es esté comenzando a usar Metasploit y lo quiera instalar desde cero. Lógicamente si ya lo tienes instalado, estos pasos no son necesarios.
Lo primero que hay que hacer es instalar los paquetes básicos,
shell> apt-get install git-core postgresql curl ruby1.9.3
shell> apt-get install nmap
Tras ello, ya podemos comenzar a instalar las pequeñas dependencias de Metasploit. Puesto que la mayoría de código está escrito en Ruby, para instalar dependencias lo podemos hacer automáticamente con gem. Para ello,
shell> gem install wirble sqlite3 bundler
Ahora que ya tenemos instalado el software necesario vamos a clonar la última versión estable del framwork. Ejecutamos lo siguiente,
shell> cd /opt
shell> git clone https://github.com/rapid7/metasploit-framework.git
shell> cd metasploit-framework
Hasta aquí son los pasos para la instalación básica. Ahora vienen las complicaciones, por llamarlo de alguna manera. En la última versión de Metasploit, el framework al arrancar comprueba que todos los paquetes necesarios están instalados y en caso contrario los instala automáticamente. Esto lo hace gracias a bundle y siempre sacando la información de rubygems.org (excepto que se indique lo contrario). Como también lo podemos ejecutar nosotros manualmente, nos posicionamos sobre la carpeta donde esté instalado y ejecutamos,
shell> bundle install
...
Your bundle is complete!
Si tenemos todas las dependencias instaladas, esto tardará un poquito en terminar, pero no tendríamos que tener ningún error. Si nos da algún error al instalar algún paquete, lo más seguro es que nos falte alguna dependencia. Estas son las dependencias necesarias. Asegúrate de tener todos los paquetes instalados.
shell> apt-get install make \
                       libpq-dev \
                       libxml2-dev \
                       libxslt1-dev \
                       libpcap-dev
Al finalizar la instalación de las dependencias, volvemos a ejecutar bundle,
shell> bundle install
Si todo finalizó correctamente ya podemos arrancar Metasploit,
shell> ./msfconsole

Durante la instalación de los paquetes vía bundle puede dar alguno de los siguientes errores. En caso de que alguno de ellos aparezca es que falta alguna de las dependencias que hay que tener instaladas.
Error 1:
...
Installing json (1.7.7) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
creating Makefile

make
sh: 1: make: not found
Error 2:
...
Installing pg (0.15.1) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
checking for pg_config... yes
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Error 3:
...
Installing nokogiri (1.5.9) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
checking for libxml/parser.h... no
-----
libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Error 4:
Installing nokogiri (1.5.9) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
checking for libxml/parser.h... no
-----
libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Error 5:
...
Installing pcaprub (0.11.3) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 

[*] Running checks for pcaprub code...
platform is i486-linux
checking for pcap_open_live() in -lpcap... no
checking for pcap_setnonblock() in -lpcap... no
creating Makefile

make
compiling pcaprub.c
pcaprub.c:8:18: fatal error: pcap.h: No such file or directory
compilation terminated.
make: *** [pcaprub.o] Error 1

La entrada Instalar Metasploit en Debian Wheezy la puedes leer en El mundo en bits.
Leer más

Debian 7.1.0, primera released de Wheezy

Wheezy!
Si todavía no nos hemos recuperado ni actualizado todos los equipos a la última versión estable de Debian (Wheezy - 7.0), este fin de semana el equipo Debian trabajó para sacar la nueva released, 7.1.0. Así que ya sabéis , toca actualizar nuevamente.
El por qué de esta actualización mayor es muy simple, numerosos fallos de seguridad graves y bug's que aparecieron en muy poco tiempo. Debian decidió sacar la nueva released para solucionarlos y ofrecer un sistema estable y lo más seguro posible.
Por supuesto, todo sigue siendo perfectamente compatible y los procesos siguen funcionando igual. Simplemente agradecer públicamente el trabajo y esfuerzo de la comunidad por mantenernos actualizados.

Noticia de la publicación oficial de Debian Wheezy hace prácticamente mes y medio.

La noticia la puedes leer en la web oficial.
Leer más

Debian Plymouth Boot Animation

Debian Wheezy ha salido recientemente a la luz y como era de esperar trae muchas e interesantes mejoras. Sin embargo, el sistema recién instalado sigue sin ser todo lo atractivo que pudiera ser. Hay que reconocer que los arranques de Windows y de Ubuntu (y derivadas) son mucho mejores. La animación gráfico durante el boot del sistema queda mucho más profesional que una consola en negro, pasando líneas. Es por ello, que con mi recién nueva instalación decidí ponerme a trabajar y conseguir un "Graphical Boot Animation". Hace años ya lo había logrado, pero realmente, conseguirlo era un arduo trabajo y casi había que recompilar el kernel, cosa a la que ahora no estaba dispuesto. Así que tocó hacer un poco de ingeniería inversa. ¿Qué paquete es el que ofrece el boot loader en Ubuntu? ¿Estará ese paquete disponible en Debian? Por suerte, la respuesta fue sencilla de encontrar. El paquete se llama plymouth. A la segunda pregunta, también obtuve una rápida respuesta,
shell> apt-cache search plymouth
plymouth - Graphical Boot Animation and Logger
plymouth-dev - Graphical Boot Animation and Logger (development)
plymouth-drm - Graphical Boot Animation and Logger (DRM)
plymouth-x11 - Graphical Boot Animation and Logger
plymouth-themes-all        - Themes metapackage
plymouth-themes-fade-in    - Fade-in theme
plymouth-themes-glow       - Glow theme
plymouth-themes-script     - Script theme
plymouth-themes-solar      - Solar theme
plymouth-themes-spinfinity - Spinfinity theme
plymouth-themes-spinner    - Spinner theme
Así que parece que ya tenía solución y por fin podría abandonar el inicio clásico que me acompañó tantos años.
Debian console boot
Así que vamos a ver cómo instalar plymounth en Debian Wheezy. Lo primero de todo, instalar el paquete y el tema con el que queramos arrancar. Yo personalmente opté por instalar el tema JOY, que ya viene incluido con el paquete, por lo que únicamente tuve que instalar el software base.
shell> apt-get install plymouth
A continuación debemos de darle soporte a nuestro GRUB para que soporte el boot loader de forma correcta. Para ello editamos el fichero de configuración /etc/default/grub y ponemos la resolución de arranque más óptima que queramos. En mi caso,
...
GRUB_GFXMODE=1024x768
...
Y también, bajo el mismo fichero, modificamos la variable GRUB_CMDLINE_LINUX_DEFAULT, dejándola tal que así,
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Y finalmente ejecutamos
shell> update-grub2
Ahora que ya tenemos todo listo, sólo nos queda por indicarle a plymouth qué tema de todos los disponibles tiene que usar.
shell> plymouth-set-default-theme --list
details
fade-in
glow
joy
script
solar
spacefun
spinfinity
spinner
text
Para seleccionar el tema, simplemente
shell> plymouth-set-default-theme joy
Y finalmente actualizamos initramfs para que coja los nuevos campos.
shell> update-initramfs -u
Tras el reinicio, la pantalla que os saldrá de login será similar a esta (para el tema JOY).
Debian plymounth boot -JOY-
Nota: si no estáis seguros de qué tema emplear, desde una consola del sistema, no un xterminal, se puede arrancar el daemon y tras configurar plymounth ejecutarlo para una primera visualización y así ver la apariencia que tendrá.
shell> plymouthd
shell> plymouth --show-splash
Para pararlo, desde otra consola, ejecutar,
shell> plymouth --quit
Si alguien se anima a probarlo, no dude en dejar un comentario con la foto de su nuevo Debian Boot Loader ;-)

La entrada Debian Plymouth Boot Animation la puedes leer en Puppet Linux.
Leer más

Debian Wheezy is out!

Éste fue un fin de semana intento. La nueva versión de Debian salió oficialmente a la luz. Después de 27 meses de continuo esfuerzo Debian Wheezy salió finalmente a la luz con novedades importantes, tanto para escritorio como para equipos Desktop. Un avance en versiones de software realmente importante.
Como era lógico, antes de escribir algo acerca de la nueva versión había que probarla, así que tocó ponerse a trabajar y la nueva release ya está instalada en mi desktop.


shell> cat /etc/debian_version
7.0
Lo más destacada en cuanto a software se refiere son las nuevas versiones de paquetes que ya tenía. Una actualización a versiones más recientes completamente necesaria. Por destacar,
  • GNOME 3.4
  • KDE 4.8.4
  • GIMP 2.8.2
  • Linux Kernel 3.2
  • MySQL 5.5.30
  • Samba 3.6.6
  • Hipervisor Xen 4.1.4
  • Y como no, Xfce 4.8
Sin embargo, lo más destacado de la nueva versión de Debian es el soporte multiarquitectura. Algo que sin duda se estaba pidiendo desde hace ya tiempo y que otras distribuciones ya tenían. Ahora podremos instalar paquetes de 32 y de 64 bits sobre la misma máquina con todas las dependencias perfectamente resueltas.
También se destaca el nuevo instalador, mucho más simple y rápido, que ahora tiene soporte para instalación con voz. Además también se han re-escrito los manuales de instalación, que los puedes consultar aquí (en español).
Pero sin duda, lo que más destaca de la nueva versión es todo lo relacionado con el sistema operativo en sí, y que afecta directamente a los servidores más que a los desktop's. Una nueva versión de MySQL, por fin la versión 5.5! Nueva versión de Apache, Samba y mucho más software actualizado. Sin embargo, algo que salta a primera vista tras la instalación es la nueva localización de los puntos de montaje de los sistemas de ficheros temporales.
shell> mount
...
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=206420k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,relatime,size=803200k)
...
En versiones anteriores los puntos de montaje de los sistemas de ficheros tmpfs estaban bajo /lib/init/rw, /dev/shm/ y en ocasiones /var/lock. En la nueva versión estos puntos de montaje se pasan a /run, excepto /lib/init/rw, que se ha eliminado directamente. Estos nuevos puntos de montaje de /run son ahora configurados desde /etc/default/tmpfs, pero la configuración no es automáticamente migrada. Así que ojo si tenéis algún sistema funcionando sobre /dev/shm/, que tras la actualización podrá tener fallos.
En cuanto tenga alguna experiencia más sobre el uso de Wheezy os la iré comentando, así que todos los posibles "fallos" que aparezcan a la hora de actualizar servidores en producción.
Por cierto, para aquellos curiosos que se lo estén preguntando. La nueva versión testing de Debian se llama Jessie. Si es que Debian, no deja de trabajar!
Más información:
La entrada Debian Wheezy is out! la puedes leer en Puppet Linux.
Leer más

Abriendo puertos por combinación

Hace ya unos cuantos días publiqué un post que trataba de cómo activar SSH en dos pasos para aumentar la seguridad de inicio de sesión. Este tipo de seguridad ofrece una capa extra al típico inicio de sesión de login/password, ya que incluye el factor móvil y temporal. Al más puro estilo Gmail en 2 pasos. Pues bien, esta combinación es efectiva, pero nada impide a los bot's que hay por Internet estar intentando averiguar el usuario para acceder. Aunque estemos más seguros de que no lo van a conseguir, miles de intentos diarios nos ensucian los log's y hace que sea difíciles de controlar. Para ello, hoy vamos a ver cómo programar una combinación de puertos secreta que habilite el puerto SSH cuando nosotros lo requiramos y sino que esté cerrado.
La idea general de esto es, enviamos un ping al puerto X, Y y Z del equipo y éste nos abre el puerto 22 y si lo volvemos a hacer, automáticamente lo cierra, empleando iptables para ello. Esta técnica se conoce como port knocking y realmente se podría englobar en seguridad por ofuscación.
Vamos a comenzar por instalar el software necesario, knockd, para luego preparar el sistema.
shell> apt-get install knockd
Ahora vamos a permitir que el software arranque cuando se inicia el equipo. Para ello editamos el fichero de configuración por defecto, /etc/default/knockd (necesario en Debian/Ubuntu).
START_KNOCKD=1
Ya sólo nos queda configurar knockd para establecer la secuencia que apertura y cierre del puerto SSH. Para ello, editamos el fichero de configuración general, /etc/knockd.conf y lo dejamos tal que así.
Personalmente no me gusta dejar la combinación de puertos por defecto, así que las cambiamos. Los puertos elegidos ya quedan a vuestro gusto.
[options]
  UseSyslog

[openSSH]
  sequence    = 7070,8080,9090
  seq_timeout = 5
  command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j DROP
  tcpflags    = syn

[closeSSH]
  sequence    = 9090,8080,7070
  seq_timeout = 5
  command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j DROP
  tcpflags    = syn

Y finalmente arrancamos el nuevo servicio.
shell> /etc/init.d/knockd start
Starting Port-knock daemon: knockd.
Cada vez que deseemos acceder al equipo, simplemente tendremos que emplear nmap antes para habilitar la secuencia mágica de acceso. En nuestro caso,
shell> nmap -sT -p7070,8080,9090 192.168.1.150
Y tras ello, el puerto SSH quedará abierto. Al finalizar el trabajo, lo vamos a dejar cerrado. Para ello,
shell> nmap -sT -p9090,8080,7070 192.168.1.150
Por cierto, del lado del servidor SSH que estamos abriendo veremos el "ábrete sésamo",
knockd: 192.168.1.33: openSSH: Stage 1
knockd: 192.168.1.33: closeSSH: Stage 2
knockd: 192.168.1.33: closeSSH: Stage 3
knockd: 192.168.1.33: closeSSH: OPEN SESAME
knockd: closeSSH: running command: /sbin/iptables -D INPUT -s 192.168.1.33...
Leer más

Control de volumen desde consola

Desde hace algún tiempo, aquellos usuarios de GNU/Linux que estábamos acostumbrados a emplear aumix como software para controlar el volumen desde línea de comandos hemos llevado un gran chasco, ya que ha dejado de estar incluido. Ahora, por lo menos en sistemas Debian/Ubuntu se emplea amixer, que básicamente es lo mismo, pero cambiado de nombre. Como se puede leer en la página man, amixer es un mezclador de sonido para ALSA y como tal también nos va a permitir controlar el volumen de nuestro sistema desde línea de comandos. Así que vamos a ver cómo configurar el teclado para que pueda subir o bajar volumen con las teclas correspondientes.
En mi caso empleo XFCE, por lo que la configuración del teclado se hará como sigue, pero lo importante del artículo son los comandos a ejecutar. Para subir volumen,
shell> amixer sset Master 5%+
Y para bajarlo,
shell> amixer sset Master 5%-
Como podéis ver, el funcionamiento es muy simple, únicamente ponemos el porcentaje que deseamos subir o bajar y un + o -, en función de si nos interesa aumentarlo o disminuirlo.
Si esto lo llevamos al escritorio, en XFCE, nos iríamos a Configuración/ Teclado y creamos ahí dos nuevos atajos de teclado. Cómo hacerlo ya lo explicamos aquí.
amixer xfce volume control
amixer - XFCE integration

Leer más

Bloquear tráfico P2P desde IPTables

Puede que en nuestra red no nos interese tener tráfico P2P, por motivos de rendimiento de la misma o simplemente por que es una red de empresa, en la que la gente debería de estar trabajando y no descargando cosas. Si bien es cierto que el P2P hoy en día se emplea para muchas cosas, puede darse el caso de que nos interese filtrarlo. En ese caso, vamos a ver cómo bloquear el tráfico con IPTables, algo que no suele ser trivial en la mayoría de los casos.
Para poder llevar a cabo esta tarea, vamos a hacer uso de xtables-addons, una pequeña extensión para IPTables que nos ayudará de forma efectiva a realizar la tarea. Algunas de estas extensiones todavía no fueron aprobadas para entrar a forma parte del kernel, otras quizás nunca lo serán. A nosotros nos interesa concretamente el módulo ipp2p (xt_ipp2p), que el es que facilita el filtrado del tráfico P2P.
Puesto que partimos de un sistema Debian, existe un paquete disponible en los repositorios que facilita la instalación de las xtables. También tenemos disponible el paquete con el código fuente, para poder compilarlo, en caso de que nos interesase. Lo primero, por lo tanto, instalar el software necesario.
shell> apt-get install xtables-addons-common
Al finalizar la instalación, simplemente simplemente tendremos que ver que estén correctamente cargadas y sean funcionales. Para ello,
shell> iptables -m ipp2p --help
...
ipp2p v0.10 match options:
  --edk    [tcp,udp]  All known eDonkey/eMule/Overnet packets
  --dc     [tcp]      All known Direct Connect packets
  --kazaa  [tcp,udp]  All known KaZaA packets
  --gnu    [tcp,udp]  All known Gnutella packets
  --bit    [tcp,udp]  All known BitTorrent packets
  --apple  [tcp]      All known AppleJuice packets
  --winmx  [tcp]      All known WinMX
  --soul   [tcp]      All known SoulSeek
  --ares   [tcp]      All known Ares
...
Si en la ayuda os aparece eso, es que el módulo ipp2p está cargado y es funcional. Como podéis observar, el tráfico P2P que detecta y permite filtrar es el típico, por lo que ésto tiene buena pinta...
Ahora toca ver cómo emplear estas reglas para ver si funcionan o no. El método de funcionamiento es el mismo de siempre con IPTables, la única diferencia es que vamos a añadir un match contra el módulo P2P que hemos instalado. Así que para bloquear todo el tráfico P2P, nos quedarían unas reglas tal que así,
shell> iptables -A FORWARD -p tcp -m ipp2p --edk -j DROP
shell> iptables -A FORWARD -p udp -m ipp2p --edk -j DROP
shell> iptables -A FORWARD -p tcp -m ipp2p --dc -j DROP
shell> iptables -A FORWARD -p tcp -m ipp2p --kazaa -j DROP
shell> iptables -A FORWARD -p udp -m ipp2p --kazaa -j DROP
shell> iptables -A FORWARD -p tcp -m ipp2p --gnu -j DROP
shell> iptables -A FORWARD -p udp -m ipp2p --gnu -j DROP
shell> iptables -A FORWARD -p tcp -m ipp2p --bit -j DROP
shell> iptables -A FORWARD -p udp -m ipp2p --bit -j DROP
shell> iptables -A FORWARD -p tcp -m ipp2p --apple -j DROP
shell> iptables -A FORWARD -p tcp -m ipp2p --winmx -j DROP
shell> iptables -A FORWARD -p tcp -m ipp2p --soul -j DROP
shell> iptables -A FORWARD -p tcp -m ipp2p --ares -j DROP

Más información: xtables-addons

La entrada Bloquear tráfico P2P desde IPTables la puedes leer en Puppet Linux.
Leer más

Capturar la pantalla en Xfce

Aunque no suele ser habitual ver cosas de este tipo por el blog, hoy voy a comentar cómo configurar el botón Impr Pant de XFCE para que realice capturas de pantalla. Aunque puede que vuestra distribución ya lo traiga configurado por defecto, en caso de no ser así, vamos a ver cómo lo podéis hacer.
Comenzamos instalando el software necesario, el paquete xfce4-screenshooter, que será el encargado de realizar la captura cuando corresponda.
shell> apt-get install xfce4-screenshooter
Una vez instalada, tenemos que ir a la configuración del teclado (Configuración -> Teclado -> Atajos de Aplicación) y ahí añadimos un nuevo atajo.
Añadir nuevo atajo
El comando que nos pide será xfce4-screenshooter.
Cuando nos pida la tecla, presionamos Impr Pant, que será la que nos interese asignar.
Configuración con el nuevo atajo creado
Ahora ya sólo queda disfrutar de la nueva feature ;-)

La entrada Capturar la pantalla en Xfce la puedes leer en Puppet Linux.
Leer más

Crear un repositorio local para Debian/Ubuntu

Los sistemas Debian/Ubuntu emplean los paquetes .deb, que entre sus mejores características destaca la gestión de dependencias entre paquetes. Cada paquete incluye una serie de reglas de instalación y dependencias de otros paquetes, por lo que se garantizar su funcionamiento si dicho paquete está bien creado.
Como usuarios de sistemas Debian, podemos crear nuestros propios paquetes y empaquetarlos para que su instalación sea sencilla. Hace tiempo ya hablamos de cómo crear nuestra copia de los repositorios oficiales de Debian y hoy vamos a ver cómo poder crear nuestro propio repositorio, pero con los paquetes que creamos nosotros mismos.
Pero, ¿qué ventajas tiene crear un repositorio para los paquetes locales? Entre otras, podemos destacar las dos siguientes,
  • Resolución de dependencias
    Los paquetes instalados vía apt-get hacen la resolución de dependencias automáticamente, mientras que los instalados con dpkg no. Si tiene dependencias sin cumplir habría que ejecutar
    shell> apt-get -f install
    
  • Envío de paquetes a los equipos
    Otra de las principales ventajas es que no sería necesario copiar un paquete al equipo en el que queramos instalarlo. apt se encargará de hacerlo por nosotros.
Pues bien, vamos por lo tanto a crear nuestro propio repositorio con los paquetes que tengamos a mano. Estos pueden ser tanto oficiales como creados por nosotros. El único requisito, que sean .deb correctos. Nuestro repositorio lo vamos a crear bajo /var/www/repo y luego lo dejaremos accesible vía http. Lo primero es instalar el software necesario, en caso de que no esté previamente instalado.
shell> apt-get install dpkg-dev
A continuación copiamos todos los paquetes que nos interese a la raíz del nuevo repositorio.
shell> cp *.deb /var/www/repo
Ahora nos movemos al directorio del repositorio
shell> cd /var/www/repo
y ejecutamos el comando dpkg-scanpackages tal que así,
shell> dpkg-scanpackages . /dev/null | gzip > Packages.gz
Con lo que acabamos de crear un índice de paquetes, con los paquetes que hay en nuestro repositorio. Este índice es necesario, ya que es el que leen los sistemas Debian al ejecutar apt-get update.
Ya para finalizar, simplemente queda por añadir la URL que resuelva vuestra máquina a los sources.list de cada una de las máquinas en las que deseéis emplear vuestros paquetes.

Nota: El último paso hay que ejecutarlo siempre que se añada un nuevo paquete al repositorio local.

La entrada Crear un repositorio local para Debian/Ubuntu la puedes leer en El mundo en bits.
Leer más

Debian, distro padre


Aunque este gráfico suele estar muy presente en todos los blog y se habla muy a menudo, recientemente lo volví a ver en futurist.se y la verdad es que quedé sorprendido de la cantidad de distribuciones que salieron de Debian. No es por decir que es la mejor, ni de lejos, pero si se puede afirmar que es la distro padre de la gran mayoría.
Os dejo el enlace a la original y la comparación.

Leer más

XenSource, curioso fallo en debian (xm new)

Si usas XenSource, la versión libre de Xen integrada en el kernel de GNU/Linux quizás esto te haya pasado, así que aquí tienes la solución.
Para arrancar una máquina virtual se suele emplear el comando "xm start machine", sin embargo si deseas reservar espacio para algunas de las máquinas es buena idea emplear el comando "xm new machine" or decirlo de alguna forma, con el parámetro new, Xen lo que hace es aprovisionar la máquina en el sistema, pero no arrancarla, lo que es necesario hacer por ejemplo si empleamos algún interfaz gráfico de administración de Xen.
Sin embargo en la versión estable de Debian, al llamar a dicho comando se obtiene un fallo de librerías no encontradas,
shell> xm new pentest.cfg 
Unexpected error: 

Please report to xen-devel@lists.xensource.com
Traceback (most recent call last):
  File "/usr/lib/xen-4.0/bin/xm", line 8, in main.main(sys.argv)
  File "/usr/lib/xen-4.0/lib/python/xen/xm/main.py", line 3620, in main_, rc = _run_cmd(cmd, cmd_name, args)
  File "/usr/lib/xen-4.0/lib/python/xen/xm/main.py", line 3644, in _run_cmd return True, cmd(args)
  File "", line 1, in 
  File "/usr/lib/xen-4.0/lib/python/xen/xm/main.py", line 1449, in xm_importcommand cmd = __import__(command, globals(), locals(), 'xen.xm')
  File "/usr/lib/xen-4.0/lib/python/xen/xm/new.py", line 26, in from xen.xm.xenapi_create import *
  File "/usr/lib/xen-4.0/lib/python/xen/xm/xenapi_create.py", line 22, in from xml.parsers.xmlproc import xmlproc, xmlval, xmldtd
ImportError: No module named xmlproc
Para poder solucionarlo, hay que instalar una librería de manejo de xml para python, concretamente la python-lxml (en la versión Squeeze de Debian).
shell> apt-get install python-lxml
Tras dicha instalación, debemos dejar el fichero /usr/lib/xen-4.0/lib/python/xen/xm/xenapi_create.py tal como sigue (comentada la línea 22).
...
# from xml.parsers.xmlproc import xmlproc, xmlval, xmldtd
...
Al volver a ejecutar el comando funcionará correctamente, dejando la máquina aprovisionada en el servidor Xen, pero sin comenzar la ejecución de la misma.
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios