Yum bloqueado: Reconstruir la base de datos RPM

Durante una actualización de paquetes RPM con Yum, he visto que en un determinado momento Yum se habia bloqueado. Despues de matar los procesos de yum, python y demas, he visto que no arreglaria nada por esa via, por lo cual he decidido reconstruir la base de datos RPM.

PASO 1: Copia de seguridad de la base de datos actual

tar cvzf /root/backup-rpm.tar.gz2 /var/lib/rpm

PASO 2: Borrar la DB actual

rm -f /var/lib/rpm/__db*

PASO3: Reconstruir la DB

rpm –rebuilddb

PASO 4: Instalamos el paquete yum-utils, el cual contiene package-cleanup

# yum install yum-utils

PASO 5: Comprobamos si hay algun paquete medio instalado

# package-clean -d

PASO 6: Borramos los metadatos y la cache

# yum clean all

Bloquear una IP atacante con null route

En alguna ocasion podemos encontrarnos con algun tipo de ataque de una determinada IP o red (rezando para que no sean multiples) hacia nuestra red/sistema.

En Linux (y BSD/Solaris/Unix Flavours) podemos mandar los paquetes de una determinada IP o red a ninguna parte (blackhole route o null route) añadiendo una entrada en nuestra tabla de rutas.

USANDO EL COMANDO ROUTE PARA NULL ROUTE

route add 192.168.1.5 gw 127.0.0.1 lo

En este comando especificariamos que la IP atacante es 192.168.1.5 y queremos enviar los paquetes que nos envie a la interfaz de loopback.

Verificar que se ha “null routeado” la IP en nuestra tabla de rutas

route -n

O bien usando Netstat

netstat -nr

Tambien podemos hacer un reject:

route add -host 192.168.1.5 reject

Mandar a Null route una red entera

Imaginaros que queremos filtrar el sistema autónomo completo de McColo (si algún ISP anunciara sus prefijos, claro).

route add -net 208.66.192.0/24 gw 127.0.0.1 lo

Borrar entradas de la tabla de rutas

Probablemente haya un tiempo en el que ya no nos interese bloquear a determinada IP o bloque. Para borrar una entrada haremos lo siguiente:

route delete 192.168.1.5

Saber que locale están instalados en el servidor con PHP

Si intentamos mostrar una fecha en PHP es posible que nos encontremos que salga con el formato:

July 31, 2007

Para que se muestre correctamente debemos usar el “locale” correcto que haga que se muestre la fecha en el formato adecuado. Los locales más habituales son del estilo de éstos:

es_ES
es_ES.ISO_8859-1

Para establecer un locale se usa la siguiente función:

@setlocale(LC_TIME, 'es_ES');

El problema es que hay que hay que poner el nombre exacto del locale ya que de otra forma no funcionará. Aquí tenéis un sencillo script en PHP que te ayudará a saber qué locales están instalados en tu servidor:

<?php
echo "<hr><br>'Locale' disponibles:<br>";
echo '<pre>';
system('locale -a');
echo '‘;
?>

Si quieres que se muestren sólo los españoles:

<?php
echo "<hr><br>'Locale' disponibles:<br>";
echo '<pre>';
system('locale -a | grep -i es');
echo '‘;
?>

Instalar XCACHE integrado con Lighttpd en CentOS

XCache es un opcode PHP cacher creado por Jan Kneschke creador de Lighttpd. Se ha probado en servidores en produccion con alta carga dando unos resultados francamente buenos.  Según algunos, dando mucho mejor resultado en diversas aplicaciones como Vbulletin que otros como Eaccelerator/APC/IonCube/Zend.

Instalación de Requisitos previos para compilar XCACHE

yum install php-devel

yum groupinstall ‘Development Tools’

yum groupinstall ‘Development Libraries’

Descarga y compilación de XCACHE

cd /tmp
wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
tar xvfz xcache-1.2.2.tar.gz
cd xcache-1.2.2
phpize
./configure –enable-xcache
make
make install

Configurando XCACHE

cp xcache.ini /etc/php.d
vi /etc/php.d/xcache.ini

Opciones de configuración

zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so

* Debemos indicar el lugar donde esta situado el modulo de Xcache

xcache.size = 32M

* Cualquier valor superior a 0 habilita Xcache. 0 lo deshabilita

Todas las opciones de configuración están en la pagina oficial: http://xcache.lighttpd.net/wiki/XcacheIni

Reiniciamos Lighttpd

service lighttpd restart

Si todo ha ido bien, deberíamos tener cargado la extensión de XCACHE para nuestro PHP:

PHP 5.1.6 (cli) (built: Jul 16 2008 19:52:52)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with XCache v1.2.2, Copyright (c) 2005-2007, by mOo