Algo de Linux: diciembre 2012

lunes, 31 de diciembre de 2012

Poner Backtrack 5 R3 en español

Backtrack viene en inglés. Si lo queremos en español, instalamos el paquete language-selector, que nos va a permitir cambiar  el idioma desde el entorno gráfico:

# apt-get install language-selector

Una vez instalados el paquete, abrimos el menú System -> Administration -> Language Support. Desde allí añadimos el soporte de idioma español, que instalará los paquetes de idioma necesarios. Cuando se hayan instalado, colocamos el idioma español al principio de la lista, antes que el inglés, y se aplicará la próxima vez que iniciemos sesión.




martes, 18 de diciembre de 2012

Detectar interfaces de red en bash y si tienen el cable de red conectado

En ocasiones necesitamos detectar en nuestros scripts bash, qué interfaces de red hay en el sistema y si están conectadas o no. Hay unas cuantas maneras de hacerlo, pero habitualmente suelo usar el comando ip.

El comando ip nos permite gestionar rutas, dispositivos, reglas de enrutamiento y túneles.  Para detectar las interfaces de red sólo necesito utilizar:
  • ip link show muestra todas las interfaces.
  • ip link show up muestra las interfaces que tienen el cable conectado.
Así, si quiero obtener los nombres de las interfaces de red que hay en el sistema, no tengo más que ejecutar:

# ip link show|grep ^[0-9]| grep -v lo|cut -f2 -d":"|sed 's/^[ \t]*//'


Y si tan sólo quiero obtener los nombres de las interfaces de red que tienen el cable conectado:

# ip link show up|grep ^[0-9]| grep -v lo|cut -f2 -d":"|sed 's/^[ \t]*//'

Cuando utilizamos ip link, podemos obtener las direcciones mac de las interfaces de red. Ahora bien, si en lugar de usar ip link, usamos ip addr, podremos obtener también las direcciones IP:
  • ip addr show muestra todas las interfaces.
  • ip addr show up muestra las interfaces que tienen el cable conectado.
Por ejemplo: Si quiero obtener la dirección mac de la interfaz de red eth0, no tengo más que ejecutar:
# ip link show eth0| grep 'link/ether' | sed 's/^[ \t]*//' | cut -f2 -d" " 
o
# ip addr show eth0 | grep 'link/ether' | sed 's/^[ \t]*//' | cut -f2 -d" "


Y si quiero obtener la dirección IP de la interfaz de red eth0, ejecuto:
# ip addr show eth0 | grep -v inet6 | grep 'inet' | sed 's/^[ \t]*//' | cut -f2 -d" " | cut -f1 -d"/"
Y ya puestos, podemos obtener la máscara de red de la interfaz eth0:
# ip addr show eth0 | grep -v inet6 | grep 'inet' | sed 's/^[ \t]*//' | cut -f2 -d" " | cut -f2 -d"/"  
Y de paso, la dirección de broadcast de la interfaz de red eth0:
# ip addr show eth0 | grep -v inet6 | grep 'inet' | sed 's/^[ \t]*//' | cut -f4 -d" "  

Si quisiera obtener los nombres de las interfaces de red activas, ejecutaría:
# ip addr show | grep "state UP" | awk '{print $2}' | cut -f1 -d":" 

Y si quisiera obtener la ip del gateway por defecto:
# ip route show 0.0.0.0/0 | awk '{print $3}'

sábado, 15 de diciembre de 2012

"Current Kerberos password: " al cambiar password de usuario

He creado un usuario y al tratar de cambiarle el password, con el comando passwd, me pide que introduzca el password kerberos y no uso kerberos:

Current Kerberos password:
# passwd

Desinstalando el paquete libpam-krb5 el problema se ha resuelto:

apt-get remove --purge libpam-krb5

Lo que no recuerdo es haber instalado este paquete en el sistema. Supongo que debió instalarse como dependencia de otro.

viernes, 14 de diciembre de 2012

bindfs: Montar un directorio remoto en otra ubicación

bindfs es un sistema de ficheros fuse que nos va a permitir montar un directorio en otra ubicación, de forma similar a cuando usamos --bind. ¿Y me diréis: para qué puede servirme ésto? Bueno, pues vamos a verlo con un ejemplo real y práctico:

Imaginemos que tenemos una máquina que utilizamos como servidor de clonación con dos discos duros: Uno en el que se encuentra el sistema operativo, y, otro, en el que almacenamos las copias de seguridad. 

Supongamos que vamos a guardar las imágenes de clonación en /var/ies_backups/partimag, que es un directorio del segundo disco duro y clonezilla siempre busca por defecto las imágenes en /home/partimag, que se encuentra en el primer disco duro.

Y me diréis: Esto es fácil. Creo un enlace simbólico y listo. Bueno, pues no. Esta solución no sirve. Si lo hacéis así, cuando clonezilla trate de hacer el montaje de /home/partimag fallará y os dará un error como el siguiente:

No disk image is found in /home/partimag.. Make sure you already saved an image! Program terminated!!!! 

Esto es porque sshfs no permite montar un enlace.

Así que la solución para este problema es usar bindfs. Veamos cómo:

Primero.- Instalamos bindfs, si no lo tenemos instalado ya:

# apt-get install bindfs
Segundo.- Una vez instalado, ejecutamos el comando:

# bindfs --perms=a-w /var/ies_backups/partimag /home/partimag
Lo que  estamos haciendo es "montar"  el directorio /var/ies_backups/partimag en /home/partimag (algo que no podríamos hacer con un simple mount)

Además, lo estamos "montando" sin permiso de escritura para los usuarios que no sean root con la opción --perms=a-w.

Este montaje es temporal, hasta que se apague la máquina. Si quisiéramos hacerlo permanente, podríamos añadir las instrucciones de montaje al fstab.

# echo "bindfs#/var/ies_backups/partimag /home/partimag fuse perms=a-w 0 0" >> /etc/fstab
Bindfs nos ofrece muchas opciones para ajustar los permisos, propietarios y grupos de un archivo. Veamos un ejemplo:

Supongamos que no tengo mucho espacio en mi home y quiero montar mi carpeta de Dropbox en otra unidad, de forma que el propietario sea yo. Podría hacer lo siguiente:

# bindfs --user=gestor /var/ies_backups/Dropbox /home/gestor/Dropbox

Y para hacerlo permanente, tan sólo tengo que añadir al fstab:

# echo "bindfs#/var/ies_backups/Dropbox /home/gestor/Dropbox fuse user=gestor 0 0" >> /etc/fstab

miércoles, 12 de diciembre de 2012

Configurar un equipo workstation como cliente del puppetmaster puppetinstituto

Algunos compañeros me habían preguntado si se podían configurar los equipos workstation como clientes puppet del servidor principal del centro (puppetinstituto) en la imagen workstation que compartí hace tiempo.

Adjunto un recurso con el que podéis configurarlo automáticamente:
En el fichero configura-cliente-puppet.tar.gz van dos archivos:
  • El recurso configura-cliente-puppet.pp, que configura el cliente.
  • Un archivo leeme.txt explicativo de lo que hace.
Para configurar un equipo como cliente del servidor puppetinstituto, le copiáis el archivo configura-cliente-puppet.pp, mediante ssh, por ejemplo. Una vez copiado, os conectáis al cliente y lo configuráis ejecutando en un terminal:

# puppet apply configura-cliente-puppet.pp


martes, 11 de diciembre de 2012

Descargar Adobe Flash Player completo para instalación offline

A veces no tenemos conexión o por algún problema con el firewall no es posible instalar el plugin de flash de la forma habitual. En este caso, podemos recurrir a la página de distribución de Adobe Flash Player para descargar una versión completa que instalaremos sin necesidad de conexión a internet:


Descargar versiones de 32 y 64 bits de firefox

El otro día me preguntaba un compañero de dónde descargaba las versiones de 32 y 64 bits de firefox que instalo mediante la tarea instala-firefox. Por si alguien no lo sabe y lo necesita, las descargo del sitio ftp de mozilla:

http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/

o

ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/

lunes, 10 de diciembre de 2012

Nueva imagen de actualización de la BIOS en equipos Nec PowerMate VL4

He modificado las siguientes imágenes de disquete y cdrom que permiten flashear la bios de los Nec PowerMate VL4 que tenemos en los IES para añadir una nueva opción de flasheo. A continuación dejo los enlaces de descarga para que descarguéis la que os interese:

  • fbiosnec.img (floppy para actualizar las bios vía pxe o syslinux)
  • fbiosnec.iso (iso de CD para actualizar las bios desde CDROM)
  • rescate.iso (iso de CD para actualizar las bios desde CDROM que incorpora otros floppys adicionales: allinone, plop boot manager, fdubcd, gpxe)
Ahora existen tres opciones de flasheo:
  • Actualizar BIOS en equipos NEC de (A)ulas
  • Actualizar BIOS en equipos NEC de (D)epartamentos
  • (R)estaurar BIOS original NEC PowerMate VL4

La opción "Actualizar BIOS en equipos NEC de (A)ulas" tiene establecidos los siguientes ajustes por defecto:
  • Fijado como primer dispositivo de arranque "On Board LAN" y activado como "Show only" para que no pueda ser modificado por el usuario.
  • Desactivado segundo y tercer dispositivo de arranque para que el usuario no pueda cambiarlo.
  • Desactivado el arranque desde otros dispositivos.
  • Desactivadas opciones de establecer passwords de setup y de usuario. Así los usuarios no van a poder cambiarlos en caso de reseteo de los valores de la CMOS.
  • Tiene añadido módulo shutdown.bin a la imagen de la BIOS, preparado por Germán Sánchez Gutiérrez, para apagar el equipo si no ha sido posible arrancar por red porque el ordenador del profesor esté apagado o el cableado de red esté averiado.

La opción "Actualizar BIOS en equipos NEC de (D)epartamentos" tiene establecidos los siguientes ajustes por defecto:
  • Fijado como primer dispositivo de arranque "HDD USB" para permitir el arranque desde dispositivos USB.
  • Fijado como segundo dispositivo de arranque "CDROM" para permitir el arranque desde CD.
  • Fijado como tercer dispositivo de arranque "HD" para permitir el arranque desde el disco duro del equipo.
  • Se permite que el usuario pueda cambiar el orden de los dispositivos de arranque.
  • Desactivadas opciones de establecer passwords de setup y de usuario. Así los usuarios no van a poder cambiarlos en caso de reseteo de los valores de la CMOS.
  • Tiene añadido módulo shutdown.bin a la imagen de la BIOS, preparado por Germán Sánchez Gutiérrez, para apagar el equipo si no ha sido posible arrancar por red porque el ordenador del profesor esté apagado o el cableado de red esté averiado.
La opción "(R)estaurar BIOS original NEC PowerMate VL4" restaura la bios original sin retoques que tiene los ajustes por defecto proporcionados por el fabricante.



Microsoft TrueType core fonts en Debian

Para disponer de las siguientes fuentes en Debian:
  •   Arial
  •   Comic Sans MS
  •   Courier New
  •   Georgia
  •   Impact
  •   Times New Roman
  •   Trebuchet
  •   Verdana
  •   Webdings
No tenemos más que instalar el paquete ttf-mscorefonts-installer:

# apt-get install ttf-mscorefonts-installer

Este paquete se encargará de descargar e instalar dichas fuentes en nuestro sistema.

miércoles, 5 de diciembre de 2012

Módulo puppet para agregar ipxe a los clientes

Aquí dejo un módulo que agrega ipxe y crea una entrada de grub que permite arrancar los clientes puppet por red:

Puppet: Tarea para mantener actualizados los paquetes

Hoy os voy a contar un pequeño "truquillo" (por decirlo de algún modo) que utilizo para mantener actualizados los paquetes de los servidores de terminales, portátiles, workstation y el sistema de los clientes ligeros mediante puppet.

A modo de ejemplo, vamos a ver el módulo apt-upgrade que tengo creado:

# tree /etc/puppet/modules/apt-upgrade
/etc/puppet/modules/apt-upgrade
|-- files
|   `-- init_upgrade
`-- manifests
    `-- init.pp

El archivo init_upgrade es tan sólo un archivo vacío o que puede contener cualquier cosa. En cualquier caso, no importa el contenido porque tan sólo va actuar como testigo para realizar el apt-get upgrade del cliente puppet cuando el archivo cambie.  

En cuanto al archivo init.pp, contiene la definción de la tarea:

class apt-upgrade {
   file {"/etc/init_upgrade":
      source => "puppet:///apt-upgrade/init_upgrade"
   }

   exec { "/usr/bin/apt-get update && /usr/bin/apt-get -y upgrade":
      refreshonly => true,
      subscribe => File["/etc/init_upgrade"],
      timeout => 3600 
   }
}

Como podéis ver el apt-get update && apt-get -y upgrade se va a realizar tan sólo cuando cambie el archivo /etc/init_upgrade.

Con esta tarea puppet tan sencilla, forzaremos una actualización de paquetes en los clientes puppet cuando queramos, con tan sólo modificar el archivo init_upgrade en el servidor puppet.

Del mismo modo, podemos tener una tarea que actualice los paquetes en el chroot de los terminales ligeros. 

Dejo a continuación ambas tareas para que podáis descargarlas:
Dejo ya de paso un par de tareas para hacer un apt-get -y autoremove en los equipos:
Y en el chroot de los terminales ligeros:
Estas dos últimas utilizadlas con cuidado.

martes, 4 de diciembre de 2012

ltsp-chroot: Actualizar la imagen de los terminales

ltsp-chroot nos permite actualizar la imagen que se va a servir a los terminales haciendo algo más que el chroot. 

Por ejemplo, si quiero hacer un apt-get update del chroot, haría lo siguiente:

# ltsp-chroot -a i386 apt-get update  

De este modo, ejecutaría el apt-get update dentro del chroot.