25/05/09

SFTP con chroot sin usar rssh

Vengo usando habitualmente una combinación de openssh + rssh como login para ofrecer un acceso SFTP pero no permitir ni un shell SSH ni acceso a todo el disco dejando tan sólo un chroot al directorio del usuario.

Sin embargo a través de systemadmin.es veo que una nueva opcion de OpenSSH permite lo mismo de manera más integrada.

18/05/09

Servidor Intel con Debian, IPMI y software RAID (III)

El soporte IPMI por parte del servidor Intel y el sistema Debian nos permite además de simplemente ver los eventos y monitorizarlos via syslog el poder interactuar con el sistema.

Para ello os explico un poco la versión más sencilla. La tecnología está ahi y es bastante madura pero aún hay muy poca documentación y parece que cada fabricante hace un poco lo suyo.

Lo primero que necesitamos es activar el soporte de acceso externo a IPMI via captura de paquetes de red. Eso se consigue programando una de las tarjetas de red (en este caso la primera, eth0) para que escuche otra IP adicionalmente a la que ya tiene. En este caso eth0 se utiliza para la red local así que no hay problema: reservo otra IP para uso de IPMI.

Para configurar lo que se conoce como IPMI over LAN ejecutamos la aplicación ipmitool disponible en el paquete que presentamos en la anotación anterior. Consultando la documentación de ipmitool vemos que mediante la orden lan podemos configurar el acceso remoto. Mediante diversas ordenes podemos activar el enlace, asignarle una IP y, recomendable, un usuario y password.

Una vez tenemos activado el soporte remoto una manera de probarlo que es al tiempo una útil herramienta es IPMIView, una aplicación Java desarrollada por SuperMicro para su linea de servidores. Permite, de manera remota:

  • Consultar los eventos de sistema (de la BIOS).
  • Consultar estado de sensores (velocidades de ventiladores, temperaturas y voltajes).
  • Consultar estado de la fuente de alimentación (servidor parado, arrancado, etc.). Si, IPMI funciona aunque tengáis el servidor parado siempre que esté enchufado.
  • Realizar reinicios suaves, fuertes o arrancar o parar el servidor.
  • Y finalmente, y muy útil, una cónsola remota.
Este último punto merece un poco de atención. IPMI permite encapsular uno de los puertos serie (el segundo de hecho, el primero es el real) sobre el protocolo IPMI y la red IP. La activación normalmente ya viene por defecto al activar el soporte IPMI over LAN, sin embargo debemos reconfigurar ligeramente el sistema ya que, hoy dia, no vienen con el soporte de puertos serie habilitado.

Aquí dejo un par de enlaces útiles con documentación.

  • http://www.howtoforge.com/setting_up_a_serial_console
  • http://buttersideup.com/docs/howto/IPMI_on_Debian.html
  • http://wiki.adamsweet.org/doku.php?id=ipmi_on_linux

Cabe señalar que es útil para comprobar el puerto y velocidad exacto que ejecutéis manualmente como root un getty. En mi caso la instrucción que funciona es:

/sbin/getty -h -L ttyS1 19200 vt102

A partir de conocer este dato ya se puede configurar el inittab y el grub.

16/05/09

Asistencia remota desde Linux (con KDE y VNC)

Ayer instalé el primer Linux en el PC de una amiga sustituyendo a su antiguo Windows. ¡Que valor! Más que nada porque eso probablemente significará mayor soporte.

Habitualmente utilizo el VNC para poder proporcionar soporte técnico remoto y así minimizar el tiempo que he de dedicar a ayudar a los amigos. Queria disponer de lo mismo fácilmente en un entorno sobre Debian 5.0 Lenny y escritorio KDE.

Fácil. Instalando el paquete x11vnc y luego creando simplemente en el escritorio un acceso directo a aplicación siguiente:

konsole -e x11vnc --connect servidor:puerto

Y ¡conseguido!

4/04/09

Servidor Intel con Debian, IPMI y software RAID (II)

Proseguimos el relato de la instalación y configuración inicial de un servidor Intel. Estábamos justo con el sistema recien instalado y arrancado. Lo primero es ajustar el grub para que guarde en el MBR del segundo disco también la información para arrancar (sólo los datos en el /boot no son suficientes). Para ello:
  • device (hd0) /dev/sdc
  • root (hd0,0)
  • setup (hd0)
Ahora vamos a probarlo. Paro la máquina, desenchufo el primer disco y reinicio. Aparece el menú de grub, kernel arrancando... correcto, me pide login. Comprobado. Paro de nuevo, reconecto y reinicio otra vez. Arranca de nuevo correctamente aunque los discos RAID no han reencontrado las particiones del primer disco. Las añado manualmene:
  • mdadm /dev/md0 -a /dev/sda1
  • mdadm /dev/md1 -a /dev/sda2
Pasamos ahora a la configuración inicial del servicio IPMI. Para los que no sepan que es esto del IPMI permitidme una explicación burda y tremendamente simplificada: en ciertas placas base destinadas a actuar de servidor se instala un pequeño chip controlador que puede interactuar con elementos del equipo de manera independente e incluso estando parado (con los voltajes de standby y esas cosas que hacen las fuentes de alimentación modernas). Permite consultar sensores, el estado del equipo (activado, parado...), incluso arrancarlo, pararlo, hacer un reset, consultar la BIOS y un largo etcétera. Pero quizas una de las mejores funcionalidades (bajo mi punto de vista) es que puede utilizarse remotamente a través de la interfaz de red. Eso unido a la capacidad de redireccionar un puerto serie... nos permite entrar al equipo de manera remota. Además la "cónsola" permite ser redireccionada al puerto serie también de manera que, en teoria, deberiamos poder ver y interactuar con el equipo desde la BIOS, proceso de arranque, hasta hacer un shell como si estuvieramos en local. Veremos si lo conseguimos.

El primer paso es el fácil: conseguir soporte IPMI local. Instalo los paquetes ipmitool y openipmi. Hay que cargar los siguientes módulos de manera que modificamos el fichero /etc/modules:
  • ipmi-si
  • ipmi_devintf
Con esos módulos cargados nos aparece el dispositivo de comunicación con el IPMI: /dev/ipmi0. Con esto ya nos funciona la comunicación IPMI local que podemos probar de la siguiente manera:

boverals:~# ipmitool chassis status
System Power : on
Power Overload : false
Power Interlock : inactive
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : previous
Last Power Event :
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false
Sleep Button Disable : not allowed
Diag Button Disable : not allowed
Reset Button Disable : allowed
Power Button Disable : allowed
Sleep Button Disabled: false
Diag Button Disabled : false
Reset Button Disabled: true
Power Button Disabled: true

Aprovechamos este soporte local para activar el demonio ipmievd que se encargará de recoger los eventos de sistema (del System Event Log de la BIOS) y mostrarlos por el log del linux los que nos permite monitorizarlo como una parte más del sistema. Editamos el /etc/default/ipmievd para activarlo y lo arrancamos:

boverals:~# /etc/init.d/ipmievd start
ipmievd: using pidfile /var/run/ipmievd.pid0

Servidor Intel con Debian, IPMI y software RAID (I)

Primera parte de una pequeña serie de artículos donde comentaré a modo de resumen los pasos seguidos para la configuración de un nuevo pequeño servidor Intel encargado de copias de seguridad e histórico, principalmente.

Empecemos por el hardware, esta es la lista de componentes:
  • Chasis Intel SC-5299DP
  • Placa base Intel S3210SHLX
  • Procesador Xeon X3220 Quad-Core 2.4 GHz 8MiB 1066 MHz
  • 4 GiB (2x2) Memoria Kingston DDR2 ECC 800 MHz
  • 2 x Western Digital Caviar Black 1 TB SATA HD
Una vez montado el equipo procedemos a arrancar con el CD de instalación que viene con la placa base. Esto es muy necesario servidores (al contrario que con equipos sobremesa donde es más opcional) para no sólo actualizar BIOS y demás sino para ajustar configuraciones como por ejemplo la del ventilador (sino está siempre al 100%!).

El CD de arranque carga un linux que autodetecta el hardware y utiliza la conexión a internet para descargar las actualizaciones de BIOS y diferentes firmwares. Es realmente un proceso tremendamente cómodo, lo echo a faltar en equipos sobremesa.

Arrancando de nuevo procedemos a la instalación de Debian 5.0 lenny. Utilizando la distribución amd64 de 64 bits para poder aprovechar convenientemente los 4 GiB de RAM del equipo sin problemas. La instalación es bastante estándar con un sistema mínimo para arrancar y a partir de ahi instalar los servicios.

En cuando a la partición de discos y la configuración sigo los mecanismos habituales de software RAID y LVM que ya he comentado por aquí anteriormente. Este equipo ha de acabar con 6 discos ya que sustituye a otro aunque de momento lo he colocado dos para la instalación. Resumiendo la instalación:
  • Partición de 250MiB al inicio de cada disco, combinadas en RAID 1, para /boot.
  • Resto de cada disco (casi 1000GB) en RAID 1 como disco físico LVM.
  • 4 volúmenes lógicos LVM de 2 GB cada uno para: swap, /home, / y /var.
Y con esto concluimos la instalación inicial del sistema. Una vez finalizado reiniciamos la máquina y arrancamos el nuevo sistema instalado.