jueves, 1 de junio de 2017

Entorno gráfico mínimo en Linux


Son necesarios los siguientes paquetes mínimos:

1) x-window-system
2) xorg

A partir de esto, debemos añadir diferentes paquetes para que el entorno gráfico pueda funcionar correctamente:

3) Gestor de ventanas  (Window Manager).
  • OpenBox -> Ligero pero difícil de configurar
  • IceWM
  • FluxBox
  • FVWM-Crystal
  • XFCE -> Más pesado, pero más simple de configurar. Tiene una variante para Ubuntu: Xubuntu, el cual instala un entorno gráfico prácticamente completo.

4) Gestor de login: Para poder loggearse en el entorno gráfico.
  • GDM -> Muy pesado
  • KDM -> También muy pesado.
  • XDM -> El más básico. Feo de estética, pero igual de útil que los anteriores.

5) Navegadores (Browsers).
  • Firefox
  • Dillo
6) Gestores de archivos.
  • Nautilus -> Propio de Gnome
  • Konqueror -> El de KDE.
  • Thunar -> El que trae por defecto Xubuntu. y los basados en XFCE
  • XFE -> Parecido al Explorador de Windows.

7) Gestor de Paquetes: Sustitutos gráficos de apt-get o aptitude para gestionar software.
  • Synaptic -> El más popular y potente.

martes, 14 de marzo de 2017

Seguridad en IP Tables (Linux) - Operaciones con una regla simple


Esta es la base del filtado de paquetes, la manipulación de reglas. Normalmente utilizarás los comandos de añadir (-A) y eliminar (-D), las otras (-I para insertar y -R para reemplazar) son extensiones de estos conceptos.

Cada regla especifica un conjunto de condiciones que un paquete debe cumplir, y lo que haremos si cumple dichas condiciones (efectuaremos una 'acción'). Por ejemplo, puede que quieras hacer DROP de los paquetes ICMP provinientes de la dirección 127.0.0.1. En este caso definiremos el protocolo como ICMP, la dirección de origen como 127.0.0.1 y la acción será DROP.

127.0.0.1 es el interface 'loopback' que tendrá en su máquina incluso si no dispone de una conexión real a la red. Puede hacer un 'ping' para generar paquetes dichos paquetes (un ping simplemente envia paquetes ICMP del tipo 8 (petición de eco) que todos los hosts operativos deberán responder con un paquete ICMP de tipo 0 (respuesta del eco). Esto hace ping muy útil para el testeo.

    # ping -c 1 127.0.0.1
    PING 127.0.0.1 (127.0.0.1): 56 data bytes
    64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms

    --- 127.0.0.1 ping statistics ---
    1 packets transmitted, 1 packets received, 0% packet loss
    round-trip min/avg/max = 0.2/0.2/0.2 ms

    # iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP

    # ping -c 1 127.0.0.1
    PING 127.0.0.1 (127.0.0.1): 56 data bytes

    --- 127.0.0.1 ping statistics ---
    1 packets transmitted, 0 packets received, 100% packet loss
    #


Puedes ver aquí como funciona el ping (el parámetro '-c 1' le indica a ping que envíe un único paquete).

Despues añadimos (-A) a la chain 'INPUT' (de entrada) una regla especificando que los paquetes que vengan de 127.0.0.1 (-s 127.0.0.1) con el protocolo ICMP (-p icmp) deberán tomar la acción DROP (-j DROP)

Una vez hecho esto, probamos la regla con un segundo ping. El programa esperará una respuesta que nunca llegará Podemos eliminar esta regla de dos formas. La primera, ya que sabemos que es la única regla en la chain de entrada (input), podemos utilizar su número para borrarla:

              # iptables -D INPUT 1

La segunda forma es igual a la del comando -A, pero sustituyendo -A por -D. Esto es útil cuando tiene varias reglas complejas y no quieres tener que contarlas hasta encontrar la que buscabas. Para estos casos usaremos:

              # ipchains -D INPUT -s 127.0.0.1 -p icmp -j DROP

La sintáxis de -D debe ser exáctamente igual a la de -A (o -I o -R). Si hay  múltiples reglas iguales en la misma chain, sólo la primera será eliminada

miércoles, 8 de febrero de 2017

Reiniciar un campo identity en SQL Server

Frecuentemente una de las cuestiones más frecuentes que como administrador de sistemas llega a mi es como reiniciar el valor de identidad de una tabla en Sql Server.

Los valores identity aumentan de forma secuencial, si eliminamos los registros de una tabla, el valor identity no se inicializa, sino que continua con su último valor.

Para modificar este comportamiento utilizaremos el siguiente comando:

DBCC CHECKIDENT (<nombre_tabla>, RESEED,0)