Wednesday, November 29, 2006

Se viene Expolinux2006

Tenemos el agrado de informarles que la UTN Facultad Regional Resistencia será anfitriona una vez más de un evento 100% Linux, de la mano del GULFRRE (Grupo de Usuarios Linux Facultad Regional Resistencia)

Expolinux2006
Pretende acercar GNU/Linux y el mundo FLOSS (Free Libre Open Source Software) al noreste argentino. Para ello contaremos con la presencia de disertantes de todo el país, especializados en diferentes áreas y aplicaciones del sistema operativo GNU/linux tanto para la investigación y desarrollo, como su aplicación en el dominio comercial. +>>

Monday, November 20, 2006

Se borró el Grub del MBR después de instalar win?

Si instalaste un win sobre un maquina con Linux y estabas usando grub instalado en el MBR, seguro tu loader fue borrado por el amigo. Como es esto?
Supongamos que tenemos un disco particionado de la siguiente manera:
hd1 -> NTFS (donde acabamos de instalar el win)
hd2 -> Reiserfs / (nuestra partición Linux root)
hd3 -> Reiserfs /home (la partición destinada a nuestros usuarios Linux)
hd4 -> swap
Al instalar win, éste borra lo que hay en el MBR en nuestro caso el loader.
Una de las formas para recuperar nuestro grub es conseguirnos una distro live como por ej knoppix y hacer lo siguiente:
Bootear la distro y ejecutar:
#grub
#root (hd0,1)
#setup (hd0)
#quit
Listo eso es todo. Lo que hicimos, fue decirle a grub que se instale de nuevo en el MBR y que su root está en el primer disco hd0, en la partición 2 ya que grub comienza a numerarlas desde 0 (por eso por ej. /dev/hda2 de un fdisk es igual a hd0,1 en grub).

Saturday, November 11, 2006

Tip MyGeneration && Firebird embedded

Si se por esas casualidades de la vida, estás queriendo usar MyGeneration para generar una estructura desde una DB Firebird embebida, en Windows. Tenés que hacer lo siguiente:
1) Copiar la dll fbembed.dll al directorio C:\WINDOWS\system32
Si no haces lo anterior MyGeneration te va a devolver un error tipo:
"unable to load DLL fbembed"
2) Indicarle a MyGeneration en Default Settings -> Connection String:
Driver: firebird
Database=tudb.fdb;Server=localhost;ServerType=1;User=sysdba;
password=masterkey
Eso es todo. Espero que no hayas sufrido mucho para darte cuenta de esto como yo.

Categoría and Technorati tags: catDevelop

Thursday, November 02, 2006

La Novella MS

No se que tan cierto puede resultar esto y la verdad no se que pensar!, será bueno, malo? solo el tiempo lo dirá! Lo cierto es que según este artículo hoy se reunieron: el CEO Steve Ballmer de Microsoft y el CEO Ron Hovsepian de Novell y hablaron en una rueda de prensa común. Según especifica el artículo obtenido del sitio http://www.desktoplinux.com Microsoft Corp. anunciará ofrecer ayuda en las ventas para familia de SUSE Linux de Novell Inc. Además, las dos compañías trabajarán juntas en las tecnologías que harán más fácil que los usuarios fusionen SLED (SUSE Enterprise Linux Desktop) 10 y Windows XP y Vista en el mismo Desktop.
Listo fue demasiado duro escribir esto me voy a pescar...


Categoría and Technorati tags: catIT-News

IDS qué se sabe? Portsentry como NIDS

En este post vamos a ver cómo usar Porsentry (un excelente NIDS o IPS como quieran calificarlo, desarrollado por la empresa Psionic desde octubre del 2002 propiedad de Cisco), en su configuración básica, dejando a gusto del consumidor los aderezos.

Vamos a usar un 2.6.17-gentoo-r7, con iptables 1.3.5-r4 y portsentry 1.2

A lo nuestro:

~# emerge iptables

~# emerge portsentry


Ahora tenemos que configurar portsentry para ello vamos a hacer una copia del file de ejemplo

~# cp /etc/portsentry/portsentry.conf.sample /etc/portsentry/portsentry.conf

y luego lo editamos:

~# vi /etc/portsentry/portsentry.conf


En la sección Port Configurations vamos a usar la siguiente configuración de puertos TCP y UDP que queremos scannear:

# Un-comment these if you are really anal:

TCP_PORTS="1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,

513,514,515,540,635,1080,1524,2000,2001,4000,4001,5742,6000,

6001,6667,12345,12346,20034,27665,30303,32771,32772,32773,

32774,31337,40421,40425,49724,54320"

UDP_PORTS="1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,

518,635,640,641,666,700,2049,31335,27444,34555,32770,32771,

32772,32773,32774,31337,54321"

NOTA: Ojo acá los que usan Xserver por el puerto 6000.

y comentamos las demás.


En la sección Advanced Stealth Scan Detection Options decomentamos las líneas:

ADVANCED_PORTS_TCP="1024"

ADVANCED_PORTS_UDP="1024"

para decirle a portsentry, que en modo avanzado, solamente monitoree por debajo de éstos.


Además vamos a decomentar:

# Default TCP ident and NetBIOS service

ADVANCED_EXCLUDE_TCP="113,139"

# Default UDP route (RIP), NetBIOS, bootp broadcasts.

ADVANCED_EXCLUDE_UDP="520,138,137,67"

lo cual nos servirá para evitar falsos positivos si es que estamos por ej. en un entorno WIN donde NetBIOS hace uso de TCP 113 auth para autenticar y 139 netbios-ssn para gestionar la sesión. Y los puertos UDP 520 para efs y ruteo local, 138 netbios-dgm, 137 netbios-ns y 67 bootps.


En la sección Configuration Files debemos especificar una serie de variables necesarias para el buen funcionamiento:

IGNORE_FILE="/etc/portsentry/portsentry.ignore"

La variable IGNORE_FILE guarda el path de un file llamado portsentry.ignore que será el lugar donde debemos agregar los hosts o redes que NO QUEREMOS scannear. Por lo general los hosts / redes de confianza irían aquí.



HISTORY_FILE="/etc/portsentry/portsentry.history"

La variable HISTORY_FILE guarda el path de un file llamado portsentry.history donde se almacenarán todos hosts que fueron denegados desde la instalación del servicio y


BLOCKED_FILE="/etc/portsentry/portsentry.blocked"

La variable BLOCKED_FILE guarda el path de un file llamado portsentry.blocked similar a la anterior sólo que ésta guarda los hosts denegados en la sesión actual o hasta el siguiente reinicio.



En la sección Misc. Configuration Options, vamos a decomentar:

RESOLVE_HOST = "1"

lo cual permitirá realizar el giro de las solicitudes de búsqueda DNS de los host atacantes.


En la sección Ignore Options, vamos a incluir:

BLOCK_UDP="1"

BLOCK_TCP="1"

estas variables van a indicarle a portsentry que en caso de detección de un ataque, bloque los puertos TCP y UDP para el target en cuestión. Podemos elegir que hacer 0: no bloquear, 1 bloquear y 2 correr comandos externos que bien podría ser generar alguna alerta a los administradores, a través del envio de mails por ej.


La sección Dropping Routes está dedicada a limitar / restringir rutas o host a través de reglas en las tablas locales. Por ej: podríamos incluir la siguiente:

KILL_ROUTE="/sbin/route add -host $TARGET$ gw 333.444.555.666"

la cual agregaría una entrada a nuestra tabla de ruteo local, indicándole al SO que cualquier tráfico proveniente de la IP contenida en $TARGET$ (la cual sería de nuestro atacante) sea enviada a un gateway inexistente. *IMPORTANTE* sólo una de éstas reglas pueden estar activas a la vez.


Si bien lo anterior podría servirnos en ataques no muy elevados, lo que se recomiendo es usar algún tipo de firewall para añadir más seguridad. Para ello podemos agregar reglas de firewall como por ej. la siguiente:

KILL_ROUTE="/usr/local/bin/iptables -I INPUT -s $TARGET$ -j DROP"

la cual impediría el tráfico de entrada proveniente de nuestro posible atacante.

NOTA: existen varias implementaciones de firewalls soportadas en distintas plataformas, iptables es sólo un ej.


Casi finalizando, contamos con la sección TCP Wrappers de la cual vamos a decomentar la opción:

KILL_HOSTS_DENY="ALL: $TARGET$"

la cual incluirá la IP de nuestro atacante en el file /etc/hosts.deny (una medida más de seguridad) independiente del packet filter que usemos.


Por el momento no vamos a incluir nada en la sección External Command, pero si mencionaremos que es posible accionar un comando tanto antes como después la aplicación de una regla.

NOTA: No se recomienda realizar contra ataques al origen como medida de defensa, está comprobado estadísticamente que es peor que la enfermedad.


Para finalizar la sección Scan trigger value, nos servirá para decirle a portsentry con qué rapidez actuar en caso de detección de tráfico anómalo, si especificamos esta variable en 0, le estaremos diciendo al mismo que reaccione inmediatamente. Lo anterior es lo que vamos a hacer:

SCAN_TRIGGER="0"

Podríamos establecerlo en valores como 1 o 2 para dar un aviso primero y luego aplicar reglas, etc.


No soy partidario de utilizar mensajes de banneo, pero cabe aclarar que esta posibilidad está abierta si alguien lo desea en la sección Port Banner Section.


Lo que nos queda:

Verificar que nuestro iptables esté funcionando correctamente para lo cual vamos a ejecutar:

~# /etc/init.d/iptables status

* status: stopped

y si está parado como en nuestro caso vamos a iniciarlo.

~# /etc/init.d/iptables start

  • Loading iptables state and starting firewall ... [ ok ]


Antes de iniciar a portsentry vamos a editar dos files:

El primero:

~# vi /etc/conf.d/portsentry


#PORTSENTRY_MODES="udp tcp"

#PORTSENTRY_MODES="stcp sudp"

PORTSENTRY_MODES="atcp audp"

donde vamos a seleccionar el modo de scanneo del mismo.


El segundo Y NO SE OLVIDEN a menos que quieran ser vaneados uds mismos:

~# vi /etc/portsentry/portsentry.ignore

#Para evitar bannear el uso de loopback

127.0.0.1/32

#Para evitar bannear nuestro host ej.

172.16.0.178

#Podríamos incluir redes completas como el caso de

172.16.0.0/24


Ahora si a iniciar portsentry:

~# /etc/init.d/portsentry start

  • Starting portsentry ... [ ok ]


Listo ahora los logs pueden verse en el messages, ya que portsentry trabaja con syslog y es ahí donde los almacena.

Por ej podríamos verlo con:

~# tail -F /var/log/messages | grep portsentry


Por el momento eso es todo.

Categoría and Technorati tags: catNetworking