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.

    miércoles, 22 de febrero de 2012

    Usos del comando SC

    • ¿Qué es el comando SC?
     SC (Service Controller) es una herramienta por línea de comandos que sirve para realizar una administración de los servicios que se ubican en Services.msc.  
    • ¿Qué podemos destacar del comando?
     SC tiene bastantes utilidades para poder administrar los servicios, así como consultar su estado, iniciar, detener, interrumpir, e incluso, eliminar de la consola.

    • Lista de caracteres básicos de SC

      • Query: Consulta los servicios del sistema que están iniciados (Es equivalente a escribir NET START, pero ésta incluye una hoja más completa)
      • Queryex: Extensión de Query (Incluye el PID y el FLAG del servicio)
      • Start: Inicia un servicio
      • Stop: Detiene un servicio
      • Pause: Pausa un servicio
      • Delete: Elimina un servicio del registro de Services
      • Create: Crea un servicio del registro (Fase beta)
      • Description: Cambia la descripción de un servicio.

    •  Sintaxis del programa:
    Inicialmente, la sintaxis para los comandos básicos como Start, Stop, Query, Pause, son:

    SC <opción> <nombre del servicio>

    • Funciones del comando.


    Básicas: Start, Stop, Pause, Query, Queryex.

    Si queremos iniciar el servicio de dhcp, escribimos:


    sc start dhcp

    Y acto seguido aparecerá la query del archivo, marcando su inicio:

    SERVICE_NAME: dhcp
            TYPE : 20  WIN32_SHARE_PROCESS
            STATE : 2  START_PENDING
                                    (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
            WIN32_EXIT_CODE : 0  (0x0)
            SERVICE_EXIT_CODE : 0  (0x0)
            CHECKPOINT : 0x0
            WAIT_HINT : 0x7d0
            PID : 1144
            FLAGS:

    Para detenerlo:

    sc stop dhcp

    Aparecerá la siguiente información del servicio: 

    SERVICE_NAME: dhcp
            TYPE : 20  WIN32_SHARE_PROCESS
            STATE : 3  STOP_PENDING
                                    (STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN)
            WIN32_EXIT_CODE : 0  (0x0)
            SERVICE_EXIT_CODE : 0  (0x0)
            CHECKPOINT : 0x1
            WAIT_HINT : 0x61a8

    Para pausarlo:


    sc pause lanmanworkstation

    SERVICE_NAME: lanmanworkstation
            TYPE : 20  WIN32_SHARE_PROCESS
            STATE : 7  PAUSED
                                    (STOPPABLE,PAUSABLE,ACCEPTS_SHUTDOWN)
            WIN32_EXIT_CODE : 0  (0x0)
            SERVICE_EXIT_CODE : 0  (0x0)
            CHECKPOINT : 0x0
            WAIT_HINT : 0x0

    PD: no puedo pausar el servicio DHCP así que pausé otro en su lugar, como ejemplo vale igual.

    Consulta del servicio y su estado (Query):

    sc query dhcp

    Muestra lo mismo que en el sc start dhcp, excepto el PID y el flag.

    También puede mostrar otros datos, como los controladores de tipo driver, todos los servicios del sistema. Para ello se puede trastear con otras opciones. A destacar las variables:

    - type= Tipo de servicios que se enumerarán (controlador, servicio, todos)
    - state= Estado de los servicios que se enumeran (inactivo, todos)
    - bufsize= Tamaño (en bytes) del búfer de enumeración (valor predeterminado = 4096)
    - ri = El número de índice de reanudación en el que comenzará la enumeración
    - group= Grupo de servicio que se enumerará
              
    Algunas variables:

    sc query - Enumera el estado de controladores y servicios activos
    sc query eventlog - Muestra el estado del servicio de registro de eventos
    sc queryex eventlog - Muestra el estado extendido del servicio de registro de eventos
    sc query type= driver - Enumera sólo los controladores activos
    sc query type= service - Enumera sólo los servicios de Win32
    sc query state= all - Enumera todos los servicios y controladores
    sc query bufsize= 50 - Enumera con un búfer de 50 bytes
    sc query ri= 14 - Enumera con índice de reanudación = 14
    sc queryex group= "" - Enumera los servicios activos que no están en un grupo
    sc query type= interact - Enumera todos los servicios interactivos
    sc query type= driver group= NDIS     - Enumera todos los controladores NDIS


    PD: Es una copia de los ficheros de ayuda de Windows que aparecen en la consola



    sc queryex dhcp

    Muestra todo, incluidos PID y flag.


    Avanzadillas: Delete, create, description, config

    • Delete.
    Los servicios de Windows se pueden eliminar de la pila de servicios que se muestra en Services.msc. Dicha eliminación también acarrea una serie de consecuencias:

    • Eliminar un servicio "a pelo" puede provocar un funcionamiento erróneo. Se recomienda eliminar servicios cuando no se usen, o cuando se haya desinstalado una aplicación y esté mostrada en la pila pero no se usa
    • Eliminar un servicio que contiene dependencias provocará que las mismas no se inicien. Si por ejemplo eliminamos el servicio Llamada a procedimiento Remoto (RPC) y Plug And Play (PlugPlay), el ordenador no funcionará correctamente y su futuro próximo será reinstalarlo.
    Para realizar la eliminación, usamos la misma sintaxis anterior. En este caso, vamos a eliminar el Google Registration, uno de los procesos basura de Google cuando desinstalamos Chrome o alguna función dependiente del mismo.

    sc delete gregupdate

    Una vez introduzcas el comando, mostrará en la pantalla:

    [SC] DeleteService SUCCESS

    Ahora, el servicio Gregupdate no aparecerá en la pila de Services.msc. Aparecerá una vez, si teníamos abierta la ventana y veíamos el proceso, pero cuando introduzcamos el comando y actualicemos sin salir de la ventana, el servicio se mostrará como deshabilitado. Una vez salgas y entres de nuevo en Services.msc, habrá desaparecido.

    •  Create
    La sintaxis del comando es:

    SC <nombre del servidor> create {Nombre del servicio a crear} (opción 1) (opción 2)

    Las opciones del comando Create de SC con las siguientes:

     type= <own|share|interact|kernel|filesys|rec> (valor predeterminado = own)
     start= <boot|system|auto|demand|disabled|delayed-auto> (valor predeterminado = demand)
     error= <normal|severe|critical|ignore> (valor predeterminado = normal)
     binPath= <Nombre_de_ruta_binaria>
     group= <Grupo_de_orden_de_carga>
     tag= <yes|no>
     depend= <Dependencias(separado por / (barra diagonal))>
     obj= <Nombre_de_cuenta|Nombre_de_objeto> (valor predeterminado = LocalSystem)
     DisplayName= <nombre para mostrar>
     password= <contraseña>

    PD: Siempre debe haber un espacio entre el igual y la cláusula.

    Por ejemplo, vamos a crear un servicio llamado VMON que se encuentra en la ruta C:\scripts\vmon.bat.

    sc create VMON binpath= C:\scripts\vmon.bat

    [SC] CreateService CORRECTO

    PD 1: Para añadirle una descripción al servicio, utilizar la cláusula Description que explico a continuación

    PD 2: Si cambiamos la ruta del archivo de binpath, el servicio no arrancará.
    • Description.
     La sintaxis del comando es:

    SC <nombre del servidor> description {nombre del servicio} descripción nueva

    Así, por ejemplo:


    sc description dhcp Sirve para iniciar el cliente DHCP

    Se añadirá la descripción puesta (Sirve para iniciar el cliente DHCP) en la descripción del servicio, machacando la anterior descripción.

    PD: El nombre del servidor es por si procede. Si lo vamos a hacer en local, no hace falta especificar.

    • Config
    Con este comando, conseguiremos modificar el servicio como deseemos.

    Para ello, debemos usar la siguiente sintaxis:

     sc config [nombre del servicio] <opción1> <opción2>

    Las opciones que pueden tomar son:


     Type= <own|share|interact|kernel|filesys|rec|adapt> (Tipo de propiedad que adquiere)
     Start= <boot|system|auto|demand|disabled|delayed-auto> (Inicio del servicio en el sistema)
     Error= <normal|severe|critical|ignore> (Errores del servicio)
     BinPath= <Nombre_de_ruta_binaria> (Ruta del servicio, dónde está ubicado)
     Group= <Grupo_de_orden_de_carga> (Grupo de carga)
     Tag=  <yes|no> (Etiqueta)
     Depend= <Dependencias(separado por / (barra diagonal))> (Dependencias del servicio)
     Obj= <Nombre_de_cuenta|Nombre_de_objeto> (Nombres del objeto)
     DisplayName= <nombre para mostrar> (Nombre del servicio)
     Password= <contraseña> (Contraseña para el servicio)

    PD: Siempre debe haber un espacio entre el igual y la cláusula.

    Si por ejemplo queremos deshabilitar un servicio, podemos usar:

    sc config (servicio) start= disabled
    •  AVISOS USANDO LOS COMANDOS


    El objetivo principal de la herramienta SC es para comunicarse con el Administrador de servicios y así administrar de forma más potente los servicios de Windows.

    Eliminar servicios vitales de Windows no conlleva a que el ordenador al iniciar se quede con la pantalla negra totalmente, es más, seguirá iniciando como si tal cosa, pero sí verá reducida su utilidad, rendimiento y velocidad como aparato al no poder utilizar ninguna función de Windows, teniendo más un uso de pisapapeles que de proceso de datos. Cuidado con lo que se toca.

    Adicionalmente, esta herramienta puede traer serias consecuencias si no se utiliza de forma adecuada. Los usos de forma maliciosa con otros usuarios, como borrar servicios de otros usuarios de ordenador, o distribuir ficheros por lotes que contegan líneas de código peligroso con éstos comandos son bajo responsabilidad del usuario lector, y no de mi persona.


    Antes de realizar una tarea peligrosa, como eliminar un servicio dudoso, o crear un servicio "a la aventura", realizar las pruebas en una máquina virtual adaptada al sistema que se vaya a utilizar. Las máquinas virtuales están para eso, para hacer pruebas y ver si todo marcha bien, o si se rompen, no producir un desastre considerable en el sistema.

    Fuentes:

    Experiencia propia.
    Algunas pruebas realizadas en clase.
    La consola del Windows.

     Fecha de revisión: Diciembre de 2012
    Razón: Añadida la opción de crear servicio.

    jueves, 2 de febrero de 2012

    Fichero Hosts

    ¿Qué es el fichero Hosts?

    El archivo Hosts de un sistema operativo es aquél que guarda la correspondencia entre dominios y direcciones IP, basado en el protocolo TCP/IP actual. Es el antiguo predecesor del ya conocido Servidor DNS, ya que antiguamente la relación de direcciones IP y dominios de las páginas web se almacenaban en éste fichero. Con el paso del tiempo, al implementar los servidores DNS y crecer los nombres de dominio, los archivos Hosts pasaron a un segundo plano, usados ya únicamente para redirecciones locales y otros usos.

    ¿Dónde se almacena el fichero Hosts?

    Depende del sistema operativo. En cada sistema tiene una ruta diferente, aunque su uso sea similar.

    • Linux: /etc/hosts
    • Windows XP/Vista/7: C:\Windows\system32\drivers\etc\hosts
    • Windows 95/98: C:\Windows\hosts
    • Windows NT/2000: C:\WINNT\drivers\etc\hosts
    • Mac: /private/etc/hosts
    ¿Qué podemos hacer con dicho archivo?


    Dentro de las utilidades que le podemos sacar a este archivo es, por ejemplo, implementar desde el mismo páginas web locales para que funcionen como si fueran un dominio real. Así, por ejemplo, podemos redirigir el dominio www.ejemplo.com a una dirección IP concreta.

    Éste archivo, al ser abierto, tiene la mayoría de las direcciones IP comentadas como ejemplo, y se destaca notoriamente que aparece en bastantes ocasiones la dirección localhost. localhost es, sencillamente, el nombre de nuestra propia máquina, y siempre redirige a la dirección de loopback (127.0.0.1)


    ¿Cómo? ¿Tan pocas cosas puede hacer el archivo?

    No. El fichero hosts también puede ser usado para hacer una implementación mínima si en nuestra empresa o red local no queremos implementar un servidor DNS, o queremos hacer un bloqueo de ciertas páginas web.

    Como antes expliqué, el archivo hosts puede ser usado para redireccionar dominios a direcciones IP. Si tenemos un servidor Apache implementado en una máquina y queremos que al hacer la petición a un dominio se redireccione a dicho servidor, podemos añadir a todas las máquinas cliente, en el archivos Hosts de cada una, el dominio que queramos añadir y la dirección IP del servidor. Antes de realizarlo, tenemos que asegurarnos que dicho dominio no está registrado, pues si por ejemplo usamos www.google.es como dominio para la redirección al servidor Apache, no podremos acceder nunca a www.google.es a no ser que eliminemos la línea, dado que el sistema mira antes el fichero hosts que el DNS, con lo que nunca llegaría a resolver bien el dominio de Internet.

    Quizá, el uso más interesante que se le da a menudo a este fichero es la utilización del mismo para el bloqueo de dominios no deseados

    Haciendo nuestro propio archivo Hosts

    Una vez explicado el uso más común que podemos realizar en el fichero, pasaremos a explicar cómo realizarlo en los dos casos que mostré anteriormente:

    • Supuesto 1: Tenemos un servidor Apache implementado en una máquina, la cual tiene como dirección local 192.168.11.1, y queremos que nuestro ordenador resuelva ésta dirección IP con el nombre de dominio www.apachito.com
    La solución no puede ser más fácil. Nos dirigimos al archivo Hosts de nuestro sistema (Sea cual sea), y lo modificamos. Para modificar el fichero, necesitaremos de razón obvia permisos de administrador.

    Para añadir la línea, debemos tener cuidado de no comentarla. Así, por ejemplo, si la línea que hemos creado tiene una almohadilla delante, no funcionará.

    El formato del fichero es el siguiente:


    (Dirección IP)              (Dominio)

    Con lo cual, en la última línea, añadimos:


    # Servidor Apachito de la dirección 192.168.11.1
    192.168.11.1                www.apachito.com

    Para identificarlo, podemos añadirle encima de la línea un comentario, opcionalmente.
    Ahora solo resta guardar y reiniciar la máquina para que los cambios hagan efecto.

    • Supuesto 2: Hemos notado que una persona está entrando en una página que no queremos (En estos tiempos, por ejemplo, un profesor que no quiere que sus alumnos se metan en redes sociales desde los ordenadores de clase). Hemos probado a bloquear la dirección de Internet de dicha página con un servidor ISA, pero aun así existen otros resquicios, como el uso de proxy para la redirección y saltarnos así la restricción de los servidores que intentan bloquearlo.
    Para este caso, podemos añadir una redirección a nuestro host local (localhost), con lo que el navegador resolverá el dominio utilizando nuesta IP, con lo que si no introducimos ningún servidor Apache, el navegador dará time out y no resolverá correctamente.

    En esta ocasión, añadiremos por ejemplo la página www.tuenti.com.
    Abrimos archivos Hosts, introducimos ésta línea

    #Bloqueo de la página de Tuenti
    127.0.0.1             www.tuenti.com

    Nota: Si existe alguna otra redirección de la página, tendremos que añadirla igualmente. Se pueden añadir a la misma dirección local.

    • Supuesto 3: Queremos redireccionar una página web cualesquiera (www.google.es, por ejemplo) a una página web concreta (www.yahoo.es). Sí, vale, sé que los navegadores son rivales unos de otros y que sería hacerle la pelota a Yahoo, pero es un ejemplo ¿No?
    Lo primero de todo, necesitamos saber la dirección IP de www.Yahoo.es

    Podemos usar las herramientas nslookup o ping para determinar su IP, o bien, buscar por Internet cuál es. Tratándose de un servidor de búsqueda, podemos añadirle igual todas las direcciones IP y que todas acompañen al dominio.

    Ejemplo: Hemos determinado que las direcciones IP de Yahoo son 80.70.60.50, 80.70.60.51 y 80.70.60.52.  (no son estas en realidad, es un ejemplo)
    Modificamos el archivo Hosts con las direcciones IP y el dominio.

    # Bloqueo de Google para redirección
    80.70.60.50             www.google.es
    80.70.60.51             www.google.es
    80.70.60.52             www.google.es
    Cuña publicitaria: El conocimiento de éste uso en este archivo puede ser utilizado para otros "usos" no tan serios como los puestos aquí. No me responsabilizo del mal uso que se le puedan dar a estos datos.

    ¿Pero digo yo que todo tiene una pega con éste fichero, no?

    Evidentemente, el archivo hosts tiene sus pegas.

    • Una excesiva entrada de direcciones IP de redirección podría ocasionar una lentitud a la hora de resolver dominios, debido a que el ordenador revisa primero el archivo Hosts. Si el mismo es muy extenso, resolverá más lentamente.

    • Muchos antivirus tienen calado dicho archivo, con lo que si intentamos modificarlo en ocasiones nos puede dar muchos fallos inesperados. La razón de ésta monitorización al archivo se debe a posibles phising, ya que un virus nos puede redireccionar la página de un dominio a otra página falsa para sacar nuestros datos. Siempre que vayas a acceder a páginas protegidas, como bancos, asegúrate que disponen de firma y certificado digital, suministrado por una empresa de dispensación de certificados y que el dominio use el protocolo https

    • Redirigir dominios web a la dirección loopback es efectivo si y solo si el ordenador dispone de un servidor Apache o puede ejercer alguna función con dicha dirección. Si causamos un time out, habremos malgastado bastante tiempo resolviendo una dirección que no se puede. Para ello, podemos dar otras direcciones que induzcan a error, como una máscara de red.

    • Si tenemos programas activos en la loopback podrían dar problemas al redireccionar a la misma si usamos la 127.0.0.1 para redirección de páginas bloqueadas.
    Fuente:

    Experiencia con profesores, dando el tema sobre httpd y Apache.
    Wikipedia.org
    Experiencia propia

    Revisado por última vez: Noviembre 2012.
    Modificaciones: Algunos problemas de coherencia en el texto. 

    lunes, 19 de diciembre de 2011

    ¿Cuál es la capacidad real de nuestro disco duro?

    Actualmente, en los tiempos que corren, con tanto trajín de información y tantos "megagigas" aquí y allá, nos vemos en la necesidad de comprar un disco duro externo "para realizar copias de seguridad", o "para por si acaso", o "es que quiero guardar todo lo que quiero aquí y que no me lo toque nadie".

    La capacidad de dichos discos ha aumentado considerablemente a lo largo de los años. Hace apenas unos 3 años, los discos tenían una capacidad de 120 GB en portátiles nuevos, y actualmente, ése espacio aumenta hasta los 500 GB o 640 GB. Cuando compramos un disco duro externo, o viene incorporado, pensamos que es mucha capacidad, pero sin quererlo, caemos en una pequeña "trampa". No es raro encontrar discos duros externos que, en ocasiones, vemos que le faltan una buena porción de espacio en el disco duro. Así, por ejemplo:
    • Compramos un disco duro nuevo de 500 GB, de los que en realidad son utilizables 465 GB
    • Compramos un disco duro de 1 TB y en realidad el espacio real es de 931 GB
    Ahora. ¿Por qué ocurre esto? ¿Por qué se nos quita un 7% la capacidad de nuestros discos duros si están nuevos de fábrica? ¿Por qué si en la etiqueta pone "320GB" me encuentro con que tiene solamente 298 y poco utilizables?

    Los fabricantes de discos duros (Seagate, Western Digital, entre otros) utilizan el sistema decimal para medir la capacidad de los discos duros, es más cómodo y menos complicado a la hora de fabricar muchos aparatos de disco duro. Por ejemplo:

    • Un disco duro de 30 GB de espacio en realidad sería de 30.000.000.000 bytes (en sistema decimal).
    • Un disco duro de 320 GB de espacio en realidad sería de 320.000.000.000 bytes (en sistema decimal).
    A simple vista, parece sencillo ¿No?

    Pero he aquí el problema de todo el asunto.

    Los sistemas informáticos no usan el sistema decimal, sino el sistema binario. Cada byte de información está formado por 8 bit. Por lo tanto:

    • 1 byte = 1 octeto = 8 bit

    1 Kilobyte (KB) son 1024 bytes, y no 1000 como cabría de esperar, dado que por regla de octetos, el KB no es potencia de 10, si no de 8, con lo que al cambio representan 1024 unidades de información.

    •  1 KB = 1.024 bytes = 8192 bits

    Despues del KB está el MegaByte. 1 MB son 1024 Kilobytes. La cuenta real sería 1024 x 1024=  1.048.576 bytes de información.

    • 1 MB = 1.024 KB = 1.048.576 bytes = 8.388.608 bits
    Después del MB, le toca al Gigabyte. 1 GB son 1024 Megabytes. La cuenta ahora es 1024 x 1024 x 1024 =  1.073.741.824 bytes.
    • 1 GB = 1.024 MB = 1.048.576 KB = 1.073.741.824 bytes = 8.589.934.592 bits
    Llegados a esta conclusión ¿Qué vemos? Evidentemente lo siguiente: 1 GB decimal no es lo mismo que 1 GB binario.

    ¿Cómo podríamos calcular el espacio real que tendremos en nuestro disco duro nuevo? Dividiendo el espacio decimal entre el espacio de 1 GB binario.

    Así, por ejemplo:

    • Un disco duro de 500 GB: 500.000.000.000 / 1.073.741.824 bytes = 465 GB aprox.
    • Un disco duro de 640 GB: 640.000.000.000 / 1.073.741.824 bytes = 596 GB aprox.
    Valores más comunes

    • 40 GB ≈ 37,25 GB
    • 60 GB ≈ 55,88 GB
    • 80 GB ≈ 74,50 GB
    • 120 GB ≈ 111,75 GB
    • 160 GB ≈ 149,01 GB
    • 200 GB ≈ 186,26 GB
    • 240 GB ≈ 223,51 GB
    • 320 GB ≈ 298,02 GB
    • 400 GB ≈ 372,52 GB
    • 500 GB ≈ 465 GB
    • 640 GB ≈ 596 GB
    • 720 GB ≈ 670,55 GB
    • 1 TB ≈ 931,32 GB
    • 2 TB ≈ 1.862,64 GB
      Fuente:
      Otras páginas web.
      Experiencia con un profesor, y realización de cálculos manual.

      Última edición: Diciembre de 2016
      Motivo: Algunos errores ortográficos. 

      domingo, 11 de diciembre de 2011

      ¿Qué es ARP?

      El protocolo ARP (Address Resolution Protocol) es un protocolo a nivel 3 del modelo OSI (Capa de red. Maneja de direcciones IP para abajo: Dirección IP y dirección MAC). Es un protocolo utilizado para descubrir las direcciones IP y direcciones MAC de una red mediante una herramienta llamada tabla ARP.

      • ¿Para qué se usa ARP?

      ARP se utiliza para determinar las direcciones IP asociadas a cada tarjeta de red. Aparte de los ordenadores de nuestra propia red, también puede resolver las direcciones IP de otros ordenadores que aun así no esten en nuestra propia red pero sí sean visibles mediante un elemento intermedio, como un router.


      • ¿Qué es la tabla ARP?

      La tabla ARP, es una tabla que muestra las direcciones IP y MAC existentes en nuestra red. Así, podemos saber cuántas personas están conectadas al router y sus direcciones físicas y lógicas.

      En Windows todos los siguientes apartados

      Para ver la tabla ARP, usamos arp -a. arp a secas no hace nada, solo muestra las opciones.

      Si ejecutamos arp -a, la tabla será parecida a ésto:

      Interfaz: 192.168.1.34 --- 0xc
        Dirección de Internet          Dirección física          Tipo
        192.168.1.1                    00-01-02-03-04-05         dinámico
        192.168.1.36                   11-22-33-44-55-66         dinámico
        192.168.1.255                  ff-ff-ff-ff-ff-ff         estático
        224.0.0.22                     01-00-5e-00-00-16         estático
        224.0.0.252                    01-00-5e-00-00-fc         estático
        239.255.255.250                01-00-5e-7f-ff-fa         estático
        255.255.255.255                ff-ff-ff-ff-ff-ff         estático

      Interfaz 192.168.1.34 : Es nuestra dirección IP. Si tenemos dos tarjetas de red, nos deberán aparecer dos interfaces distintas.

      Dirección de Internet: Son las direcciones IP presentes en la red.

      • Las redes 192.168.1.X son las de nuestra propia red local. Son las entradas físicas de los ordenadores presentes en la red, con su dirección MAC
      • Las redes 224.0.0.22, 224.0.0.252 y 239.255.255.250 son direcciones IP reservadas para multicast. Multicast o multidifusión son direcciones IP locales en las que el emisor envía un datagrama a la dirección multicast y el router se encargará de hacer copias y enviarlas a todos los receptores que informen su interés por usar multicast. En sí mismo, no es nada útil.
      • La dirección 255.255.255.255 es la dirección de broadcast global. Tampoco sirve de mucho.

      Dirección física: Es la dirección MAC de los interfaces presentes en la red.

      Tipo: Estático o Dinámico. Significa que las direcciones física y de Internet pueden variar a voluntad del usuario propietario de su propio equipo.

      La pregunta que cualquier usuario puede hacerse es ¿Cómo se genera la tabla ARP?

      La tabla ARP se genera en nuestro ordenador a partir del Ping de broadcast. Éste ping lo que hace es enviar paquetes a la dirección de broadcast (La cual siempre es la última dirección de una red, la 255. En este caso, en la tabla ARP, la dirección es 192.168.1.255). El ping de broadcast no lo realiza nuestro ordenador, si no el router. Nuestro ordenador realiza un ARP Request a la dirección de broadcast, la cual reenvía un ARP Reply, ofreciéndole los datos que sabe del resto de ordenadores.

      • ¿Puedo renovar la tabla ARP cuando quiera?
      No. La tabla ARP se genera una y otra vez, con lo que la renovación de la tabla ARP es constante. Aproximadamente cada minuto o dos minutos se generará de nuevo.

      • ¿Es segura la tabla ARP?

      No. La tabla ARP se puede envenenar realizando un ARP Spoofing.

      ARP Spoofing: Es una técnica mediante la cual un ordenador atacante envía paquetes ARP falsos por la red, para hacer creer a los ordenadores que él es el gateway predeterminado, para así recibir él los paquetes, enterarse de qué hace la víctima, y reenviar los paquetes al router para que finja que no ha pasado nada.

      • ¿Cómo sé que estoy siendo víctima de ARP Spoofing? 

      El método más sencillo es examinar con Wireshark (un analizador de paquetes de red) que no existen excesivas ARP Reply. Si existen, estamos siendo víctimas de un ataque por fuerza bruta a nuestro router y está falseando la MAC para el reenvío de paquetes.
      • ¿Cómo puedo evitar un ARP Spoofing?

      Usando Tablas ARP estáticas. Básicamente es que nuestro ordenador asigne a cada dirección IP y dirección MAC una entrada estática, con lo que si hubiera un cambio en la dirección MAC de una dirección IP concreta, el ordenador rechazaría la nueva MAC y seguiría enviándola a la original.

      Para añadir una entrada estática, introducimos en línea de comandos:

      > arp -s (dirección IP) (dirección MAC)

      De esta forma, en vez de tipo Dinámico como aparecía antes, ahora aparecerá Estático. Así, si alguien intenta falsear la MAC, nuestro ordenador se dará cuenta y no aceptará la nueva entrada. Así evitaremos el ARP Spoofing en menor medida.

      Éste método en una red local pequeña, como una red doméstica, es segura. Para grandes redes se puede realizar un DHCP snooping, que consiste en que el servidor DHCP que administra las direcciones IP ya tiene la dirección física, con lo que no existe mucha posibilidad. (Es como si habilitáramos un filtro MAC)

      • ¿Existe un ARP Spoofing legítimo?

      Sí. A veces, existe la posibilidad de que en redes de pequeñas y medianas empresas, el administrador monitorice lo que hacen los usuarios de la red, así como si entran en sitios que no deberían o usan programas P2P que no deben. Dichos datos no pueden utilizarse a beneficio del administrador (Ésto es, él puede enterarse de todo lo que haces, pero no puede usar tus datos)

      • ¿Existen herramientas para realizar ARP Spoofing?

      Sí. Existen en Internet bastantes herramientas dedicadas a realizar ARP Spoofing. Algunos ejemplos de ellas son Cain y Abel, Dsniff, entre otras. De forma evidente, el uso de éstos programas es recomendable para investigación, y nunca orientado a sacar un mal uso del mismo.

      Fuente:

      Wikipedia.
      CCNA 1.
      Experiencia propia.

      Última edición: Noviembre de 2012
      Razón: Formato de la tabla ARP