Actualización de Pidgin

Internet, Linux/Unix/FreeBSD, Software August 20th, 2008

El Pidgin de mi Ubuntu se encontraba ya desactualizado (2.4.1) y al parecer Synaptic no se enteraba que ya había nuevas versiones (2.5.0 actualmente).

Estos fueron los pasos que se siguieron para actualizarlo gracias a los paquetes de GetDeb.

$ wget http://www.getdeb.net/download/3099/1
$ wget http://www.getdeb.net/download/3099/2
$ wget http://www.getdeb.net/download/3099/0
$ sudo apt-get install libsilc
$ sudo dpkg -i pidgin-data_2.5.0-1~getdeb1_all.deb
$ sudo dpkg -i libpurple0_2.5.0-1~getdeb1_i386.deb
$ sudo dpkg -i pidgin_2.5.0-1~getdeb1_i386.deb

Tags:

Acceso a MSSQL Server desde PHP en un servidor Linux

Bases de datos, Desarrollo de software, Linux/Unix/FreeBSD, Web, Windows April 3rd, 2008

El día de hoy realicé la actualización del servidor de desarrollo (OpenSuse 10.2) para soportar las conexiones a un servidor de bases de datos MS SQL Server 2005. El servidor de bases de datos se encuentra en la red privada (192.168.1.5). El servidor de desarrollo tiene dos interfaces, una de ellas es privada también (192.168.1.3). La versión de PHP que se encuentra actualmente instalada es la 5.2.0.

Actualicé algunos paquetes que eran necesarios para instalar el software FreeTDS.

# rpm -i readline-devel-5.1-55.i586.rpm
# rpm -i  libxml2-devel-2.6.26-26.i586.rpm
# rpm -i  libapr1-devel-1.2.7-23.i586.rpm
# rpm -i  libapr-util1-devel-1.2.7-26.i586.rpm
# rpm -i  apache2-devel-2.2.3-20.i586.rpm

Otros paquetes que puedan llegar a necesitarse se pueden descargar de la siguiente dirección.

http://download.opensuse.org/distribution/10.2/repo/oss/suse/i586/.

Descargué y descomprimí la última versión de FreeTDS.

# wget ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
# tar zxvf freetds-stable.tgz
# cd freetds-0.64

Se compila e instala en el directorio /usr/local/freetds-0.64 con soporte para la versión 8.0 del protocolo. Para consultar información adicional acerca del protocolo consulte la dirección siguiente: http://www.freetds.org/userguide/choosingtdsprotocol.htm.

# ./configure --prefix=/usr/local/freetds-0.64 --with-tdsver=8.0
# make
# make install

Creé un enlace dinámico desde /usr/local/freetds al directorio de instalación para facilitar el manejo de diferentes versiones en un futuro cercano cuando vaya a actualizar la librería.

# ln -s /usr/local/freetds-0.64 /usr/local/freetds

Edité el perfil general de los usuarios para añadir al final de este información de las variables de ambiente de FreeTDS .

# vi /etc/profile
###################################################
SYBASE=/usr/local/freetds
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$SYBASE/lib
export SYBASE LD_LIBRARY_PATH
###################################################

Descargué y descomprimí el código fuente de la versión de PHP instalada. Para descargar versiones históricas de PHP visite el siguiente enlace: http://www.php.net/releases/.

# wget http://museum.php.net/php5/php-5.2.0.tar.gz
# tar zxvf php-5.2.0.tar.gz
# cd php-5.2.0

Se crearon los scripts de compilación para realizar una instalación temporal en /root/tmp/php-5.2.0/installation y de allí obtener el módulo dinámico de soporte para MSSQL.

# SYBASE=/usr/local/freetds
# LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$SYBASE/lib
 
# export SYBASE LD_LIBRARY_PATH# ./configure --with-apxs2=/usr/sbin/apxs2 \
--with-mssql=shared,$SYBASE \
--with-sybase=$SYBASE \
--with-libxml-dir=/usr/lib/ \
--prefix=/root/tmp/php-5.2.0/installatio
# make
 
# make install

Se copió el módulo recién generado a la ubicación donde PHP almacena sus propios módulos.

# cp ./installation/modules/mssql.so /usr/lib/php5/extensions/
# chmod -x  /usr/lib/php5/extensions/mssql.so

Se creó el archivo mssql.ini para activar el módulo.

# vi /etc/php5/conf.d/mssql.ini
extension=mssql.so

Se reinicio el servicio de Apache2 para refrescar los cambios recién hechos.

# rcapache2 restart

Al consultar la información resultante de phpinfo ya aparece la sección de MSSQL.

Para realizar una prueba fiable de conexión entre PHP y MSSQL puede utilizar el script adjunto a continuación editando adecuadamente la información de conexión al inicio de este.

Enlace: prueba_mssql.php

Tags: , , ,

Reiniciar servicios en OpenSuse

Linux/Unix/FreeBSD April 2nd, 2008

# rcNOMBRE_SERVICIO [opción]

La [opción] depende específicamente del script mismo del servicio, las mas comúnes son: start, stop y restart.

Esto funciona gracias a enlaces dinámicos entre /usr/sbin/rcNOMBRE_SERVICIO y su correspondiente script en /etc/init.d/NOMBRE_SERVICIO.

Tags: ,

Edición de una tarea cron

Linux/Unix/FreeBSD January 12th, 2008

Hoy necesitaba crear una tarea cron para que se ejecuten todas las mañanas (1:00 am.) el scripts de copia de seguridad que he creado para el servidor de desarrollo de la Fundación.Para hacerlo seguí realicé el procedimiento siguiente.

# crontab -e

MAILTO="MICORREO@SERVIDOR"
0 1 * * * /root/backups/bin/bkp_all >/dev/null 2>&1

El script bkp_all ejecuta internamente cada uno de los scripts de backup y remueve además los archivos correspondientes a la copia de seguridad del día sucedido hace cuatro meses exactamente.

Mas información acerca de los procesos cron:

Tags:

Instalando Bastille Linux en OpenSuse

Linux/Unix/FreeBSD December 24th, 2007

Bastille Linux es uno de mis programas favoritos para el hardening de servidores. El día de hoy lo instalé en el servidor de la Fundación en un OpenSuse 10.

Lo único intersante para reseñar es la ubicación donde obtuve los archivos Perl-TK y Perl-Curses requeridos para su instalación.

  • http://www.novell.com/products/linuxpackages/opensuse/perl-curses.html
    • http://cpan.org/modules/by-module/Curses/
  • http://rpmfind.net/linux/rpm2html/search.php?query=Curses
  • http://www.novell.com/products/linuxpackages/opensuse/perl-tk.html
    • http://cpan.org/modules/by-module/Tk/
  • http://rpm.pbone.net/index.php3?stat=3&search=perl-Tk&srodzaj=3&dist%5B%5D=46
  • http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_10.3/repodata/repoview/perl-Tk-0-804.027-64.1.html

Al ejecutar Bastille estoy obteniendo el siguiente mensaje que sugiere que no ha podido determinar que versión de [Open] Suse se está ejecutando, sin embargo las pruebas que realicé sugieren que funciona correctamente.

ERROR: Couldn't determine SuSE version! Setting to 7.2!

Tags: ,

Instalación de ChangePassword

Linux/Unix/FreeBSD, Software December 5th, 2007

Esta semana volví a formatear a el servidor de la Fundación a ver si ahora si le dan un uso interesante. Le instalé el OpenSuse 10.2 que bajé a mitad de año.

La idea es que utilicemos el servidor como almacenamiento de los archivos de desarrollo (web) y evitemos la multiplicidad de copias y algunos problemas de sensibilidad a mayúsculas que no son obvios en Windows sino que esperan hasta el último día cuando los ingenieros intentan subir los archivos al hosting Linux.

Necesité ayer una aplicación web que permitiera modificar la contraseña de un usuario (sistema operativo y Samba). Hace un par de meses hice una búsqueda para este mismo tema y sólo encontré un candidato: ChangePassword de http://changepassword.sourceforge.net/. Un CGI hecho en C.

La primera vez que lo instalé me dió mucho trabajo por un pequeño detalle, el directorio que utilice como temporal deberá estar ubicado en la partición raíz. Como siempre hago una partición diferente para /tmp tuve muchos problemas hasta que me percaté de este detalle.

La instalación es sencilla.

Utilizo el directorio /opt/tmp ubicado en raíz en lugar del /tmp por defecto.

# vi conf.h

char TMPFILE[]="/opt/tmp/changepassword-shadow-XXXXXX";
char TMPSMBFILE[]="/opt/tmp/changepassword-smb-XXXXXX";
char TMPSQUIDFILE[]="/opt/tmp/changepassword-squid-XXXXXX";

// Otros valores para personalizar la apariencia de la página.


# ./configure --enable-language=Spanish \
--enable-smbpasswd=/etc/samba/smbpasswd \
--enable-cgidir=/datos/cgi-bin \
--disable-squidpasswd

# make

# make install

Y listo!

Consultar: http://localhost/cgi-bin/changepassword.cgi

Tags: ,

Problemas compilando PHP 5.2.3 con Apache 2.2.4 en Slackware 12.0

Linux/Unix/FreeBSD, Web August 13th, 2007

Compilando PHP para el proyecto del servidor de páginas tuve hoy un problema. En el momento del make install la librería .so no se creaba con el siguiente mensaje de error:

xxxxxxxxxxxxxxxxxxxxx

Entre tantas pruebas, experimentos y compilaciones encontré también el siguiente mensaje:

*** Warning: inter-library dependencies are not known to be supported.
*** All declared inter-library dependencies are being dropped.

*** Warning: libtool could not satisfy all declared inter-library
*** dependencies of module libphp5. Therefore, libtool will create
*** a static module, that should work as long as the dlopening
*** application is linked with the -dlopen flag.

Todo sugería ser un problema de compatibilidad entre el libtool del sistema operativo y el de Apache (tal vez?).

La solución la encontré gracias al aporte Brad Kowalczyk (http://www.ibiscode.com) en un foro de PHPBuilder. Después de generar los archivos Makefile, editar el archivo libtool generado y modificar el valor de la variable deplibs_check_method tal y como se muestra a continuación.

# tar zxvf php-5.2.3.tar.gz

# cd php-5.2.3

# ./configure --prefix=/software/php-5.2.3 \

--with-apxs2=/software/apache/bin/apxs \

--enable-safe-mode \

--enable-magic-quotes \

--enable-exif \

--enable-soap \

--enable-sockets \

--enable-zip \

--disable-ipv6 \

--with-curl \

--with-curlwrappers \

--with-gd \

--with-ttf \

--enable-gd-native-ttf \

--with-gettext \

--with-mysql=/software/mysql \

--with-pdo-mysql=/software/mysql \

--with-zlib \

--enable-mbstring \

--enable-calendar \

--enable-bcmath \

--enable-dbase \

--with-pear

# make

# vi libtool

## deplibs_check_method="unknown"

deplibs_check_method="pass_all"

# make test

# make install

Este problema me retrasó varias horas de trabajo, sin embargo, a las 12:25 am. por lo menos podré descansar tranquilo.

Tags: , ,

Como listar los paquetes instalados

Linux/Unix/FreeBSD August 6th, 2007

Operating system Main command List installed packages
Linux (RedHat like distribution) rpm rpm -qa
Linux Debian dpkg dpkg -l
Linux (Slackware distribution) pkgtool pkgtool
ls -l /var/log/packages/
Cygwin Graphic installer ("setup.exe") cygcheck -c
Solaris pkginfo pkginfo
grep xxx /var/sadm/install/contents
Irix versions versions
Compaq (Digital) Unix setld setld -i
AIX lslpp lslpp -l
HP-UX swlist swlist

Tomado de http://www.fortran-2000.com/ArnaudRecipes/Version.html.

Ver información adicional en Rosetta Stone for Unix.

Tags: ,

Cambiar las contraseñas del sistema operativo y Samba a través de web

Linux/Unix/FreeBSD June 26th, 2007

Otro problema que surge al intentar hacer en las empresas lo que mencioné en el post anterior con Samba, es que se manejan dos tipos de contraseñas que deben administrarse por separado: /etc/passwd y /etc/samba/smbpasswd; además su actualización debe hacerse desde la consola, hecho que para los usuarios, incluyendo a la mayoría de personajes de sistemas, es difícil o tedioso. Por eso busqué que software libre me permite actualizar estas contraseñas de manera unificada, simple y desde web.

Extrañamente sólo encontré una solución: ChangePassword alojada en http://changepassword.sourceforge.net/.

ChangePassword permite actualizar las contraseñas de Linux, Samba y Squid (en la Fundación no se utiliza) a través de una interfaz web generada por un CGI.

Su instalación es muy simple.

1. Descargue y descomprima el archivo changepassword-xx.tar.gz. En este momento la versión actual es la 0,9.

2. Edite el archivo conf.h con la información relacionada con la presentación: color de fondo, tipo de fuente, etc.

3. Ejecute el comando configure especificando la información de idioma, el logo, la ubicación del directorio de CGIs, la ubicación del archivo smbpasswd y del archivo de contraseñas de Squid.

./configure --enable-cgidir=/srv/www/cgi-bin \
--enable-language=Spanish \
--enable-smbpasswd=/etc/samba/smbpasswd \
--disable-squidpasswd \
--enable-logo=imagenes/logo_fdq.png

La ubicación del logo se referencia desde la raíz del sitio web.

El idioma se toma según los archivos contenidos en el directorio /languages de la distribución.

Después se dan los consabidos make y make install.

El archivo que se debe consultar para actualizar las contraseñas se ubica en:

http://SERVIDOR/cgi-bin/changepassword.cgi

Actualmente estoy recibiendo el mensaje: "No pude renombrar el archivo de contraseñas temporal." ("Could not rename the temporary password file"), del cual no he podido encontrar su solución :( Le escribí un mensaje al desarrollador a ver si me ayuda con su significado.

La dirección de correo electrónico del desarro

Tags: ,

Controlando la máscara con Samba

Linux/Unix/FreeBSD June 26th, 2007

Samba es uno de mis servicios preferidos en *NIX. Sirve para casi todo ;)

Hoy instalé y configuré en 10 minutos el servicio DHCP en el servidor UNO de la Fundación, para probar los equipos con direccionamiento dinámico ya que hasta ahora lo han manejado estático, configurando equipo por equipo. Esto porque dicen, lo cual es extrañamente muy cierto, que la red de Windows algunas veces no responde por nombre y por ello requieren conocer la IP específica de los equipos para poder acceder a los recursos compartidos.

El experimento es pasar las máquinas a direcciones dinámicas (con DHCP) y dentro de sus parámetros se especifica al servidor UNO como servidor de WINS, el cual es provisto por Samba.

Otro servicio que intento que los usuarios de Sistemas utilicen es el acceder a sus directorios HOME para que almacenen allí archivos importantes, incluyendo al directorio public_html donde puedan publicar documentos directamente en la web. En especial, que lo utilicen para el desarrollo de los proyectos y no utilicen versiones desactualizadas en sus equipos o sin los parámetros necesarios, como pasó hace poco, con el register_globals en on :-s.

Activar el servicio de WINS es muy sencillo:

wins support = yes

Con esto me surgió un pequeño problema, los archivos y directorios creados por los usuarios a través de las carpetas compartidas no quedaban con los permisos apropiados para poder ser consultados a través de web.

Una búsqueda rápida en la documentación de Samba me ayudó a encontrar las siguientes líneas que añadidas a la sección global del archivo /etc/samba/smb.conf asignan los permisos apropiados (al menos para mi caso).

force create mode = 0755
force directory mode = 0755

Mas información acerca de las opciones de control de acceso a los archivos, directorios y recursos compartidos se pueden consultar en en capítulo 16 del HOWTO oficial.

Tags: ,