Recomendaciones de seguridad para PHP y Apache

Poner un servidor Apache/PHP en internet no es solo instalarlo con un simple comando, también requiere hacer algunos ajustes para mantenerlo funcionando al hacer un poco más difícil que algún usuario malintencionado o cracker pueda acceder al servidor. Estas personas por lo general tratan de obtener información sobre las versiones de los servicios instalados y así seleccionar un ataque a alguna vulnerabilidad conocida para la versión que estemos usando. Por desgracia la configuración normal de Apache y PHP muestra mas información de la que debería estar disponible con lo que se está ayudando al enemigo.

asegurar apache y php

Para evitar que Apache y PHP muestren esta información en un servidor Debian vamos a inhabilitar algunas variables y configuraciones para no dar información alguna sobre las versiones de Apache y PHP.

como ocultar versiones apache php seguridad disable parameters security

No mostrar la versión de Apache

La configuración predeterminada del servidor HTTP contiene en la cabecera información de Apache y de la versión de PHP y muestra algo como esto:

Server: Apache/2.2.15 (Debian) PHP/5.3.5

Es muy peligroso permitir que esta información esté visible y que sea utilizada por un atacante al saber la versión específica que estamos usando. Para evitar esto podemos cambiar a Off algunas variables de Apache.

Edita el siguiente archivo y busca las variables que te indico y pon los valores como te muestro.

/etc/apache2/conf.d/security
ServerSignature Off
ServerTokens Prod
TraceEnable off

No mostrar información de PHP

Para evitar que PHP muestre información que puede ser utilizada por un atacante edita este archivo y agrega las funciones que te muestro a la variable «disable_functions» es muy importante que solo las agregues al final las funciones que te indico.

/etc/php5/apache2/php.ini
disable_functions = ,system,show_source,phpinfo/pre>

Luego, en el mismo archivo php.ini busca las siguientes variables de configuración y ponlas a Off

allow_url_fopen=Off
display_errors=Off
expose_php = Off

Por último ve al archivo de configuración del host virtual de tu servidor apache y agrega las siguientes líneas, esto lo debes hacer por cada host virtual que exista en tu servidor y son todos los archivos en el directorio /etc/apache2/sites-available/. Te muestro el ejemplo del host virtual «default»

/etc/apache2/sites-available/default
ServerSignature OffFileETag None

IMPORTANTE: no soy experto en seguridad por lo que estos consejos son encaminados a aportar elementos para evitar un ataque a tu servidor web, en otras palabras hacerle la vida un poco mas difícil a los crackers o algún script kiddie que se tope con el servidor, sin embargo es posible que existan otras configuraciones necesarias para tener un servidor Apache/PHP totalmente seguro.

Espero que esta información sea útil y que ayuda a mantener tu servidor en línea.

Tu Servidor y Amigo

Luis Armando Medina
Sígueme en Twitter: @larmedina

facebook-arrow Haz click en «Me Gusta» y deja un comentario:

Posted in Debian | Tagged , , , , , , | 2 Comments

Como instalar el repositorio EPEL en Centos

repositorio epel centosEl repositorio EPEL es un conjunto de paquetes de software de alta calidad que pueden ser usados con toda confianza en RHEL, Centos y Scientific Linux. El repositorio EPEL contiene mas de 8000 paquetes de software adicionales que permiten disponer de software útil en estas distribuciones y que no se encuentra en los repositorios estándar.

Las siglas EPEL significan Extra Packages for Enterprise Linux y los paquetes de este repositorio pueden ser usados con confianza y seguridad en las distribuciones que ya mencioné, además que se integran perfectamente con Fedora pues estos paquetes se construyen siguiendo los lineamientos, reglas, políticas e infraestructura de Fedora tanto como sea posible.

Instalar el repositorio EPEL

Para instalar el repositorio EPEL en centos debes descargar un archivo RPM e instalarlo de forma manual en tu servidor Centos.

Cento 6

# wget http://mirror.pnl.gov/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh epel-release-6-8.noarch.rpm

Centos 7

# wget http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# rpm -Uvh epel-release-7-5.noarch.rpm

Una vez que se tiene este paquete instalado el repositorio EPEL se encontrará configurado para que sea utilizado por el comando yum. Solo necesitas validar que el repositorio se encuentra operando.

# yum repolist

En lo personal siempre me gusta instalar el programa htop ya que me ayuda a visualizar de mejor manera el estado de un servidor y este paquete rpm está disponible en el repositorio EPEL.

Ver: Como Instalar htop en Cento 6 / 7

Espero que te sea de mucha utilidad el tener el repositorio EPEL en tu servidor.

Tu Servidor y Amigo

Luis Armando Medina
Sígueme en Twitter: @larmedina

Haz click en «Me Gusta» y deja un comentario:

Posted in Centos | Tagged , , , , | 3 Comments

comandos linux: find con ejemplos 3

El comando linux find es uno de esos comandos que todo usuario de linux debería saber «casi por obligación» por que simplemente es muy poderoso cuando se trata de tener la información del archivo exacto que se necesita, pero precisamente lo importante es poder hacer algo con el o los archivos que se encuentran y el comando linux find es el comando correcto para esto.

Hace algún tiempo escribí sobre el comando find y una segunda parte donde explicaba con ejemplos como se usa el comando linux find para encontrar diversos tipos de archivos, como buscar con diferentes condiciones, opciones y demás.

Pero una de las características mas interesantes es poder encontrar los archivos que se buscan y hacer algo con ellos mediante tuberías o pipes y es lo que te voy a compartir en este artículo.

comandos linux: find con ejemplos 3

Una forma de se hacer algo con los archivos que nos devuelva el comando find es usando el parámetro -exec donde se incluye otro comando y al que se pasan los archivos encontrados como parámetros a ese comando. Te muestro algunos ejemplos:

Ejemplos Avanzados del comando find

Para borrar los archivos que se encuentran mediante una búsqueda usando el parámetro -exec

find . -type f -name "archivoparaborrar.txt" -exec rm -f {} \;

para realizar la misma operación mediante el comando xargs por un pipe

find . -type f -name "archivoparaborrar.txt" | xargs /bin/rm -f

por ejemplo para buscar archivos .mp3 y borrarlos

find . -type f -name "*.mp3" -exec rm -f {} \;

Para encontrar archivos con permisos 777 y cambiarlos por 644

find / -type f -perm 0777 -print -exec chmod 644 {} \;

Para encontrar directorios con permisos 777 y cambiarlos por 644

find / -type d -perm 777 -print -exec chmod 755 {} \;

Encontrar los archivos mas grandes y mas pequeños

Una de mas cosas importantes al momento de tener muchos archivos es saber que archivos ocupan mucho o poco espacio. Para encontrar los archivos mas grandes puedes usar el comando find de esta forma para mostrar los 5 archivos mas grandes en directorio actual y sus sibdirectorios (puede tomar algo de tiempo dependiendo del número de archivos)

find . -type f -exec ls -s {} \; | sort -n -r | head -5

Para encontrar los 5 archivos mas pequeños en el directorio actual y sus subdirectorios

find . -type f -exec ls -s {} \; | sort -n | head -5

Un ejemplo interesante del comando find es por ejemplo borrar los archivos .log que sean mayores a 100 Mb

find /home/josee/dir -type f -name *.log -size +10M -exec rm -f {} \;

Como te puedes dar cuenta el comando find puede ser muy poderoso si tienes iniciativa, ingenio y destreza para utilizarlo. No es que todo esté escrito, pero simplemente se pueden hacer cosas muy interesantes y poderosas.

Comandos Linux: find (primera parte)
Comandos Linux: find con ejemplos (segunda parte)
Comandos Linux: find con ejemplos (tercera parte)

Tu Servidor y Amigo

Luis Armando Medina
Sígueme en Twitter: @larmedina

facebook-arrow Haz click en «Me Gusta» y deja un comentario:

Posted in Comandos Linux | Tagged , , | 5 Comments

Debian 9.0 ya tiene nombre

Como sabes cada versión de Debian tiene un nombre código, estos nombres son los mismos de los personajes de la película Toy Story de Pixar y para la versión 9 de esta distribución Linux se le ha asignado el nombre Zurg.

Debian 9 zurg

Zurg es el nombre del villano de la película y el anuncio lo ha realizado Dimitri John Ledkov en su blog y ha sido publicado hace algunas horas en el debian planet.

Como dice en el post, Zurg tiene fuerza y presencia tanto en el personaje como como en la historia, esperemos que Debian 9 sea tan interesante como el personaje que lo representa.

Los nombres código de las versiones anteriores de Debian son:

Debian 1.2 “Rex”, Debian 1.3 “Bo”, Debian 2.0 “Hamm”, Debian 2.1 “Slink”, Debian 2.2 “Potato”, Debian 3.0 “Woody”, Debian 3.1 “Sarge”, Debian 4.0 “Etch”, Debian 5.0 “Lenny”, Debian 6.0 “Squeeze”, Debian 7.0 “Wheezy” y Debian 8.0 “Jessie”.

Tu Servidor y Amigo

Luis Armando Medina
Sígueme en Twitter: @larmedina

facebook-arrow Haz click en «Me Gusta» y deja un comentario:

Posted in Debian | Tagged , , , | 5 Comments

Como Instalar Skype el Linux Mint 16

He batallado mucho con Skype cuando lo instalo en Linux Mint 16 sobre todo cuando uso la versión de 64 bits y es por eso que he decidido publicar como he logrado que funcione y aquí te doy los pasos para que lo puedas instalar y usar tu también.

Continue reading

Posted in Linux Mint | Tagged , , , , | 4 Comments

Como Instalar tu propio dominio .onion y tener tu sitio web en TOR

Con las nuevas revelaciones del espionaje de USA en el mundo por parte de la NSA que vulnera los derechos de las personas con la excusa de la seguridad de los ciudadanos de Estados Unidos (por que la seguridad de otras naciones les importa un comino), cada vez es mas importante que tengamos cuidado de nuestra propia privacidad, de que utilicemos herramientas y comunicaciones mas seguras para evitar ser victimas de este tipo de abusos por cualquier gobierno, ya sea el propio o uno extranjero. Una de esas herramientas es TOR, un protocolo de comunicaciones que permite navegar la llamada deep web y donde es casi imposible que alguien pueda identificarte y saber que buscas, que navegas o que transmites por medio de esta red.

como instalar un dominio .onion y que este funcionando en la red tor

Continue reading

Posted in Debian | Tagged , , , , | 13 Comments

Como instalar PHP en Debian

como instalar php en debianSi has instalado Debian como servidor y requieres un servidor web, es casi seguro que también desearás instalar PHP en Debian y pos eso he escritor este pequeño post donde te digo en pasos simples Como Instalar PHP en Debian y que puedas configurar los detalles más comúnmente requeridos para que puedas instalar casi cualquier script que requieras. Los pasos son sencillos y te digo que hacer uno por uno a continuación.

Continue reading

Posted in Debian | Tagged , , , | 5 Comments