Blog de música, tecnologías, poesía y cerveza fría

24/10/2017

Instalación del servidor web (APACHE2), PHP 5, Ruby y securización del mismo en Ubuntu Server

 Apache Logo

El servidor web Apache es el servidor web por excelencia para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular servidor web NCSA HTTPd 1.3, pero más tarde fue reescrito por completo…

Su nombre se debe a que su creador (Behelendorf) eligió ese nombre porque quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y “civilizasen” el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor “parcheado”).

El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.
Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido.
Apache tiene amplia aceptación en la red: desde 1996 y, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft2 ).

Página por defecto de Apache en Macos X

Para instalar Apache en nuestro servidor Ubuntu (Server 8.04 TLS) abriremos la consola de nuestro servidor y escribiremos los siguientes comandos:

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Posteriormente instalaremos las utilidades necesarias para sacar el máximo partido a nuestro servidor web:

PHP5 y el lenguaje Ruby como módulos de Apache.

Por lo tanto en nuestra consola escribiremos lo siguiente:

apt-get install libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Ahora editaremos el fichero /etc/apache2/mods-available/dir.conf con el objeto de cambiar las páginas de inicio por las que deseemos.

Para ello utilizaremos el editor de texto de línea de comando “vi” y modificaremos el fichero dejando esta sección así:
vi /etc/apache2/mods-available/dir.conf

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

por
DirectoryIndex index.html index.htm index.php

Posteriormente activaremos los siguientes módulos de Apache escribiendo en la consola lo siguiente:

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

y hacemos un “reload” de la configuración para recargar el servidor Apache:

/etc/init.d/apache2 force-reload

Con esto, ya tendremos habilitado y configurado correctamente  nuestro servidor apache.

 

Creación de servidores web virtuales

En el caso de que queramos alojar múltiples sitios web en vez de uno, tendremos que realizar las siguientes operaciones:

Hay que editar el fichero /etc/apache2/sites-available/default y continuación modificar la sección NameVirtualHost y dejarla así:

NameVirtualHost *:80

Introducimos el comando:

vi /etc/apache2/sites-available/default

Luego por cada servidor virtual debemos crear una sección como esta al final del archivo:

<VirtualHost *:80>

ServerAdmin micorreo@midireccion.com
ServerName www.netdreams.es
DocumentRoot /var/www/directoriodelaspaginasdeestesitio

</VirtualHost>

 

Securización de Apache

Si nuestro servidor web está disponible al público en general (Internet u Intranet) el mismo será probablemente objetivo de todo tipo de ataques por parte de vándalos, crackers, etc..
Por lo tanto, no está de más proteger el servidor con algunas medidas básicas.

• Ataques DDOS

En seguridad informática, un ataque de denegación de servicio, también llamado ataque DoS (de las siglas en inglés Denial of Service), es un ataque a un sistema de ordenadores o red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos. Normalmente provoca la pérdida de la conectividad de la red por el consumo del ancho de banda de la red de la víctima o sobrecarga de los recursos computacionales del sistema de la víctima.

Se genera mediante la saturación de los puertos con flujo de información, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice “denegación”, pues hace que el servidor no dé abasto a la cantidad de usuarios. Esta técnica es usada por los llamados crackers para dejar fuera de servicio a servidores objetivo.

Una medida básica para paliar un ataque hecho mediante DDOS (por ejemplo Slowloris) es modificar, el valor del parámetro TimeOut así como KeepAliveTimeOut. Para el primero por defecto son 300 segundos (o sea 5 minutos), lo cual puede hacer que efectivamente nuestro Apache sea carne de DoS en un corto espacio de tiempo. Si lo modificamos a un valor inferior (10), obligaríamos a que el atacante hiciera uso de más y más máquinas para consumirnos muchas conexiones en muy poco tiempo. El segundo valor es el tiempo que espera para más peticiones bajo una misma conexión persistente. Por defecto viene a 2 segundos; un valor inferior liberará antes los recursos de esas conexiones persistentes.

Por lo tanto haremos lo siguiente:

vi /etc/apache2/apache2.conf

Y modificaremos los siguientes parámetros:

Timeout 10

KeepAliveTimeout 2

Ahora hacemos un “reload” de la configuración:

etc/init.d/apache2 force-reload

 

PHP

Para evitar problemas de seguridad, es recomendable editar nuestro archivo php.ini y modificar las siguientes variable para dejarlas así:

register_globals = Off

allow_url_fopen = Off

allow_url_include = Off

display_errors = Off

log_errors = On

error_log = varies

error_reporting = E_ALL

Mediante está configuración básica de Apache, tendremos el mismo instalado junto con un nivel de seguridad aceptable.

En breve iré ampliando este artículo.

One thought on “Instalación del servidor web (APACHE2), PHP 5, Ruby y securización del mismo en Ubuntu Server

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

^ Subir Arriba!

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies