Apache con hosts virtuales

Escrito por el 22 jun, 2009 en Linux | 2 comentarios

En este artículo comenzamos a agregarle funcionalidad a nuestro servidor web Apache, se recomienda leer el artículo de instalación de Apache con soporte para SSL. Para iniciar, vamos a crear la estructura para alojar de forma ordenada los diferentes sitios.

Con el siguiente comando la hacemos de una sola vez.

mkdir -p /var/www/prueba/{cgi-bin,html,logs,etc,var}

De esta forma quedan creados dentro de la carpeta prueba cuatro directorios que luego albergaran los archivos necesarios, dentro del directorio ../html pondremos el index.html que es la página que se carga al inicio cuando escribimos la url de nuestra página.

El archivo de configuración para los diferentes sitios estarán en /etc/httpd/conf.d/, en este caso /etc/httpd/conf.d/prueba.conf, luego debemos crear uno para cada dominio por separado. Este tiene la configuración de los hosts virtuales con soporte para SSL.  Suponiendo que nuestro servidor web tiene IP 192.168.1.10, este es un ejemplo del contenido del archivo, teniendo en cuenta que lo que se pretende es con una sola IP alojar varios dominios distintos.

NameVirtualHost 192.168.1.10:80
 
ServerAdmin admin@prueba.com.uy
DocumentRoot /var/www/prueba/html
ServerName www.prueba.com.uy
ServerAlias prueba.com.uy
Redirect 301 / https://www.prueba.com.uy/
CustomLog /var/www/ prueba/logs/access_log combined
Errorlog /var/www/prueba/logs/error_log
 
NameVirtualHost 192.168.1.10:443
 
ServerAdmin admin@prueba.com.uy
DocumentRoot /var/www/prueba/html
ServerName www.prueba.com.uy
ScriptAlias /cgi-bin/ /var/www/prueba/cgi-bin/
SSLEngine on
SSLCertificateFile /etc/ssl/prueba/prueba.crt
SSLCertificateKeyFile /etc/ssl/prueba/prueba.pem
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
CustomLog /var/www/prueba/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r"\ %b"
CustomLog /var/www/prueba/logs/ssl_access_log combined
Errorlog /var/www/prueba/logs/ssl_error_log

Luego debemos reiniciar Apache para que surtan efecto los cambios realizados.

service httpd restart

Para probar si todo está funcionando, digitamos en la url de nuestro navegador http://prueba.com.uy, luego automaticamente se redirigira nuestra consulta a https://prueba.com.uy

Esto es posible si ya se tiene un servidor DNS, configurado en nuestra lan, de lo contrario debemos sustituir el nombre del dominio por la IP del equipo en este caso será http://192.168.1.10

Si repetimos el proceso y sustituimos la palabra prueba por intranet, y tenemos el DNS correctamente configurado, podemos digitar luego en la url http://intranet.com.uy, y obtener una respuesta positiva. De esta forma tenemos varios dominios en un mismo servidor con una sola dirección IP.

Espero que este artículo les sea de utilidad y si tienen dudas envíenlas.

VN:F [1.9.8_1114]
Te gusto este post?
Rating: 0.0/10 (0 votes cast)
Leer más

Instalar Apache con soporte SSL

Escrito por el 16 jun, 2009 en Linux | 0 comentarios

La idea de este tutorial es mostrar una forma muy elemental de instalar y configurar un servidor útil para alojar nuestros sitios Web, en este caso Apache con soporte para conexiones seguras SSL. En sucesivos tutoriales iremos agregando funcionalidad a nuestro servidor  y veremos el modo de hacerlo funcionar en conjunto con un servidor DNS y así tener acceso a los dominios virtuales que se creen.

Instalar Apache

La instalación de este servidor web es bastante sencilla, en este caso lo haremos con soporte para PHP, mysql, python, perl, ssl y tls.

yum -y install php php-mysql mod_perl mod_python mod_ssl

Con esto el servidor ya está funcionando, pero le haremos unas modificaciones para que refleje nuestras necesidades.

Configurar Soporte SSL

mkdir -m 0700 /etc/ssl

Se crea el directorio para almacenar las claves que se generan

mkdir -m 0700 /etc/ssl/prueba.com.uy

Creamos un subdirectorio para que sea mas prolijo solo con derechos para root que es donde se guardan las claves

cd /etc/ssl/prueba.com.uy

Ingresamos al directorio

openssl genrsa -des3 –rand file1.gz:file2.gz:file3.gz:file4.gz:file5.gz -out prueba.key 1024

Creamos la clave utilizando aleatoriamente los nombres de 5 archivos para aumentar la seguridad, ésta se llamará prueba.key

openssl rsa -in prueba.key -out prueba.pem

Generamos esta clave para que se pueda detener y arrancar el servicio httpd sin que se necesite ingresar una contraseña por parte del administrador

openssl req -new -key prueba.key -out prueba.csr

Opcionalmente creamos un archivo .csr para enviarlo a una autoridad certificadora la que nos envía un archivo .crt firmado por ellos y nos da un aval reconocido internacionalmente. Este proceso hace que se nos pidan algunos datos, en este caso lo llenamos con los datos de la prueba.

En caso de no necesitar o no querer un certificado con este aval, lo podemos crear nosotros con el siguiente comando:

openssl x509 -req -days 730 -in prueba.csr -signkey prueba.key -out prueba.crt

Luego le damos derecho de lectura solo a root sobre los certificados y con eso está listo nuestro servidor para comenzar a hacer pruebas.

chmod 400 /etc/ssl/prueba.com.uy/prueba.*

Espero que este tutorial les sea de utilidad y como siempre, si tienen alguna duda escríbanme y con gusto les daré una mano.

VN:F [1.9.8_1114]
Te gusto este post?
Rating: 7.0/10 (1 vote cast)
Leer más

Virtual Host y DNS

Escrito por el 10 jun, 2009 en Linux | 0 comentarios

Esta guía pretende mostrar la forma en que podemos agregarle funcionalidad al servidor de nombres que instalamos y configuramos en el anterior tutorial de DNS. Veremos algunos ejemplos para poder agregar a nuestra servidor con la misma IP, otros nombres diferentes, o en el caso de contar con un servidor web con dominios virtuales, poder resolver esos nombres para que las consultas que sean dirigidas a esas páginas puedan llegar a su destino.

Lo primero que haremos será agregar un poco de seguridad a nuestro servidor, para que solo atienda peticiones de nuestra lan. Para eso debemos modificar el archivo de configuración para reflejar esta realidad:

vi /var/named/chroot/etc/named.conf

y le agregamos una regla ACL para permitir únicamente hacer consultas a nuestra red y a localhost

acl "lan" {
127.0.0.1;
192.168.1.1/24;
};
options {
directory "/var/named/";
};
allow-query {
lan;
};

Luego de haberle agregado este detalle debemos comenzar a introducir las entradas para cada dominio virtual que se desee resolver, como lo hicimos con el dominio principal, por lo tanto al final tendremos algo como esto:

vi /var/named/chroot/etc/named.conf
zone "prueba.com.uy" IN {
 
type master;
 
file "zona.prueba.com.uy";
 
allow-query {lan};
 
};
 
zone "reversa.prueba.com.uy" IN {
 
type master;
 
file "1.168.192.in-addr.arpa";
 
allow-query {lan};
 
};
 
zone "intranet.com.uy" IN {
 
type master;
 
file "zona.intranet.com.uy";
 
allow-query {lan};
 
};
 
zone "webmail.com.uy" IN {
 
type master;
 
file "zona.webmail.com.uy";
 
allow-query {lan};
 
};

Para que estas entradas tengan sentido debemos tener creados esos archivo con las definiciones de cada dominio, y cada uno de ellos debe tener al menos esto:

$TTL 172800
 
@      IN      SOA       intranet.com.uy.     root.localhost. (
 
3
 
10800
 
7200
 
1296000
 
172800             )
 
;
 
IN      NS          web.prueba.com.uy.
 
www.intranet.com.uy.            IN        A          192.168.1.10
 
$TTL 172800
 
@      IN      SOA       webmail.com.uy.     root.localhost. (
 
3
 
10800
 
7200
 
1296000
 
172800             )
 
;
 
IN      NS          web.prueba.com.uy.
 
webmail.com.uy.            IN        A          192.168.1.10

Este puede ser perfectamente el caso de un servidor web con apache y dominios virtuales bajo la misma dirección IP, en el que por ejemplo podría estar una intranet y un webmail.

VN:F [1.9.8_1114]
Te gusto este post?
Rating: 0.0/10 (0 votes cast)
Leer más

Instalar Servidor de Nombres de Dominio DNS en Linux

Escrito por el 5 jun, 2009 en Linux | 10 comentarios

Este tutorial pretende mostrar la forma de instalar y configurar un sencillo servidor de nombres de dominio o DNS por sus siglas en inglés. Puede servir para una implementación de tamaño medio o pequeño. Se trata de seguir las instrucciones, copiar y modificar algunos archivos, sin tener que profundizar en el vasto mundo de los servidores de nombres.

Instalación

El proceso de instalación es bastante sencillo, simplemente deben digitar el siguiente comando y en pocos segundos estará listo, luego deben hacerse algunas modificaciones a los archivos de configuración.

yum -y install bind bind-chroot bind-utils caching-nameserver

Configuración

En Red Hat Linux y sus derivados,  por cuestiones de seguridad la instalación automáticamente crea una jaula chroot para los archivos del servicio named (DNS), es decir, que todos los archivos se encuentran en el directorio /var/named/chroot, y no en /etc, por este motivo la implementación se hace en esta distribución.

El primer paso es renombrar el archivo /var/named/chroot/named.rfc1912.zones

mv var/named/chroot/named.rfc1912.zones  var/named/chroot/named.conf

Luego debemos editarlo y agregarle los parámetros para nuestro servidor.

options {
directory "/var/named";				(nuevo directorio de trabajo)
forwarders {200.40.30.245; 200.40.220.245;}; 	(dirección de nuestro ISP)
};

Esto significa que usará el directorio /var/named que está dentro de /etc/namded/chroot como raíz, y las direcciones ip del ISP que aparecen son las que consultará cuando no sea capaz de resolver por sí mismo. En este caso son los DNS de Antel (es el proveedor de servicios en Uruguay).

zone "prueba.com.uy" IN {
type master;
file "zona.prueba.com.uy";
allow-query {any;};
};
zone "rversa.prueba.com.uy" IN {
type master;
file "1.168.192.in-addr.arpa";
allow-query {any;};
};

Estas son las definiciones de zonas que tendremos en nuestro DNS, por cada dominio que administramos o que deseamos resolver, debemos agregar la doble entrada. En cada una de estas definiciones indicamos el nombre de la zona, de qué tipo es, en este caso una zona maestra, y el nombre del archivo que tiene los parámetros de ese dominio.
Una vez que tengamos funcionado el archivo principal debemos comenzar a crear los archivos correspondientes a los dominios que necesitemos resolver.

Ejemplo del archivo zona.prueba.com.uy

$TTL 604800
@       IN       SOA    prueba.com.uy.        root.localhost. (
2009041001; serie 10-04-09
10800 ; tiempo de refresco
7200 ; reintentos de consulta
129600 ; tiempo tras el cual expira la zona
172800 ; tiempo total de vida
)
@          IN      NS                 server.prueba.com.uy
@           IN      MX      10     server.prueba.com.uy
@           IN      A      	 192.168.1.1
www     IN      A       192.168.1.1
correo  IN      A       192.168.1.1
PC-1        IN      A       192.168.1.3

En este archivo lo importante es el nombre del dominio en el registro primario SOA, y luego las definiciones de nombre del servidor NS, MX para el correo, y A que indica la dirección IP.

Este es el ejemplo el archivo de resolución inversa, que sera utilizado para responder a un pedido de dirección IP, en este caso cuando el usuario solicita por la 192.168.1.1, le saldrá la respuesta prueba.com.uy

Aqui un ejemplo del archivo

$TTL 3600
@       IN      SOA     prueba.com.uy.         root.localhost. (
2009041001 ; serie 10-04-09
28800 ; refresco
7200 ; tiempo entre reintentos
604800 ; expira la zona
86400 ; tiempo total de vida
)
@       IN      NS      server.prueba.com.uy.
1       IN      PTR     server.prueba.com.uy.
3       IN      PTR     PC-1

En este archivo lo importante es el SOA, NS, IN, y los números que se observan son los que corresponden a final de la dirección IP de los servidores o equipos que tengamos en la subred, en la que estamos resolviendo ese dominio.

Con estos parámetros básicos debería estar pronto para funcionar nuestro servidor de nombres. Luego configuramos el servicio para que inicie con el sistema y lo ponemos en funcionamiento.

chkconfig --levels 345 named on
service named start

En este momento podemos hacer una prueba desde algún equipo de la red que tenga nuestro servidor como DNS o desde el mismo servidor, este debe ser el resultado.

nslookup prueba.com.uy
 
Server:        prueba.com.uy
Address:    192.168.1.1#53
 
Non-authoritative answer:
Name:    prueba.com.uy
 
address: 192.168.1.1

Para finalizar, unas últimas configuraciones en el archivo /etc/hosts, debe tener esta linea:

127.0.0.1                 localhost.localdomain          localhost
 
192.168.1.1             server.prueba.com.uy          server

y en el archivo /etc/resolv.conf :

nameserver 192.168.1.1

Espero que el tutorial les sea de utilidad y si tienen consultas no duden en enviármelas.

Más información:

DNS en wikipedia

VN:F [1.9.8_1114]
Te gusto este post?
Rating: 2.5/10 (2 votes cast)
Leer más

Lo nuevo de Ubuntu

Escrito por el 27 abr, 2009 en Linux | 0 comentarios

Está al alcance de un clic la nueva versión de Ubuntu,  la podemos descargar gratuitamente al igual que las anteriores, esta viene con un escritorio más vistoso y atractivo que nunca, gracias a la nueva versión de gnome.

Tiene aplicaciones mejoradas, como el grabador de Dvd/Cd Brasero, que ahora se parece más a una suite integral del la talla de nero o k3b,  el cliente de correo Evolution que está cada vez más parecido al Outlook, incluyendo soporte a archivos pst.

Otras características destacables son la notoria disminución del tiempo de arranque del sistema, y la capacidad de utilizar el nuevo sistema de archivos ext4,  y la nueva versión del kernel 2.6.28.

Pero lo que más me sigue gustando de este excelente sistema operativo es su facilidad de instalación y configuración unido a un moderno entorno de trabajo, en el que contamos con todas las herramientas necesarias para sacarle el mayor provecho a nuestro equipo.

Como experiencia personal luego de probar con muchas distribuciones, y de no quedar cien por ciento conforme con el funcionamiento del PC. Porque creo que no hay nada más frustrante que las cosas no anden como se espera, o tener que arreglarlas a mano.

Solo con Ubuntu he logrado llenar mis expectativas y estar a gusto, al punto de precindir de otro sistema operativo.

Mas información:

Sitio oficial Ubuntu

VN:F [1.9.8_1114]
Te gusto este post?
Rating: 0.0/10 (0 votes cast)
Leer más

Instalar Slax Linux en tu pendrive

Escrito por el 19 abr, 2009 en Linux | 1 comentario

Slax LogoEste es un pequeño tutorial que explica cómo podemos instalar en nuestro pendrive un sistema operativo funcional y con la mayoría de las herramientas que utilizamos habitualmente, correo, explorador web y de archivos, utilidades multimedia, visor de imagenes, etc. En este caso hemos optado por la distribución linux Slax.

Slax es un sistema operativo pequeño, velóz, portable  y moderno, con un diseño modular lo cual permite extenderlo de forma fácil y rápida; éstas características lo hacen ideal para nuestros porpósitos.

A continuación indico los pasos básicos y las aclaraciones necesarias dependiendo del sistema operativo que utilicen, existen pocas diferencias en el proceso para Linux y Windows.

Como era esperado lo primero es descargar la versión para USB del sistema desde el sitio oficial de Slax. Luego necesitaremos nuestro pendrive, yo recomiendo como mínimo uno de 250mb, formateado en FAT32.

En Windows ir a “Mi PC”, visualizar nuestro pendrive y con el botón derecho sobre la unidad elegimos la opción de formatear, luego se abre una ventana en la que ponemos el sistema de archivo que utilizaremos (fat32), y el nombre del volumen, por ejemplo: “slax”. Luego presionamos el botón “iniciar” y en unos segundo la unidad esta formateada y lista para la instalación.

En Linux podemos utilizar una herramienta grafica como qparted o por línea de comandos que es el método que utilizamos en este caso.
Abrimos una consola de Shell y escribimos los siguientes comandos:

fdisk -l

 muestra como detecto el pendrive Ej. /dev/sda1

df -h

muestra donde está montado Ej. /dev/sda1 /media/disk

umount /media/disk

desmontar el pendrive, indispensable para esta tarea

df -h

asegurarnos que lo desmontamos

mkfs.vfat -F 32 /dev/sda1

formatea en FAT32

mount /dev/sda1 /media/disk

montar nuevamente

Luego queda descomprimir el paquete que bajamos, en Windows tenemos que usar un utilitario llamado  7zip mientras que en Linux con el comando:

tar -xzfv slax-6.1.1.tar

Luego debemos copiar las carpetas al pendrive, y ejecutar los utilitarios que lo hacen booteable.

En Windows ejecutamos el bootinst.bat que está en la carpeta boot, en algunos casos puede salir un mensaje de error, ignorarlo y seguir adelante con las indicaciones de las ventanas.

En Linux ejecutamos el botinst.sh que también se encuentra en la carpeta /boot, para hacerlo nos posicionamos en dicha carpeta y ejecutamos

sh bootins.sh

Cuando finalicen estos pasos básicos reiniciamos el equipo con el pendrive enchufado, y configuramos el BIOS para que inicie desde USB, luego de unos segundos tendremos el escritorio kde listo para usar.

Mas información:
Sitio Oficial Slax

VN:F [1.9.8_1114]
Te gusto este post?
Rating: 2.0/10 (1 vote cast)
Leer más