Buscar este blog

Mostrando entradas con la etiqueta apache2. Mostrar todas las entradas
Mostrando entradas con la etiqueta apache2. Mostrar todas las entradas

miércoles, 11 de julio de 2018

Ocultar versión de PHP en cabeceras

Si eres desarrollador de PHP esto te interesa cuando pases tus aplicaciones a producción. En tu servidor de explotación es recomendable modificar el fichero php.ini u poner en off la variable "expose_php", de esta forma nadie viendo tu aplicación en ejecución podrá saber qué versión de PHP corre en tu servidor.

Esto es altamente recomendable para evitar que la publicación de una vulnerabilidad para la versión de PHP que utilizas haga que tu servidor sea el foco de todas las miradas.
php.ini
expose_php = Off
Cuando ves las cabeceas de los paquetes podrás ver algo como:
X-Powered-By: PHP/5.3.8
Y simplemente cunado cuando cambiar la variable a off desaparece esta información.

IMPORTANTE: Esto no es una solución frente a vulnerabilidades, la solución es actualizar a una versión no vulnerable. Simplemente evitaremos que "gritar" al mundo qué versión de PHP utilizamos.

viernes, 5 de junio de 2009

Debian lenny -> Apache2 + php5

Esto es algo muy liviano, pero siempre hay alguien nuevo al que hay que ayudar a hacer este tipo de cosas. Aquí explico brevemente los pasos a seguir para instalar Apache2 con PHP5 en Debian5 (lenny).
Esto descargará, desempaquetará e instalará el paquete correspondiente a Apache2.
# aptitude install apache2
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Leyendo las descripciones de las tareas... Hecho
Se instalarán los siguiente paquetes NUEVOS:
apache2 apache2-mpm-worker{a} apache2-utils{a} apache2.2-common{a} libapr1{a} libaprutil1{a} libexpat1{a}
libmysqlclient15off{a} libpq5{a} mysql-common{a} openssl{a} openssl-blacklist{a} ssl-cert{a}
0 paquetes actualizados, 13 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 11,3MB de ficheros. Después de desempaquetar se usarán 26,2MB.
¿Quiere continuar? [Y/n/?]
Escribiendo información de estado extendido... Hecho
Des:1 http://ftp.rediris.es lenny/main openssl-blacklist 0.4.2 [6338kB]
Des:2 http://security.debian.org lenny/updates/main openssl 0.9.8g-15+lenny1 [1043kB]
Des:3 http://security.debian.org lenny/updates/main mysql-common 5.0.51a-24+lenny1 [60,5kB]
Des:4 http://security.debian.org lenny/updates/main libmysqlclient15off 5.0.51a-24+lenny1 [1905kB]
Des:5 http://security.debian.org lenny/updates/main libaprutil1 1.2.12+dfsg-8+lenny2 [79,8kB]
Des:6 http://ftp.rediris.es lenny/main libapr1 1.2.12-5 [114kB]
Des:7 http://ftp.rediris.es lenny/main libexpat1 2.0.1-4 [136kB]
Des:8 http://ftp.rediris.es lenny/main libpq5 8.3.7-0lenny1 [372kB]
Des:9 http://ftp.rediris.es lenny/main apache2-utils 2.2.9-10+lenny2 [144kB]
Des:10 http://ftp.rediris.es lenny/main apache2.2-common 2.2.9-10+lenny2 [824kB]
Des:11 http://ftp.rediris.es lenny/main apache2-mpm-worker 2.2.9-10+lenny2 [257kB]
Des:12 http://ftp.rediris.es lenny/main apache2 2.2.9-10+lenny2 [44,5kB]
Des:13 http://ftp.rediris.es lenny/main ssl-cert 1.0.23 [13,1kB]
Descargados 11,3MB en 36s (311kB/s).
Preconfigurando paquetes ...
Seleccionando el paquete openssl previamente no seleccionado.
(Leyendo la base de datos ...
20983 ficheros y directorios instalados actualmente.)
Desempaquetando openssl (de .../openssl_0.9.8g-15+lenny1_amd64.deb) ...
Seleccionando el paquete openssl-blacklist previamente no seleccionado.
Desempaquetando openssl-blacklist (de .../openssl-blacklist_0.4.2_all.deb) ...
Seleccionando el paquete libapr1 previamente no seleccionado.
Desempaquetando libapr1 (de .../libapr1_1.2.12-5_amd64.deb) ...
Seleccionando el paquete libexpat1 previamente no seleccionado.
Desempaquetando libexpat1 (de .../libexpat1_2.0.1-4_amd64.deb) ...
Seleccionando el paquete mysql-common previamente no seleccionado.
Desempaquetando mysql-common (de .../mysql-common_5.0.51a-24+lenny1_all.deb) ...
Seleccionando el paquete libmysqlclient15off previamente no seleccionado.
Desempaquetando libmysqlclient15off (de .../libmysqlclient15off_5.0.51a-24+lenny1_amd64.deb) ...
Seleccionando el paquete libpq5 previamente no seleccionado.
Desempaquetando libpq5 (de .../libpq5_8.3.7-0lenny1_amd64.deb) ...
Seleccionando el paquete libaprutil1 previamente no seleccionado.
Desempaquetando libaprutil1 (de .../libaprutil1_1.2.12+dfsg-8+lenny2_amd64.deb) ...
Seleccionando el paquete apache2-utils previamente no seleccionado.
Desempaquetando apache2-utils (de .../apache2-utils_2.2.9-10+lenny2_amd64.deb) ...
Seleccionando el paquete apache2.2-common previamente no seleccionado.
Desempaquetando apache2.2-common (de .../apache2.2-common_2.2.9-10+lenny2_amd64.deb) ...
Seleccionando el paquete apache2-mpm-worker previamente no seleccionado.
Desempaquetando apache2-mpm-worker (de .../apache2-mpm-worker_2.2.9-10+lenny2_amd64.deb) ...
Seleccionando el paquete apache2 previamente no seleccionado.
Desempaquetando apache2 (de .../apache2_2.2.9-10+lenny2_all.deb) ...
Seleccionando el paquete ssl-cert previamente no seleccionado.
Desempaquetando ssl-cert (de .../ssl-cert_1.0.23_all.deb) ...
Procesando disparadores para man-db ...
Configurando openssl (0.9.8g-15+lenny1) ...
Configurando openssl-blacklist (0.4.2) ...
Configurando libapr1 (1.2.12-5) ...
Configurando libexpat1 (2.0.1-4) ...
Configurando mysql-common (5.0.51a-24+lenny1) ...
Configurando libmysqlclient15off (5.0.51a-24+lenny1) ...
Configurando libpq5 (8.3.7-0lenny1) ...
Configurando libaprutil1 (1.2.12+dfsg-8+lenny2) ...
Configurando apache2-utils (2.2.9-10+lenny2) ...
Configurando apache2.2-common (2.2.9-10+lenny2) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module status.
Enabling module auth_basic.
Enabling module deflate.
Enabling module authz_default.
Enabling module authz_user.
Enabling module authz_groupfile.
Enabling module authn_file.
Enabling module authz_host.
Configurando apache2-mpm-worker (2.2.9-10+lenny2) ...
Starting web server: apache2.
Configurando apache2 (2.2.9-10+lenny2) ...
Configurando ssl-cert (1.0.23) ...
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Escribiendo información de estado extendido... Hecho
Leyendo las descripciones de las tareas... Hecho

Ya tenemos instalado Apache2 en nuestro sistema Debian. Si en la barra navegación de nuestro firefox ponemos http://localhost, tendríamos que ver algo parecido a esto:

Después instalaremos los paquetes libapache2-mod-php5 y php5:
#aptitude install libapache2-mod-php5 php5
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Leyendo las descripciones de las tareas... Hecho
Se instalarán los siguiente paquetes NUEVOS:
apache2-mpm-prefork{a} libapache2-mod-php5 php5 php5-common{a}
Se ELIMINARÁN los siguientes paquetes:
apache2-mpm-worker{a}
0 paquetes actualizados, 4 nuevos instalados, 1 para eliminar y 0 sin actualizar.
Necesito descargar 3238kB de ficheros. Después de desempaquetar se usarán 7049kB.
¿Quiere continuar? [Y/n/?]
Escribiendo información de estado extendido... Hecho
Des:1 http://ftp.rediris.es lenny/main apache2-mpm-prefork 2.2.9-10+lenny2 [253kB]
Des:2 http://security.debian.org lenny/updates/main php5-common 5.2.6.dfsg.1-1+lenny3 [368kB]
Des:3 http://security.debian.org lenny/updates/main libapache2-mod-php5 5.2.6.dfsg.1-1+lenny3 [2616kB]
Des:4 http://security.debian.org lenny/updates/main php5 5.2.6.dfsg.1-1+lenny3 [1078B]
Descargados 3238kB en 2s (1347kB/s).
dpkg: apache2-mpm-worker: problemas de dependencias, pero se desinstalará de todas formas
tal y como se solicitó:
apache2 depende de apache2-mpm-worker (>= 2.2.9-10+lenny2) | apache2-mpm-prefork (>= 2.2.9-10+lenny2) | apache2-mpm-event (>= 2.2.9-10+lenny2); sin embargo:
El paquete `apache2-mpm-worker' va a ser desinstalado.
El paquete `apache2-mpm-prefork' no está instalado.
El paquete `apache2-mpm-event' no está instalado.
(Leyendo la base de datos ...
21983 ficheros y directorios instalados actualmente.)
Desinstalando apache2-mpm-worker ...
Stopping web server: apache2 ... waiting .
Seleccionando el paquete apache2-mpm-prefork previamente no seleccionado.
(Leyendo la base de datos ...
21974 ficheros y directorios instalados actualmente.)
Desempaquetando apache2-mpm-prefork (de .../apache2-mpm-prefork_2.2.9-10+lenny2_amd64.deb) ...
Seleccionando el paquete php5-common previamente no seleccionado.
Desempaquetando php5-common (de .../php5-common_5.2.6.dfsg.1-1+lenny3_amd64.deb) ...
Seleccionando el paquete libapache2-mod-php5 previamente no seleccionado.
Desempaquetando libapache2-mod-php5 (de .../libapache2-mod-php5_5.2.6.dfsg.1-1+lenny3_amd64.deb) ...
Seleccionando el paquete php5 previamente no seleccionado.
Desempaquetando php5 (de .../php5_5.2.6.dfsg.1-1+lenny3_all.deb) ...
Configurando apache2-mpm-prefork (2.2.9-10+lenny2) ...
Starting web server: apache2.
Configurando php5-common (5.2.6.dfsg.1-1+lenny3) ...
Configurando libapache2-mod-php5 (5.2.6.dfsg.1-1+lenny3) ...

Creating config file /etc/php5/apache2/php.ini with new version
Reloading web server config: apache2.
Configurando php5 (5.2.6.dfsg.1-1+lenny3) ...
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Escribiendo información de estado extendido... Hecho
Leyendo las descripciones de las tareas... Hecho

Cuando termine reiniciaremos nuestro Apache2 para que cargue el módulo correspondiente a PHP5.
# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Para verificar que está funcionando todo correctamente, crearemos un fichero /var/www/index.php. Me gusta el editor nano, pero podréis utilizar el que más os guste. Y metéis el código:
< ?php
phpinfo();
?>

Después hacemos que Apache2 ejecute nuestro nuevo index.php, para ello entramos en http://localhost/index.php y tendríamos que ver algo parecido a la siguiente imagen.

Ya tenemos funcionando Apache2 con PHP5 en nuestro sistema Debian lenny.

jueves, 18 de octubre de 2007

apache friends - xampp for linux

apache friends - xampp for linux

Gracias a xampp podemos tener un servidor web, base de datos, correo y ftp sin necesidad de instalar nada en el sistema, simplemente descomprimimos y ejecutamos.

¿Pero es posible ejecutar xampp cuando tenemos ya ejecutado Apache2, MySQL, PostgreSQL... en el sistema?

Pues la respuesta es sí, simplemente tendremos que cambiar los puertos de escucha. Por ejemplo la instancia de Apache2 en xampp como el resto de instancias de Apache2, por defecto escucha en el puerto 80. Desde los ficheros de configuración de Apache podemos modificarlo para que escuche en el puerto que nos interese (alguno que esté libre).

Usando "netstat -putan" desde la linea de comandos, podemos saber cuales son los puertos que tenemos ocupados. Para poner a escuchar un nuevo servicio, tendremos que usar uno que no estemos utilizando.

Una vez que tenemos el fichero modificado, solo nos queda un paso que nos llevó bastante tiempo encontrar. Desde el script que ejecuta xampp (/opt/lampp/lampp) se hacen comprobaciones para certificar que el servicio que se pretende levantar no esté corriendo. Una de las comprobaciones es saber si está escuchando algún servicio en el puerto donde se lanzará el servicio. El caso es que este puerto no lo coge del fichero de configuración, así que tendremos que poner el mismo puerto que pusimos en el fichero de configuración.

Por ejemplo en la sección:

"startapache")
if testrun /opt/lampp/logs/httpd.pid httpd
then
$de && echo "XAMPP: XAMPP-Apache laeuft bereits."
$de || echo "XAMPP: XAMPP-Apache is already running."
else
if testport 80then
$de && echo "XAMPP: Ein anderer Webserver laeuft bereits."
$de || echo "XAMPP: Another web server daemon is already running."
else
case `$0 phpstatus` in
5*) xampp_apachedefine="$xampp_apachedefine -DPHP5"
$de && phpextra="(und PHP5)"
$de || phpextra="(and PHP5)"
;;
4*) xampp_apachedefine="$xampp_apachedefine -DPHP4"
$de && phpextra="(und PHP4)"
$de || phpextra="(and PHP4)"
;;
esac
if test -f $lc/startssl
then
if testport 443
then
$de && echo "XAMPP: Ein anderer Webserver mit SSL laeuft bereits."
$de || echo "XAMPP: Another web server daemon with SSL is already running."
else
$de && echo "XAMPP: Starte Apache mit SSL $phpextra..."
$de || echo "XAMPP: Starting Apache with SSL $phpextra..."
/opt/lampp/bin/apachectl -k start -DSSL $xampp_apachedefine > /dev/null 2> /opt/lampp/logs/apachestart.log
fi
else
$de && echo "XAMPP: Starte Apache..."
$de || echo "XAMPP: Starting Apache..."
/opt/lampp/bin/apachectl -k start $xampp_apachedefine > /dev/null 2> /opt/lampp/logs/apachestart.log
fi
error=$?
if test $error -gt 0
then
$de && echo "XAMPP: ${bon}Fehler $error beim Starten vom Apache!${boff}"
$de || echo "XAMPP: ${bon}Error $error! Couldn't start Apache!${boff}"
/opt/lampp/share/lampp/diagnose apache
fi
fi
fi
;;

Sustituiremos en "if testport 80" el 80 por el puerto donde hemos configurado Apache para que escuche.

DynDns OVH Sincronización de IP pública dinámica

  Si tienes un servidor en casa o detrás de una conexión con IP dinámica, sabes que tarde o temprano tu dirección IP pública cambia y tu dom...