20 consejos para securizar Apache

Este post es básicamente una traducción de este otro, donde se enumeran, como dice el título, 20 métodos para conseguir que nuestro servidor Apache esté más seguro. Recuerda que son eso, recomendaciones, y no garantías de que no vayas a tener problemas, así que no descuídes la tarea de hacer copias de seguridad. Por otra parte, alguno de estos métodos (sobre todo combinados) puede(n) reducir el rendimiento del servidor, así que no los apliques a ciegas sin pensartelo.

Nota: cuando se indique que hay que agregar o cambiar líneas del archivo de configuración de Apache, se refiere al archivo httpd.conf, que suele estar situado en el subdirectorio conf en /etc/httpd o dentro del directorio de instalación de Apache (pero el directorio puede variar mucho según el sistema operativo, distribución o incluso la configuración de tu sistema).

Antes de nada, asegúrate de tener instalados los últimos parches de seguridad instalados

Si no tenemos los agujeros de seguridad bien tapados no tiene demasiado sentido continuar con la optimización de seguridad.

Asegúrate de que sólo root tiene acceso de lectura a los binarios y ficheros de configuración de Apache

Suponiendo que la instalación de este programa está en /usr/local/apache habría que hacer esto:

# chown -R root:root /usr/local/apache# chmod -R o-rwx /usr/local/apache Continuar leyendo "20 consejos para securizar Apache"

Crea facilmente .htaccess con Htaccess Editor

htaccess Editor es una libre herramienta online que permite generar rápidamente archivos .htacces para su sitio web.

Para utilizarlo, sólo tenemos que seleccionar una categoría a la izquierda, y editar los parámetros a gusto en la derecha.

Cuando haya definido todos los parámetros, basta con copiar y pegar el texto generado en un archivo que se llamara .htaccess y ponerlo en la carpeta raíz de los archivos de su sitio web (algo así como “public_html” si está utilizando una empresa de alojamiento ) O en un subdirectorio de la carpeta.

Continuar leyendo «Crea facilmente .htaccess con Htaccess Editor»

Evitar el hotlink mediante .htaccess

Aqui os dejo este codigo para evitar el hotlink en vuestras paginas, se coloca en el .htaccess

Para evitar el hotlink de todos los sitios, o sea, que no se vea una imagen alojada en nuestro servidor en ningún lado debemos agregar esto a nuestro htaccess:

# RewriteCond %{HTTP_REFERER} !^$
# RewriteCond %{HTTP_REFERER} !^http://tusitio.com$ [NC]
# RewriteCond %{HTTP_REFERER} !^http://tusitio.com/.*$ [NC]
# RewriteCond %{HTTP_REFERER} !^http://www.tusitio.com$ [NC]
# RewriteCond %{HTTP_REFERER} !^http://www.tusitio.com/.*$ [NC]
# RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ – [F,NC,L]
(reemplazar tusitio.com por la url de tu sitio)

Estas lineas de código dicen que ningún fichero del tipo gif, jpg, jpeg, png o bmp puedan visualizarse desde cualquier otro sitio.

Continuar leyendo «Evitar el hotlink mediante .htaccess»

Controlar el ancho de banda en Apache con mod_cband en centos 5.2

Aqui os escribo  este tutorial de mod_cband que es un modulo de apache nos permite controlar el ancho de banda usado por los usuarios conectados al servidor, ya sea en forma individual o general.

Instalación:

Descargamos el modulo.
Pagina del proyecto: http://sourceforge.net/projects/cband/

# wget http://downloads.sourceforge.net/cband/mod-cband-0.9.6.1.tgz?modtime=1138205796&big_mirror=0

Descomprimimos las fuentes

# tar -xvf mod-cband-0.9.6.1.tgz

Instalando dependencias necesarias

# yum install http-devel

Compilando las fuentes

# ./configure
# make
# make install

Agregamos el modulo al apache en el archivo httpd.conf, por defecto se agrega automáticamente la linea al compilar, si no fuera el caso, agregar la siguiente linea

# vim /etc/httpd/conf/httpd.conf

LoadModule cband_module modules/mod_cband.so

También es necesario agregar

CBandScoreFlushPeriod 1
CBandRandomPulse On

Reiniciamos el apache

# /etc/init.d/httpd restart

Ahora a configurar los dominios virtuales del apache:

En mi caso lo tengo en /etc/httpd/conf.d/virtual.conf
Se puede dar el caso de tenerlo en el mimos httpd.conf

Configuraciones y Limitaciones por Sitio

CBandSpeed 1024kbps 10 30
CBandRemoteSpeed 20kb/s 3 3

El parámetro CBandSpeed es una configuración Global para dicho Sitio, definimos que lo usuarios no podran sobrepasar los 1024Kbps, 10 respuestas por segundo y 30 conexiones abiertas.

El parámetro CbandRemoteSpeed es una configuración para cada usuario conectado en forma separada, definimos que el usuario en forma individual podra descargar a lo máximo 20Kb/s con 3 peticiones por segundo y 3 conexiones permitida.

Asi quedara nuestro virtual host

# vim /etc/httpd/conf.d/virtual.conf

«<«VirtualHost *:80″>»
DocumentRoot /var/www/html/miweb.com
ServerName miweb.com
ServerAlias www.miweb.com
ErrorLog logs/miweb.com_error.log
CustomLog logs/miweb.com_access.log combined
CBandSpeed 1024kbps 10 30
CBandRemoteSpeed 50kb/s 3 3
LogLevel warn
«<«/VirtualHost»>»

Nota: por alguna razon al poner mayor o menor no sale, asi que agrege «>» y «<«. para para que funcione no deben ir las comillas doble. Mucho ojo con eso.

Reiniciamos el apache

# /etc/init.d/httpd restart

y probamos nuestra web…. recomendaciones, podemos cambiar las variables, reiniciar el apache y probar.

Otras opciones

Podemos limitar el trafico mensual con:

CBandLimit 100M

Podemos ver en Linea el trafico y conexiones, etc (estatus de cband) con:

Creamos la carpeta

# mkdir /var/www/scoreboard

Le damos permisos para el apache

# chown apache:apache /var/www/scoreboard

Y agregamos al virtual host

CBandScoreboard /var/www/scoreboard
CBandPeriod 4W

«<«Location /cband-status»>»
SetHandler cband-status
«<«/Location»>»
«<«Location /cband-status-me»>»
SetHandler cband-status-me
«<«/Location»>»

Todo lo anterior se agrega al dominio virtual, quedando asi:

«<«VirtualHost *:80″>»
DocumentRoot /var/www/html/miweb.com
ServerName miweb.com
ServerAlias www.miweb.com
ErrorLog logs/miweb.com_error.log
CustomLog logs/miweb.com_access.log combined
CBandLimit 1000M
CBandSpeed 1024kbps 10 30
CBandRemoteSpeed 50kb/s 3 3
LogLevel warn
CBandScoreboard /var/www/scoreboard
CBandPeriod 4W
«<«Location /cband-status»>»
SetHandler cband-status
«<«/Location»>»
«<«Location /cband-status-me»>»
SetHandler cband-status-me
«<«/Location»>»
«<«/VirtualHost»>»

Nota: por alguna razon al poner mayor o menor no sale, asi que agrege «>» y «<«. para para que funcione no deben ir las comillas doble. Mucho ojo con eso.

Reiniciamos el apache

# /etc/init.d/httpd restart

De lo anterior limitamos el trafico mensual a 1GB
para ver las estadísticas:

http://miweb.com/cband-status o http://miweb.com/cband-status-me

A probar…
Suerte