Archivo por meses: junio 2009

Distinguir una sesión local de una remota en Linux

Me he encontrado con la necesidad de programar un pequeño script en bash para el servidor Linux de un cliente. Dicho script estaba funcionando correctemente en la máquina local pero no así cuando se realizaba una conexión remota.

Ante esto era preciso encontrar alguna manera de discernir entre las conexiones locales y remontas para realizar configuraciones diferentes para cada una.

La solución, sencilla y un tanto ingeniosa, pasó por utilizar variables de entorno para hacer la distinción entre conexión local y remota:

if [[ -z "$REMOTEHOST" &&  -z  "$SSH_CLIENT"  ]]; then
echo "Cliente conectado en local";
else
echo "Cliente conectado en remoto";
fi

Se comprueba que no existan las variables de entorno $REMOTEHOST ni $SSH_CLIENT, la primera está presente en conexiones telnet y la segunda en conexiones SSH. Si no existe ninguna de ellas la conexión es local, si existe alguna de ellas la conexión es remota.

Presentando Paprica.es

Ya está online la nueva página web del Restaurante Paprica de Lugo, desarrollada por mi compañero Alberto Montes y yo. Alberto se encargó del diseño gráfico y yo de la programación. Por un lado buscamos que fuese sencilla al uso y elegante a la vista; y por otro lado que contase con una administración a medida.

Para ello echamos mano de XHTML (tableless)+CSS para lo visual y PHP+MySQL para la gestión de los contenidos. Siempre teniendo presentes los estándars y compatibilidad con navegadores.

Restaurante Paprica

Espero que nuestro proyecto actual resulte igual de satisfactorio que paprica.es tanto personal como profesionalmente.

Ocultar versión de apache

Si bien la segurdiad por seguridad por oscuridad debe tratarse como un añadido secundario a otros métodos más básicos, puede resultar una buena práctica para poner las cósas un poco más difíciles a un posible atacante.

Para ocultar la versión de un servidor web apache haremos lo siguiente:

Editamos el archivo de configuración de apache

vi /etc/apache2/apache2.conf

Modificamos las siguientes directivas ó en caso de no contar con ellas las añadiremos

ServerTokens ProductOnly
ServerSignature Off

Después de guardar los cambios en el archivo se debe reiniciar apache

/etc/init.d/apache2 restart

A continuación se incluyen dos capturas de pantalla del antes y el después de hacer este cambio.

Esta captura muestra la información que ofrece apache con su configuración por defecto. Facilita información tal como: sistema operativo, versión de apache y versión de PHP. Toda esta información es totalmente innecesaria en un servidor en producción.

version-apache011

La siguiente captura muestra la información facilitada tras realizar los camibios expuestos anteriormente. Tan sólo muestra que el servidor es «Apache» sin más detalles.

version-apache02