Instalar y configurar un servidor LAMP

Hoy me lanzo a la piscina con un paso a paso para instalar un servidor LAMP (Linux, Apache, Mysql, Php) y realizar los primeros pasos, en entornos tipo servidor Red Hat (Fedora, CentOS, etc.). Hay muchas formas de hacer ésto, pero la descrita a continuación siempre me suele funcionar:

Primer paso, instalar todos los componentes con yum:

yum install -y httpd php mysql-server mysql php-mysql

Continuar leyendo «Instalar y configurar un servidor LAMP»

301 Redirect

Apache HTTP
Volvemos al maravilloso mundo del SEO, esta vez viendo el porqué y algunos ejemplos de cómo hacer una redirección 301 cuando se cambia una web de dominio o se diseña una nueva web que no mantiene los enlaces de la original.

301 según Google

P: ¿Qué es una redirección 301?
R: «Si necesita cambiar la forma en que aparece la URL de una página en los resultados del motor de búsqueda, le recomendamos que use un redireccionamiento 301 por parte del servidor. Es la mejor forma de asegurarse de que se redirija a la página correcta a todos los usuarios y motores de búsqueda. El código de estado 301 significa que una página se ha trasladado de forma permanente a una nueva ubicación.»

Fuente: http://support.google.com/webmasters/bin/answer.py?hl=es&answer=93633

Continuar leyendo «301 Redirect»

Sincronización de carpetas con rsync

Rsync es una herramienta muy útil para sincronizar dos directorios, ya sean de diferentes máquinas o de la misma máquina. Su sintaxis es la siguiente:

Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST:DEST

Así pues, si se quiere sincronizar dos directorios, con un servidor remoto, y además de forma automatizada, mediante SSH, podríamos primero copiar la clave pública de una máquina a la otra, para conectar por certificado y evitar así tener que introducir un password para la conexión SSH. Aquí (con autentificación con password) o aquí (sin autentificación con password) el cómo hacerlo.

Continuar leyendo «Sincronización de carpetas con rsync»

Las colas de postfix

Apache HTTPNo es extraño tener en un servidor de envío de correo, más de un postfix (o incluso decenas de ellos) corriéndo de forma simultánea. Para poder ver el estado de las colas (es decir, los mails que están esperando a ser enviados), podemos usar un par de comandos:

qshape -c /etc/postfixA/

Qshape es una utilidad que muestra por pantalla el número de mails distribuidos por edad en las colas, es decir, nos mostrará el tiempo que llevan los mails en las colas, esperando para salir, agrupados por tiempo. Con la opción «-c» se le indicará la ruta al fichero main.cf del postfix del cual queremos ver las colas.

postqueue -p -c /etc/postfixA/

Postqueue, es la utilidad para gestionar las colas de postfix, la cual, requiere indicar igual que qshape, la ruta al main.cf del postfix en cuestión. La opción «-p» lista el contenido de las colas.

Actualización: Podemos limpiar las colas de postfix con «postuser», indicando al igual que qshape y postqueue el directorio donde está la configuración de postfix con la opción «-c», e indicando con «-d» la acción de borrar las colas.

postsuper -c /etc/postfix41 -d ALL

Flickr! Foto por alecperkins

Cómo hacer SSH más seguro

Apache HTTPHay muchos posts en Internet hablando sobre cómo configurar SSH de forma correcta, para tener un entorno seguro; éste es otro de ellos.

La configuración de ssh en la máquina a la que queremos conectar, en entornos tipo Red Hat, se encuenta en /etc/ssh/sshd_conf. En este fichero de configuración, podremos realizar varias modificaciones para intentar tener un entorno SSH más seguro, como por ejemplo las que se describen a continuación:

Cambiar el puerto de acceso por defecto

Por defecto SSH usa el puerto 22, cambiando el puerto por otro conseguimos añadir una traba extra para alguien que quiere acceder a nuestro server a través de SSH, puesto que el puerto por defecto no responderá. Se recomienda usar uno mayor al 1024, por estar del 1 al 1024 reservados.

Port 12503

Continuar leyendo «Cómo hacer SSH más seguro»

Servidores Windows en Nagios

Hoy me he encontrado con la extraña tarea de tener que monitorizar un servidor Windows con Nagios. Digo extraña porqué hasta ahora sólo he tenido que monitorizar servidores Linux, por ser éste el sistema operativo usado en la mayoría de servidores con los que me he cruzado.

En cuanto al servidor a monitorizar, he seguido estos pasos:

  1. Descargar NSClient++ en el servidor Windows. Aquí la página oficial de NSClient++
  2. Ejecutar el instalador y seguir el asistente
    • Durante el instalador, se podrá indicar la IP del servidor Nagios, para únicamente permitir el acceso a NSClient++ desde esa IP.
    • Igualmente, se podrá indicar una contraseña que se deberá configurar en el servidor Nagios, para poder conectar.
    • Si se va a usar check_nt, como es habitual, se deberá marcar durante la instalación, los módulos «common check plugins» y «nsclient server (check_nt)».
  3. Una vez finalizada la instalación, se recomienda marcar el check «start service» para iniciar en ese momento el servicio NSClient++ (se podrá ver desde services.msc). El servicio se guarda con inicio «automático», así que en teoría no hemos de preocuparnos de él.

Con esto estaría todo listo, en cuanto a la parte de la máquina a monitorizar. En cuanto a la propia configuración del Nagios, por defecto ya viene un fichero windows.cfg que encontraremos en la carpeta de objetos del servidor Nagios, que nos servirá de base para conectar mediante check_nt con nuestro nuevo servidor Windows.

Fuente: http://nagioses.blogspot.com/2009/03/monitoreando-maquinas-con-windows.html

no acceptable C compiler found in $PATH

Intentando instalar los plugins de Nagios en una máquina «cliente» a monitorizar, es posible que nos encontremos con el siguiente error, tras ejecutar el ./configure:

[root@miserver nagios-plugins-1.4.15]# ./configure
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… /bin/mkdir -p
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking build system type… x86_64-unknown-linux-gnu
checking host system type… x86_64-unknown-linux-gnu
checking for gcc… no
checking for cc… no
checking for cl.exe… no
configure: error: no acceptable C compiler found in $PATH
See `config.log’ for more details.
[root@miserver nagios-plugins-1.4.15]#

Este error es de por sí, bastante descriptivo; falta el compilador de C, concretamente, «gcc». En entornos Red Hat, bastará con usar yum para instalar gcc y solucionar así el problema:

[root@miserver nagios-plugins-1.4.15]# yum install gcc

En mi caso, gcc ha tenido las siguientes dependencias, también instaladas junto con gcc de forma automática:

  • cpp
  • glibc-devel
  • glibc-headers
  • kernel-headers

El propósito del post, es ver los paquetes imprescindibles a instalar para solucionar este problema.

Generar petición CSR para HTTPS

Apache HTTPSi se quiere montar un servidor que soporte HTTPS, se deberá contar un certificado válido para el sitio web. Para ello, una opción es directamente, comprar dicho certificado, en alguno de los múltiples sitios web que ofrecen esta opción, como GoDaddy, los cuales, ya tienen las instrucciones para generar la petición del certificado aquí:

Para generar la petición para el certificado, se deberán seguir una serie de pasos:

  • Crear el certificado y la petición CSR (Solicitud para Firma del Certificado), ejecutando en el servidor web, el siguiente comando (NOTA: yourdomain puede ser cualquier texto, por ejemplo, para dominio.com podríamos usar dominio.key y dominio.csr respectivamente):

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

Ej. openssl req -new -newkey rsa:2048 -nodes -keyout www_domain_com.key -out www_domain_com.csr

Continuar leyendo «Generar petición CSR para HTTPS»

Actualizar PHP en Red Hat 5

Para finalizar el año, veremos cómo actualizar PHP en un servidor Red Hat Enterprise 5.5.

En primer lugar miraremos qué versión de php tenemos, sin necesidad de usar phpinfo():

[root@miserver ~]# php -v
PHP 5.1.6 (cli) (built: Nov 13 2010 16:05:12)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

A continuación instalaremos los repositorios de remi siguiendo los pasos descritos aquí:

[root@miserver ~]# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
[root@miserver ~]# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
[root@miserver ~]# rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

Continuar leyendo «Actualizar PHP en Red Hat 5»

Usuarios y permisos MySQL

MysqlYa he escrito algunos posts donde se ha hablado un poco de la administración de usuarios y permisos en MySQL como éste o éste otro. Sin embargo, voy a resumir en un breve post la administración de usuarios y permisos de MySQL.
Podemos ver los usuarios que tenemos en el mysql con el siguiente comando:

mysql> select * from mysql.user;

Esto nos mostrará todos los usuarios definidos en mysql, separando además los usuarios por host (si tenemos un usuario user@localhost y el mismo usuario para acceder desde cualquier host user@’%’, aparecerán dos líneas para este usuario.

Para conocer los permisos que tiene un determinado usuario, se podrá usar:

mysql> show grants for user@’host’

Por ejemplo: mysql> show grants for user@’%’

Continuar leyendo «Usuarios y permisos MySQL»