miércoles, 28 de noviembre de 2012

Información sobre novedades y revisiones.

En los últimos días he estado analizando algunas cosas del blog, con la intención de mejorarlo poco a poco. Los puntos que destaco son:

- Las entradas hechas hasta ahora, las cuales estoy reeditando debido a errores de lectura, alguna info contradictoria o datos que faltaban por completar. (Algunas entradas aún están sin acabar, como la de Usos del comando SC, que falta la parte de creación de servicios con el comando,y también la de Usar un SO CentOS como FTP, la cual voy a reeditar en unos días para hacerla más completa, y ya ni hablemos de la de Resolución de DHCP, la cual voy a ver si reescribo para mejorarla, que la veo muy ambigua) Si encuentran alguna información que esté mal, me gustaría que me lo dijeran para revisar y reeditar.

- El "buffer" de entradas que estoy elaborando (tengo algunas entradas para publicar como un minimanual de iptables, además de un pequeño manual-proyecto con un mouse de juegos Cyborg R.A.T 7 y sus diferentes usos). El problemilla del buffer es que siempre tardo mucho en publicar porque lo reviso muchas veces y voy cambiando palabras, o añadiendo info extra; entonces, por ése motivo, a veces tardo en publicar nuevas entradas, y también en revisar las hechas con anterioridad.

- El diseño del blog, el cual estoy adaptando para que se visualice de mejor forma (letra clara, fondos que no rompan la vista, simpleza de formato)

- La futura adición de imágenes en el blog (Hasta ahora no había subido ni una sola imagen, y me estoy dando cuenta que no puedo huir eternamente de documentarlo un poco) El motivo por el que nunca he subido imágenes es un poco nimio: Odio subir fotos y que se publiquen en Picasa (sonará estúpido, pero semos asín). Por esa razón, voy a hacer una cuenta en un servidor de imágenes externo y empezar a documentar las siguientes entradas (y si puedo, documentar las existentes lo que se pueda)

A fin de mejorar el servicio,  intentaré solucionar ésta serie de puntos para ofrecer una información más completa y detallada.

PD: También voy a probar el sistema de publicación de entradas programado. Por curiosidad.

sábado, 3 de noviembre de 2012

Área de intercambio (swap)


¿Qué es la swap?

La swap (también llamada área de intercambio) es un zona del disco duro, bien sea partición o archivo, que se usa para guardar las imágenes de los procesos que no pueden mantenerse en la memoria física o bien se transfieren para ahorrar memoria física. De este modo, por ejemplo, si tenemos un ordenador que soporta únicamente 1GB de memoria RAM, le podemos crear una partición swap de 1GB y así el ordenador pasaría a tener 2GB de memoria RAM: 1GB en la física y otro GB de memoria en el área de intercambio.

Quizá el nombre de swap nos suene a chino, Así que podemos pasar a llamarlo de igual forma, como Memoria virtual

Para tomar un ejemplo, vamos a pensar hipotéticamente que tenemos un sistema con arquitectura de 32 bits. Un sistema de ésa arquitectura puede manejar hasta 3GB de datos y no soporta más a partir de ahí. Si necesitáramos hacer uso de una capacidad de 4GB en ése ordenador, crear una swap de 1GB sería lo más acertado si no queremos reinstalar a un sistema de 64 bits.

¿Es bueno tener swap?

Siempre es bueno tener un espacio swap, por si acaso en algún momento nos faltara memoria RAM.


En los sistemas operativos, si no en la mayoría, siempre se intenta maximizar el uso de la memoria: si un ordenador tiene apenas 512 de RAM, los aproveche al máximo de su potencial. Sin embargo, si no es capaz de aguantar todos los procesos, sería bueno crear una partición swap extensa. Si por ejemplo, lo que usamos son procesos que no tienen por qué mantenerse todo el rato en la memoria física, se envían a la swap.

Además, como ejemplo práctico: Cuando iniciamos Linux hay muchos servicios y procesos que ejecutamos en el ordenador (cups, hidd, sshd, entre otros). Si el ordenador no los va a usar en ése momento, los puede pasar a la swap y dejarlos en segundo plano, y si los requiere para usar en la memoria principal, los pasaría de la swap a la física cuando fuera oportuno. 

La memoria swap ¿Es exclusiva de los sistemas Linux?

No. Windows también usa áreas de intercambio similares a las de Linux, con la diferencia de que dichas áreas se localizan en la misma partición donde se está ejecutando el sistema. Así, por ejemplo, no es necesario hacer dos o más particiones para un solo sistema Windows. Aun así, Linux también permite crear ficheros de swap, por si en nuestro disco duro no pudiéramos crear más particiones y fueramos muy justos de espacio de particionado.


¿Qué tipos de  espacio de memoria swap hay?

Existen dos tipo de espacio:

  • Partición de swap.

Está basada en la creación de una partición en disco dedicada exclusivamente para la swap.

Entre sus ventajas están que no se necesita desfragmentar nunca dicha unidad, y que si es colocada al principio de un cilindro, actuará de mejor forma.

Como desventaja está que la partición swap siempre estará ocupada y al 100% de su capacidad, lo cual no es una desventaja muy grande. Además, si nuestro espacio de particiones es muy limitado, crear una swap no siempre es un buen método.

  • Archivo swap

Es un archivo alojado en un sistema de ficheros, el cual hace de memoria swap. Normalmente se crea un archivo swap en dos casos: No tenemos espacio para una partición swap independiente, o hemos modificado las prestaciones del ordenador y necesitamos más memoria swap aparte de la adicional creada.

Entre algunas de sus ventajas se encuentra la versatilidad (crear, borrar, y editar la partición como quiera el usuario), si bien su principal desventaja es la fragmentación que puede ocasionar el fichero.



Aunque aquí no lo vaya a exponer, algunas distribuciones de Linux como CentOS permiten crear en una sola partición de disco un LVM (Logical Volume Manager). Un LVM es un administrador lógico de disco que usa, por ejemplo, 50 GB de disco como una sola partición. En esos 50 GB de disco, se pueden crear varias particiones dentro (una para /home, otra para /usr), y puede dar la opción de crear una partición swap en ellas; así, por ejemplo, puedes tener una partición de 50 GB llamada /hda1, pero que en realidad se divida en /hda2 para sistema de archivos, /hda3 para swap, /hda4 para /home/usuario... La única "pega" que puede llegar a tener es que requiera de una partición auxiliar llamada /boot para que haga el montaje del LVM, lo cual serían tres particiones en dos.

Nota: LVM es algo que no he dado mucho, así que si por algún casual estoy diciendo una barbaridad o me equivoco en la descripción, me gustaria que me lo comunicaran cuanto antes. Es una definición que se me ha ocurrido que es así, basándome en los datos que tengo, pero que no estoy convencido de si será. Mejor errar, preguntar y rectificar que errar y creer que estoy en lo correcto cuando no es así ;-)

¿Cuánto espacio de swap sería conveniente utilizar?

Antiguamente siempre ha existido un debate sobre cuánta memoria swap debe darse en un disco duro.

Una amplia mayoría expone que es bueno que la memoria swap sea el doble que la memoria real, pero eso era antes, donde la memoria RAM era un poco escasa y los ordenadores que llegaran a 1GB de RAM se consideraban una maravilla. En la actualidad, algunos informáticos siguen optando por usar este modelo.

Otra mayoría argumenta que lo mejor sería calcular un intermedio sobre lo que iríamos a hacer en el ordenador. Así, por ejemplo, si el sistema que vamos a manejar posee poca RAM, haríamos un cálculo aproximado de la memoria que podríamos llegar a utilizar y ponerla como swap (Por ejemplo, si tenemos un sistema de 512 MB y pensamos que necesitamos tener 2GB, haríamos la diferencia, la cual sería 1536 MB como swap)

Ahora, con la aparición de los portátiles y sobremesas de 4GB, 6GB y hasta 8GB, hasta podríamos prescindir de la creación de swap, pues Linux no requiere exclusivamente de que haya swap, pero sí es bueno tener la partición por si acaso.

Tengo dos sistemas linux en un mismo disco duro ¿Se puede compartir la partición swap?

Se puede, siempre que esa swap sea partición y no archivo. Como la swap corresponde a una partición determinada con su correspondiente UUID, bastará con decirle al sistema operativo al que queramos añadir la swap, en su /etc/fstab, que monte la unidad swap y la inicialice.

Existe el debate de si es bueno o no usar este método. Unos dicen que no pasa nada, debido a que el sistema cuando se apaga, borra todo lo existente en la swap, con lo que queda lista para el siguiente sistema sea uno u otro. Otros, sin embargo, explican que el SO puede crear unos registros en la swap y éstos interfieran en los demás sistemas, y además algunos sistemas son bastante reticentes en que se comparta swap.

Nunca he tenido la oportunidad de realizar el experimento, pero si se presenta la ocasión, la realizaré y les comento qué sucede. Si alguno quiere corroborar alguna de las dos teorías, es libre de hacerlo.

Fuentes:
Wikipedia.
Apuntes de clase.
Para la "explicación" de LVM me ayudé de varias páginas, aparte de la experiencia propia con ése sistema.
Experimentos realizados en entornos controlados.
Para la parte de compartición de swap, algunos blogs sobre el tema.

Ultima revisión: Abril de 2014
Razón: Correcciones ortográficas.

martes, 21 de agosto de 2012

Utilizar un sistema operativo CentOS como servidor FTP

Hace unas cuantas entradas, publiqué en el blog cómo hacer que CentOS se convirtiera en un router para enrutar paquetes y conexiones en una red local pequeña, realizar un servidor DHCP para ésa misma red y configurar el iptables. Para aprovechar las funcionalidades de las que es capaz de dotarnos un sistema operativo libre, y para sacarle el máximo partido, hoy vamos a ver cómo instalar un servidor FTP en el sistema operativo CentOS y configurarlo a como queramos usarlo.


Si volvemos en el tiempo (a la entrada de Introducción a FTP) vemos que había distintas maneras de realizar un servidor FTP (con usuarios, usuario guest o usuario anonymous, modo activo y pasivo, control de datos). Para sacar el máximo rendimiento a la anterior entrada y así, poner un poco en práctica los conceptos, hoy, vamos a ver cómo instalar el servidor FTP en un CentOS 5.7 y lo que debemos hacer para que nos funcione perfectamente.

Para ayudarnos en la tarea y centrarnos en qué debemos hacer en el servidor, así como saber qué instalamos, qué red usaremos y más detalles, vamos a poner un escenario.

Escenario de ejemplo:

Tenemos una red local bastante extensa, de alrededor de 50 ordenadores. Para modernizar el servicio y centralizar servicios, decidimos implementar un servidor FTP para almacenar archivos, o por el contrario, ofrecérselos al resto de usuarios. Para evitar que el futuro servidor sea un caos con tanto trajín de datos arriba y abajo, se opta por establecer una política de usuarios, los cuales deben acreditar su usuario y su clave para acceder a su carpeta personal dentro del servidor.

Una vez propuesto el escenario, lo interpretaremos:

- El servidor FTP será de dirección IP estática, para evitar así posibles errores en la dirección.
- El servidor FTP tendrá usuarios y contraseñas para garantizar la correcta entrada.
- Como sabemos que nuestra red sólo tiene 50 ordenadores, limitaremos la entrada de conexiones en nuestro servidor FTP y además estableceremos que un ordenador puede utilizar una conexión al servidor como máximo.

NOTA: A modo complementario, y siguiendo éste pequeño tutorial y el listado de cláusulas que pondré más adelante, a la entrada creada con anterioridad sobre crear un router con DHCP en el mismo CentOS le podemos añadir el servidor FTP, para así tener en el mismo CentOS un servidor DHCP, FTP y enrutador de red local. Eso ya como al usuario final, que es el que está leyendo, quiera. Si decide implementarlo, recuerde abrir los puertos 20 y 21 del IPTABLES para que funcione correctamente.

Empecemos a realizar todo:

Instalaremos los paquetes necesarios del repositorio.

El paquete que debemos instalar del repositorio es vsftpd (Very Secure FTP daemon en sus siglas)

# yum install vsftpd

Tardará unos minutos en descargar el paquete del repositorio e implementarlo en nuestro servidor.

2º Configuraremos el servidor FTP a nuestro gusto.

Una vez tenemos el paquete instalado, pasaremos a configurarlo. Para ello, usaremos vim para editar el archivo de configuración. Dicho fichero se encuentra en /etc/vsftpd y su nombre es vsftpd.conf

# vi /etc/vsftpd/vsftpd.conf

Ahora, pasaremos a explicar las cláusulas presentes (Con un asterisco señalaré las que de verdad nos interesan y las que modificaremos o tendremos en cuenta, tenga puesto YES, NO o "perico de los palotes").

  • *anonymous_enable: Esta cláusula hace referencia a si queremos activar el usuario anónimo o no. En nuestro servidor, utilizaremos la opción NO

  • *local_enable: Permite que los usuarios que están dados de alta en tu máquina accedan al servidor FTP con su usuario y contraseña. Por defecto, el valor es YES. Lo dejaremos así.

  • *write_enable: Con esta opción hacemos referencia a si queremos que los usuarios puedan subir archivos. Como hemos querido hacer que sí suban, la marcaremos como YES

  • default_umask: Umask por defecto en el servidor. Por defecto es 022. No se toca a no ser que lo queramos cambiar.

  • *anon_upload_enable: Permite a los usuarios anónimos a subir archivos. Por defecto está comentada. No la descomentamos, ya que no queremos usuarios anónimos.

  • anon_mkdir_write_enable: Permite a los usuarios anónimos crear directorios. Por defecto está comentada. No se descomenta.

  • dirmessage_enable: Cada vez que un usuario entra a un directorio, se crea un mensaje informando en qué directorio está. Lo dejamos como YES.

  • *xferlog_enable:Genera un fichero log con las cosas realizadas. Lo marcamos como YES si queremos un registro completo de los movimientos (Opcional)

  • connect_from_port_20: Conectarse al servidor utilizando el puerto 20. Lo marcamos como YES.

  • chown_uploads y chown_username: Estas cláusulas no se descomentan. La primera hace referencia a que cuando un anónimo sube un archivo al servidor, lo guarda como si fuera el usuario o grupo especificado en chown_username.

  • *xferlog_file: La ruta donde estará el archivo xferlog_file.

  • *idle_session_timeout: Especifica el timeout que daremos a una conexión FTP que está inactiva. Por defecto, nosotros usaremos 600 (que equivale a 10 minutos)

  • *data_connection_timeout: Si una conexión activa de datos está en transferencia pero no hay tráfico de datos como tal (bien sea por un error u otra causa), especificaremos el timeout para no sobrecargar el servidor. Nosotros usaremos 120

  • nopriv_server: Especifica qué usuario usa por defecto el servidor FTP, así como sus privilegios o demás. Por defecto, la dejamos comentada.

  • ascii_upload_enable: Permite la subida de archivos en formato ASCII
  • ascii_download_enable: Permite la descarga de archivos en formato ASCII

  • *ftpd_banner: Especifica el banner que queramos poner a nuestro servidor, el mensaje de entrada.

  • deny_email_enable: Con esta cláusula denegamos los mensajes anónimos de correo en el servidor. La dejamos en YES. (Está comentada, asi que no la descomentamos)

  • chroot_list_enable: Esta cláusula permite que, si lo especificamos en el archivo /etc/vsftpd/chroot_list, los usuarios locales del servidor inicien en el directorio $HOME. La dejamos en YES y comentada.

  • ls_recurse_enable: Especifica si queremos activar la recursividad al listar directorios. Por defecto está comentada. La dejamos así.

  • *listen: Permite al servidor escuchar en IPv4. Por defecto está en YES. La dejamos así.

  • listen_ipv6: Igual que la anterior, pero solo si vamos a usar IPv6. Como no usaremos IPv6, la dejamos comentada.

  • *pam_service_name: Nombre del servicio. Por defecto es vsftpd.

  • userlist_enable: Si está en YES, se usará un fichero llamado userfile_list con los usuarios permitidos para entrar al FTP.

Una vez explicadas todas las cláusulas que nos pueden ser útiles en la creación de nuestro servidor FTP, modificamos las que más necesitemos acorde a nuestras necesidades. A medida que las explicaba, he ido diciendo las que habría que cambiar para nuestro escenario ejemplo, así que una vez nos hemos percatado de que todas las cláusulas han sido escritas correctamente, aceptamos y salimos del archivo de configuración guardando lo escrito.

Ahora, arrancamos el servidor FTP. Para ello, introduciremos el comando:

# service vsftpd start
Iniciando vsftpd para vsftpd: [OK]
#

3º Hacernos nuestro IPTABLES

Una vez iniciado, aún así, no nos va a funcionar el servidor a la primera, debido a que no hemos configurado correctamente el cortafuegos para que permita conexiones entrantes a través de la interfaz eth0. Para ello, vamos a pasar a configurarlo:

NOTA: Si bien es cierto que la implementación va a ser a nivel local, directamente podríamos tirar el servicio de iptables (pararlo, vamos) y ya nos los apañamos, pero eso es responsabilidad del usuario final el cómo quiera realizarlo.

Para configurar el iptables, primero debemos saber qué puertos están involucrados en nuestro servidor FTP. Como bien sabemos, los puertos que debemos abrir para la conexión son el 20 y 21.

Una vez identificados los factores, nos "hacemos" las reglas de iptables.

- Queremos políticas de entrada, debido a que lo que vamos a hacer es transmitir a nuestro servidor.

- La entrada se realiza por la interfaz eth0 y por los puertos 20 y 21

Las reglas son las siguientes:

Primero, borramos todas las reglas presentes en nuestro servidor:

# iptables -F
# iptables -X
# iptables -Z

Y ahora, las reglas que añadiremos para que el servidor se comunique con los clientes:

# iptables -P INPUT ACCEPT

# iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT

Por supuesto, una vez terminadas de hacer nuestras reglas, debemos guardarlas con el comando:

# iptables-save

NOTA: Para asegurarnos una efectividad completa en la programación del iptables (dado que a veces el comando iptables-save sólo lo guarda para ésa sesión) podemos crear un pequeño script, y luego ejecutarlo en el inicio.

En el fichero /etc/rc.d/rc.local, puedes agregarle las líneas de iptables que usarás, y nada más se ejecuten el servidor irá correctamente.


Aún habiendo realizado nuestro iptables de forma correcta, nos falta configurar el SElinux (dado que es un módulo de seguridad bastante "puñetero" con las conexiones). Si queremos subir un archivo, el SElinux nos podría tirar la conexión alegando que no tenemos permisos.

Para solventarlo, debemos escribir

# setenforce permissive

Y de esta forma, nos dejará.

PD: Se puede añadir al rc.local del inicio si queremos.
PD2 (Adicionado por un comentario): Desactiva el SElinux tiende a ser peligroso dado que tiramos todo el sistema de seguridad por el FTP. Se pueden solamente habilitar los bool del SElinux para FTP y conseguir el mismo efecto sin necesidad de ponerlo como Permissive. En unos días investigaré cómo.

4º Creación de usuarios para nuestro servidor FTP.

Para crear los usuarios de nuestro servidor FTP, los crearemos como si estuvieramos creando un usuario cualquiera (no nos vamos a complicar mucho, nuestro servidor ya está lo suficientemente seguro con el iptables)

Crearemos un usuario de prueba, por ejemplo:

  • Nombre de usuario: perico
  • Contraseña: eltuerto
Para crearlo, introduciremos los siguientes comandos:

# useradd perico
# passwd perico (despues introducimos la clave cuando indique, y listo)

Una vez creado nuestro usuario perico, veremos a ver si nos ha funcionado y podemos acceder de forma correcta al servidor con las credenciales. Para comprobarlo, usaremos el cliente FTP más sencillo de Windows: El de su línea de comandos.

Accedemos a una línea de comandos de Windows (cmd, vamos) y escribimos:

C:\> ftp (dirección IP del servidor)

Pondré un ejemplo práctico:

(20:06:23,73)[C:\Users\Admin]$ ftp 11.0.0.29
Conectado a 11.0.0.29.
220 Bienvenidos al servidor FTP VISA8080
Usuario (11.0.0.29:(none)): perico

331 Please specify the password.
Contraseña:
230 Login successful.
ftp>


NOTA: La contraseña no se muestra como introducida en el login, no es que se les haya estropeado el teclado cuando la estén escribiendo y no la ven.

5º Sacando partido a nuestro servidor FTP.


Una vez tenemos creado nuestro servidor del todo, es hora de darle uso ¿No?

Para poder acceder a los archivos de nuestro servidor FTP, la mejor manera y más comoda (siempre que no tengamos que subir archivos al mismo) es usar nuestro navegador de Internet, y con la dirección en el navegador ftp://(dirección ip):(puerto) accederemos a nuestro servidor FTP, y podremos ver de mejor forma los archivos.

Otra manera más gráfica es usando la herramienta Winscp, que ofrece una mejor visión de los archivos, así como también subir y bajar archivos del servidor de forma más sencilla.

Para finalizar, cómo no, diremos que todo esto se consigue siendo usuario root o superuser. Si no, no hay FTP

Comentarios adicionales que pueden ayudar:

De :::Jhon Castañeda::: (Comentario más abajo, en la zona de Comentarios)

Implementando un servidor FTP. Su ISP mapeó una dirección pública a una dirección privada a través de la NAT. Desde la LAN se puede conectar, pero desde fuera era imposible porque el IPTABLES que está puesto en este manual es hacia dentro (Recuerden que no puse opciones para que fuera hacia el otro lado, desde Internet). El usuario en cuestión nos da éste comando para solventar éste problema.

# iptables -A FORWARD -i eth0 -p tcp -d (dirección del servidor) -m multiport --dports 20,21 -j ACCEPT

El cual hace que el tráfico pase a través del NAT y llegue al servidor. Además, en el iptables, debemos añadir este comando.

# iptables FORWARD ACCEPT

Para que nos acepte el tráfico de forward.

Gracias por la ayuda recibida.


Fuentes:

Reciclaje de apuntes
Wiki de CentOS
Experiencia propia (y lo que me ha costado hacer el servidor virtual de referencia)

Última edición: Octubre de 2013
Razón: Correcciones ortográficas.

    viernes, 27 de julio de 2012

    Feliz día del sysadmin

    Hoy, viernes 27 de julio de 2012, es el día internacional del administrador de sistemas (Sysadmin en su abreviatura internacional).

    Un sysadmin o administrador de sistemas se encarga de mantener los equipos informáticos de una empresa o local totalmente operativos, sea un solo equipo o una red de cómputo amplia. Por lo general, tiene conocimientos de todos los campos de la informática, ya sea a nivel básico o medio, y de las ramas de software y hardware, así como también diseño de redes, gestión y administración de información y seguridad y disponibilidad.

    En la página http://sysadminday.com se hace un breve resumen de las tareas principales que realiza un administrador y el por qué debemos agradecerle lo que realiza (al menos por un día al año, que no hace daño)

    Así que, si eres un sysadmin ¡Feliz día del administrador de sistemas!
    Y si no lo eres ¡Felicita a los sysadmins que conozcas! ¡Te lo agradecerán con algún escáner de puertos seguro!

    Fuentes:

    http://sysadminday.com (Página en inglés)
    Wikipedia

    sábado, 14 de julio de 2012

    El modelo OSI [Resumen]

    El modelo OSI [Open Sistem Interconnection en inglés, Interconexión de sistemas abiertos traducido] es un modelo de red descriptivo y de referencia, lo que viene a representar de que es un modelo que como tal solo ayuda a explicar otros modelos de protocolos, y no está pensado para ser implementado ni proporcionar un nivel de detalle suficiente para definir las arquitecturas de red. (Lo que viene a ser que son como "leyes generales" pero solo si son contrastadas con un protocolo que lo explique, siendo el modelo OSI como un "librillo" de referencia para futuras referencias)

    El modelo OSI fue creado en el año 1984 por la organización de estándares ISO. El desarrollo de la misma arrojaba luz sobre cómo debían realizarse los esquemas de red de los dispositivos interconectados en una red, así como también los pasos que deben realizarse para la transmisión de datos y formalizar una normativa de uso general y de referencia.

    El modelo OSI está divido en siete capas, las cuales siguen un orden ascendente.


    1. Capa Física.

    Esta capa se encarga de proporcionar enlaces y medios para transmitir la información en ambos sentidos, así como también asegurar la fiabilidad, conexión y transmisión de datos.

    Los aparatos que cumplen estas funciones de la capa física son:

    • Cables de red (Tanto RJ-11, RJ-45, fibra óptica, cables de consola RS-232 e incluso ondas como Wireless)
    • Aparatos concentradores de red (Hub). Estos aparatos para algunas redes son muy preciados ya que transmiten toda la información de un cable por el resto de conexiones, así por ejemplo un administrador de red puede conectar un Hub entre un router, un servidor y su ordenador y se podría enterar de todo lo que transmite el router.
    La unidad de datos de ésta capa son los bits.

      2. Capa de Enlace de datos.

      Esta capa tiene determinadas las funciones de control del medio, control de flujos, diseños de topología de red, detección de errores y distribución de tramas en una red.

      Esta capa se encarga de gestionar las tramas de red que pasan por una red. Para ello, cada aparato que esté conectado a la red tiene un número único que lo identifica, llamado Dirección MAC (Media Access Control) que es único en cada dispositivo de una red. La existencia de dos dispositivos con una misma dirección MAC tiene como resultado que la red envíe dos tramas iguales a los dispositivos, pero por convención es imposible que se llegue a este caso a no ser que se falsee ésta dirección.

      Los aparatos que se encargan de gestionar las tramas son los switches y los puntos de acceso inalámbricos.

      La unidad de información de esta capa son las tramas.

      3. Capa de Red.

      La capa de red se encarga de realizar el enrutamiento entre una o más redes conectadas.

      Las unidades de información de esta capa se llaman paquetes.

      Además de ofrecer enrutamiento, los protocolos que se asocian a esta capa de red se dividen en dos tipos: 

      • Enrutables: Viajan con el paquete (IP de forma general, en sus versiones 4 y 6)
      • Enrutamiento: Permiten realizar las rutas, pero están integrados en el aparato gestor de redes (RIP, IGRP o EIGRP en aparatos Cisco)
      El objetivo de la capa de red es la transmisión de los paquetes de datos de un origen a un destino, usando el medio y las tramas creadas en la red. Para realizar esta tarea, se utilizan unos aparatos llamados routeres, los cuales realizan el enrutado de los paquetes entre redes y además detectan posibles conflictos en la red. Un router además puede trabajar en la capa de enlace de datos.

      En este nivel se realiza el direccionamiento lógico y la determinación de la ruta hasta el receptor final de datos. (Explicación: Una dirección MAC va a tener como norma general una dirección IP por encima, así que la capa se encarga de direccionar y autenticar el paquete a esa dirección MAC para que no haya problemas en el envío. Si tiene que saltar entre redes, la tabla ARP de los routeres ayudará en la tarea)

      4. Capa de Transporte.

      La capa de transporte se encarga de efectuar el transporte de datos entre los ordenadores, independientemente del medio o red física que se esté usando. Ésta capa maneja dos tipos de protocolos de conexión: TCP (Orientado a conexiones que requieran un control de flujo) o UDP (Orientado a sin conexión ni controles de flujo). Como tal, además, trabajan con los llamados "Puertos" del ordenador utilizando la sintaxis archiconocida como IP:Puerto (172.16.1.1:8080, o Dirección IP : Puerto de destino u origen de datos).

      Las unidades de información de esta capa se llaman segmentos si usan TCP y datagramas si usan UDP.


      5. Capa de Sesión

      La capa de sesión se encarga de controlar y mantener el enlace establecido entre dos equipos. Como tal, esta capa no tiene mayor repercusión y en la mayoría de los casos, los servicios de esta capa pueden prescindir dado que no interfieren en la transmisión.

      La unidad de información se llama SPDU

      6. Capa de Presentación

      La capa de presentación se encarga de realizar los procesos internos en el tratamiento de los datos para interpretar la información recibida y presentarla en un dispositivo final. Del chino, se encarga de "traducir" la información que recibe del otro equipo para que en el dispositivo donde lleguen los datos se puedan ver de forma legible. Ésta capa también se encarga de cifrar los contenidos y comprimirlos para su envío o descifrar y descomprimir si los recibe.


      La unidad de información se llama PPDU


      7. Capa de aplicación

      La cima de la pirámide. La capa de aplicación se encarga de acceder a los servicios que usan las demás capas y define esos mismos protocolos. En ningún caso, el usuario maneja la capa de aplicación, si no que usa programas y aplicaciones que interactúan con dicha capa y la gestiona a través del programa.

      Ésta es una de las capas que más se expande en la actualidad, ya que siempre surgen nuevos protocolos y nuevas formas en los envíos de datos y tratamiento de la información.

      La unidad de información se llama APDU

      Transmisión de información.

      La pregunta básica que cabe plantear ahora es: ¿Cómo se transmite la información?

      El modelo OSI, además de definir las capas que debe usar, también se preocupa de cómo realizar el envío de los datos, recepción y tratamiento. Para ello primero se deben Encapsular los datos en una sola unidad de información.

      El término de encapsulamiento de los datos es bastante tedioso de explicar, así que para comprenderlo en términos generales, y "a lo simple y general para la gente normal", lo realizaré del siguiente modo.

      Vamos a poner el ejemplo de que los datos que transmitimos entre los ordenadores son cartas de correo entre dos destinatarios, las cuales tienen una dirección fija en el destino, y además está justificado el origen, sabemos quién la envia (del franqueo y todo eso nos olvidamos). Si lo vemos así, cuando "abrimos la carta" en realidad lo que hacemos es "desencapsular" el paquete que nos llegó. El "cartero" en este caso sería la capa 1 ya que se ha transmitido gracias a ése medio. La parte externa del sobre (donde indica a quién lo envia) sería la capa 2, 3 y 4 (ya que contienen las direcciones de destino a nuestra casa, oficina, calle, número, población, todo eso), y de la capa 5 para arriba sería el contenido de la carta. Si por ejemplo el contenido de la carta estuviera escrito en otro idioma, nuestra mente sería la capa 6 para interpretarlo (si podemos) y la capa 7 ya sería el mensaje en sí.

      El proceso de desencapsulación de los datos puede detenerse en el ordenador destino si una de las capas no coincide. En este caso, el destino tira el paquete. Si el protocolo que utilizara el paquete por ejemplo era TCP, enviaría un paquete al origen justificando el fallo. Si es UDP, tirará el paquete y no reenviará ya que no existe un canal de control (recordemos que UDP es un protocolo que no está orientado a conexión)

      Modelo OSI y Modelo TCP/IP

      El modelo más conocido popularmente para explicar el modelo OSI estándar es el Modelo TCP/IP, que fue creado anteriormente al modelo OSI, pero gracias al mismo se erigieron las normas fundamentales que ahora se aplican.

      El modelo TCP/IP no es un protocolo, si no una serie de protocolos concebidos para ofrecer conexiones. El nombre lo recibe generalmente de los dos protocolos más extendidos, conocidos y usados en redes: TCP (Transmission Control Protocol) e IP (Internet Protocol). Fue creado en la década de 1970, con lo que es anterior al modelo OSI, y consta de 4 capas, equivalentes a las 7 capas del modelo OSI. Así, por ejemplo:

      Capa 1 de TCP/IP se llama Capa de enlace: Agrupa la capa 1 y 2 del modelo OSI
      Capa 2 de TCP/IP se llama Capa de red: Agrupa la capa 3 del modelo OSI
      Capa 3 de TCP/IP se llama Capa de transporte: Agrupa la capa 4 del modelo OSI
      Capa 4 de TCP/IP se llama Capa de aplicación: Agrupa el resto de capas (5, 6 y 7) del modelo OSI.

      Fuentes:
      Cisco CCNA1
      Wikipedia
      Apuntes de clase
      Explicación del modelo de encapsulamiento es freestyle. Si quieren aportar alguna cosa o creen que me estoy equivocando, no lo duden y pónganlo en un comentario.

      Última edición: Octubre 2012.
      Razón: Formato y algunas faltas ortográficas.

      viernes, 6 de julio de 2012

      Cambiar la pantalla de inicio de sesión de Windows 7

      [Inserte excusa aquí después de no actualizar durante 4 meses]

      Hace un tiempo,quise cambiar la imagen que aparece por defecto en el inicio de sesión de Windows 7. Normalmente, cuando buscas en Google cómo realizarlo, usualmente te dicen "Descárgate este programa, pones la imagen y te lo cambia todo solo, sin complicaciones, sin líos y sin cargarte nada". No tengo nada en contra de la utilización de programas que hagan eso, o que sean de éste estilo, pero digamos que si puedes hacerlo "Do it yourself " (tú mismo) sin ejecutar programas ni confiar en terceros (por muy buenas críticas que tengan los programas), tendrás toda la situación bajo control y podrás ser consciente de lo que haces, sin líos ni complicaciones.

      Para proceder al cambio, lo realizaremos por pasos:

      1º Ejecutamos el Regedit de Windows. Para ello, en el cuadro de búsqueda de inicio ponemos "Regedit", o iniciamos en Ejecutar... y ponemos lo mismo: regedit. Nos dirá que necesita permisos de administrador. Aceptamos y entramos.

      2º Debemos buscar la siguiente cadena:

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background

      3º Examinanos los valores de las claves que hay dentro de la carpeta. Deben aparecer dos claves: La clave predeterminada, de tipo REG_SZ, y otra clave de tipo REG_DWORD con el nombre de OEMBackground. Entramos en la clave de REG_DWORD.

      PD: Es posible que no esté dicha clave de REG_DWORD. En ese caso, la creamos en Edición --> Nuevo --> Valor de DWORD (32 bits), y le ponemos el nombre de OEMBackground.
      Si está la clave y tenemos un tema asignado, el valor de la clave REG_DWORD será 0 y estará en Hexadecimal.

      Entramos en la clave de OEMBackground. Cambiamos la base (A la derecha de la ventana emergente) a Decimal y asignamos el valor 1. Aceptamos y salimos del registro, percatándonos de que todo esté bien.

      4º Una vez hemos cambiado la clave, debemos introducirla en una carpeta de Windows para que todo salga bien. Para ello, tenemos que encontrar la carpeta backgrounds, dentro de Windows\system32\oobe\info

      Para ello, podemos seguir dos caminos.

      • Método fácil: Introducimos en el Inicio el siguiente chorro-de-datos:
        %windir%\System32\oobe\info\backgrounds

      • Método búsqueda: Lo buscamos manualmente entrando en Equipo, disco de sistema (C:\, D:\, Z:\) que estés usando, carpeta Windows, carpeta system32, carpeta oobe, carpeta info y carpeta backgrounds.
      Puede suceder que nuestro sistema no tenga las carpetas info y backgrounds. En ese caso, las podemos crear sin ningún problema dentro del path Windows\system32\oobe siempre que seamos administradores del sistema.

      5º Una vez llegamos a la carpeta, pueden ocurrir tres cosas:

      • Existe un solo archivo, llamado backgroundDefault.png.

      • Hay bastantes archivos además del antes mencionado, pero con distintos nombres y resoluciones (Ej: Background800x600, Background1024x768, etc). Esto suele ocurrir si nuestro ordenador ha sido comprado con una marca como Acer, HP o cualquier otra, que lo pone por defecto y a distintas resoluciones, pero también puede ocurrir que no sea así y aparezcan.

      • No existe ningún fichero de éste estilo o los anteriores mencionados, está vacía la carpeta.
      Antes de realizar nada, hacemos una copia de seguridad de los ficheros que se encuentran en ésta carpeta (Las sacas al escritorio, las copias a otra carpeta, cualquier forma en la que podamos revertir lo que hagamos). Además, para no inducir a errores, es mejor dejar únicamente el archivo de backgroundDefault en la carpeta, ya que si después usamos otra resolución no se usará nuestra imagen.

      La resolución óptima que puede admitir la pantalla es cualquiera, ya que Windows la ajustará automáticamente, pero de forma recomendable, debe estar ajustado a una resolución del nivel "Estándar" en monitores (800x600, 1024x768, 1366x768, 1440x900). Además, el formato de la imagen deberá ser jpg y no importa si usas una resolución de 1366x768 y pones una imagen a 640x480, ya que se ajustará esté o no en el mismo rango de resolución.


      Una vez tenemos la carpeta de backgrounds vacía, procedemos a copiar la imagen que queramos en la carpeta y le cambiamos el nombre a backgroundDefault.jpg

      Ahora, con todo modificado, podremos cerrar sesión, bloquear usuario o cualquier forma que nos saque a la pantalla de inicio y veremos que nuestro fondo se ha puesto bien. 

      Si no se ha puesto, repasad todos los pasos por si se os ha pasado algo o postearmelo abajo si creéis que está todo bien y aun así no tira.

      Cabe recordar, que todos estos pasos los tenemos que hacer siendo administradores del sistema.

      Fuente:
      http://support.microsoft.com/kb/980456/es (La mayoría de la info está aqui traducida al castellano)
      Experiencia propia (Y lo que me costó realizarlo sin programas)

      lunes, 27 de febrero de 2012

      Introducción a FTP.

      • ¿Qué es FTP?
      FTP es el protocolo de transmisión de archivos (File Transfer Protocol, en sus siglas) y es usado para la emisión/recepción de archivos de forma que se maximice su rapidez en las transferencias, no asegurando estructuras de control para la protección de los datos que navegan en la transferencia misma (Esto es, cualquiera que use un programa capturador de paquetes puede saber toda nuestra transmisión). Debido a esta falla de seguridad es recomendable implementarlo en redes de área local, intranets y redes cerradas.

      • ¿Cómo se usa FTP?
      Dispone de dos puertos: 
      • Puerto de control (Puerto 21/TCP)
      • Puerto de envío/recepción de datos (Puerto 20/TCP). 
      La conexión de control, la que contendrá nuestros movimientos en el servidor (usuario, contraseña, comandos que usemos) se trasmitirá por el puerto 21. El envío y recepción, por el 20.



      • ¿Existe diversidad? ¿Lo soportan todos los sistemas operativos?
      FTP puede ser instalado en Windows, Linux, Mac, y otros sistemas operativos, tanto su versión cliente como servidor.


      • No me fío un pelo de las transmisiones por FTP sin seguridad adicional. ¿Existen alternativas?
      Si. Si FTP no es de nuestro agrado, podemos elegir otras vías que ofrezcan seguridad a cambio de perder un poco de velocidad de transferencia. Así, SCP y SFTP (Integrados en el paquete ssh de Linux y con versiones portables para Windows como Winscp que contiene ambos)  son alternativas seguras. Existen también otras como VSFTP y TFTP. El único que se desentiende de todo es TFTP, que no tiene un registro de control y manda todos los paquetes por UDP, a tropel.

      • ¿Hace falta siempre un usuario y contraseña? ¿Es obligatorio?
      Por supuesto que no. Existen algunos servidores que permiten el acceso al usuario Anonymous (no confundir con el movimiento de Internet). Dicho usuario resuelve que el nombre y password es la misma, es decir:

      User: Anonymous
      Password: Anonymous

      Muchos servidores de Internet ofrecen el usuario Anonymous. Un claro ejemplo de ello es el servidor de Microsoft.

      También existen usuarios invitados (guest) que no requieren de autenticación, pero con menos privilegios.

      • ¿Qué formas de acceso al servidor FTP hay? ¿Tengo que instalar programas?
      Sí y no. Windows incluye en sus características (O se puede añadir) el uso de FTP por línea de comandos. FTP por línea de comandos es una forma eficaz, pero a su vez necesita un grado de conocimiento un poco mayor. Por ello, ya se mencionó el uso de programas como SCP que agiliza el uso del cliente. Si el servidor lo permite, a veces podemos entrar desde el navegador web usando la cadena:

      FTP://(Dirección IP, nombre de dominio o similar):(Puerto*)

      * = opcional.

      • ¿Cómo se realizan las conexiones?
      Actualmente hay dos métodos predefinidos para el envío/recibo: Activo y Pasivo.
        
        • Activo: El servidor toma el canal de datos por el puerto 20 y el cliente especifica un puerto mayor que 1024. El único problema destacable es el uso de puertos superiores a 1024, ya que el cortafuegos debe permitir dichas conexiones.
        • Pasivo: El servidor indica al cliente que debe conectarse a un puerto mayor de 1024 en el servidor, con lo que la conexión cliente-servidor de datos no se realiza por el puerto 20, aunque el servidor seguirá utilizando el puerto 21 para el control de datos.
           
      Además de los métodos predefinidos de envío y recibo de datos, existen también dos tipos diferentes de transferencia:

        • ASCII: Ésta transferencia se suele utilizar para archivos de texto que no contengan carácteres imprimibles, como páginas web, pero solo texto plano. Documentos Word, por ejemplo, no se deberían transmitir con ASCII
        • Binario: Se usa especialmente para la transferencia de archivos ejecutables y resto de archivos.
      • Puedo recibir archivos, pero ¿Puedo enviarlos también al servidor?
      Sí. FTP admite los dos tipos de transferencia. Depende de si es envío o recibo será GET o PUT

        • GET: Recibir archivo del servidor.
        • PUT: Enviar archivo al servidor.  
      Fuente:

      Reciclaje de apuntes de clase.
      Wikipedia también ayudó un poco.

      Próximamente, realización de servidores FTP en CentOS.