lunes, 6 de agosto de 2007

Linux sistema de vigilancia
Autor: www.liberaliatempus.com


Contratar un sistema comercial de vigilancia que contemple la grabación en video supone, por regla general, un desembolso de dinero elevado, bien por el precio de la maquinaria y la instalación, bien porque la empresa instaladora sólo trabaja mediante contratos de mantenimiento que valen más de lo debido. Si bien ese tipo de sistemas comerciales pueden ser imprescindibles en entornos concretos, son muchas las ocasiones en las que contratar el servicio, aún siendo necesario, escapa por completo al presupuesto disponible. Vamos a estudiar en este artículo cómo crear un sistema de video-vigilancia adaptable a casi cualquier presupuesto.

Preliminares

Instalaremos nuestro sistema de vigilancia en un piso con una superficie de ochenta metros cuadrados con un aspecto en plano similar a este:

Nos interesa tener vigilado el paso por un lugar concreto del pasillo de entrada a la vivienda, así que dispondremos una instalación basada en una cámara que abarque toda esa zona. Para nuestros propósitos, es necesario tener a nuestra disposición una webcam y un ordenador PC. Este artículo se ha escrito haciendo las pruebas con el siguiente equipamiento:

  • Cámara webcam Logitech Quickcam Zoom, que llega a grabar a una velocidad de 30 fps, a una resolución de 640 por 480 píxeles. Se conecta al PC mediante el interfaz USB y se puede conseguir de segunda mano por menos de treinta euros .
  • PC Pentium III 1.100 Mhz. con 512 MB de memoria RAM, un disco duro de 70 GB y una tarjeta gráfica SiS con 64 MB de RAM integrada en la placa base.
  • Monitor VGA CRT de 15 pulgadas.
  • Sistema operativo linux Ubuntu Dapper Drake.
  • Servidor Web Apache.
  • Programa Motion con la extensión Motion.cgi.

A priori, el coste de todo el material no debería sobrepasar los cien euros si sabemos bien dónde buscar todas las piezas.


Instalación del hardware

La instalación de la cámara la haremos siguiendo el esquema anterior, donde se muestra la disposición que nos interesa. Colocaremos el dispositivo en la parte media de la pared y haremos un pequeño taladro para poder pasar el cable USB hasta la habitación donde va a quedar colocado el PC. En nuestro caso, hemos tenido que usar un pequeño alargador adicional USB de un metro y medio que ha permitido bajar el cableado por un lugar no visible. La cámara no necesita alimentación adicional, así que, una vez colocada y enchufada al PC, habrá terminado nuestro trabajo y quedaremos a la espera de tener la imágen capturada para calibrar la posición como es debido.


Instalación del software

Existen multitud de sistemas de software adaptados a la video-vigilancia que funcionan bajo entornos linux. Por ejemplo, el software "Devolution Security System" (http://devsec.sourceforge.net/), nos permite disponer de una aplicación semi-profesional orientada a la vigilancia. Permite el control de hasta dieciséis cámaras, detecta movimiento, graba secuencias de video en mpeg4, emite video hacia la red local o hacia internet, etc. Algo más de lo que nosotros andamos buscando, pero que nos puede dar una idea de las capacidades de adaptación de nuestro sistema a un coste realmente bajo.

El software elegido para la aplicación de nuestro proyecto se llama Motion (http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome), un programa de deteccción de movimiento creado por Kenneth Jahn Lavrsen. Motion orienta su funcionamiento hacia cámaras de tipo V4L (generalmente webcams) y su operativa es relativamente sencilla: el programa captura imágenes desde el dispositivo y las compara. Si la imagen actual difiere de la anterior en un número de píxeles configurable, queda almacenada en el disco, teniendo la posibilidad de que el programa genere una película de video a partir de una serie de imágenes fijas. Además de almacenar la imagen o generar un video, el programa es capaz de emitir un sonido de alerta cuando se produzca el evento. Podemos motitorizar las acciones y el funcionamiento del programa mediante una interfaz web accesible desde cualquier ordenador con una conexión a internet, lo que hace que el control sobre el programa de detección sea total.

La instalación del software se puede hacer desde los paquetes pre-compilados (en la página web se pueden descargar versiones para las distribuciones más importantes) o desde la compilación directa del código fuente, que se ofrece en un archivo comprimido. Para una instalación sobre Ubuntu, elegiremos para la instalación la herramienta apt-get, que nos evitará tener que andar buscando las distintas dependencias (para otras distribuciones, habrá que descargar el paquete de la página web y atender a las dependencias):

[root@ubuntu02 ~]# apt-get install motion

Tras la instalación del programa principal, descargaremos e instalaremos el scriptscript nos permitirá acceder al programa Motion a través de un navegador web y nos permitirá repasar, modificar o borrar las diferentes capturas de pantalla y los videos. Para la instalación del programa, descomprimiremos el contenido del archivo en el directorio de publicación de Apache (/var/www/ en Ubuntu) y copiaremos el fichero motion.cgi.conf en la rama de configuraciópn /etc. Motion.cgi. Este

[root@ubuntu02 ~]# tar xvzf motion.cgi-0.1.tar.gz
[root@ubuntu02 ~]# cp motion.cgi-0.1/motion.cgi.conf /etc/

Una vez hecho esto, tendremos que modificar unas lineas del archivo de configuración general de Apache (http.conf) que nos permita la ejecución de los archivos cgi incluidos con el script. Buscaremos las siguientes directivas en el archivo de configuración y las adaptaremos a nuestro caso particular. Si no existen dichas directivas, las crearemos (con estas directivas se permite la ejecución de archivos cgi fuera de la directiva configurada en ScriptAlias, ya que suponemos que nuestro sistema no se está instalando en un entorno de producción) :

# 1ª directiva

AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all


# 2ª directiva
AddHandler cgi-script cgi pl

Para terminar, y como nuestra intención es grabar secuencias de video, necesitaremos algún codificador de MPEG instalado en el sistema. El autor de este artículo se decanta por ffmpeg, ya que proporciona soporte directo para Motion.

[root@ubuntu02 ~]# apt-get install ffmpeg

El resto de la configuración de Apache puede quedar tal y como se ofrece por defecto, así que con este último paso quedará instalado todo el programa y sólo nos faltará adaptar la configuración a nuestro caso particular.


Configuración del sistema

Aunque en primer lugar deberíamos atender a la configuración de nuestra cámara, esto no será necesario, pues el modelo expuesto es reconocido de forma totalmente automática por nuestro sistema. Si estamos haciendo la instalación con otro modelo de cámara, lo primero que tendremos que hacer es comprobar que el sistema la reconoce de forma adecuada. Para hacer esto, simplemente cargaremos una aplicación tipo Camorama (http://camorama.fixedgear.org/) y comprobaremos que la cámara funciona de forma adecuada y expone correctamente los colores.

El programa Motion lee su configuración del archivo /etc/motion/motion.conf. La lista de opciones de configuración es bastante extensa, así que conviene abrir la página del manual (man motion) y leer la sección relativa a las opciones de configuración. Para hacer nuestras primeras pruebas, atenderemos especialmente a siguientes opciones: target_dir, que establece la ruta dónde se guardarán las imágenes o el video; videodevice, que especifica el dispositivo de video a usar (/dev/video0 para la cámara web); width y height, que establecen el tamaño de grabación de las imágenes (lo dejaremos en 320 y 240 para empezar); framerate, que especifica los frames a capturar por segundo (para la cámara propuesta podemos establecer 25 sin problema); threshold, que le indica al programa qué número de píxeles deben ser distintos a la imagen anterior para que se detecte un cambio (con 1500 es más que suficiente para detectar el movimiento de una persona, pero lo reduciremos si el movimiento a detectar es de algo más pequeño); ffmpeg_cap_new on especifica que grabará películas en tiempo real. Dejaremos el resto de opciones en su valor por defecto o bien atenderemos a las distintas explicaciones que nos ofrece el archivo de configuración de ejemplo que viene junto al programa

Por su parte, el script motion.cgi se ejecuta mediante la lectura del archivo /etc/motion.cgi.conf. Dicho archivo sólo contiene en su interior cinco parámetros que dejaremos de la siguiente forma:

SOURCE=webcam=webcam-live.cgi
IMAGEDIR=images
ABSOLUTEPATH=/var/www/motion.cgi-0.1/
RELATIVEPATH=/motion/
MOTIONBIN=/usr/bin/

Con los cambios adicionales que deseemos aplicar al archivo /etc/motion/motion.conf y el script motion.cgi configurado podemos pasar a la ejecución del programa.


Puesta en marcha

Accederemos al interfaz mediante la dirección http:///motion.cgi-0.1/ y cargaremos de esta forma el script motion.cgi, el cual nos permitirá un control casi total del programa. Como podemos observar, el funcionamiento es bastante sencillo: Las dos primeras opciones nos permiten listar las fuentes disponibles de nuestro dispositivo: Tree muestra un árbol en la parte superior con las imágenes y los videos capturados y Live muestra la captura en tiempo real de la webcam. Con Start/Stop Motion iniciaremos o pararemos el programa. Con las tres opciones siguientes obtendremos el estado del programa y forzaremos la captura de una imagen o un video. Una vez en funcionamiento, el aspecto de nuestro interfaz podría parecerse a esto:


Conclusiones

Tal y como hemos podido observar, el montaje de un sistema de video-vigilancia no tiene que suponer el desembolso de grandes cantidades de dinero. Con un poco de imaginación y algo de atención, podemos montarnos un sistema semi-profesional que permitirá tener vigiladas ciertas zonas de interés. El programa Motion tiene una capacidad tremenda para convertir dicho sistema en algo que va más allá de lo casero, pero eso ya queda al arbitrio del interés que pueda tener el lector de adentrarse en los entresijos del programa. Nosotros hemos cumplido con nuestro propósito, que era demostrar la implantación de un sistema casero de video-vigilancia con herramientas de software libre y material de bajo coste.

FTP Server HOWTO RHEL 5


FTP Server HOWTO Red Hat Enterprise Linux 5
Autor: Cristhian Nunez

Introducción.

Acerca del protocolo FTP.
FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o ficheros informáticos) es
uno de los protocolos estándar más utilizados en Internet siendo el más idóneo para la transferencia
de grandes bloques de datos a través de redes que soporten TCP/IP. El servicio utiliza los puertos 20
y 21, exclusivamente sobre TCP. El puerto 20 es utilizado para el flujo de datos entre cliente y
servidor. El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor.
Prácticamente todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que
permite que cualquier computadora conectada a una red basada sobre TCP/IP pueda hacer uso de
este servicio a través de un cliente FTP.

Acerca de vsftpd.
Vsftpd (Very Secure FTP Daemon) es un equipamiento lógico utilizado para implementar
servidores de archivos a través del protocolo FTP. Se distingue principalmente porque sus valores
predeterminados son muy seguros y por su sencillez en la configuración, comparado con otras
alternativas como ProFTPD y Wu-ftpd. Actualmente se presume que vsftpd es quizá el servidor FTP
más seguro del mundo.

Tipos de Conexiones FTP
Activa
La secuencia es la siguiente:
El cliente se conecta al servidor por el puerto 21

Cuando el cliente realiza la solicitud de transferencia el servidor hace una conexion por el puerto

20 para la transferencia a un puerto del cliente por encima del 1024
Pasiva
El cliente se conecta al servidor ftp por el puerto 21

Cuando el cliente realiza la solicitud, el cliente inicia la transferencia saliendo por un puerto

encima del 1024 y llegando al servidor por otro puerto encima del 1024.

Instalación a través de yum.
yum -y install vsftpd

Ficheros de configuración.
/etc/vsftpd.user_list Lista que definirá usuarios a enjaular o no a enjaular, dependiendo
de la configuración.
/etc/vsftpd/vsftpd.conf Fichero de configuración.

Procedimientos.
Utilice un editor de texto y modifique el fichero /etc/vsftpd/vsftpd.conf. A continuación
analizaremos los parámetros a modificar o añadir, según se requiera para necesidades particulares.

Parámetro anonymous_enable.
Se utiliza para definir si se permitirán los accesos anónimos al servidor. Establezca como valor YES o
NO de acuerdo a lo que se requiera.
anonymous_enable=YES
Parámetro local_enable.
Es particularmente interesante si se combina con la función de jaula (chroot). Establece si se van a
permitir los accesos autenticados de los usuarios locales del sistema. Establezca como valor YES o
NO de acuerdo a lo que se requiera.
local_enable=YES
Parámetro write_enable.
Establece si se permite el mandato write (escritura) en el servidor. Establezca como valor YES o NO
de acuerdo a lo que se requiera.
write_enable=YES
Parámetro ftpd_banner.
Este parámetro sirve para establecer el banderín de bienvenida que será mostrado cada vez que un
usuario acceda al servidor. Puede establecerse cualquier frase breve que considere conveniente.
ftpd_banner=Bienvenido al servidor FTP de Codigo Libre
Estableciendo jaulas para los usuarios: parámetros chroot_local_user y chroot_list_file.
De modo predeterminado los usuarios del sistema que se autentiquen tendrán acceso a otros
directorios del sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder
utilizar su propio directorio personal, puede hacerse fácilmente con el parámetro chroot_local_user
que habilitará la función de chroot() y los parámetros chroot_list_enable y chroot_list_file para
establecer el fichero con la lista de usuarios que quedarán excluidos de la función chroot().
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendrá acceso a
su propio directorio personal y lo que este contenga. No olvide crear el fichero
/etc/vsftpd/vsftpd.chroot_list, ya que de otro modo no arrancará el servicio vsftpd.
touch /etc/vsftpd/vsftpd.chroot_list
Control del ancho de banda.
Parámetro anon_max_rate.
Se utiliza para limitar la tasa de transferencia en bytes por segundo para los usuarios anónimos,
algo sumamente útil en servidores FTP de acceso público. En el siguiente ejemplo se limita la tasa
de transferencia a 5 Kb por segundo para los usuarios anónimos:
anon_max_rate=5120
Parámetro local_max_rate.
Hace lo mismo que anon_max_rate, pero aplica para usuarios locales del servidor. En el siguiente
ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios locales:
local_max_rate=5120
Parámetro max_clients.
Establece el número máximo de clientes que podrán acceder simultáneamente hacia el servidor FTP.
En el siguiente ejemplo se limitará el acceso a 5 clientes simultáneos.
max_clients=5
Parámetro max_per_ip.
Establece el número máximo de conexiones que se pueden realizar desde una misma dirección IP.
Tome en cuenta que algunas redes acceden a través de un servidor intermediario (Proxy) o puerta
de enlace y debido a esto podrían quedar bloqueados innecesariamente algunos accesos. en el
siguiente ejemplo se limita el número de conexiones por IP simultáneas a 5.
max_per_ip=5
Iniciar, detener y reiniciar el servicio vsftpd.
A diferencia de otros servicios FTP como Wu-ftpd, el servicio vsftpd no requiere configurarse para
trabajar sobre demanda, aunque tiene dicha capacidad. Por lo tanto no depende de servicio xinetd.
La versión incluida en distribuciones como CentOS 4, Red HatTM Enterprise Linux 4 y White Box
Enterprise Linux 4 puede iniciar, detenerse o reiniciar a través de un guión similar a los del resto del
sistema.
Para iniciar por primera vez el servicio, utilice:
service vsftpd start
Para hacer que los cambios hechos a la configuración surtan efecto, utilice:
service vsftpd restart
Para detener el servicio, utilice:
service vsftpd stop
Agregar el servicio al arranque del sistema.
Para hacer que el servicio de vsftpd esté activo con el siguiente inicio del sistema, en todos los
niveles de corrida (2, 3, 4, y 5), se utiliza lo siguiente:
chkconfig vsftpd on

Usuarios Enjaulados
Un usuario enjaulado es aquel que ve su home user como si fuera la /. Por ejemplo, Si tengo un
servidor FTP corriendo con la opcion usuarios enjaulados habilitada “chroot_local_user=YES” si yo
me quiero conectar como pepito al servidor, asumiendo que el usuario pepito tiene la ruta de su
home en /home/pepito. Cuando este se conecte via FTP le saldra que su directorio / es en realidad
/home/pepito.
Esta medida es muy utilizada para evitar que los usuarios naveguen a traves del sistema de
archivos del servidor.
Creamos el archivo definido en la opcion “chroot_list_file=/etc/vsftpd/vsftpd.chroot_list”
vi /etc/vsftpd/vsftpd.chroot_list
Luego agregamos todos los usuarios que queremos enjaular. Por ejemplo pepito y reiniciamos el
sistema
Ahora cuando pepito se conecte via ftp vera cuando ejecute pwd que el directorio actual donde se
encuentre sera /, sin embargo en realidad estara conectado a su home user /home/pepito.

Bibliografia
www.alcancelibre.org
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch15_:_Linux_FTP_Server_Set
up

DHCP Server HOWTO RHEL 5

DHCP Server Howto Red Hat Enterprise 5
Autor: Cristhian Nunez
Introducción.

Acerca del protocolo DHCP.

DHCP (acrónimo de Dynamic Host Configuration Protocol que se traduce Protocolo de configuración
dinámica de servidores) es un protocolo que permite a dispositivos individuales en una red de
direcciones IP obtener su propia información de configuración de red (dirección IP; máscara de sub-
red, puerta de enlace, etc.) a partir de un servidor DHCP.
Sin la ayuda de un servidor DHCP, tendrían que configurarse de forma manual cada dirección IP de
cada anfitrión que pertenezca a una Red de Área Local. Si un anfitrión se traslada hacia otra
ubicación donde existe otra Red de Área Local, se tendrá que configurar otra dirección IP diferente
para poder unirse a esta nueva Red de Área Local. Un servidor DHCP entonces supervisa y
distribuye las direcciones IP de una Red de Área Local asignando una dirección IP a cada anfitrión
que se una a la Red de Área Local. Cuando, por mencionar un ejemplo, una computadora portátil se
configura para utilizar DHCP, a ésta le será asignada una dirección IP y otros parámetros de red
necesarios para unirse a cada Red de Área Local donde se localice.
Existen tres métodos de asignación en el protocolo DHCP:
• Asignación manual: La asignación utiliza una tabla con direcciones MAC
(acrónimo de Media Access Control Address, que se traduce como dirección de
Control de Acceso al Medio). Sólo los anfitriones con una dirección MAC definida
en dicha tabla recibirá el IP asignada en la misma tabla. Ésto se hace a través de
los parámetros hardware ethernet y fixed-address.
• Asignación automática: Una dirección de IP disponible dentro de un rango
determinado se asigna permanentemente al anfitrión que la requiera.
• Asignación dinámica: Se determina arbitrariamente un rango de direcciones IP
y cada anfitrión conectado a la red está configurada para solicitar su dirección IP
al servidor cuando se inicia el dispositivo de red, utilizando un intervalo de
tiempo controlable (parámetros default-lease-time y max-lease-time) de
modo que las direcciones IP no son permanentes y se reutilizan de forma
dinámica.
Acerca de dhcp por Internet Software Consortium, Inc.
Fundado en 1994, Internet Software Consortium, Inc., distribuye un conjunto de herramientas para el
protocolo DHCP, las cuales consisten en:
• Servidor DHCP
• Cliente DHCP
• Agente de retransmisión.
Dichas herramientas utilizan un API (Application Programming Interface o Interfaz de Programación
de Aplicaciones) modular diseñado para ser lo suficientemente general para ser utilizado con
facilidad en los sistemas operativos que cumplen el estándar POSIX (Portable Operating System
Interface for UNIX o interfaz portable de sistema operativo para Unix) y no-POSIX, como Windows.

Instalación a través de yum.
yum -y install dhcp

Procedimientos.
Fichero de configuración /etc/dhcpd.conf.
Considerando como ejemplo que se tiene una red local con las siguientes características:
• Número de red 192.168.1.0
• Máscara de sub-red: 255.255.255.0
• Puerta de enlace: 192.168.1.1
• Servidor de nombres: 192.168.1.1
• Servidor Wins: 192.168.0.1
• Servidores de tiempo (NTP): 0.pool.ntp.org, 1.pool.ntp.org y 2.pool.ntp.org
• Rango de direcciones IP a asignar de modo dinámico: 192.168.1.11-
192.168.1.199
• Dos direcciones IP se asignarán como fijas (192.168.0.253 y 192.168.0.254) para
las tarjetas de red con direcciones MAC (Media Access Control o Control de
Acceso de Medios) 00:50:BF:27:1C:1C y 00:01:03:DC:67:23.
NOTA: Es indispensable conocer y entender perfectamente todo lo anterior para
poder continuar con este documento.

Puede utilizar el siguiente contenido de ejemplo para adaptar y crear desde cero un nuevo
fichero /etc/dhcpd.conf que se ajuste a una red y conjunto de sistemas en particular.
ddns-domainname "onemax.local";
ddns-update-style interim;
option domain-name-servers 192.168.1.15,192.168.1.12;
default-lease-time 18000;
max-lease-time 25200;
option routers 192.168.1.1;
option subnet-mask 255.0.0.0;
option domain-name "onemax.local";
option ntp-servers 192.168.1.12;
subnet 192.168.1.0 netmask 255.0.0.0 {
range 192.168.1.50 192.168.1.230;
}
Detalles;
- option domain-name-servers Envia a los clientes los DNS por defectos a ser utilizados
- default-lease-time 18000; Es el tiempo por defecto que un cliente puede permanecer con una
direccion ip. El cliente deja libre esta direccion y trata de adquirir una nueva. El tiempo es expresado
en segundos.
- max-lease-time 25200; Este es el tiempo maximo permitido por el Servidor para que la ip sea
liberada. Puede darse el caso que el computador no este encendido cuando se cumpla el default-
lease-time por lo que el servidor le da otro periodo de tiempo antes de asignarsela a otro equipo
- option routers 192.168.1.1; Esta es la opcion del default gw enviada a los clientes.
- option subnet-mask 255.0.0.0; Esta es la opcion de la mascara por defecto
- option ntp-servers 192.168.1.12; Esta es la opcion el servidor de sincronizacion del
tiempo o ntp server
- subnet 192.168.1.0 netmask 255.0.0.0 {
range 192.168.1.50 192.168.1.230;
} Con esta opcion le declaramos al dhcp server el rango de red y el pool de direcciones ip que
entregara.

Iniciar, detener y reiniciar el servicio dhcpd.
Para iniciar por primera vez el servicio dhcpd, utilice:
/etc/init.d/dhcpd start
Para hacer que los cambios hechos a la configuración del servicio dhcpd surtan efecto, utilice:
/etc/init.d/dhcpd restart
Para detener el servicio dhcpd, utilice:
/etc/init.d/dhcpd stop
Agregar el servicio dhcpd al arranque del sistema.
Para hacer que el servicio de dhcpd esté activo con el siguiente inicio del sistema, en todos los
niveles de corrida (2, 3, 4, y 5), se utiliza lo siguiente:
/sbin/chkconfig dhcpd on

Comprobaciones desde cliente DHCP.
Hecho lo anterior solo falta con configurar como interfaces DHCP las estaciones de trabajo que sean
necesarias sin importar que sistema operativo utilicen.
Después de configurado e iniciado el servicio, desde una terminal como root en otro sistema que
será utilizado como cliente, considerando que se tiene una interfaz de red denominada eth0, utilice
los siguientes mandatos para desactivar la interfaz eth0 y asignar una nueva dirección IP a través
del servidor dhcp.
/sbin/ifdown eth0
/sbin/dhclient eth0

Lo anterior deberá devolver el mensaje «Determinando la información IP para eth0...» y el símbolo
de sistema. Para corroborar, utilice el mandato ifconfig para visualizar los dispositivos de red
activos en el sistema.

Casos Adicionales


Puede darse el caso de que necesitemos en determinado momento que un equipo se mantenga
siempre con la misma direccion ip, quiza porque esta corriendo una aplicacion especial donde otros
clientes se conectan. Para ello entonces necesitamos apartar la direccion en el serividor DHCP. Esto
se hace utilizando la direccion MAC ADRESS del equipo y adicionandola en nuestro servidor de la
siguiente manera:
host m253 {
option host-name "m253.codigolibre.local";
hardware ethernet 00:50:BF:27:1C:1C;
fixed-address 192.168.1.253;
}
Cada vez que el host se conecte obtendra la misma direccion porque por medio a la mac address ya
el servidor dhcp aparto esta direccion exclusiva para dicho host.

Filtrado por Mac address
Otra situacion se presenta cuando desea filtrar por direccion mac, es decir, desea solamente que mi
servidor dhcp filtre a un rango de direcciones conocidas, asi cualquier extrano o visitante que llegue
a la empresa no podra conectarse a nuestra red de una manera tan facil.
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.230;
deny unknown clients;
}
host abc {hardware ethernet 00:06:4F:4E:DA:DB}
host cde {hardware ethernet 00:19:5B:FF:31:04}

Dentro de la declaracion del pool de ips escribimos la opcion “deny unknown-clients”, esta opcion
permite enviar direcciones solamente a los hosts conocidos. Mas abajo estan los equipos bpena y
cvasquez declarados en el dhcp, por lo tanto, Nuestro servidor solamente enviara direcciones a
estos 2 conocidos que son los unicos declarados.

Bibliografia
www.alcancelibre.org
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch08_:_Configuring_the_DHCP
_Server

Apache HOWTO RHEL 5

Apache Web Server
Autor: Cristhian Nunez

Acerca del protocolo HTTP.
HTTP (Hypertext Transfer Protocol, o Protocolo de Trasferencia de Hipertext), es el método utilizado
para transferir o transportar información en la Red Mundial (WWW, World Wide Web). Su propósito
original fue el proveer una forma depublicar y recupertar documentos HTML.
HTTP es un protocolo de solicitud y respuesta a través de TCP, entre agentes de usuario
(Navegadores, motores de índice y otras herramientas) y servidores, regularmente utilizando el
puerto 80. Entre la comunicación entre éstos puede intervenir como servidores Intermediarios
(Proxies), puertas de enlace y túneles.
Acerca de Apache.

Apache es un servidor HTTP, de código abierto y licenciamiento libre, que funciona en Linux,
sistemas operativos derivados de UnixTM, Windows, Novell Netware y otras plataformas. Ha
desempeñado un papel muy importante en el crecimiento de la red mundial, y continua siendo el
servidor HTTP más utilizado, siendo además el servidor de facto contra el cual se realizan las
pruebas comparativas y de desempeño para otros productos competidores. Apache es desarrollado
y mantenido por una comunidad de desarrolladores auspiciada por Apache Software Foundation.

Configuracion Basica
Instalar los paquetes
yum -y install httpd

Para iniciar, detener,reiniciar el servicio:
/etc/init.d/httpd start - Inicia el servicio Apache
/etc/init.d/httpd stop - Detiene el servicio Apache
/etc/init.d/httpd restart - Reinicia el servicio Apache
/etc/init.d/httpd status - Verifica el status de Apache
Apache viene con la configuracion estandard, solo basta con reiniciar el servicio y dirigirse a su
navegador y digitar http://localhost

El archivo de configuracion de apache por defecto es /etc/httpd/conf/httpd.conf.
Cualquier ajuste que se requiera realizar, ya sea para configurar Sitios de Red virtuales u otra
funcionalidad adicional, se puede realizar sin tocar el fichero principal de configuración, utilizando
cualquier fichero con extensión *.conf dentro del directorio /etc/httpd/conf.d/.
Directorios virtuales.

Si, por ejemplo, se quisiera añadir el alias para un directorio localizado en /var/ftp/pub/ y el cual
queremos visualizar como el directorio /pub/ en Apache, solo bastaría crear un fichero que
denominaremos arbitrariamente como el fichero denominado /etc/httpd/conf.d/aliases.conf con
el siguiente contenido:
Alias /pub /var/ftp/codigolibre

Si trata de acceder hacia este nuevo directorio virtual con el navegador, notará que no está
permitido el acceso. Para poder acceder deberá haber un documento índice en el interior
(index.html, index.php, etc) o bien que dicho directorio sea configurado para mostrar el contenido
del siguiente modo:
Alias /pub /var/ftp/pub

Options Indexes Includes FollowSymLinks
AllowOverride all


El parámetro Indexes indica que se deberá mostrar el contenido del directorio. El parámetro
FollowSymLinks posibilita poder colocar enlaces simbólicos dentro del directorio los cuales se
seguirán. El parámetro Includes especifica que se permite la utilización de los SSI (Server Side
Includes) que posibilitan utilizar funciones como autenticación. El parámetro AllowOverride all
posibilita utilizar ficheros .htaccess.

Reinicie o recargue Apache y acceda hacia http://127.0.0.1/pub/ con cualquier navegador de red y
visualice el resultado.

Dominios virtuales
# Sitio de Red virtual con definición de directorio para CGI

DocumentRoot /var/www/html/codigolibre/test
ServerName test.codigolibre.local
ServerAlias test.codigolibre.local
ServerAdmin webmaster@codigolibre.local
ErrorLog /var/www/html/codigolibre/html/test/logs/error_log
CustomLog /var/www/html/codigolibre/html/test/logs/access_log combined
ScriptAlias /cgi-bin/ "/var/www/html/codigolibre/html/test/cgi-bin/"

AllowOverride None
Options None
Order allow,deny
Allow from all

AddHandler cgi-script .cgi


Restriccion de Acceso a directorios
Apache® 2.x tiene mejores medidas de seguridad que las versiones anteriores, debido a que su
configuración predeterminada viene de tal modo que deshabilita muchas cosas que podrán
considerarse de cierto riesgo. Parte de esa seguridad incluye deshabilitar los SSI (Server Side
Includes o Inclusiones del Lado del Servidor) y el uso de los ficheros .htaccess. Estos últimos sirven
para modificar o agregar funciones a directorios.
Básicamente solo se necesita agregar las siguientes líneas a cualquier definición del directorio que
se desee utilizar:
Options Includes
AllowOverride All

Procedimientos.
Autenticación de directorios.
La autenticación para un directorio, contra un fichero que incluye claves de acceso, se realiza a
través de la siguiente sintaxis en cualquier fichero .htaccess.
AuthName "Acceso solo usuarios autorizados"
AuthType Basic
require valid-user
AuthUserFile /cualquier/ruta/hacia/fichero/de/claves
Ejemplo.
Se procede a crear un directorio que será visto desde cualquier navegador como
http://127.0.0.1/privado/.
Genere el fichero /etc/httpd/conf.d/ejemplo-autenticar.conf con el siguiente contenido:
Alias /privado /var/www/privado

Options Includes
AllowOverride All
Order allow,deny
Allow from all

Genere el directorio /var/www/privado/ realizando lo siguiente:
mkdir -p /var/www/privado
Genere el fichero /var/www/privado/.htaccess realizando lo siguiente:
touch /var/www/privado/.htaccess
Edite el fichero /var/www/privado/.htaccess y agregue el siguiente contenido:
AuthName "Solo usuarios autorizados"
AuthType Basic
require valid-user
AuthUserFile /var/www/claves
Genere el fichero de claves de acceso como /var/www/claves, utilizando el siguiente
procedimiento:
touch /var/www/claves
Con el fin de establecer la seguridad necesaria, cambie los atributos de lectura y escritura solo para
el usuario apache:
chmod 600 /var/www/claves
chown apache:apache /var/www/claves
Agregue algunos usuarios virtuales al fichero de claves, /var/www/claves, utilizando el siguiente
procedimiento con el mandato htpasswd:
htpasswd /var/www/claves fulano
htpasswd /var/www/claves mengano
Reinicie el servicio httpd:
service httpd restart


Bibliografia
www.alcancelibre.org
www.linuxhomenetworking.com