El "LAMP Stack" de sidux

El acrónimo LAMP se refiera a una conjunta de programas de software libre comúnmente utilizada para ejecutar sitios web dinámica o servidores:
Linux: la sistema operativa
Apache: el servidor web
MySQL: una sistema para manejar bases de datos (el servidor de la base de data)
Perl, PHP, y/o Python: lenguajes de scripts

ADVERTENCIA: Nunca usa su PC de escritorio personal como servidor! Usa un PC dedicado como un servidor de páginas web, y no hace nada más en el!

Usos de un servidor:
a) un servidor de prueba de uso local para diseñadores de web sin ser conectado al internet, lo cual es el alcance de este tópica;
b) un servidor privado, encerado y conectado a internet;
c) un servidor privado completamente propagado a internet
d) un servidor web comercial, lo cual es fuera del alcance de este manual.

Requerimientos mínimos

256MB de RAM como mínimo. Cualquier menos que este mínimo causará muchos problemas porque la ejecución como servidor con Mysql se requiere mucho RAM para funcionar correctamente. Mysql genera errores del tipo, "no puedo conectar a mysql.sock" si no tienes suficiente memoria en el servidor.

El paquete Servidor-Genérico de sidux

El servidor-genérico de sidux consta de una instalación pre-empaquetada a través del instalador de Meta-paquetes. Los aplicaciones que serán instalados son los siguientes:

apache2
apache2-utils
apache2-mpm-prefork
php5
php5-common
mysql-server
mysql-common
libapache2-mod-php5
php5-mysql
phpmyadmin

ADVERTENCIA

m
apt-get remove --purge splashy

Porque el splashy siempre corrompe el mysql

El archivo de configuración de Apache es ubicado en: /etc/apache2/apache2.conf y su directorio web es: /var/www

Para verificar si php es instalado y funcionando correctamente, solamente crear un test.php en el directorio, /var/www con la función phpinfo() exactamente como se muestra abajo.

mcedit /var/www/test.php

# test.php
<?  phpinfo(); ?>

Ahora, apunta el browser a:

http://localhost/test.php
ó
http://yourip:80/test.php

Esto debe mostrar todo la configuración de php y la configuración pre-seleccionada.

Puede editar los valores necesarios o configurar dominios virtuales utilizando el archivo de configuración de apache.

Si deseas comprobar la instalación, tipea lo siguiente en su browser

http://su_dirección_ip/apache2-default/

Esto debe mostrar una mensaje de bienvenido, que indica que su instalación esta correcto.

El directorio de documentos pre-seleccionada para el apache2 es /var/www Change this to:

mkdir /home/myself/www
ln -s /home/myself/www /var/www

Con los comandos arriba indicado, puede editar su página web desde su /home/<directorio> como usuario normal.

Clientes FTP

Usa el SSH y lea cuidadosamente el tópica de SSH, además, sidux tiene otra cliente FTP incorporado en la forma del Konqueror, que permite subir archivos al servidor.

Activando buenas protocolos de seguridad para Servidores Web

Firewalls (Muros contra fuego)

Sin un firewall (muro contra fuego), no existe absolutamente ningún seguridad para el servidor. Recuerda, bloquear TODO hasta que lo necesita, entonces, bloquearlo de nuevo!.

21 (ftp)
22 (SSH)
25 110 (email)
443 (SSL http or https)
993 (imap ssl)
995 (pop3 ssl)
80 (http)
y cualquier otro puerto!

Proteger archivos del servidor por preselección.

Un aspecto de Apache que frecuentemente no esta entendido claramente es la característica de acceso preseleccionada "default access". Esto quiere decir que, a menos que lo cambias, el servidor puede encontrar un archivo a través de las reglas normales de mapeo de URL, entonces puede servirlo a clientes.

Por ejemplo, considerar la siguiente ejemplo:

 1. # cd /; ln -s / public_html
 2. Accessing http://localhost/~root/

Esto permite clientes de andar por el sistema de archivos completo del servidor! Para evitar esto, agregue el siguiente bloqueo en el archivo de configuración del servidor:

<Directory />
   Order Deny,Allow
   Deny from all
</Directory>

Esto se denegar el acceso a locaciones dentro de la sistema de archivos. Puede agregar bloqueos a directorios apropiadas para permitir acceso solamente a las áreas de desea. Por ejemplo,

<Directory /usr/users/*/public_html>
    Order Deny,Allow
    Allow from all
</Directory>
<Directory /usr/local/httpd>
    Order Deny,Allow
    Allow from all
 </Directory>

Ponga atención en particular a las interacciones de los directivos de <Location> y <Directory>; por ejemplo, aunque el <Directory /> rehúso acceso, un directivo <Location /> puede reversarlo.

También sea pendiente de hacer juegos con el directivo, UserDir, fijándolo a algo como"./" tendrá el mismo efecto, por el root, como el primer ejemplo arriba. Si esta utilizando el Apache 1.3 ó después, fuertemente, recomendamos que incluye los siguientes líneas en el archivo de configuración de su servidor:

UserDir disabled root 

SSL

Ejecuta el script “apache2-ssl-certificate”

# apache2-ssl-certificate

La siguiente pantalla sea desplegada para que entra la información requerida.

Creando certificado auto-firmado
reemplazarlo con uno firmado por una autoridad de certificación (CA)
entra el Nombre del Servidor en el Common Name prompt:
Si deseas que el certificado vence después de x días
llama esta programa con "-days x"
-----
Generando un clave RSA de 1024 bit
--------
escribiendo nuevo clave privado a '/etc/apache2/ssl/apache.pem'
--------
Información será pedido que será
incorporado en su petición de certificado.
-----------
Lo que vas entrar se llama Distinguished Name (Nombre Distinguido)
o una DN. Hay unas cuantas campos pero algunas puede dejar en blanco.
para algunas hay un valor preseleccionada,
----------
Si entras un '.', el campo será dejado en blanco.
País (código de 2 letras) [GB]:

Estado o Provincia (nombre completo) [Algún-Estado]:

Localidad (p.e., ciudad) []:

Organización (p.e., compañía; recomendado) []:

Unidad Organizacional (pe, sección) []:

Nombre del servidor (p.e., ssl.domain.tld --Requerido!!!) []:

Dirección de correo electrónica []:

Ejecuta el script “a2enmod ssl”, por ejemplo:

 # a2enmod ssl

Este, automáticamente genera un enlace simbólica entre mods- disponibles y mods -activados

Make a copy of '/etc/apache2/sites-available/default' file in the /etc/apache2/sites-available/ - call it 'ssl'

# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Crear un enlace simbólica a este nuevo sitio de configuración para este fin.

# ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/
(ó)
# a2ensite ssl

Si deseas cambiar cualquier de las configuraciones básicas en /etc/apache2/apache2.conf y si deseas cambiar el raíz preseleccionada de documento, cambia el archivo /etc/apache2/sites-available/default y rearrancar el servidor apache.

Para rearrancar el servidor Apache, utiliza la siguiente comando

# /etc/init.d/apache2 restart

Ahora necesita cambiar la dirección del puerto en /etc/apache2/ports.conf lo cual es preseleccionada a escuchar en puerto 80, y ahora estamos instalando SSL, que necesita cambiar al puerto 443 para escuchar.

 Listen 443

Editar la configuración en /etc/apache2/sites-available/ssl (o lo que llama el config nuevo de su sitio ssl) y cambiar el puerto 80 en el nombre del sitio a 443.

Agregue estos dos líneas en algún parte del archivo /etc/apache2/apache2.conf.

  SSLEngine On
  SSLCertificateFile /etc/apache2/ssl/apache.pem

Editar el archivo SSLCertificateFile en /etc/apache2/ssl/apache.pem, y agregar la ubicación del archivos de certificado y el clave del certificado. Abajo hay un ejemplo:

SSLCertificateFile /etc/apache2/ssl/online.test.net.crt
SSLCertificateKeyFile /etc/apache2/ssl/online.test.net.key

Fija ServerSignature off [apagada], seguir estos paso para editar el archivo de configuración /etc/apache2/apache2.conf y agregue estas dos líneas:

 ServerSignature Off
 ServerTokens ProductOnly

Si deseas permitir tipos de archivos de índices diferentes, verifica la existencia de la siguiente línea en /etc/apache2/apache2.conf:

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

Rearranca el servidor apache

 /etc/init.d/apache2 restart

Debe tener un servidor "sandbox" para pruebas, en caso de que deseas conectar a internet con el, NO LO HACE, usa otro que es dedicado completamente de ser un servidor de páginas web!

Fuentes de información:

http://www.mysql-apache-php.com

http://httpd.apache.org/docs/1.3/misc/security_tips.html

http://www.debianhelp.co.uk/webserver.htm

Content last revised 10/06/2008 0100hrs UTC