sábado, 2 de abril de 2011

Implementar DNSSEC sobre Linux. Solo resolver. Version 2

Este documento es una actualizacion de "Implementar DNSSEC sobre Linux. Solo resolver" fechado 25 de Noviembre de 2009.


Historia:
Luego de la firma de los root servers a mediados del año 2010 (ver http://www.root-dnssec.org/) habilitar DNSSEC en el resolver es mucho más sencillo debido a que solo hay que validar "." dentro de nuestro archivo de configuración. Anteriormente necesitabamos trust anchors para cada dominio (TLD, ccTLD, zonas) que queriamos validar. Este trabajo era insoportable de manejar y no era escalable.
Ahora con la firma de los root-servers todo es más sencillo.

Software:
Bind 9.7.2-P3
Linux Mandriva 2010.2

Procedimiento:
1) Primero es necesario colocar el trust-anchor para el root zone. Para obtenerlo:

#dig . dnssec

La salida anterior te entregará varios resultados:

root@localhost ~]# dig . dnskey
;; Truncated, retrying in TCP mode.

; <<>> DiG 9.7.2-P3 <<>> . dnskey
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60029
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;. IN DNSKEY

;; ANSWER SECTION:
. 136089 IN DNSKEY 257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=
. 136089 IN DNSKEY 256 3 8 AwEAAb5gVAzK59YHDxf/DnswfO1RmbRZ6W16JfhFecfI+EUHRXPWlXDi 47t2FHaKyMMEROapL5SZ8HiCzl05lORZGGdN37WY7fkv55rs+kwHdVRS rQdl81fUnEspt67IIgaj3SrGyZqgzyixNk/8oT3yEfKDycTeJy4chKPt 0JegWrjL
. 136089 IN DNSKEY 256 3 8 AwEAAcaGQEA+OJmOzfzVfoYN249JId7gx+OZMbxy69HfUyuGBbRN0+Hu TOpBxxBCkNOL+EJB9qJxt+0FEY6ZUVjEg58sRr4ZQ6Iu6b1xTBKgc193 zUARk4mmQ/PPGxn7Cn5VEGJ/1h6dNaiXuRHwR+7oWh7DnzkIJChcTqlF rXDW3tjt

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Apr 2 10:00:49 2011
;; MSG SIZE rcvd: 586

Nos interesa la sección correspondiente a la 257, este valor corresponde a SEP o Secure Entry Point, también conocido como los KSK o Key Signing Key. Como dato adicional el valor 256 corresponde a los Zone Signing Key (ZSK)

2) Del resultado anterior, vamos a copiar la llave (despues del "257 3 8") y vamos a crear la siguiente seccion managed-keys dentro de named.conf. Quedando así:

managed-keys {
"." initial-key 257 3 8 "AwEAAagAIKlVZrp...";
};

3) Dentro de la sección de opciones de named.conf vamos a colocar lo siguiente:

dnssec-enable yes;
dnssec-validation yes;

Reinicia BIND y debe estar funcionando.

Revisar que DNSSEC este operando bien:

La mejor opción es utilizar el famoso comando dig y chequear el flag AD en al respuesta. Por ejemplo:

RESPUESTA SIN DNSSEC

[root@localhost etc]# dig +dnssec registro.br

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43771
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5



RESPUESTA CON DNSSEC

[root@localhost etc]# dig +dnssec registro.br

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1063
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 6, ADDITIONAL: 1



Nótese que que el flag ad no esta encendido en la respuesta sin DNSSEC

Otra forma más sencilla de revisar si esta funcionando DNSSEC es entrar a la página: "DNSSEC test tool" de SIDN y correr la prueba.


Más información:

- El concepto de managed-keys fue introducido en Bind 9.7 en adelante. Ver
- Articulo excelente que indica como hacer que Bind se convierta en un DNSSEC validator

martes, 29 de marzo de 2011

Unir varios videos AVI en uno solo. Linux

Situacion:
Deseo unir varios videos .avi en un solo archivo

Solucion:
La solución es muy sencilla y es la siguiente:

#avimerge -o videocompleto.avi -i video1.avi video2.avi video3.avi

Incluso es posible utilizar un comando como el siguiente:

#avimerge -o videocompleto.avi -i *.avi

En este ultimo comando se tomarian todos los archivos .avi en el directorio actual y crearía un solo archivo destino (sin borrar los originales) llamado videocompleto.avi

Notas adicionales:
avimerge pertenece a un paquete llamado transcode. Para su instalación (solo en Mandriva):

#urpmi transcode
[root@localhost]# urpmi transcode
To satisfy dependencies, the following packages are going to be installed:
Package Version Release Arch
(medium "Main")
lib64mpeg2dec0 0.5.1 3mdv2010.1 x86_64
(medium "PLF Free")
transcode 1.1.5 4plf2010.1 x86_64
6.2MB of additional disk space will be used.
1.1MB of packages will be retrieved.

Espero haya sido util,

Suerte!

viernes, 25 de marzo de 2011

Cambiar los DNSs se Windows via Command Prompt

Situacion:
Por diversas razones usted puede querer cambiar los DNSs de alguna conexion dentro de su computadora via comando (desde una ventana de DOS). En mi caso queria cambiar los DNSs de una conexion dentro de mi Windows Vista y me di cuenta que era mas facil por comandos
Problema:
Deseo cambiar los DNSs de Windows via comandos.

Solucion:
La solucion es utilizar netsh.
netsh viene de dos maneras: 1) modo interactivo y 2) modo directo. En el primero uno entra en un nuevo shell (ejecuta netsh sin argumentos) y en el segundos los comandos se envian directos.
En el presente ejemplo haremos todo por la segunda via. Los pasos en general son:

1) Ubicar el nombre exacto de la conexion a la cual queremos cambiar los DNS:
netsh interface ip show config

2) Cambiar los DNS con el comando netsh:netsh interface ip set dns "Nokia GSM Phone USB Modem #5 (NPCIA)" static 8.8.8.8

Screenshots:




Mas informacion:
http://support.microsoft.com/kb/242468
http://es.kioskea.net/faq/535-cambiar-la-direccion-ip-desde-la-linea-de-comandos-con-netsh

Mensaje: La operación solicitada requiere elevación

Problema:
Al ejecutar un comando en el command prompt de windows aparece el mensaje "La operación solicitada requiere elevación"

Solucion:
El command prompt debe ser ejecutado como administrador.
Ubicar un icono de Command Promt, click derecho --> ejecutar como administrador

Suerte!

lunes, 14 de marzo de 2011

Historico de tablas BGP. ¿Hijack de mi red?

Descripcion:
Si eres un administrador de routers que manejen tablas BGP (probablemente un ISP) quizás publicas tus propios prefijos/subredes a tu upstream provider desde tu Sistema Autonomo (AS).
Ahora bien, debes saber que tu mismo prefijo o uno muy similar (quizás un prefijo más grande o chico) puede ser -por algún error o ataque- publicado desde otro AS en otra parte del mundo. Lamentablemente esto es algo que ocurre y hay que estar preparado.

Problema:
Pienso haber sufrido un hijack de mis prefijos IP (publicadas desde un AS diferente al mio) y necesito verificarlo.
Para este inconveniente te recomiendo utilizar un routeview especificamente la herramienta BGPlay. BGPplay me permito decir que es una herramienta excelente y gratuita realizada en Java que permite buscar un prefijo y el te indicará cualquier cambio en los ultimos 10 días.
Para utilizar BGPPlay:
1) Dirigete a la pagina http://bgplay.routeviews.org/
2) Haz click sobre el boton "Start BGPlay"
3) Luego se cargará el applet de Java, allí indicas cual es tu prefijo un rango de fecha donde deseas consultar
4) Hacer click sobre Ok
5) Analizar los resultados


Recomendación:
Tener Alarmas!; para ello deseo sugerirte el sitio web: http://www.bgpmon.net/ . BGPmon es un sitio gratis dedicado al monitoreo y analisis de tablas BGP. Lo más significativo que tiene es que puedes indicar cuales son tus prefijos, tu AS y en caso de existir algún cambio ellos te envian un correo. Por ejemplo puedes configurar las siguientes alarmas:
- En caso de existir algún otro AS que comienza a publicar algún prefijo tuyo te enviaran un correo
- Redes nuevas
- Cambios significativos de path
- Redes subneteadas
- Retiro/withdraw de redes

Suerte, espero sea de tu utilidad,

martes, 8 de febrero de 2011

Obtener la tabla BGP de un router Cisco por SNMP

Objetivo:
Deseo obtener la tabla BGP de un router Cisco por SNMP

Procedimiento:
El siguiente procedimiento se hizo desde un Laptop con Mandriva y snmp-utils instalado. El router fue un Cisco 7200 con IOS 12.3

- Instalar snmp-utils debido a que es necesario la aplicación snmpwalk
#urpmi net-snmp-utils

- El MIB utilizado es el CISCO-BGP4-MIB, puedes compilarlo en tu equipo o ir directamente al OID.

- El objeto escogido por mi persona es: cbgpRouteBest el cual corresponde el OID 1.3.6.1.4.1.9.9.187.1.1.1.1.18

- El comando para obtener la tabla BGP que puedes utilizar es:
#snmpwalk -v 1 -c MICOMUNIDAD MIROUTER .1.3.6.1.4.1.9.9.187.1.1.1.1.18

La salida del comando es bastante extensa y puede ser hasta engorroso de leer. La salida es algo similar a:

SNMPv2-SMI::enterprises.9.9.187.1.1.1.1.18.1.128.1.4.3.4.5.6.12.0.0.30.228.0.0.0.2.199.60.28.0.24 = INTEGER: 1

El prefijo BGP se encuentra ubicado justo antes del "=" en formato octeto1.octeto2.octeto3.octeto4.mascara

Por ello, para obtener una salida limpia utiliza el siguiente mini-script:

#snmpwalk -v 1 -c MICOMUNIDAD MIROUTER .1.3.6.1.4.1.9.9.187.1.1.1.1.18
| cut -d "=" -f1 | awk -F. '{print $(NF-4) echo "." $(NF-3) echo "." $(NF-2) echo "." $(NF-1) echo "/" $(NF)}'

La salida será algo similar a:
190.124.165.0/24
190.196.224.0/20
192.33.14.0/24
192.58.128.0/24
192.197.157.0/24
193.116.0.0/14
199.60.28.0/24

Más info:
http://www.cisco.com/en/US/docs/ios/12_0s/feature/guide/sbgprmib.html
ftp://ftp.cisco.com/pub/mibs/oid/CISCO-BGP4-MIB.oid

miércoles, 2 de febrero de 2011

Como destaquear (unstack) dos switches Cisco 3750

Saludos,


Lo primero que debemos de hacer para quitar el stacking entre los switches es desconectar los cables Stack que los unen....


Es bueno recordarlas, que es inevitable reiniciar ambos switches, por lo que si se trata de una red en producción, es bueno que se tomen las precauciones pertinentes!!!!


Una vez que desconectemos los cable de stack de los switches..... ejecutamos el comando


"Show switch"
Ejm:

Switch#sh switch
Switch/Stack Mac Address : 001d.35e4.ae08
H/W Current
Switch# Role Mac Address Priority Version State
----------------------------------------------------------
*1 Master 001d.35e4.ae08 1 0 Ready
2 Member 0000.0000.0000 0 0 Provisioned

==


Luego de esto, podemos en base a la salida de este comando escribir lo siguiente


Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch-4(config)#no switch ?
<1-9> Switch Number

Switch(config)#no switch 2 ?
priority Set the priority of the specified switch
provision Configure Switch provision / offline config
renumber Renumber the specified switch number

Switch(config)#no switch 2 provis



Este proceso lo vamos a repetir en el otro switch.... Y una vez esto hecho... Debemos reiniciar ambos switches




Luego de esto, es probable que todavía las interfaces del switch 2 se sigan viendo enumerados de la siguiente manera "2/0/3"..."3/0/44", etc


Es por eso, que ejecutando el comando

Switch-4#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch-4(config)#no swi
Switch-4(config)#no switch 2 re
Switch-4(config)#no switch 2 renumber 1 <----


Y eso es todo Sres!!!



Hasta el próximo blog!

Una propuesta inesperada dentro de IETF – Ethernet sobre HTTPS

En el presente post quiero hablar mayormente sobre un documento con poco tiempo en IETF llamado “Ethernet sobre HTTPS”. Debo confesar que su...