viernes, 21 de noviembre de 2008
Autenticación en Apache
El mecanismo es sencillo.
1 el cliente manda su nombre y contraseña.
2 el servidor la comprueba, en un archivo de nombres y contraseñas. Si el cliente puede acceder o no.
Para ello seguiremos los siguientes pasos:
1.Paso se crea nuestro directorio, que contendrá nuestra página web dentro de la ruta, /var/www que es la que se usa por defecto:
En nuestro caso utilizaremos:
/var/www/apache.com/index.html
2. Paso se crea una carpeta "passwd" donde se almacenan las contraseñas.
Se recomienda ponerlo en otro sitio distinto a la carpeta contiene nuestra web así que la colocaremos un nivel por encima de donde se encuentra nuestra carpeta, aunque podéis ponerla donde queráis.
En nuestro caso un nivel jerárquico por encima donde se encuentra nuestro directorio contiene la web.
/var/passwd
A continuación ahora crearemos el archivo contendrá los usuarios y contraseña, para ello aplicaremos el comando:
sudo htpasswd -c /var/passwd/ .htpasswd alumno
donde el argumento "-c" solo se utiliza al crear el primer usuario, si lo aplicaremos con sucesivos usuarios sobrescribimos el anterior perdiendo esa información.
Me pedira una contraseña, y que la vuelva a confirmar.
Para añadir posteriormente usuarios, no hará falta poner el argumento "-c".
3. Paso se crea un archivo oculto ".htaccess" dentro del directorio queremos ocultar, en nuestro caso dentro de:
/var/www/apache.com/
Este fichero debe de quedar configurado tal como muestra:
AuthType Basic
AuthName "Pagina restringida de alumno"
AuthUserFile /var/passwd/.htpasswd
Require user alumno
Como podemos observar, se configurar con unas directivas en las cuales
AuthType Basic especificamos que tipo de identificación se va a llevar a cabo, en este caso basica.
AuthName especificamos un texto descriptivo.
AuthUserFile especificamos la ruta donde se encuentra el archivos donde cortejar la contraseña introducida.
Require user especifica que entra un solo usuario, o usuarios aislado.
4. Paso una vez tenemos hecho el directorio contiene nuestra página web y el fichero oculto ".htaccess" . También tenemos creada la carpeta (passwd) contiene el fichero con las contreseñas (.htpasswd).
Debemos debemos de habilitar nuestra pagina web, para ello hay que dar de alta un hosts virtual, para ello nos vamos a la ruta:
/etc/apache2/sites-availables
Aqui dentro crearemos nuestro hosts virtual, con la novedad, de que hay que añadirle una directivas, las cuales nos permiten hacer que nuestro sitio web, haga uso del fichero ".htaccess" y quede así protegido.
Estas directivas son:
<Directory /var/www/apache.com/>
Order allow,deny
Allow from all
Directory
<Directory>
5. Paso y último, seria habilitar nuestro hosts virtual,
sudo a2ensite apache.com
Y reiniciar nuestro Servidor Apache surtan efecto los cambios.
sudo apache2ctl restart.
Hay una segunda forma que es en vez de con la directiva "Requiere user", pues sea "Requiere group", de tal forma con ello conseguimos añadir una nueva capa de seguridad, es decir si el usuario que introducimos en nuestros sitio web, no pertenece al grupo, o uno de los grupos, no podremos acceder a dicho recurso.
AuthType Basic
AuthName "Pagina restringida de alumno"
AuthUserFile /var/passwd/.htpasswd
AuthGroupFile /var/passwd/grupos
Require group team
Para ello debemos de crear, ademas una carpeta, con un fichero contendrá el
nombre del grupo, y sus usuarios
martes, 18 de noviembre de 2008
Host Virtuales en Apache2.
##################################################
##################################################
Un mismo Servidor Web, puede dar servicio a multitud de sitios web.
Para ello, se configura Apache2, para servir diferentes sitios web de 2 formas posibles.
- Host virutales basados en direcciones IP.
- Host virtuales basados en nombre (dominio).
1º Manera administrar hosts virtuales basados en dirreciones IP.
Para ello debemos de disponer de varias direcciones IP, bien podemos hacerlo con varias interfaces de red (tarjetas de red) y cada una con su dirección IP.
O bien con interfaces Virtuales.
Las interfaces virtuales se crean con el comando:
sudo ifconfig ethN:n nuevaIP netmask mascara
donde en "N" mayuscula especificamos cual es el número de nuestra tarjeta queremos hacer virtual y en "n" en número interface de red virtual vamos a crear junto con su nueva dirección de red y su mascara, si no se especifica se pone la mascara por defecto, conforme a su clase.
Se deberia de crear una interface virtual este dentro del mismo rango de red, para asi poder trabajar con ella.
Una vez tenemos creada nuestra interface de red virtual,procedemos a crear nuestro host virtual basado en IP.
Para ello crearemos y modificaremos los ficheros se encuentran en:
/etc/apache2/sites-available.
El archivo vamos a crear lo podremos nombrar como deseemos, pero se recomienda ponerle un nombre relacionado al hosts Virtual alojamos, y su contenido.
Adjuntamos en una captura de pantalla.
Donde podemos observar nuestro hosts virtual responde a la IP 192.168.1.228
Nuestro hosts virtual se llama sitio1.com
El dominio de nuestro hosts virtual es www.sitio1.com
Se encuentra almacenado en la ruta /var/www/sitio1.com
Habilitándolo con el comando: a2ensite ficheroVirtual.
En nuestro caso a2ensite sitio1.com
Ahora reiniciamos el Servidor Apache, para que los cambios surtan efecto:
sudo apacheclt restart
Para comprobar, escribimos en nuestro navegador web favorito la IP le tenemos asignada a nuestro hosts virtual y nos muestra nuestra nuestra pagina web.
Tambien podemos hacer nos muestre nuestro navegador web el dominio solicitado, solamente en nuestro pc, si modificamos nuestro archivo hosts, y especificamos que dicho Dominio, pertenece nuestra IP Virtual.
NOTA: Cuando servimos hosts, basados en IP virtuales, hay que tener en cuenta que estas direcciones IP, configuradas de esta manera, solo duran en el equipo hasta que se reinicie este, posteriormente al reinicio, no tendremos esa interface, y por consiguiente no funcionaria nuestro Servidor. Para estas interfaces sean permanentes hay que editar el fichero:
/etc/network/interfaces
2º Manera administrar hosts virtuales basados en Nombre.
Para ello procedemos de la misma manera el caso anterior:
/etc/apache2/sites-available.
Editamos el archivo default que es el primero archivo de configuración consulta nuestro Servidor Apache para mostrar paginas dentro de el, editamos la primera linea cambiando la directiva "NameVirtualhost *" cambiando el asterisco, por la dirección IP física tengamos activada.
Volvemos a crear un archivo, en el mismo directorio se encuenta nuestro fichero default pero en este caso pondremos de nombre al fichero algo descriptivo, en nuestro caso "nombre.com"
A continuación nos vamos al directorio: /var/www
dentro del cual, crearemos la carpeta con el mismo nombre especificamos en el fichero del caso anterior.
Entonces seria
cd /var/www sudo mkdir nombre.com
y dentro de esta carpeta crear nuestro documento html, por defecto cargara los que comiencen por index.html.
Para hacer empiece por el nombre de inicio, queramos, hay que editar de nuevo el archivo "default" se encuentra dentro de: /etc/apache2/sites-availables
En el añadiremos justo debajo de la primera linea, otra directiva, que afecta a todos los directorios Virtuales.
En este caso la directiva DirectoryIndex seguida de los nombres queremos darle a los nombres de inicio de nuestros sites, tener claro empieza a buscarlos por orden intruducimos los nombres.
A continuación habilitamos nuestro site, de igual manera que los basados en IP, con el comando.
Habilitándolo con el comando: a2ensite ficheroVirtual.
En nuestro caso a2ensite nombre.com
Ahora reiniciamos el Servidor Apache, para que los cambios surtan efecto:
sudo apacheclt restart
Ahora bastaria con poner nuestra dirección IP y nos muestraria el contenido de nuestro site.
Pero tambien podemos hacer nuestro navegador responda a nuestro dominio, volviendo a editar, el fichero /etc/hosts
En el cual añadimos la IP este a la escucha nuestro servidor Apache, y el nombre dominio a resolver.
viernes, 7 de noviembre de 2008
Tutorial Apache
Desde un terminal:
sudo aptitude install apache2-mpm-prefork
Desde el Synaptic:
Buscamos “apache2” (sin las comillas).
Seleccionamos el paquete apache2-mpm-prefork.
Pulsamos sobre Aplicar.
En cualquiera de los dos casos se instalarán más paquetes como por ejemplo el apache2.2-common.
Una vez instalado el servidor disponemos de un script que nos permite controlar su estado, se trata de apache2ctl.
Para iniciar el servidor web tenemos que ejecutar el siguiente comando:
apache2ctl start
Para comprobar que funciona, podemos teclear la siguiente dirección en el navegador:
http://localhost
Al iniciar el servidor en Ubuntu, nos aparecerá el siguiente mensaje:
"apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName"
Si se añade una línea con ServerName localhost en el fichero apache2.conf, se elimina el mensaje.
sudo gedit /etc/apache2/apache2.conf
Ahora una vez tenemos instalado nuestro Apache, podemos entrar desde un navegador web, introduciendo localhost, o bien modificar el fichero:
/etc/hosts
Donde añadiremos el nombre dominio, queremos entrar nuestro propio equipo, que es donde esta instalado nuestro Servidor Web.
Así bastara la próxima vez con poner nuestro dominio "www.tutorialapache.com" en un navegador web.
Permitir los acentos en las páginas de nuestra web:
Para permitir los acentos en nuestras páginas,
debemos asegurarnos que la siguiente línea:
#AddDefaultCharset UTF-8
aparezca descomentada (sin #) en el archivo
/etc/apache2/conf.d/charset.
Y dentro de nuestro hmtl, la etiqueta dentro del head
<meta http equiv="Content-Type" content="text/html; charset=utf-8">
Una vez tenemos echo todo esto, la pagina que carga por defecto se encuentra:
/var/www/index.html
Tanto para editar el directorio donde se alojan nuestras páginas web por defecto en nuestro Servidor de páginas Web Apache, como para cambiar la prioridad de carga de distintos nombres inicio de página, editaremos el fichero.
/etc/apache2/sites-available/default
Por defecto los páginas se alogan donde especifica la directiva "DocumentRoot", es decir /var/www solo tendriamos cambiar este directorio a otro quisieramos en este caso lo dejaremos como esta.
Si queremos cambiar la prioridad, según el nombre de archivo queramos cambiar, se puede añadiendo la directiva:
DirectoryIndex inicio.html index.html index.php
seguida de la lista, de nombres por prioridad queremos nuestro servidor busque a la hora de mostrar nuestra página web.
viernes, 24 de octubre de 2008
CREAR UN SERVIDOR ESCLAVO, CON BIND9.
Accedemos en el menu de la izquierda a Servidores, dentro de este en Servidor de DNS BIND, y en la derecha hacemos click en crear una nueva zona subordinada.
Introducimos el nombre del Servidor de DNS Maestro, queremos utilizar y su dirección IP donde se ubica, y hacemos click en crear.
Ahora vemos, como se ha creado "periko.com", esta resaltado en verde, hacemos click en detener Servidor de Nombres, y a continuación en Arrancar Servidor de Nombres.
Ahora podemos ver como haciendo click en nuestro Servidor de DNS subordinado, podemos ver como ya tenemos un Servidor de Nombres y 2 direcciones.
jueves, 16 de octubre de 2008
INSTALACIÓN SERVIDOR MAESTRO, EN UN EQUIPO CON UBUNTU, Y BIND9
¿Qué es Bind9? pues es un Servidor de DNS, de los mas usados en plataforma Linux. Para ello tenemos varias formas bien:
- Desde un terminal: sudo aptitude install bind9 bind9-doc
- Desde el Synaptic: buscamos Bind en la casilla, seleccionamos los paquetes bind9 y bind9-doc, a continuación hacemos click sobre aplicar.
Sus ficheros de configuración se encuentran en: /etc/bind
donde podemos encontrar:
- named.conf --> que es el fichero principal de configuración.
- named.conf.options --> opciones genéricas.
- named.conf.local --> especificación local de éste servidor DNS, sera el archivo que nos hará falta editar para configurar, nuestro Servidor de DNS Maestro.
A continuación lo siguiente sera decirle a nuestro equipo que consulte las peticiones de resolución de nombres de dominio, primero en su propio Servidor de DNS Maestro, para ello hay que editar el fichero /etc/resolv.conf y añadir una primera línea, justo encima de las antiguas si las hubieran que apuntan a otros Servidores de DNS, ya que empieza la búsqueda por el primero, y si no lo resuelve pasa al siguiente, para ello hay que añadir una línea nameserver y al lado la direccion del Servidor, es decir su IP (nuestro caso bien ponemos la de de loopback el dispositivo de red loopback es un interfaz de red virtual que siempre representa al propio dispositivo independientemente de la dirección IP que se le haya asignado. El valor en IPv4 es "127.0.0.1" y "::1" para el caso de IPv6. Se utiliza en tareas de diagnóstico de conectividad y validez del protocolo de comunicación, así como para indicar que el destino del puntero o URL es el mismo host o dirección de cable "0.0.0.0" recomendándose esta última, para evitar confundirla).
Por defecto, al instalar Bind esta configurado como Servidor Caché DNS.
Por lo que para hacer funcionar Bind como un Servidor Maestro de DNS, debemos crear un fichero, contenga en nombre del dominio estamos creando, registro de recursos, nombre de nuestro Equipo, y una dirección de correo electrónico para mandar mensajes al Administrador del Servidor. Este fichero le podemos guardar y poner el nombre que queramos, se recomienda poner poner dentro del directorio: /etc/bind/nombredearchivo.
A continuación se vera un captura pantalla de como se debe de quedar configurado dicho archivo con nuestras características como el nombre dominio, registro recursos, dirección equipos, dirección de correo, etc...
Por favor gastar mucho cuidado con las datos introducidos por favor comprobar son correctos y no olvidéis poner un punto, al final de nombre del dominio, dirección de correo, y direcciones completas los equipos queremos resolver.
- A (Address). Es el registro más usado, que define una dirección IP y el nombre asignado al host. Generalmente existen varios en un dominio.
- MX (Mail eXchanger). Se usa para identificar servidores de correo, se pueden definir dos o más servidores de correo para un dominio, siendo que el orden implica su prioridad. Debe haber al menos uno para un dominio.
- CNAME (Canonical Name). Es un alias que se asigna a un host que tiene una dirección IP valida y que responde a diversos nombres. Pueden declararse varios para un host.
- NS (Name Server). Define los servidores de nombre principales de un dominio. Debe haber al menos uno y pueden declararse varios para un dominio.
- SOA (Start Of Authority). Este es el primer registro de la zona y sólo puede haber uno en cada archivo de la zona y sólo está presente si el servidor es autoritario del dominio. Especifica el servidor DNS primario del dominio, la cuenta de correo del administrador y tiempo de refresco de los servidores secundarios.
Una vez tenemos creado y configurado nuestro fichero, debemos ir al fichero de configuración:
/etc/bind/named.conf.local
en él especificar la zona, en este caso "iesmarquesdecomares.com", el tipo, en este caso "master" es decir maestro, he añadir dentro la ruta del archivo hemos creado "/etc/bind/iesmarquesdecomares.host".
Ahora reiniciamos el Bind.
Para arrancar, parar, reiniciar el servicio Bind, tecleamos en la consola el comando:
para arrancar --> /etc/init.d/bind9 start
para reiniciar --> /etc/init.d/bind9 restart
para parar --> /etc/init.d/bind9 stop
El proceso que lanza /etc/init.d/bind9 start --> es named.
Una vez instalado Bind9, configurado y arrancado podemos comprobar funciona nuestro servidor de DNS Maestro, haciendo un dig a un FQHN, nuestro Servidor Maestro DNS, nos respóndera con su correspondiente IP.
-.dig (Domain Information Groper) es un comando permite realizar consultas a los servidores DNS, por lo que es muy útil para comprobar si el DNS está correctamente configurado en nuestra máquina. Permite comprobar tanto el mapeo de nombres a IPs como el mapeo inverso de IPs a nombres, pero sólo sirve para Internet, ya que no mira en /etc/hosts (sólo utiliza /etc/resolv.conf).
-.FQHN (nombre completo de un equipo, esta formado por el hostname, seguido de un punto y su correspondiente dominio).
Hay podemos observar como ante la pregunta de resolución del nombre de dominio completo "pc01.iesmarquesdecomares.com", nos ha respondido el servidor "127.0.0.1", o lo que es lo mismo nuestra propia maquina a traves de su dirección Loopback, resolviendo que a ese equipo le pertenece la IP "192.168.2.10", podemos comprobar que funciona observando que en la consulta ha tardado 2 msec.
miércoles, 15 de octubre de 2008
INSTALACION SERVIDOR DNS MAESTRO CON WEBMIN.
Lo primero es decirle a nuestro equipo que el va hacer nuestro Servidor de DNS, para ello hay que ir a editar el fichero resolv.conf, que es el encargado de gestionar la resolución de nombres de dominio, se encuentra en /etc para ello abrimos una consola, y ponemos lo siguiente
sudo gedit /etc/resolv.conf &
Con ello conseguimos primero abrir el fichero con poderes de root (administrador), con lo cual podremos modificar el fichero, una vez dentro hay que cambiar la línea nameserver que es la dirección en la cual va a ser nuestro servidor de DNS, bien podemos poner 127.0.0.1 o bien 0.0.0.0 en la primera linea que sera el primer DNS donde buscara. Recomendándose esta última ya que así no abra ninguna confusión ni posteriores problemas, guardamos y le damos a salir.
En mi caso en vez de borrar la dirección ya tenia, le he puesto una # delante que significa que es un solo comentario, no se procesa.
Posteriormente se puede añadir otra linea, es decir otro servidor de DNS, para aquellas consultas que nuestra maquina, no pueda resolver.
A continuación desde una consola escribimos:
sudo firefox &
Con ello abriremos el navegador Web por defecto en Ubuntu, que es el Firefox. En este navegador para abrir el Webmin, hemos de introducir la dirección de nuestra maquina y su puerto. Por defecto la dirección es:
https://localhost:10000/ .
Se nos pide un usuario y una clave, normalmente se entra la primera vez con el nombre y contraseña de root, posteriormente podremos cambiar tanto el nombre usuario, contraseña, y puerto por defecto.
Una vez loqueados, entraremos en el Sistema, donde podremos ir a la pestaña de la izquierda Webmin y podemos cambiar el idioma al nuestro en nuestro caso al castellano, como ya hemos hecho en este caso.
Una vez conseguido este paso procederemos a la creación del Servidor Maestro de DNS, para ello vamos a la pestaña de la izquierda seleccionamos Servidores, a continuación Servidor de DNS BIND.
Crear una nueva zona maestra.
Rellenaremos los campos de Nombre de Dominio/Red, con un nombre ficticio para nuestra red interna, así conseguiremos tener un nombre todos los equipos en la red, en este caso el dominio es mimundo.com, continuamos rellenado la Dirección de Correo, y a continuación damos a crear.
Como podemos observar en nuestra zona maestra ya tenemos configurado un Servidor de Nombres, ahora nos falta añadir los nombres de equipo y su equivalente de dirección IP.
Como podéis observar ya tenemos dos Direcciones incluidas, en mi ejemplo he puesto direcciones privadas de clase B.
Ahora arrancaremos el Servidor de Nombres.
Una vez arrancado comprobaremos que funciona abriendo una consola y haciendo un dig a un equipo del dominio, con lo que nos deberá devolver su correspondiente IP.
1.- BIND (Berkeley Internet Name Domain, anteriormente: Berkeley Internet Name Daemon) es el servidor de DNS más comúnmente usado en Internet, especialmente en sistemas Unix, en los cuales es un Estándar de facto. Es patrocinado por la Internet Systems Consortium. BIND fue creado originalmente por cuatro estudiantes de grado en la University Of. California, Berkeley y liberado por primera vez en el 4.3BSD. Paúl Vixie comenzó a mantenerlo en 1988 mientras trabajaba para la DEC.
Una nueva versión de BIND (BIND 9) fue escrita desde cero en parte para superar las dificultades arquitectónicas presentes anteriormente para auditar el código en las primeras versiones de BIND, y también para incorporar DNSSEC (DNS Security Extensions). BIND 9 incluye entre otras características importantes: TSIG, notificación DNS, nsupdate, IPv6, rndc flush, vistas, procesamiento en paralelo, y una arquitectura mejorada en cuanto a portabilidad. Es comúnmente usado en sistemas Linux.
2.- Webmin es una herramienta de configuración de sistemas accesible vía Web para OpenSolaris, GNU/Linux y otros sistemas Unix. Con el se pueden configurar aspectos internos de muchos sistemas operativos, como usuarios, cuotas de espacio, servicios, archivos de configuración, apagado del equipo, etcétera, así como modificar y controlar muchas aplicaciones open source, como el servidor Web Apache, PHP, MySQL, DNS, Samba, DHCP, entre otros.
Webmin está escrito en Perl, versión 5, ejecutándose como su propio proceso y servidor Web. Por defecto se comunica a través del puerto TCP 10000, y puede ser configurado para usar SSL si OpenSSL está instalado con módulos de Perl adicionales requeridos.
Está construido a partir de módulos, los cuales tienen una interfaz a los archivos de configuración y el servidor Webmin. Esto hace fácil la adición de nuevas funcionalidades sin mucho esfuerzo. Debido al diseño modular de Webmin, es posible para cualquier interesado escribir extensiones para configuración de escritorio.
Webmin también permite controlar varias máquinas a través de una interfaz simple, o iniciar sesión en otros servidores webmin de la misma subred o red de área local.
Codificado por el australiano Jamie Cameron, Webmin está liberado bajo Licencia BSD. Existe también Usermin que es la versión reducida del Webmin.
Definiciones sacadas de Wikipedia
Nota importante: la Fundación Wikipedia no es titular de los derechos de autor sobre los textos de los artículos o ilustraciones en Wikipedia. Por lo tanto, son inútiles las solicitudes enviadas al correo electrónico u otros medios de contacto de la Fundación, pidiendo autorización para reproducir tales contenidos. La autorización de uso y reproducción, en virtud de la licencia y condiciones técnicas aplicables a Wikipedia, está garantizada para todos, sin necesidad de solicitud especial; para pedir autorización de uso fuera de tales términos y condiciones, debe contactar a todos los autores voluntarios del texto o ilustración de que se trate.