jueves, 23 de diciembre de 2010

Cursos gratis de HTML5 y CSS

En la Web se puede leer mucho sobre CSS y HTML5, especialmente ahora que Adobe Flash ha sido puesto en tela de juicio y varias empresas están buscando la forma de acelerar su adopción. Sin embargo, si un día te levantas y en vez de limitarte a ver ejemplos sobre CSS y HTML5 decides desarrollarlos tú mismo, no hay mejor lugar que la Web para comenzar tu aprendizaje. P2P University, en asociación con la gente de Mozilla, han puesto en funcionamiento a School of Webcraft, un centro de aprendizaje a través del cual será posible acceder a cursos, y también crearlos.

P2P University es un proyecto de educación abierta en el cual todo visitante puede formar parte de diferentes cursos, o en caso de que posea un conocimiento superior sobre una materia, crear uno. Ahora, P2P University ha unido fuerzas con la gente de Mozilla (el mismo Mozilla detrás de Firefox) para formar la "School of Webcraft", en un intento por incrementar el nivel de educación y entrenamiento relacionado con el desarrollo Web. Los cursos disponibles no presentan restricciones por ubicación geográfica, y tendrán una duración estimada de entre seis y diez semanas. El registro para las clases comienza el próximo 8 de enero, y el semestre comienza el 26 de ese mismo mes. En caso de que estés interesado, deberías tratar de inscribirte lo más pronto posible, ya que se espera una alta demanda para los cupos disponibles.

Aunque se ha considerado la posiblidad de cobrar un pequeño cargo en el futuro (después de todo, los cursos son dictados por voluntarios), el acceso es completamente gratuito. Como era de esperarse, el material principal está en idioma inglés, pero ya se ha puesto en marcha un canal para hispanohablantes en el portal principal de P2P University. La necesidad de cursos de aprendizaje para diseño Web no sólo está relacionada con una cuestión de demanda, sino también con la (aún) penosa situación entre la Web y los canales de aprendizaje "convencionales". En la conferencia "Mozilla Drumbeat" realizada a principios de noviembre en Barcelona, no faltaron los ejemplos en los cuales actuales desarrolladores Web han aprendido HTML y CSS con cosas como Neopets y MySpace. Al fin y al cabo, no es la educación la que falla, sino que la hacemos fallar nosotros. Todo proyecto que aliente el aprendizaje como School of Webcraft, es sin dudas bienvenido.

jueves, 16 de diciembre de 2010

SERVIDOR DE NOMBRES DE DOMINIO (DNS) EN UBUNTU

Servidor DNS.

El servicio DNS “Domain Name System”, se utiliza para traducir un nombre de dominio en direcciones IP. DNS permite ya una vez configurado que tu sitio WEB y Correo sean localizados desde cualquier parte de la WWW. Los DNS se utilizan para distintos propósitos:
  • Resolución de nombres.
  • Resolución inversa de direcciones.
  • Resolución de servidores de correo.
Existen varios tipos de servidores de DNS como Bind, PowerDNS, djbdns y todos trabajan sobre el puerto 53 protocolo TCP/UDP.

Tipos de DNS

Existen 4 tipos de servidores DNS:
  • Maestro: Nuestro servidor se comportara como un autentico servidor DNS, ya que atenderá las peticiones de resolución de nombres. Así mismo responde a consultas de otro servidores DNS.
  • Esclavo: Este tipo de servidor solamente sirve como espejo de un servidor DNS Maestro, cuando el servidor DNS Maestro tiene alguna modificación, se vera reflejado en servidor DNS esclavo ya que están sincronizados.
  • Cache: Este tipo de servidor se utilizan dentro de una red local, cuando hace una consulta a un servidor DNS Cache y no contiene la resolución envía una petición a un DNS Maestro y la resolución quedara guardada en la cache del DNS local hasta que expire el tiempo de vida.
  • Reenvío: Reenvía las peticiones a una lista especifica de servidores DNS para la resolución de nombres.
Un servidor DNS puede ser de varios tipos configurados en el mismo servidor DNS.

Servidor Bind

Bind (Berkeley Internet Name Domain), es el servidor de DNS mas utilizado en el internet, fue escrito en los años 80 bajo el patrocinio de la DARPA. Actualmente se encuentra nos encontramos en la versión 9 del BIND, la cual fue escrita desde cero para poder superar las dificultades de las diferentes plataformas.

Instalación de Bind.

Para poder hacer la instalación de Bind ejecutamos el siguiente comando:
root@server1:~# apt-get install bind9 
Al terminar de instalar toda la configuración de bind estará dentro de:
/etc/bin
Pero tendremos que modificar esta configuración para tener un DNS chroot.

DNS chroot.

Es recomendable ejecutar el servicio de DNS en un entorno aislado o enjaulado, para que el servicio DNS no se comprometido hacia un ataque y esto pueda afectar al resto de los servicios disponibles o al sistema operativo.

Configuración de DNS chroot.

A partir de este momento comenzáramos la configuración de DNS chroot.

Detener servicios.


Tenemos que detener nuestro servicio de DNS.
root@server1:~# /etc/init.d/bind9 stop 
* Stopping domain name service... bind           [ OK ] 
root@server1:~# 
Ahora detendremos el servicio apparmor el cual es el encargado de la seguridad de nuestro sistema.
root@server1:~# /etc/init.d/apparmor stop 
Unloading AppArmor profiles : done. 
root@server1:etc# 

Modo de ejecución.


En este paso configuremos el archivo /etc/default/bind9, el cual espeficaremos que usuario va ejecutar el servicio de bind y en donde se encuentra ubicado. Para eso tendremos que usar nuestro editar de texto:
root@server1:~# vim /etc/default/bind9
Dentro de este archivo tendremos agregar o modificar los siguientes parámetro de OPTIONS.
OPTIONS="-u bind"
por
OPTIONS="-u bind -t /var/lib/named" 

Creando el árbol chroot.


Tendremos que crear el arbol de directorios de chroot.
root@server1:~# mkdir -p /var/lib/named/etc
root@server1:~# mkdir /var/lib/named/dev
root@server1:~# mkdir -p /var/lib/named/var/cache/bind
root@server1:~# mkdir -p /var/lib/named/var/run/bind/run 

Moviendo configuración bind al chroot.


Lo procederemos hacer es mover toda la configuración del servicio bind dentro de /etc/bind a /var/lib/named/etc para poder utilizar el chroot.
root@server1:~# mv /etc/bind /var/lib/named/etc 

Creando enlaces chroot.


Deberemos crear un enlace simbólico de /etc/bind a /var/lib/named/etc/bind.
root@server1:~# ln -s /var/lib/named/etc/bind /etc/bind  

Dispositivos chroot.


Crearemos los dispositivos null y random, dentro del chroot y cambiaremos los permisos de los mismos de modo de Lectura/escritura para todos.
root@server1:~# mknod /var/lib/named/dev/null c 1 3 
root@server1:~# mknod /var/lib/named/dev/random c 1 8 
root@server1:~# chmod 666 /var/lib/named/dev/null
root@server1:~# chmod 666 /var/lib/named/dev/random 

Dueño en árbol chroot.


Solamente cambiaremos quien sera el encargado del arbol de chroot.
root@server1:~# chown -R bind:bind /var/lib/named/var/* 
root@server1:~# chown -R bind:bind /var/lib/named/etc/bind 

Configuración de syslogd.


Necesitamos modificar el archivo de configuración de syslogd, para poder tener el registro de los logs de nuestro servicio de DNS.
root@server1:~# vim /etc/default/syslogd 
Tendremos que buscar el parámetro SYSLOGD, el cual no contiene ninguna información tendremos que agregarle lo siguiente.
SYSLOGD="" 
SYSLOGD="-a /var/lib/named/dev/log" 

Configuración de apparmor.


Tendremos que modificar y agregar algunas opciones dentro del archivo de configuración para poder agregar las rutas de servidor DNS.
root@server1:~# vim /etc/apparmor.d/usr.sbin.named  
Ya estando ahí tendremos que modificarlo.
#### Agregado por el Administrador
#### indicamos el path del servidor DNS.
  /var/lib/named/etc/bind/* rw, 
#####
  /etc/bind/** r, 
  /var/lib/bind/** rw, 
  /var/lib/bind/ rw, 
  /var/cache/bind/** rw, 
  /var/cache/bind/ rw,  
####Agregado/modificar por Administrador 
#### comentamos la linea por defualt y agregamos la nuestra
#### de la ubicación del pid del DNS
  /var/lib/named/var/run/bind/run/named.pid w, 
  # /var/run/bind/run/named.pid w, 
############ 
  # support for resolvconf 
#### Agregado/modificar por Administrador 
#### Comentada la linea por default y agregando la ruta
#### en donde se encuentra el archivo opciones de Bind.
#/var/run/bind/named.options r, 
  /var/lib/named/var/run/bind/named.options r, 
##### 
#### Agregado por el Administrador
#### Agregamos lineas para dispositivos chroot. 
  /var/lib/named/dev/null rw, 
  /var/lib/named/dev/random rw, 
###  Agregamos las zonas de dominio 
  /var/lib/named/etc/bind/zones/* rw, 
#####
Guardamos los cambios realizados.

Inicio/Reinicio de los servicios.


Primero tendremos que reiniciar sysklogd.
root@server1:~# /etc/init.d/sysklogd restart 
Después iniciamos el apparmor.
root@server1:~# /etc/init.d/apparmor restart
Por ultimo iniciamos bind9.
root@server1:~# /etc/init.d/bind9 start
Con esto ya tendremos configurado nuestro DNS Chroot.

Zonas DNS.

En las zonas DNS es donde configuramos todos los dominios que vaya a tener nuestro servidor, se debe crear archivo por archivo por cada dominio que se tenga. Esta configuración deberá ser guardada en:
/etc/bind/zones 
Tenemos que crear el archivo de configuración del domino que se agregar a nuestro DNS.
root@server1:zones# touch ascariote.net.db
El siguiente archivo a crear debe contener los 3 primero segmentos de nuestra red, ejemplo nuestra red es 192.168.1.0, ya este archivo es de tipo resolucion inversa quedaria de la siguiente manera 1.168.192.in-addr.arpa.  
root@server1:zones# touch 1.168.192.in-addr.arpa

Tipos de registro de zonas.

En la configuración de los archivos de zonas se dividen por columnas de datos y separadas por espacios, que definen todos los registros del recurso de la zona asociada. A continuación le mostramos los tipos de registros más frecuentes:
Tipo de registro. Descripción.
ARegistro de dirección IP que se le asigna un nombre.
AAAARegistro de dirección Ipv6 que se le asigna un nombre, en este caso también se puede ocupar el tipo de registro A6.
CNAMERegistro del nombre canónico que dice al servidor de nombres que otros nombres son conocidos hacia un registro.
Permite la creación de nombre alias hacia nombre de dominio.
MXRegistro de servidor de correo electrónico, que indica a donde se tiene que dirigir el correo.
PTRRegistro sirven sobre todo para la resolución inversa de nombre se orienta a través de la direcciones IP
NSRegistro de servidor de nombres que permite definir una lista de nombres con autoridad a un dominio.
SOARegistro que proclama información importante sobre la autoridad de determinados servidores sobre determinados espacios de nombres.
Este registro contiene la datos de correo electrónico, números de serie y parámetro de expiración.
TXTRegistro de texto que permite al administrador insertar texto arbitrariamente en un registro DNS.

Tiempos de expiración zonas.

Dentro de la configuración de los dominios tendremos que configurar los tiempos de expiración de la zonas, la información debe estar en segundos, pero también existen otros valores que nos permiten configurar nuestros tiempos.
Segundos.Unidades.Descripción.
601MA un minuto.
180030MA 30 minutos
36001HUna hora.
108003H3 horas.
216006H6 horas.
4320012H12 horas.
864001DUn dia.
2592003D3 dias.
6048001WUna semana.

Configurar el archivo zona.

Editaremos el archivo de configuración de nuestro dominio.
 root@server1:zones# vim ascariote.net.db
Agregaremos las siguientes opciones.
$TTL    1W 
@       IN      SOA     ascariote.net. admin.ascariote.net.( 
                        2       ; Serial Number
                        1W      ; Time To Refresh 
                        1D      ; Time To Retry 
                        28D     ; Time To Expire 
                        1W )    ; Negative Cache TTL 
; 
@       IN      NS      ascariote.net. 
@       IN      A       192.168.1.243 
@       IN      MX      10      ascariote.net 
www     IN      A       192.168.1.243 
Ahora explicaremos:
  • Todo lo que esta después de un punto y coma (;) es comentario.
  • $TTL 1W: directiva obligatoria que indica el tiempo de vida de la información contenida en la BDs.
  • @ IN SOA ascariote.net. admin.ascariote.net. ( : el dominio ascariote.net se encuentra en la maquina ascariote.net y el encargado del dominio es admin.ascariote.net.
  • 2 ;Serial Number:Es un numero que se incrementa por cada vez que sea modificado el archivo.
  • 1W ; Time To Refresh: indica a los servidores eslavos cuanto tiempo deben esperar antes de preguntar a su servidor primario si se ha hecho algún cambio.
  • 1D ; Time to Retry : Indica el tiempo de espera para reintentar conectarse a nuestro servidor DNS.
  • 28D ; Time To Expire : Tiempo que no hubo comunicación con el servidor DNS, toda la informacion del primero se vuelve inservible y deja de responder peticiones.
  • 1W ); Negative Cache TTL: indica el tiempo de los DNS almacenados en cache.
  • @ IN NS ascariote.net: Especificamos en donde se encontrara el servidor DNS.
  • @ IN A 192.168.1.243: Especificamos la IP del servidor DNS.
  • @ IN MX 10 ascariote.net: Indicamos que se utiliza como servidor de correo con prioridad máxima 10.
  • www IN A 192.168.1.243 : Indicamos que el servidor web se encuentra en la dirección IP.

Configurar el archivo zona inversa.

Editaremos el archivo de configuración zona inversa.
root@server1:zones# vim 1.168.192.in-addr.arpa
Y agregaremos los siguientes parámetros:
$TTL    1W 
@       IN      SOA     ascariote.net. admin.ascariote.net.( 
                              2         ; Serial Number 
                             1W         ; Time To Refresh 
                             1D         ; Time To Retry 
                            28D         ; Time To Expire 
                             1W )       ; Negative Cache TTL 
;                                              

@       IN      NS      ascariote.net. 
243.1.168       IN      PTR     ascariote.net.
Como pueden ver casi tiene la misma configuración que el archivo de las zonas a excepción de un parámetro.
  • 243.1.168 IN PTR ascariote.net. : Enlazamos la IP con el nombre del servidor,para la resolución inversa.

Configurar named.conf.

Es el archivo de configuración de nuestro servidor DNS, dentro de el tendremos que agregar algunos parámetros para que mande a llamar los archivos que hemos creados.
root@server1:zones# vim /etc/bind/named.conf
Agregaremos algunos parámetros casi al final del archivo y antes del include.
zone "255.in-addr.arpa" { 
        type master; 
        file "/etc/bind/db.255"; 
}; 
########################################
#### Agregado por el Administrador #####
########################################
zone "ascariote.net" { 
        type master; 
        file "/etc/bind/zones/ascariote.net.db"; 
}; 
zone "1.168.192.in-addr.arpa" { 
        type master; 
        file "/etc/bind/zones/1.168.192.in-addr.arpa"; 
}; 
#######################################

include "/etc/bind/named.conf.local"; 

Solamente agregamos la zona ascariote.net, adentro indicamos que es tipo maestro y la ruta donde se encuentra el archivo de configuración de la zona. Como también se agrego la resolución inversa, indicamos tipo maestro y la ruta del archivo de configuración. Ahora tendremos que reiniciar el servicio de bind9.
root@server1:zones# /etc/init.d/bind9 restart 

Comprobación de DNS.

Vamos a verificar que nuestro servidor DNS ya se encuentra en linea, primero haremos la comprobación localmente en nuestro servidor. Para esto usaremos el comando host.
root@server1:~# host ascariote.net 127.0.0.1 
Using domain server: 
Name: 127.0.0.1 
Address: 127.0.0.1#53 
Aliases: 

ascariote.net has address 192.168.1.243 
ascariote.net mail is handled by 10 ascariote.net.ascariote.net. 
root@server1:~# 
Por medio del comando netstat, para verificar que el servicio esta en escucha.
root@server1:~# netstat -tanp | grep named 
tcp   0  0 192.168.1.243:53  0.0.0.0:* 
LISTEN      7132/named      tcp   0  0 127.0.0.1:53  0.0.0.0:* 
LISTEN      7132/named      tcp   0  0 127.0.0.1:953 0.0.0.0:* 
LISTEN      7132/named      root@server1:~# 
Para poder hacer una comprobación desde otra maquina tenemos que agregar la IP de nuestro servidor DNS.
lucifer:~# vim /etc/resolv.conf
Modificaremos para quede de la siguiente manera.
nameserver 192.168.1.243
Y comprobamos.
lucifer:~# dig ascariote.net 

; <<>> DiG 9.5.0-P2 <<>> ascariote.net 
;; global options:  printcmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57068 
;; flags: qr aa rd ra; QUERY: 1,ANSWER:1,AUTHORITY:1,ADDITIONAL: 0 
;; QUESTION SECTION: 
;ascariote.net.   IN A 
;; ANSWER SECTION: 
ascariote.net.  604800 IN A  192.168.1.243 

;; AUTHORITY SECTION: 
ascariote.net.  604800 IN NS ascariote.net. 

;; Query time: 0 msec 
;; SERVER: 192.168.1.243#53(192.168.1.243) 
;; WHEN: Wed Mar  4 14:25:34 2009 
;; MSG SIZE  rcvd: 61 

lucifer:~#  

Logs de DNS.

Nuestro DNS guarda los log dentro de /var/log/syslog, para poder ver los ultimos sucesos de los log de DNS tendremos que ejecutar el siguiente comando
root@server1:~# tail -f /var/log/syslog | grep named 
Nos deberá mostrar algo parecido a esto.
Mar  4 14:37:22 server1 named[7957]: zone 127.in-addr.arpa/IN: 
Mar  4 14:37:22 server1 named[7957]: zone ascariote.net/IN: loaded serial 2 
Mar  4 14:37:22 server1 named[7957]: running 
Mar  4 14:37:22 server1 named[7957]: zone 1.168.192.in-addr.arpa/IN: sending 
notifies (serial 2) 
Mar  4 14:37:22 server1 named[7957]: zone ascariote.net/IN: sending notifies
(serial 2)  
En este archivo encontraremos si tenemos algún error en la configuración, un posible problema o indicando que servicio se levanto bien y sin ningún problema.

martes, 14 de diciembre de 2010

CONFIGURACION DE SERVIDOR DE PROTOCOLO DE TRANSFERENCIA DE ARCHIVOS (FTP)

Acerca del Protocolo FTP

La historia de este protocolo se remonta al año de 1969 cuando el Instituto Tecnológico de Massachusetts mejor conocido como el MIT presentó la propuesta del primer Protocolo para la transmisión de archivos en Internet. Era un protocolo muy sencillo basado en el sistema de correo electrónico pero sentó las bases para el futuro protocolo de transmisión de archivos (FTP).
  • En 1985, quince años después de la primera propuesta, se termina el desarrollo del aún vigente protocolo para la transmisión de archivos en Internet (FTP), basado en la filosofía de cliente-servidor.
    • Fragmento extraído de Wikipedia
El protocolo FTP (File Transfer Protocol) es una de las herramientas mas usadas entorno a la administración de portales web y tiene como principal función la transferencia de archivos. Esta transacción puede ser efectuada desde una LAN (Red de área local) o en una WAN (Red de Área Amplia). El protocolo FTP esta basado principalmente en la arquitectura Cliente-Servidor el cual consiste básicamente en un programa “Cliente” que realiza peticiones a otro programa “Servidor” el cual responde a su petición. Visto de otra forma podemos entenderlo como el equipo cliente que se conecta al servidor para descargar archivos desde el o para enviarle archivos. FTP hace uso del modelo TCP/IP y trabaja directamente sobre la capa de aplicación del antes mencionado. Así mismo el protocolo FTP hace uso de los puertos 20 y 21 para la comunicación y control de datos. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico mediante la ayuda de un sniffer y acceder al servidor. Una forma de solucionar este gran problema de seguridad es mediante la utilización de aplicaciones como “SCP” y el “SFTP” los cuales permiten transferir archivos pero cifrando el trafico , por lo general estas aplicaciones son incluidas en el paquete de openSSH tema que veremos mas adelante.

Funcionamiento del Protocolo FTP

Generalmente se origina cuando el cliente FTP envía la petición al servidor para indicarle que requiere establecer una comunicación con el, entonces el cliente FTP inicia la conexión hacia el servidor FTP mediante el puerto 21 el cual establecerá un canal de control. A partir de este punto el cliente FTP enviara al servidor las acciones que este debe ejecutar para poder llevar a cabo el envío de datos. Estas acciones incluyen parámetros para la conexión de datos así como también la manera en como serán gestionados y tratados estos datos. Algunos de los parámetros enviados por el cliente FTP para la conexión de datos son los siguientes: _
  • Puerto de datos
  • Modo de transferencia
  • Tipo de representación y estructura
Los parámetros relacionados a la gestión de datos son los siguientes:
  • Almacenar
  • Recuperar
  • Añadir
  • Borrar
  • Obtener
El proceso de transferencia de datos desde el servidor hacia el cliente deberá esperar a que el servidor inicie la conexión al puerto de datos especificado ( en modo activo ) y luego de ello transferir los datos en función a los parámetros de conexión especificados anteriormente.

Modos de conexión del cliente FTP

FTP establecerá dos modos de conexión diferentes para el cliente, el Modo Activo y el Modo Pasivo.

Modo Activo

El modo activo generalmente es conocido también como modo estándar y este opera de la siguiente forma. Se establecen dos conexiones distintas, la primera conexión establece una comunicación para la transmisión de comandos a través de un puerto aleatorio mayor que el 1024 del cliente FTP hacia el puerto 21 del servidor FTP y por esa misma conexión se le notifica al servidor FTP cual es el puerto de nuestro cliente FTP que esta a la espera de los datos. Entonces y para comprender mejor, si usted descarga algún archivo mediante la ayuda de algún cliente de FTP, es el servidor FTP el que inicia la transmisión de datos, desde su puerto 20 al puerto que aleatoriamente el cliente FTP le ha indicado. Se le llama modo activo porque la transmisión de datos es iniciada por el propio servidor FTP.

Modo Pasivo

Esto se logra cuando el cliente FTP inicia la conexión con el servidor FTP mediante el envió del comando PASV en este punto el cliente FTP establece una comunicación mediante un canal de control el cual generalmente utiliza un puerto aleatorio mayor al 1024 para comunicarse con el servidor FTP a través de su puerto 21. Al pasar a modo pasivo el cliente FTP pedirá al servidor FTP que habrá un puerto, el cual deberá ser aleatorio y mayor al 1024, recibida la contestación, será el cliente FTP el que establezca la conexión de datos al servidor FTP a través del puerto especificado anteriormente.

Modo Activo vs Modo Pasivo

Como hemos explicado antes, en el modo activo se abre una conexión para datos desde el servidor FTP al cliente FTP, esto es, una conexión de fuera hacia adentro, entonces, si el cliente FTP se encuentra detrás de un firewall, este filtrara o bloqueara la conexión entrante. En el modo pasivo es el cliente FTP el que inicia tanto la conexión de control como la de datos, con lo cual el firewall no tendrá ninguna conexión entrante que filtrar.

Modos de acceso del cliente FTP

Un cliente FTP es la aplicación o software que servirá de intermediario entre el servidor FTP y nuestro equipo, así mismo existen dos versiones de clientes FTP, los gráficos y los que se usan a linea de comandos. En la mayoría de los casos se implementaran clientes gráficos de FTP esto debido a que son mas fáciles y sencillos de manejar por el usuario. Nosotros recomendamos usar el cliente FTP FileZilla. FileZilla es un cliente FTP, gratuito, multiplataforma , libre y de código abierto. Sustenta los protocolos FTP, SFTP y SFTP. Así mismo, los clientes FTP pueden acceder a los servidores FTP de tres formas distintas, estas son:
  • Acceso Anónimo
  • Acceso de Usuario
  • Acceso de Invitado

Acceso Anónimo

El acceso anónimo a un servidor FTP se caracteriza porque este no pide ningún tipo de autenticacion al cliente FTP ( login y password ) para entrar en el. Generalmente este tipo de accesos son implementados para que cualquier usuario tenga acceso a los recursos que ahí se comparten, los cuales normalmente solo pueden ser leídos o copiados , restringiendo a los usuarios la función de crear o modificar dichos recursos.

Acceso de Usuario

Este tipo de acceso se caracteriza porque este si requiere autenticacion del cliente FTP ( login y password ) ante el servidor FTP. Generalmente estos accesos son implementados para un grupo selecto de usuarios, los cuales tendrán ciertos privilegios sobre los recursos del servidor como podría ser modificar, eliminar, crear , subir o descargar archivos o carpetas. Otra característica de este acceso es que permite al usuario FTP acceder a cualquier parte del sistema operativo, lo cual es un grave fallo de seguridad.

Acceso de Invitado

El acceso de invitado bien podría ser un híbrido entre el acceso anónimo y el acceso de usuario, ya que en este tipo de acceso de requiere autenticacion del cliente FTP ( login y password ) ante el servidor FTP, lo que lo diferencia de los últimos dos es que el usuario FTP solo podrá trabajar en un directorio de trabajo destinado exclusivamente para el, evitando así que el usuario FTP tenga acceso a otras partes del sistema operativo, pero sin restringir los privilegios que tiene sobre su propio directorio de trabajo. Proceso de instalación del servidor FTP

Instalando VSFTPD

La instalación de VSFTPD es relativamente sencilla , solo debe teclear en terminal el siguiente comando.
[root@ localhost ~]# yum install -y vsftpd
Recuerde que este comando se debe ejecutar como root

Archivos de configuración de VSFTPD

La configuración de VSFTPD se realizara sobre dos ficheros distintos, uno de configuración general propio de VSFTPD y otro para especificar al servidor FTP los usuarios que harán uso del acceso de invitado. El primer fichero de configuración de VSFTPD lo encontramos en la siguiente ruta
/etc/vsftpd/vsftpd.conf
El segundo fichero de configuración debe ser creado por usted mismo ya que de otra forma nunca podrá especificar al servidor FTP los usuarios que harán uso del acceso de invitado. La ruta en la que se debe crear dicho fichero es la siguiente:
/etc/vsftpd
Y sera nombrado con el nombre siguiente:
chroot_list
A este fichero deberán ser agregados los nombres de los usuarios de FTP que trabajaran en su directorio de trabajo, de esta manera se restringe a estos usuarios el acceso a otras partes del sistema operativo, cualquier otro usuario no agregado a este archivo podrá acceder a cualquier parte del sistema operativo, lo cual es un grave fallo de seguridad. Al final nuestros archivos deberán estar ubicados en las siguientes ruta:
/etc/vsftpd/vsftpd.conf ---> 
Fichero de configuración propio de VSFTPD

/etc/vsftpd/chroot_list---> 
Fichero que definirá los usuarios 
              que harán uso del acceso de invitado
              [RECUERDE QUE ESTE FICHERO DEBE SER 
              GENERADO POR USTED] 

El siguiente paso sera editar y configurar los archivos que previamente creamos.

Configuración del archivo vsftpd.conf

Para llevar a cabo la configuración de este archivo le recomendamos usar el editor de textos VIM. A continuación le presentamos las diferentes opciones que pueden ser habilitadas o negadas en el archivo de configuración vsftpd.conf
Habilitando o negando accesos anónimos al servidor FTP
Al haber abierto el fichero trate de buscar la linea siguiente: Para habilitar el acceso anónimo al servidor FTP solo deberá teclear la palabra YES , caso contrario si usted desea tener deshabilitada esta opción solo deberá teclear la palabra NO.
anonymous_enable=YES|NO

Habilitar o negar autenticarse a los usuarios
Para habilitar o negar los accesos autenticados de los usuarios locales en el servidor FTP deberá buscar la siguiente linea:
local_enable=YES|NO
Deberá teclear la palabra YES para habilitar la autenticacion , caso contrario si usted desea tener deshabilitada esta opción solo deberá teclear la palabra NO. Habilitar o negar la escritura en el servidor FTP
Para habilitar o negar la escritura en el servidor FTP deberá buscar la siguiente linea
write_enable=YES|NO
Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta función. Establezca el valor YES o NO de acuerdo a lo que se requiera.
Estableciendo un mensaje de bienvenida en el servidor FTP
Este parámetro sirve para establecer un mensaje de bienvenida el cual será mostrado cada vez que un usuario acceda al servidor de archivos. Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta función. Para agregar este mensaje al servidor FTP deberá buscar la siguiente linea y editarla.
ftpd_banner=Bienvenido al Servidor FTP de Linux Para Todos

Habilitar el acceso de invitado para ciertos usuarios de FTP
Para limitar a los usuarios a trabajar en su propia carpeta de trabajo se deberán editar las siguientes lineas del fichero vsftpd.conf
chroot_list_enable=YES |NO
Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta función. Habilitar este parámetro indicara al servidor FTP que el usuario solo podrá trabajar dentro de su carpeta de trabajo, para ello solo habrá que teclear la palabra YES, en caso contrario use la palabra NO El siguiente parámetro se encuentra en función del anterior, de forma que si usted lo habilito también tendrá que habilitar este ultimo, para ello solo deberá borrar el caracter de numero (#)
chroot_list_file=/etc/vsftpd/chroot_list
El parámetro
/etc/vsftpd/chroot_list
indica la ruta en la cual se encuentra el fichero con los nombres de los usuarios que serán limitados a trabajar en su propia carpeta de trabajo Recuerde que usted creo previamente este fichero
Habilitar al usuario anónimo la función de subir contenido al servidor FTP
Para habilitar o negar al usuario anónimo el subir datos al servidor FTP deberá buscar la siguiente linea:
anon_upload_enable=YES|NO
Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta función. Establezca el valor YES o NO de acuerdo a lo que se requiera.
Habilitar al usuario anónimo la función de crear carpetas en servidor FTP
Para habilitar o negar al usuario crear carpetas en servidor FTP deberá buscar la siguiente linea:
anon_mkdir_write_enable=YES|NO
Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta función. Establezca el valor YES o NO de acuerdo a lo que se requiera.
Estableciendo permisos de escritura, lectura y ejecución al contenido albergado en el servidor FTP
La siguiente linea Indica que los archivos subidos al servidor quedarán con los permisos 022, es decir, sólo escritura para el grupo y los demás.
local_umask=022
Si tu deseas agregar otro tipo de permisos sobre el contenido que sera albergado en tu servidor FTP solo deberás modificar el valor 022 por el que tu creas mas conveniente. Nosotros recomendamos usar el permiso “664”
local_umask=664
es decir, lectura y escritura para el propietario del fichero, y sólo lectura para el grupo y los demás
Limitando la tasa de transferencia a los usuarios anónimos
Usted puede limitar la tasa de transferencia ( en bytes ) para los usuarios anónimos, solamente deberá agregar la siguiente linea al final del archivo
anon_max_rate=10240
Como podemos observar hemos limitado la tasa de transferencia a solo 10 Kb para los usuarios anónimos, usted podrá definir ese parámetro de acuerdo a sus necesidades.
Limitando la tasa de transferencia a los usuarios autenticados
Usted puede limitar la tasa de transferencia ( en bytes ) para los usuarios anónimos, solamente deberá agregar la siguiente linea al final del archivo
local_max_rate=10240
Como podemos observar hemos limitado la tasa de transferencia a solo 10 Kb para los usuarios autenticados, usted podrá definir ese parámetro de acuerdo a sus necesidades.
Limitando el numero de conexiones hacia el servidor FTP
Usted podrá establecer un numero máximo de conexiones que podrán acceder simultáneamente al servidor FTP, para ello solo habrá que añadir la siguiente linea al final de archivo.
max_clients=3
Como podemos observar hemos limitado el acceso a solamente 3 clientes FTP
Limitando el numero de conexiones por IP hacia el servidor FTP
Usted podrá establecer un numero máximo de conexiones desde una misma dirección IP que podrán acceder simultáneamente al servidor FTP, para ello solo habrá que añadir la siguiente linea al final de archivo.
max_per_ip=3
Como podemos observar hemos limitado el acceso a simultaneo a solamente 3 IP´s .

Configuración del fichero chroot_list

La configuración de este fichero es relativamente fácil, solo deberá añadir dentro de el los nombres de los usuarios que serán limitados a trabajar dentro de su carpeta personal de trabajo. Ejemplo:
[root@ localhost ~]# vim /etc/vsftpd/chroot_list

paty
angelica
erika
viridiana
iliana
regina

"chroot_list"
Al terminar solo deberá guardar los cambios hechos al fichero.

Iniciar , detener o reiniciar el servidor FTP

Para iniciar el servidor FTP por primera vez solo deberá teclear en terminal el siguiente comando:
[root@ localhost ~]# /etc/init.d/vsftpd start
Igualmente existen opciones ya sea para reiniciar, detener, recargar o conocer el status en el que se encuentra el servidor FTP. Estas opciones pueden ser consultadas en la siguiente tabla:

startInicia el servicio
stopDetiene el servicio
restartReinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta
reloadRecarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuración del servicio sin necesidad de matar los procesos relacionados con el mismo, por lo que podría entenderse que hace el cambio en caliente.
condrestartReinicio Condicional.- Solamente se inicia si el servicio se encuentra ejecutándose.
statusDa a conocer el estado en el que se encuentra el servicio
Como alternativa también podemos ocupar el siguiente comando para iniciar el servidor FTP
[root@ localhost ~]# service vsftpd start
Y de igual manera podemos usar las opciones antes descritas en la tabla anterior. Recuerde que estos comandos se ejecutan como root.

Creación de cuentas de usuario en el servidor FTP

Crear cuentas de usuario en el servidor FTP es un proceso muy parecido a dar de alta usuarios en Linux. La sintaxis general para dar de alta usuarios es la siguiente: Las opciones utilizadas son explicadas en la siguiente tabla:
OpcionesDescripción
-d | --homeCarpeta de trabajo que sera asignado al usuario
Ejemplos:
a) -d /home/usuario1
b) -d /home/cmartinez
c) -d /home/icastillo
-s | --shell-s /sbin/nologin → El usuario no podrá logearse en el sistema. Ideal para usuarios con acceso a Samba o FTP pero sin acceso al interprete de comandos.
Adicionalmente se tiene que asignar una contraseña al usuario FTP.
[root@ localhost ~]# passwd sistemas
Cambiando la contraseña del usuario . 
Nueva UNIX contraseña: xxxxxxxxxx
Vuelva a escribir la nueva UNIX contraseña:xxxxxxxxxx 
passwd: todos los tokens de autenticación se actualizaron exitosamente. 
Ejemplo:
[root@ localhost ~]# useradd -d /home/ftp/javier -s /sbin/nologin \ > javier 
Explicación: Como podemos observar, estamos creando una cuenta en el servidor ftp, para ello estamos usando el comando
useradd
El parámetro siguiente es
-d /home/ftp/javier
Este parámetro le indica a Linux que la carpeta de trabajo de javier esta ubicada en la ruta /home/ftp/javier, el ultimo parámetro
-s /sbin/nologin
Le indica a Linux que el usuario no podrá logearse en el sistema lo cual es ideal para usuarios con acceso a FTP pero sin acceso al interprete de comandos.

SERVIDOR SAMBA (ARCHIVOS COMPARTIDOS LINUX-WINDOWS)

Sobre Samba

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux o Mac actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio, como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios. Samba fue desarrollado originalmente para Unix por Andrew Tridgell utilizando un sniffer o capturador de tráfico para entender el protocolo a través de la ingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar que Microsoft usa para sus redes, el SMB o server message block.
En un principio, Samba tomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca registrada. Tridgell buscó en el diccionario de su máquina Unix alguna palabra que incluyera las letras “s”, “m” y “b” con la orden grep hasta que dio con Samba.
Samba configura directorios Unix-Linux (incluyendo sus subdirectorios) como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de Linux pueden montar en sus sistemas de archivos estás unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en Linux. Por ejemplo, las carpetas home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos; sin embargo, deberemos cambiar los permisos de los archivos localmente para dejar al resto ver nuestros archivos, ya que con dar permisos de escritura en el recurso no será suficiente

Instalacion de Samba

Para llevar a cabo la instalacion se necesitaran los siguientes paquetes:
  • samba
  • samba-client
  • samba-common
Para instalarlos haga uso de la terminal como se muestra a continuacion:
[BASH]# yum install -y samba samba-client samba-common

Configuracion de Samba

Los archivos que modificaremos serán:
/etc/samba/lmhosts
/etc/samba/smb.conf

Archivo /etc/samba/lmhosts

El archivo /etc/samba/lmhosts es el archivo de gestión de los equipos de red estandar usado para resolver nombres a direcciones IP en el sistema. Podrí decirse que este fichero es el equivalente al fichero /etc/hosts que es un estandard de Linux-Unix y su estructura es identica a la que se muestra a continuacion:
192.168.220.100         desarrollo 
192.168.220.101         ventas
La única diferencia es que los nombres de la columna derecha son nombres NetBIOS y solo son usados en linux por samba. Recordemos que los servidores DNS sirven para los casos en donde un equipo requiere conectarse a otro y no tener que hacerlo por la direccion IP, por ejempo:
66.102.11.104         hydra 
El fichero /etc/samba/lmhosts es una simplificación muy básica de ese proceso, pero sólo válida para tu propio equipo. Recordemos que el proposito del fichero /etc/hosts es resolver los nombres de equipos que no pueden ser resueltos de otra manera. También se puede usar para resolver nombres de equipos en pequeñas redes sin servidor DNS. Es por ello que agregaremos al archivo
/etc/samba/lmhosts
El nombre que tiene especificado en el archivo
/etc/hosts
Ejemplo:
Archivo /etc/hosts/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Do not remove the following line, or various programs 
# that require network functionality will fail. 
127.0.0.1           localhost.localdomain localhost localhost 
192.168.1.105       servidor.empresa.com.mx
Fichero /etc/samba/lmhosts
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
127.0.0.1               localhost
192.168.1.105           servidor.empresa
Como podemos observar solo agregamos la linea final del archivo /etc/hosts al final del fichero /etc/samba/lmhosts

Archivo /etc/samba/smb.conf

La configuracion básica de Samba se hara sobre el archivo localizado en:
/etc/samba/smb.conf

Configuración de parametros globales


1.-Con la ayuda de algun editor de textos busque la siguiente linea
workgroup = MYGROUP
En esta linea puedes especificar un nombre para el grupo de usuarios que podran hacer uso de este recurso Ejemplo:
workgroup = Desarrollo
2.-Busque la siguiente linea
server string = Samba Server Version %v
En esta linea puedes poner un mensaje de bienvenida para el Servidor Samba Ejemplo:
server string = Servidor Samba Desarrollo
3.-Busque la siguiente linea
netbios name = MYSERVER
En esta linea deberas especificar el nombre que tiene asignado el equipo. Su nombre debe ser igual al especificado en el archivo /etc/samba/lmhosts Ejemplo:
netbios name = servidor.empresa
4.-Busque la siguiente linea
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
Esta linea especifica desde que segmentos de red escuchara peticiones el servidor Samba, cualquier otra interfaz no listada aqui sera ignorada Ejemplo:
interfaces = lo eth0 192.168.1.1/24  10.10.1.1
5.-Busque la siguiente linea
hosts allow = 127. 192.168.12. 192.168.13.
Esta linea especifica desde que segmentos de red escuchara peticiones el servidor Samba Ejemplo:
hosts allow =  192.168.12.2.
Note el punto al final de la linea 6.-Busque la siguiente linea
log file = /var/log/samba/log.%m 
max log size = 50 
Esta lineas especifican la ubicación donde quedaran los logs, en este caso la extensión sera conformado por el nombre del equipo desde la cual se hizo la conexión La segunda linea especifica el tamaño máximo para los archivos de logs.

Configuracion de los recursos compartidos

La configuracion de las recursos que compartiremos deben ir especificados al final del archivo
/etc/samba/smb.conf
Y deben seguir la siguiente estructura:
[nombreDescriptivoDelRecursoCompartido] 

       comment = Comentarios 
       path = rutaDelREcurso
       public = yes 
       writable = yes 
       printable = no 
       write list = desarrollo
Algunas de las opciones que podemos agregar a esta estructura son las siguientes:

DirectivaValorAccion
encrypt passwordsyes | noEsta direcitva indica si las contraseñas seran cifradas cuando el usuario se autentique
invalid usersusuario | grupoLista a los usuarios o grupos a los cuales les negara el acceso
valid usersusuarioLista a los usuarios a los cuales el servidor les dará acceso
admin usersusuarioLista a los usuarios que asumiran el rol de administrador
read listusuarioLista a los usuarios que solo podran leer el recurso compartido
write listusuarioLista a los usuarios que podran escribir en el recurso compartido
guest okyes | noDefine si se permitirá el acceso como usuario invitado o no
commentComentario En esta seccion podras poner un comentario acerca del recurso que estas compartiendo
path/ruta/del/recursoEn esta seccion deberas especificar la ruta del recurso que compartes
browseableyes | noDefine si el recurso podra ser visible o no

Un ejemplo sobre el uso de estas opciones se ve a continuacion
[FacturasDiarias] 
        comment = Facturas 
        path = /var/facturas 
        guest ok = no 
        write list = jefe 
        directory mask = 1770 
        create mask = 0660 
        browseable = yes 
        admin users = jefe contador 
        valid users = jefe contador 
        writable = yes 
        public = yes 

Alta de usuarios en Samba

Para dar de alta cuentas de usuario en Samba usaremos el comando useradd el cual deberá ser aplicado segun la siguiente estructura
[BASH]# useradd -s /bin/nologin cuentaDeUsuario
el parametro
-s /sbin/nologin
Indicara al sistema que el usuario no tendra acceso al interprete de comandos

Asignacion de contraseñas a usuarios en Samba

Para asignar contraseñas a los usuarios en Samba usaremos el comando smbpaaswd el cual debera ser aplicado segun la siguiente estructura
[BASH]# smbpasswd -a cuentaDeUsuario

Iniciar , detener o reiniciar el servidor Samba

Para iniciar el servidor samba por primera vez solo deberá teclear en terminal el siguiente comando:
[root@ localhost ~]# /etc/init.d/smb start
Igualmente existen opciones ya sea para reiniciar, detener, recargar o conocer el status en el que se encuentra el servidor Samba. Estas opciones pueden ser consultadas en la siguiente tabla:
startInicia el servicio
stopDetiene el servicio
restartReinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta
reloadRecarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuración del servicio sin necesidad de matar los procesos relacionados con el mismo, por lo que podría entenderse que hace el cambio en caliente.
condrestartReinicio Condicional.- Solamente se inicia si el servicio se encuentra ejecutándose.
statusDa a conocer el estado en el que se encuentra el servicio
Como alternativa también podemos ocupar el siguiente comando para iniciar el servidor samba
[root@ localhost ~]# service smb start
Y de igual manera podemos usar las opciones antes descritas en la tabla anterior. Recuerde que estos comandos se ejecutan como root.

Conectando con el servidor Samba

La forma para conectar al servidor samba desde terminal sigue la siguiente sintaxis
[BASH]# smbclient  //IPdelServidorSamba/recursoCompartido -U usuario

SERVIDOR PROTOCOLO DE CONFIGURACION DINAMICA DE HOST (DHCP) EN LINUX

Introduccion a DHCP

El bien conocido DHCP (Dinamic Host Control Protocol)es un protocolo de red utilizado para asignar una serie de configuraciones TCP/IP (direccion IP, nombre,dominio al que pertenece, routeador y servidor DNS) a los equipos de una red de área local LAN (Local Area Network). Sin el uso de un servidor DHCP, cada dirección IP se tendria que configurar manualmente en cada equipo y, si el equipo se mueve a otra subred, la IP del equipo seria diferente a la establecida antes. El DHCP le permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y, automáticamente, asignar y enviar una nueva IP si el equipo es conectado en un lugar diferente de la red. El protocolo DHCP incluye tres métodos de asignación de direcciones IP:
  • Asignación manual: Asigna una dirección IP a un equipo determinado. Es mas frecuentemente utilizado cuando se desea controlar la asignacion de direcciones IP a cada equipo y asi evitar tambien , que se conecten equipos no identificados
  • Asignación automática: Asigna una dirección IP de forma permanente a un equipo. Se suele utilizar cuando el número de equipos en la LAN no varía demasiado.
  • Asignación dinámica: Este metodo hace uso de la reutilizacion de direcciones IP, técnica mediante la cual, el servidor dhcp reinicia las tarjetas de red cada cierto intervalo de tiempo, asignando una nueva direccion IP a los equipos.

Requerimientos para la Instalación de un DHCP

Procederemos a instalar nuestro servidor DHCP mediante la descarga de los siguientes paquetes por lo que se recomienda que dichas descargas se hagan como root, obviamente siempre Para ello teclearemos en consola lo siguiente:
[localhost@localdomain ~]# yum install -y dhcp
Una vez que se halla descargado e instalado el dhcp, este creara su fichero de configuración en la siguiente ubicación:
/etc/dhcpd.conf

Configuracion del fichero dhcpd.conf

El primer paso para configurar el servidor de DHCP será editar el fichero dhcp.conf al cual le añadiremos la información de nuestra LAN. El archivo de configuración puede contener tabulaciones o líneas en blanco adicionales para facilitar el formato. Las palabras clave no distinguen entre mayúsculas y minúsculas. Las líneas que empiezan con el simbolo numeral (#) se consideran comentarios. Consideremos el siguiente requirimiento:
Se requiere implementar un servidor DHCP que implemente los tres métodos de asignación de direcciones IP. El servidor DHCP contara con dos tarejtas de red, las cuales tendran asignadas las direcciones 192.168.1.5 y 192.168.2.5, el segmento de red sobre el cual actuara el servidor DHCP es el 192.168.1.0, la submascara de red asignada sera la 255.255.255.0, asi mismo el servidor DHCP servira como gateway el cual tendra asignada la misma direccion IP que el DHCP (192.168.1.5), la direccion de broadcast asignada será la 192.168.1.255, el rango de direcciones IP que asignará el servidor DHCP estará entre el rango de 192.168.1.7 á 192.168.1.100.
El diagrama de la red quedara de la siguiente manera

Parametros de configuracion

ignore client-updatesParametro que ignora las direcciones IP antes asignadas
shared-network redLocalParametro que describe las subredes que compartiran la misma red física las cuales se especifican dentro de esta declaración
subnetSegmento de subred sobre el cual actuara el dhcp
netmask Mascara de red de la subred
option routersParametro que especifica mediante IP la ubicación del router
option subnet-maskMascara de red de la subred
option broadcast-addressParametro que especifica la IP de broadcast
option domain-name "tuDominio.com";Parametro que describe el nombre de tu dominio
option domain-name-servers Parametro que especifica mediante IP la ubicación del DNS
range Rango sobre el cual el DHCP asignará direcciones IP
default-lease-time Parametro que indica el tiempo entre cada nueva asignacion de IP a los equipos
max-lease-time Parametro que indica el tiempo de vigencia de la direccion IP para cada equipo
host nombreDeLaMaquinaParametro que describe el nombre del equipo
option host-name "nombreDeLaMaquina.tuDominio.com"Parametro que describe el nombre de la computadora y el nombre de dominio asociado a la misma
hardware ethernet Parametro que describe la direccion MAC asociada a la tarjeta ethernet del equipo
fixed-address Parametro que describe la direccion IP destinada a un equipo

Editaremos el fichero /etc/dhcpd.conf de tres maneras diferentes, esto con el fin de ejemplificar los tres métodos de asignación de direcciones IP.

Asignación manual

Abriremos una terminal y con la ayuda de “vi” editaremos el fichero dhcpd.conf
[localhost@localdomain ~]#vi /etc/dhcpd.conf
Una vez abierto el fichero deberemos añadir el siguiente contenido:
# 
# DHCP Server Configuration file. 
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample  
# 
ddns-update-style interim; 
ignore client-updates; 
shared-network redLocal{ 

 subnet 192.168.2.0 netmask 255.255.255.0{ 
                option routers 192.168.2.5; 
                option subnet-mask 255.255.255.0; 
                option broadcast-address 192.168.2.255; 
                option domain-name "redLocal.com."; 
                option domain-name-servers 192.168.2.5; 

        } 
        host maquina1{ 
                option host-name "maquina1.redLocal.com"; 
                hardware ethernet 00:1b:24:e2:d7:41; 
                fixed-address 192.168.2.10; 
        } 
        host maquina2{ 
                option host-name "maquina2.redLocal.com"; 
                hardware ethernet 00:2c:212:ef5:a7:13; 
                fixed-address 192.168.2.11; 
        }
}   
Lo hecho anteriormente hace que el servidor DHCP asigne a dos equipos de la red, las direcciones IP que fueron anexadas en el fichero dhcp.conf .

Asignación automatica

Abriremos una terminal y con la ayuda de “vi” editaremos el fichero dhcpd.conf
[localhost@localdomain ~]#vi /etc/dhcpd.conf
Una vez abierto el fichero deberemos añadir el siguiente contenido:
# 
# DHCP Server Configuration file. 
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample  
# 

ddns-update-style interim; 
ignore client-updates; 
shared-network factorcentos{ 
        subnet 192.168.2.0 netmask 255.255.255.0{ 
                option routers 192.168.2.5; 
                option subnet-mask 255.255.255.0; 
                option broadcast-address 192.168.2.255; 
                option domain-name "factorcentos.com.mx"; 
                option domain-name-servers 192.168.2.5; 
                range 192.168.2.1 192.167.2.100; 
        } 
}    
Lo hecho anteriormente hace que el servidor DHCP asigne a dos equipos de la red, dos direcciones IP aleatorias dentro del rango de 192.168.2.10 al 192.168.1.200

Asignación dinamica

Abriremos una terminal y con la ayuda de “vi” editaremos el fichero dhcpd.conf
[localhost@localdomain ~]#vi /etc/dhcpd.conf
Una vez abierto el fichero deberemos añadir el siguiente contenido:
# 
# DHCP Server Configuration file. 
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample  
# 

ddns-update-style interim; 
ignore client-updates; 
shared-network factorcentos{ 
        subnet 192.168.2.0 netmask 255.255.255.0{ 
                option routers 192.168.2.5; 
                option subnet-mask 255.255.255.0; 
                option broadcast-address 192.168.2.255; 
                option domain-name "factorcentos.com.mx"; 
                option domain-name-servers 192.168.2.5; 
                range 192.168.2.1 192.167.2.100; 
                default-lease-time 21600; 
                max-lease-time 43200;
        } 
}    
Lo hecho anteriormente hace que el servidor DHCP asigné a dos equipos de la red, dos direcciones IP aleatorias dentro del rango de 192.168.2.10 al 192.168.1.200 las cuales seran renovadas cada cierto tiempo asignado de nuevo direcciones IP aleatorias dentro del rango de 192.168.2.10 al 192.168.1.200.

Levantando el servicio

Al terminar de editar todos los ficheros involucrados, solo bastará iniciar el servidor DHCP, el cual podrá inicializarse, detenerse o reinicializarse con el comando “/etc/init.d” ó de otra forma añadirlo al arranque del sistema en un nivel o niveles de corrida en particular con el mandato chkconfig. Para ejecutar por primera vez el servicio teclear en consola lo siguiente:
[localhost@localdomain ~]#/etc/init.d/dhcpd start
Para reiniciar el servicio:
[localhost@localdomain ~]#/etc/init.d/dhcpd restart
Para detener el servicio, utilice:
[localhost@localdomain ~]#/etc/init.d/dhcpd stop
Para añadir el servidr DHCP al arranque del sistema en todos los niveles de corrida, utilice:
[localhost@localdomain ~]#chkconfig dhcpd on

lunes, 13 de diciembre de 2010

COMO INSERTAR CODIGO ASP.NET EN LAS PAGINAS WEB

La forma de escribir el código ASP.NET como sabemos, era con las etiquetas <script> y </script> para terminar. Pero le falta algo porque puede haber secuencias de javascript o visual basic script que se ejecuten en el navegador, es decir en el cliente. Luego necesitamos decirle que el código que viene a continuación se ejecuta en el servidor, para esto utilizamos la instrucción "runat" que será "server" para que se ejecute en el servidor, es decir, nuestro caso:
<script languaje="VB" runat="server">
    ...
</script>
Como ves además le hemos indicado el lenguaje con el que está escrito el código, recuerda que se puede utilizar cualquier lenguaje compatible con .NET y nosotros hemos elegido VB.NET. Como el lenguaje por defecto de ASP.NET es VB.NET esta instrucción la podemos omitir y así por defecto sabe que está escrito en este lenguaje. Si utilizásemos otro esta instrucción sería ya obligatoria:
<script languaje="C#" runat="server">
    ...
</script>
Ahora nos queda cómo decirle a la página que ejecute determinadas instrucciones cuando se abra... para esto utilizaremos una secuencia ya predefinida y que veremos después llamada Page_Load. Esto es un poco mas complicado y lo veremos mejor mas adelante, de momento quédate con que es lo que se ejecuta el iniciar la página:
<script runat="server">
sub Page_Load(source as Object, e as EventArgs)
    Aquí va nuestro código VB.NET
end sub
</script>

Después de esto, quedan claras las preguntas para generar los enlaces o dejar dentro de un DIV el código

COMO FUNCIONA ASP.NET

Normalmente debes pensar en una página ASP.NET como una página HTML que tiene dentro algunas instrucciones especiales. Cuando se instala el .NET el IIS automáticamente se configura para detectar las páginas con extensión .aspx que son precisamente nuestras páginas ASP.NET. Cuando detecta que se solicita una página aspx la procesa antes de devolverla y finalmente la salida se envía al explorador del cliente.

Cuando hicimos el ejemplo en FrontPage simplemente le pusimos la extensión aspx a la página que estábamos diseñando. Con esto es suficiente para que nuestro IIS sepa que debe procesarla. ¿Y si una página con código tiene extensión htm en lugar de aspx? Pues que devuelve lo siguiente para nuestro ejemplo:


Como podríamos esperar no se ha ejecutado nada... así que ya sabemos el porqué de la extensión aspx. Es la elegida por Microsoft para las páginas con código ASP.NET dentro. Las antiguas páginas ASP tenían la extensión ".ASP" A partir de ahora te fijarás en muchos sitios web en el navegador y verás las extensiones de las páginas: ASP, ASPX, PHP (de Linux), JSP (de Java...)

sábado, 11 de diciembre de 2010

LINEAS DEDICADAS

Líneas dedicadas

Las líneas "dedicadas" posibilitan la transmisión de datos a velocidades medias y altas (de 64Kbps a 140 Mbps) a través de conexiones de punto a punto o multipunto (servicio Transfix).
En Europa, existen cinco tipos de líneas que se distinguen según sus velocidades:
  • E0 (64 Kbps)
  • ,
  • E1 = 32 líneas E0 (2 Mbps)
  • ,
  • E1 = 128 líneas E0 (8 Mbps)
  • ,
  • E3 = 16 líneas E1 (34 Mbps)
  • ,
  • E4 = 64 líneas E1 (140 Mbps)
En Estados Unidos, el concepto es el siguiente:
  • T1 (1,544 Mbps)
  • T2 = 4 líneas T1 (6 Mbps)
  • ,
  • T3 = 28 líneas T1 (45 Mbps)
  • ,
  • T4 = 168 líneas T1 (275 Mbps)

¿Para que se necesita una línea dedicada?

Como regla general, para obtener una conexión a Internet se debe pagar un abono a un proveedor de servicios de Internet o a un servicio en línea. Los costos de esta conexión dependen de la velocidad de la transferencia de datos.

viernes, 10 de diciembre de 2010

ACTUALIZACION 3.6.13 DE FIREFOX

Si hoy  estabas navegando tranquilamente por la Web con Mozilla Firefox, deberían de haber recibido la notificación de que una nueva versión disponible. Con múltiples detalles a corregir en la versión 4, muchos usuarios que le habían dado una probada a la beta emprendieron su camino de regreso a la serie estable de la familia 3.6.x. Este último parche se concentra específicamente en la seguridad, cubriendo exactamente once agujeros de los cuales nueve han sido considerados críticos. Después de esta introducción no estaría demás actualizarse,,...cierto?

Conociendo el estado de Firefox 4, es lógico asumir que todavía tenemos algunos meses más por delante navegando con la familia 3.6.x, por lo tanto la actualización es recomendada. Aunque son muchos los que han abandonado al zorro de fuego para unirse a la legión del cada vez más veloz Google Chrome, el casi 23 por ciento del mercado que posee Firefox representa a una gran cantidad de usuarios. La actualización ya debería estar disponible de forma automática, pero en caso de que exista alguna razón por la cual no puedas aplicarla, siempre está la posibilidad de descargar directamente al nuevo instalador.

jueves, 9 de diciembre de 2010

ALTERNATIVA A PARTITION MAGIC

Era un grande y un salvador y Partition Magic fue probablemente la gran o quizás la mejor herramienta para crear y administrar particiones, tanto bajo DOS como bajo Windows. Pero, tras la compra de PowerQuest por parte de Symantec, (que no es lo único que ha comprado), el programa fue declarado discontinuado, y las versiones remanentes son demasiado antiguas para los sistemas operativos de hoy. Sin embargo, han surgido diferentes alternativas a Partition Magic, con la funcionalidad suficiente para cubrir el vacío. En el día de hoy encontramos a EASEUS Partition Master, cuya versión para uso personal es completamente gratuita.

La última versión disponble de Partition Magic (o PartitionMagic, como prefieran), fue la 8.05 y tiene más de seis años. La empresa PowerQuest, creadora original del software, tuvo un crecimiento extraordinario gracias a la popularidad y la amplia funcionalidad de su herramienta, pero en 2003 apareció Symantec con algunos billetes, y Partition Magic pasó a formar parte de sus filas. Por alguna razón, el interés de Symantec por el gran programa de creación y administración de particiones duró apenas un año, y fueron varias las ocasiones en las que la empresa destacó que no tenía intenciones de seguir desarrollándolo. Por suerte, la idea de una alternativa gratis a Partition Magic ha quedado patentada en diferentes aplicaciones. El código abierto tiene a un excelente representante con GParted, e incluso ya hemos probado herramientas similares. En esta ocasión, le hemos dado una probada a EASEUS Partition Master.
El programa ofrece varios asistentes que permiten la clonación tanto de discos como de particiones, en caso de que desees reemplazar tu unidad actual con otra más grande y sea imperativo conservar los datos. También hay operaciones exclusivas a nivel de partición, como pueden ser el traslado, y más importante aún, el cambio dinámico de tamaño. Si bien Windows 7 y Windows Vista ofrecen a sus usuarios la posibilidad de alterar el tamaño de las particiones, en Windows XP esta opción no está disponible, y es necesario recurrir a herramientas externas. EASEUS Partition Master puede cumplir este rol a la perfección, y como función adicional cuenta con un sistema de recuperación de particiones (en caso de que desaparezcan misteriosamente), junto a un atajo directo para desfragmentar los discos duros.

La edición hogareña de EASEUS Partition Master es completamente gratuita, y la única limitación que hemos encontrado es la imposibilidad de crear un CD de inicio desde el interior de la aplicación, para utilizar sus funciones en un entorno de bajo nivel (léase "fuera de Windows"). Es compatible con Windows 2000 Professional, XP, Vista y Windows 7, tanto en 32 como en 64 bits. Cuando fue discontinuado por Symantec dejó un vacío muy grande, pero hoy en día encontrar una alternativa gratis a Partition Magic es mucho más sencillo de lo que pensábamos. Siempre y cuando necesites trabajar desde el interior de Windows, EASEUS Partition Master será una buena opción.

martes, 7 de diciembre de 2010

El sistema de cifrado WEP garantiza la seguridad de mi WiFi

Mito

El sistema de cifrado WEP garantiza la seguridad de mi conexión inalámbrica WiFi. 

Realidad

FALSO 

Explicación

En teoría, el sistema de cifrado WEP permite:
  • Impedir que personas no autorizadas accedan a tu punto de acceso WiFi
  • Cifrar la información que se transmite por WiFi


En la práctica, existen herramientas que permiten encontrar la clave de cifrado WEP en pocos segundos, incluso con claves de 128 bits. 

(Fuente: SecurityFocus, Slashdot ) 

Las últimas técnicas permiten encontrar la clave con solo 8500 paquetes capturados. 

Una vez que el intruso haya obtenido tu clave WEP, podrá ver todo lo que haces en Internet y realizar otros ataques. 

Actualmente, la única solución consiste en utilizar equipos WiFi que soporten el estándar WPAWPA2 utilizando el protocolo AES o utilizar un VPN (como OpenVPN, gratuito) 

PD: El artículo original fue escrito por sebsauvage, contribuidor de CommentCaMarche

FIREWALLS QUE SON???

Cada ordenador que se conecta a internet (y, básicamente, a cualquier red de COOMPUTADORAS) puede ser víctima del ataque de un hacker. La metodología que generalmente usan los hackers consiste en analizar la red (mediante el envío aleatorio de paquetes de datos) en busca de un ordenador conectado. Una vez que encuentra un ordenador, el hacker busca un punto débil en el sistema de seguridad para explotarlo y tener acceso a los datos de la máquina.
Por muchas razones, esta amenaza es aún mayor cuando la máquina está permanente conectada a internet:
  • Es probable que la máquina elegida esté conectada pero no controlada.
  • Generalmente, la máquina conectada que se elige posee un ancho de banda más elevado.
  • La máquina elegida no cambia las direcciones IP o lo hace muy ocasionalmente.
Por lo tanto, es necesario que tanto las redes de las compañías como los usuarios de internet con conexiones por cable o ADSL se protejan contra intrusiones en la red instalando un dispositivo de protección.

¿Qué es un Firewall?

Un firewall es un sistema que protege a un ordenador o a una red de ordenadores contra intrusiones provenientes de redes de terceros (generalmente desde internet). Un sistema de firewall filtra paquetes de datos que se intercambian a través de internet. Por lo tanto, se trata de una pasarela de filtrado que comprende al menos las siguientes interfaces de red:
  • una interfaz para la red protegida (red interna)
  • una interfaz para la red externa.
Firewall
El sistema firewall es un sistema de software, a menudo sustentado por un hardware de red dedicada, que actúa como intermediario entre la red local (u ordenador local) y una o más redes externas. Un sistema de firewall puede instalarse en ordenadores que utilicen cualquier sistema siempre y cuando:
  • La máquina tenga capacidad suficiente como para procesar el tráfico
  • El sistema sea seguro
  • No se ejecute ningún otro servicio más que el servicio de filtrado de paquetes en el servidor
En caso de que el sistema de firewall venga en una caja negra (llave en mano), se aplica el término "aparato".

Cómo funciona un sistema Firewall

Un sistema firewall contiene un conjunto de reglas predeterminadas que le permiten al sistema:
  • Autorizar la conexión (permitir)
  • Bloquear la conexión (denegar)
  • Rechazar el pedido de conexión sin informar al que lo envió (negar)
Todas estas reglas implementan un método de filtrado que depende de la política de seguridadadoptada por la organización. Las políticas de seguridad se dividen generalmente en dos tipos que permiten:
  • la autorización de sólo aquellas comunicaciones que se autorizaron explícitamente:
    "Todo lo que no se ha autorizado explícitamente está prohibido"
  • el rechazo de intercambios que fueron prohibidos explícitamente
El primer método es sin duda el más seguro. Sin embargo, impone una definición precisa y restrictiva de las necesidades de comunicación.

Filtrado de paquetes Stateless

Un sistema de firewall opera según el principio del filtrado simple de paquetes, o filtrado de paquetes stateless. Analiza el encabezado de cada paquete de datos (datagrama) que se ha intercambiado entre un ordenador de red interna y un ordenador externo.
Así, los paquetes de datos que se han intercambiado entre un ordenador con red externa y uno con red interna pasan por el firewall y contienen los siguientes encabezados, los cuales son analizados sistemáticamente por el firewall:
  • La dirección IP del ordenador que envía los paquetes
  • La dirección IP del ordenador que recibe los paquetes
  • El tipo de paquete (TCP, UDP, etc.)
  • El número de puerto (recordatorio: un puerto es un número asociado a un servicio o a una aplicación de red).
Las direcciones IP que los paquetes contienen permiten identificar el ordenador que envía los paquetes y el ordenador de destino, mientras que el tipo de paquete y el número de puerto indican el tipo de servicio que se utiliza.
La siguiente tabla proporciona ejemplos de reglas del firewall:
ReglaAcciónIP fuenteIP destinoProtocoloPuerto fuentePuerto destino
1Aceptar192.168.10.20194.154.192.3tcpcualquiera25
2Aceptarcualquiera192.168.10.3tcpcualquiera80
3Aceptar192.168.10.0/24cualquieratcpcualquiera80
4Negarcualquieracualquieracualquieracualquieracualquiera
Los puertos reconocidos (cuyos números van del 0 al 1023) están asociados con servicios ordinarios (por ejemplo, los puertos 25 y 110 están asociados con el correo electrónico y el puerto 80 con la Web). La mayoría de los dispositivos de firewall se configuran al menos para filtrar comunicaciones de acuerdo con el puerto que se usa. Normalmente, se recomienda bloquear todos los puertos que no son fundamentales (según la política de seguridad vigente).
Por ejemplo, el puerto 23 a menudo se bloquea en forma predeterminada mediante dispositivos de firewall, ya que corresponde al protocolo TELNET, el cual permite a una persona emular el acceso terminal a una máquina remota para ejecutar comandos a distancia. Los datos que se intercambian a través de TELNET no están codificados. Esto significa que es probable que un hacker observe la actividad de la red y robe cualquier contraseña que no esté codificada. Generalmente, los administradores prefieren el protocolo SSH, el cual tiene la reputación de ser seguro y brinda las mismas funciones que TELNET.

Filtrado Dinámico

El Filtrado de paquetes Stateless sólo intenta examinar los paquetes IP independientemente, lo cual corresponde al nivel 3 del modelo OSI (Interconexión de sistemas abiertos). Sin embargo, la mayoría de las conexiones son admitidas por el protocolo TCP, el cual administra sesiones, para tener la seguridad de que todos los intercambios se lleven a cabo en forma correcta. Asimismo, muchos servicios (por ejemplo, FTP) inician una conexión en un puerto estático. Sin embargo, abren un puerto en forma dinámica (es decir, aleatoria) para establecer una sesión entre la máquina que actúa como servidor y la máquina cliente.
De esta manera, con un filtrado de paquetes stateless, es imposible prever cuáles puertos deberían autorizarse y cuáles deberían prohibirse Para solucionar este problema, el sistema de filtrado dinámico de paquetes se basa en la inspección de las capas 3 y 4 del modelo OSI, lo que permite controlar la totalidad de las transacciones entre el cliente y el servidor. El término que se usa para denominar este proceso es "inspección stateful" o "filtrado de paquetes stateful".
Un dispositivo de firewall con "inspección stateful" puede asegurar el control de los intercambios. Esto significa que toma en cuenta el estado de paquetes previos cuando se definen reglas de filtrado. De esta manera, desde el momento en que una máquina autorizada inicia una conexión con una máquina ubicada al otro lado del firewall, todos los paquetes que pasen por esta conexión serán aceptados implícitamente por el firewall.
El hecho de que el filtrado dinámico sea más efectivo que el filtrado básico de paquetes no implica que el primero protegerá el ordenador contra los hackers que se aprovechan de las vulnerabilidades de las aplicaciones. Aún así, estas vulnerabilidades representan la mayor parte de los riesgos de seguridad.

Filtrado de aplicaciones

El filtrado de aplicaciones permite filtrar las comunicaciones de cada aplicación. El filtrado de aplicaciones opera en el nivel 7 (capa de aplicaciones) del modelo OSI, a diferencia del filtrado simple de paquetes (nivel 4). El filtrado de aplicaciones implica el conocimiento de los protocolos utilizados por cada aplicación.
Como su nombre lo indica, el filtrado de aplicaciones permite filtrar las comunicaciones de cada aplicación. El filtrado de aplicaciones implica el conocimiento de las aplicaciones en la red y un gran entendimiento de la forma en que en ésta se estructuran los datos intercambiados (puertos, etc.).
Un firewall que ejecuta un filtrado de aplicaciones se denomina generalmente "pasarela de aplicaciones" o ("proxy"), ya que actúa como relé entre dos redes mediante la intervención y la realización de una evaluación completa del contenido en los paquetes intercambiados. Por lo tanto, el proxy actúa como intermediario entre los ordenadores de la red interna y la red externa, y es el que recibe los ataques. Además, el filtrado de aplicaciones permite la destrucción de los encabezados que preceden los mensajes de aplicaciones, lo cual proporciona una mayor seguridad.
Este tipo de firewall es muy efectivo y, si se ejecuta correctamente, asegura una buena protección de la red. Por otra parte, el análisis detallado de los datos de la aplicación requiere una gran capacidad de procesamiento, lo que a menudo implica la ralentización de las comunicaciones, ya que cada paquete debe analizarse minuciosamente.
Además, el proxy debe interpretar una gran variedad de protocolos y conocer las vulnerabilidades relacionadas para ser efectivo.
Finalmente, un sistema como este podría tener vulnerabilidades debido a que interpreta pedidos que pasan a través de sus brechas. Por lo tanto, el firewall (dinámico o no) debería disociarse del proxy para reducir los riesgos de comprometer al sistema.

El concepto de Firewall personal

El término firewall personal se utiliza para los casos en que el área protegida se limita al ordenador en el que el firewall está instalado.
Un firewall personal permite controlar el acceso a la red de aplicaciones instaladas en el ordenador y prevenir notablemente los ataques de programas como los troyanos, es decir, programas dañinos que penetran en el sistema para permitir que un hacker controle el ordenador en forma remota. Los firewalls personales permiten subsanar y prevenir intrusiones de aplicaciones no autorizadas a conectarse a su ordenador.

Limitaciones del Firewall

Por supuesto que los sistemas firewall no brindan seguridad absoluta; todo lo contrario. Los firewalls sólo ofrecen protección en tanto todas las comunicaciones salientes pasen sistemáticamente a través de éstos y estén configuradas correctamente. Los accesos a la red externa que sortean el firewall también son puntos débiles en la seguridad. Claramente, éste es el caso de las conexiones que se realizan desde la red interna mediante un módem o cualquier otro medio de conexión que evite el firewall.
Asimismo, la adición de medios externos de almacenamiento a los ordenadores de sobremesa o portátiles de red interna puede dañar enormemente la política de seguridad general.
Para garantizar un nivel máximo de protección, debe ejecutarse un firewall en el ordenador y su registro de actividad debe controlarse para poder detectar intentos de intrusión o anomalías. Además, se recomienda controlar la seguridad (por ejemplo, inscribiéndose para recibir alertas de seguridad de CERT) a fin de modificar los parámetros del dispositivo de firewall en función de las alertas publicadas.
La instalación de un firewall debe llevarse a cabo de la mano de una política de seguridad real.

Esto se publicó en :
http://es.kioskea.net/contents/protect/firewall.php3