Archivo de la categoría: Apache

Denegar el acceso en Apache

Por norma general, al realizar una instalación de Apache, no aplica las pertinentes medidas de seguridad para controlar el acceso a los ficheros que se encuentran en la carpeta especificada para albergar el contenido web. Esta carpeta viene definida por la directiva DocumentRoot. Sigue leyendo

Facebooktwitter

Putty, un cliente ssh para Windows

Es muy frecuente que para realizar ciertas tareas de mantenimiento en nuestro servidor, necesitamos conectarnos como root a nuestro servidor por medio de SSH. Con los sistemas Linux y Mac, vienen por defecto clientes SSH, pero con los sistemas Windows no es así.

Si queremos utilizar este protocolo desde Windows, deberemos instalar un cliente SSH. Uno de los mas conocidos es Putty, que aparte de soportar SSH, tambien puede utilizar los protocolos Telnet y Rlogin.

Putty es una aplicación muy sencilla aunque altamente configurable. Para descargarlo deberemos acceder a la página web de Simon Taham, desarrollador del proyecto.

Una vez descargado, no es necesaria su instalación. Tan solo deberemos cliquear sobre el ejecutable y en el menú de configuración crear una nueva conexión indicando los valores para el Host, el puerto, el protocolo y dando un nombre para almacenar estos valores.

A continuación deberemos iniciar la conexión recién creada e indicar los valores para el nombre de usuario y la contraseña. Una vez hecho esto ya podremos “navegar” por el equipo remoto mediante SSH.

Facebooktwitter

Un servidor web con VirtualBox – usar un cliente FTP

Hasta ahora, la única prueba que hemos realizado en nuestro servidor ha consistido en crear la pagina info.php con el editor nano, y guardarla en nuestro servidor virtual en la ubicación / var/www

Pero en el caso de querer copiar una web que ya tengamos creada o de quere instalar una aplicación web, necesitaremos habilitar el traspaso de información desde el equipo anfitrión al equipo virtual. Para ello vamos a instalar el protocolo SSH en el servidor virtual y nos conectaremos a él utilizando un cliente de ftp, en nuestro caso FileZilla.

Instalando SSH en el servidor

Como ya hemos utilizado tasksel para realizar la instalación del servidor Apache, hoy vamos a realizar las instalaciones desde la consola (así vemos varios métodos). Accederemos a nuestra máquina virtual y teclearemos:

sudo apt-get install openssh-server

o bien, si quisiéramos hacer la instalación desde tasksel, abriramos la aplicación tecleando sudo tasksel y a continuación tan solo deberíamos marcar la casilla OpenSSH Server  y Aceptar.

servidor-local-ubuntu-openssh

Una vez instalado el servidor, vamos a probar su funcionamiento en local. Para ello teclearemos:

ssh nombre-usuario@127.0.0.1

donde sustituiremos nombre-usuario por nuestro nombre de usuario, y a continuación indicaremos nuestra contraseña. En nuestro primer acceso veremos un mensaje de aviso, al cual responderemos yes, y ya tendremos nuestra conexión funcionando.

servidor-local-ubuntu-openssh-conectado

Y para salir, simplemente teclearemos exit.

Configurar Filezilla para acceder a la máquina virtual.

En el equipo anfitrión, abriremos FileZilla y pulsaremos sobre el icono Gestor de Sitios. Pulsaremos el botón Nuevo sitio e indicaremos los datos relativos a nuestro servidor, es decir, la ip, nuestro nombre de usuario y la contraseña. En el apartado de protocolo, deberemos seleccionar la opción SFTP – SSH File Transfer Protocol

servidor-local-ubuntu-ssh-filezilla

Si has realizado los pasos que comentamos en el capítilo Un servidor web con VirtualBox – Configurando la red, habrás editado el fichero hosts para acceder a tu servidor local utilizando un nombre en lugar de la ip. Este nombre también puede ser utilizado en FileZilla, en lugar de indicar la IP.

Como podrás comprobar, hemos accedido a nuestro equipo servidor mediante FileZilla y aunque podemos visualizar la carpeta / var/www, no tenemos los permisos para modificar su contenido. En la próxima entrega crearemos alias de dominio para poder utilizar la carpeta home para guardar nuestras webs.

Entregas anteriores

Facebooktwitter

Solucionar “an AJAX HTTP error” en Drupal

Al realizar la instalación de Drupal en español, es posible que nos aparezca un mensaje como el siguiente:

Solucionar "an AJAX HTTP error" en Drupal

An AJAX HTTP error occurred. HTTP Result Code: 200 Debugging information follows. Path: […..] StatusText: OK ResponseText: Fatal error: Maximum execution time of 60 seconds exceeded in [….]

Lo que viene a indicar este mensaje es que la importación de todas las cadenas de texto del nuevo idioma, necesita mas tiempo del que por defecto viene asignado, que en nuestro ejemplo es de 60 segundos.

Como solución y si tenemos permisos de administrador, deberemos acceder al fichero php.ini y buscar la línea “max_execution_time” ampliando el valor de 60 a 240 por ejemplo. Guardaremos los cambios y reiniciaremos el servidor para que los cambios tengan efecto. Finalmente, comprobaremos que se pueda efectuar la instalación.

En el caso de no poder acceder a nuestro php.ini, deberemos contactar con nuestra empresa de Hosting para que sean ellos quienes modifiquen este valor.

Facebooktwitter

Un servidor web con VirtualBox – Instalando Apache

Después de haber instalado VirtualBox y de haber configurado la red para poder acceder al servidor sin necesidad de escribir su IP, ahora le toca el turno a las aplicaciones “de servidor” propiamente dichas.

Vamos a instalar Apache, PHP y MySql desde tasksel y realizar las pruebas para ver que todo funciona correctamente. En posteriores entregas veremos como instalar algunos módulos directamente desde la consola.

Instalando el servidor desde tasksel

Deberemos arrancar nuestra máquina virtual Linux, y teclear en la línea de comandos

sudo tasksel

accederemos a la pantalla de instalación de paquetes, marcaremos la opción Lamp Server y aceptaremos.

servidor-local-ubuntu-paquete-lamp

Marcando esta casilla instalaremos de una sola vez Apache, PHP y MySQL ya que el sistema se encargará de descargar los paquetes necesarios y de instalar el software.

En un punto de la instalación, el sistema nos solicitará que indiquemos una contraseña para el acceso a la base de datos MySQL. La indicaremos y proseguiremos con la instalación.

servidor-local-ubuntu-password-mysql

Una vez finalizada la instalación, es aconsejable que reiniciemos el equipo para que los servicios se activen correctamente.

Probando el servidor

Antes de continuar instalando mas aplicaciones, vamos a verificar que el servidor esta funcionando correctamente, y de paso, comprobaremos la configuración de la red que hicimos en la entrega anterior.

Desde nuestro equipo anfitrión, abriremos el navegador y teclearemos el nombre del servidor que indicamos en el fichero hosts, que en nuestro caso miservidor y comprobaremos como Apache está funcionando correctamente.

servidor-local-ubuntu-probando-apache

Para comprobar el funcionamiento de php, vamos a crear el típico phpinfo. Lo primero será situarnos en la carpeta donde se almacena el contenido web. Para ello teclearemos:

cd / var/www

Una vez allí, crearemos el fichero con el editor “nano” que viene instalado por defecto:

sudo nano info.php

Se nos abrirá el editor y teclearemos lo siguiente:

<?php
phpinfo();
?>

Despues pulsaremos F2 para guardar, s para sobreescribir y Intro para aceptar el nombre que le hemos asignado. A continuación accederemos al navegador en nuestro equipo anfitrión e indicaremos la url:

http://miservidor/info.php

Si obtenemos esta ventana de información del servidor es que nuestro PHP está funcionando correctamente.

servidor-local-ubuntu-probando-php

Finalmente vamos a acceder por la línea de comandos para ver si MySQL esta bien instalado. Teclearemos:

mysql -u root -p

e indicaremos la contraseña que indicamos en la instalación. Si se nos conecta al servidor MySQL es porque funciona correctamente. Una última prueba será ver las bases de datos actuales. Podemos visualizarlas si tecleamos:

show databases;servidor-local-ubuntu-probando-mysql
Facebooktwitter

Denegar acceso a directorios en Apache

En el caso de realizar una instalación manual del servidor Apache, deberemos tener en cuenta una serie de parámetros para securizar al máximo nuestro servidor. Una de estas opciones será el denegar el acceso a todos los directorios exceptuando el “DocumentRoot”, que será donde alojemos nuestro sitio web.

Utilizando las directivas Allow y Deny, podremos permitir o denegar el acceso a un directorio en concreto o a todos en general.

Deberemos indicar en nuestro fichero httpd.conf lo siguiente:

<Directory />
   Order Deny,Allow
   Deny from all
   Options None
   AllowOverride None
</Directory>
<Directory /var/www/htdocs>
   Order Allow,Deny
   Allow from all
</Directory>

Con esto lo que indicamos al servidor es que no permita el acceso a ninguna carpeta, y posteriormente habilitamos el acceso var/www/htdocs (o la ruta donde se encuentre nuestra web).

Aunque estas dos órdenes son contradictorias, predomina la segunda sobre la primera al ser una ruta más especifica.

Facebooktwitter

Tamaño máximo de subida en phpMyAdmin desde Plesk

Muchos administradores no entienden por que al aumentar el tamaño máximo de subida de ficheros en el fichero php.ini, el phpMyAdmin continua indicando como valor máximo de subida 2 Mb, valor que en la mayoría de ocasiones resulta insuficiente.

La razón es porque en Plesk existe un fichero especial que controla este y otros varios parámetros para php y aunque las directivas vienen a ser las mismas que en el fichero php.ini original, serán estos valores los que se tengan en cuenta. Sigue leyendo

Facebooktwitter

Limitar el tamaño de subida desde Apache

Si queremos limitar el tamaño de subida de un fichero en Apache, deberemos utilizar la directiva LimitRequestBody. Para ello deberás acceder al archivo de configuración httpd.conf e indicar lo siguiente:

<Directory "/usr/local/apache2/uploads">
  LimitRequestBody 20000
</Directory>

Donde en Directory indicaremos la ruta del directorio que queremos limitar y en LimitRequestBody indicaremos el tamaño máximo en bytes. En el caso de querer un valor ilimitado deberemos escribir 0.

Facebooktwitter

Listado de los codigos HTTP

Alguna vez os hemos comentado algún error que se mostraba en el navegador y que estaba producido por diversas razones. Para identificar estos códigos más fácilmente os dejamos este listado en el que se muestra los principales (más comunes) códigos:

  • 200: Ok. Correcto.
  • 201: Contenido creado.
  • 204: No hay contenido.

Éstos códigos advierten que la  página actual ha cambiado de dirección.

  • 301: Moved Permanently. Movido permanentemente.
  • 307: Moved Temporarily. Movido temporalmente.
  • 303: See others. Ver otros.
  • 304: Not modified. No modificado.
  • 300: Multiple choices. Múltiples opciones.

Códigos producidos por acciones realizadas en la parte del usuario (cliente).

  • 400: Bad request. Petición erronea.
  • 401: Unauthorized. No autorizado.
  • 403: Forbidden. Prohibido.
  • 404: Not found. No se encuentra.
  • 405: Method not allowed. Método no permitido.
  • 406: Not acceptable. No aceptable.
  • 409: Conflict. Conflicto.
  • 410: Gone. Recurso ya no existe.
  • 412: Precondition failed. Precondición fallida.
  • 413: Request Entity too large. Petición de entidad  demasiado grande.
  • 414: Request URI too long. Dirección demasiado  larga.
  • 415: Unsupported Media Type. Tipo multimedia no  soportado.

Finalmente, éstos codigos de error, son mostrados cuando se producen en el lado del servidor.

  • 500: Internal Server Error. Error interno del  servidor.
  • 501: Not implemented. No implementado.
  • 503: Service Unavailable. Servicio no  disponible
Facebooktwitter

Error 501 Not Implemented en WordPress

Trabajando con WordPress, el otro día nos sorprendió el error que nos mostraba en pantalla cuando pulsábamos el botón Publicar, Vista previa o Guardar Borrador. Se trataba del error 501 y nos mostraba en pantalla:

Not Implemented

The page you are looking for cannot be displayed because a header value in the request does not match certain configuration settings on the Web server.

Investigando, descubrimos que éste error se produce porque el servidor Apache bloquea ciertos caracteres mediante el módulo mod_security para impedir ataques por inyección de código.

Para solucionar ésto y poder publicar el artículo, podemos:

  • Desabilitar la seguridad del servidor, si tenemos acceso, o bien pedir a soporte de nuestro Hosting que se encargue de ello, aunque no recomendamos ésta opción.
  • Escribir el texto problemático en un editor de texto y realizar una captura de pantalla, para poder insertarlo posteriormente como imagen.
  • Comprobar que caracter es el que está causando el fallo y tratar de eliminarlo (prestar atención especial a las barras invertidas “/”)

Nosotros, por temas de seguridad, recomendamos las dos últimas opciones.

Facebooktwitter