lunes, 27 de septiembre de 2010

Ejemplos de manipulacion de port forwarding utilizando NAT en routers Cisco

Situacion: 
 Tengo una granja de servidores (ejemplo Web, Mail y SSH) y tengo solo una direccion publica en mi router de borde. 

Escenario: 
    {Internet} --- {RTR con IP publica} ------- {Granja de Servidores} 
IP Publica: 11.12.13.14 
Mail Server: 192.168.1.5 Web Server: 192.168.1.4 
SSH: 192.168.1.6 
IP WAN: 11.12.13.14/30 
IP LAN: 192.168.1.1/24 
  
Solucion: 
 La solucion es configurar en el router Cisco NAT de tal manera de que al momento de recibir un paquete TCP al puerto destino correspondiente sepa a donde enviarlo. En este sentido, es necesario que el router re-envie los paquetes (port forwarding) de la siguiente manera: Paquetes destinados al IP 11.12.13.14 al puerto destino 25 lo envie al Mail Server (192.168.1.5) Paquetes destinados al IP 11.12.13.14 al puerto destino 80 lo envie al Web Server (192.168.1.4) Paquetes destinados al IP 11.12.13.14 al puerto destino 22 lo envie al SSH Server (192.168.1.6) 

Procedimiento: 
 La configuracion del router seria la siguiente: 
  ! ESTA ES LA INTERFAZ QUE DA HACIA LA GRANJA DE SERVIDORES 
interface FastEthernet0 
description Mi granja de servidores 
ip address 192.168.1.1 255.255.255.0 
ip nat inside 
! ! ESTA ES LA INTERFAZ QUE DA HACIA INTERNET 
interface Serial0 
description Hacia Internet 
ip address 11.12.13.14 255.255.255.252 
ip nat outside 
! !En la siguiente linea se indica que todo lo que apunte al IP 11.12.13.14 al puerto 80 lo envie al !servidor web 
ip nat inside source static tcp 192.168.1.4 80 11.12.13.14 80 extendable 
!En la siguiente linea se indica que todo lo que apunte al IP 11.12.13.14 al puerto 25 lo envie al !servidor mail 
ip nat inside source static tcp 192.168.1.5 25 11.12.13.14 25 extendable 
!En la siguiente linea se indica que todo lo que apunte al IP 11.12.13.14 al puerto 22 lo envie al !servidor ssh 
ip nat inside source static tcp 192.168.1.4 22 11.12.13.14 22 extendable 

Tips:
  Un dato muy interesante que es que se puede manipular el puerto. Por ejemplo, supongamos que tenemos un servidor web "escondido" podemos manejarlo con un puerto diferente al 80. Digamos que queremos que la gente desde Internet acceda a nuestro servidor Web utilizando el puerto 61234 podemos hacer lo siguiente: !El usuario desde Internet debe acceder a http://11.12.13.14:61234 ip nat inside source static tcp 192.168.1.4 80 11.12.13.14 61234 extendable Lo anterior es muy util para escoder servicios, ahorrar direcciones IP y darle seguridad a la red. Espero haya sido de tu utilidad, Suerte!
Situacion:
El reproductor Windows Media Player no reproduce videos AVI.
El reproductor Windows Media Player solo reproduce el audio del archivo .avi

Solucion:
Existen muchas soluciones, yo solo indicare la que me funciono facil y es gratis.

La solucion es instalar el paquete K-Lite_Codec_Pack_640_Full el cual puede conseguirse en:
http://www.warezhn.com/84-k-lite-codec-pack-640-full.html

Durante la instalacion se pueden escojer muchas opciones sin embargo sin modificar las mismas todo funciona perfecto.

Suerte, espero sea de tu utilidad

viernes, 24 de septiembre de 2010

Ping utilizando TCL en Cisco

Problema:
  Deseo realizar ping a muchas direcciones IP desde mi router Cisco pero deseo automatizarlo un poco 

  Procedimiento:
  La solución al problema es realizar un pequeño script dentro del router Cisco que recibe como argumento las direcciones IP a las cuales se les desea hacer ping. TCL (Tool Control Languaje) es un lenguaje de scripting utilizado en los IOS "recientes" de Cisco que permiten facilitar parte de la administración 

  Ejemplo del script en TCL:
  foreach address { 192.168.126.10 192.168.126.11 192.168.126.12 192.168.126.13 192.168.126.14 192.168.126.15 192.168.126.16 192.168.126.17 192.168.126.18 192.168.126.19 192.168.126.20 192.168.126.21 192.168.126.22 192.168.126.23 } {ping $i} 

 La salida del comando será la siguiente y lo mejor es que se ejecuta solo hasta hacerle ping a todos los host :) (parte de salida suprimida) Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.126.10, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.126.11, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.126.12, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.126.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.126.14, timeout is 2 seconds: !!!!! 

 Espero sea de tu utilidad,

 

viernes, 27 de agosto de 2010

Manipular VLANs con Linux

Objetivo: Configurar, crear, remover y manipular VLANs con Linux conectado a un LAN Switch Cisco (basado en IOS) Pre-requisitos: Para manipular las VLANs en Linux hay tres puntos principales a) Levantar el modulo 8021q b) Tener instalado el paquete vlans-utils c) El equipo con Linux debe estar conectado a un LAN Switch capaz de entender encapsulamiento 802.1q (dot1q). Procedimiento: a) Para levantar el modulo 8021q utilizar el comando #modprobe 8021q b) Para instalar el paquete vlans-utils en el caso de Mandriva se puede realizar con el comando: #urpmi vlan-utils c) Posteriormente se pueden crear las vlans necesarias Ejemplos: a) Crear la VLAN 2 en la interfaz eth0 vconfig add eth0 2 b) Crear la VLAN 8 en la interfaz eth1 vconfig add eth1 8 c) Remover la VLAN 3 de la interfaz eth5 vconfig rem eth5 3 d) Configurar la dirección IP a la vlan 8 en la interfaz eth1 (creada en el paso b) ifconfig eth1.8 192.168.1.1 netmask 255.255.255.0 e) Configurar la dirección IP a la vlan 3 en la interfaz eth5 (creada en el paso c) ifconfig eth5.3 192.168.1.1 netmask 255.255.255.0 f) Eliminar/remover la VLAN 2 en la interfaz eth0 vconfig rem eth0 2 g) Remover todas las vlans y comenzar desde 0 Recomiendo bajar el modulo 8021q y volver a levantarlo modprobe -r 8021q; sleep 1; modprobe 8021q Revisión: 1) Chequear el modulo 8021q se encuentre cargado en el equipo: #lsmod | grep 8021q 8021q 17672 0 2) Revisar todas las interfaces: #ifconfig -a 3) Chequear las VLANs en el directorio virtual /proc [root@pemon SCRIPTS]# more /proc/net/vlan/config VLAN Dev name | VLAN ID Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD eth1.21 | 21 | eth1 eth1.19 | 19 | eth1 Del lado del LAN Switch Cisco: interface FastEthernet0/26 switchport trunk encapsulation dot1q switchport mode trunk Eso es todo, Suerte!
check out this page

sábado, 21 de agosto de 2010

Cliente IPv6 Freenet6 en Linux

Introduccion:
En otros post he indicado por ejemplo como utilizar el cliente Teredo (Miredo) en Linux para levantar pseudo-tuneles IPv6 sobre IPv4.
En esta oportunidad voy a indicarte lo que considero una mejor opcion como metodo de transicion hacia IPv6, se llama Freenet6.
Teredo se basa en transportar paquetes IPv6 sobre paquetes UDP que a su vez viajan sobre IPv4. Freenet en cambio transporta IPv6 sobre tuneles TSP (puerto 3653). Por otro lado, las consultas DNS de los sistemas operativos (varia el comportamiento) se comportan diferentes cuando poseen direcciones IPv6 Terero (2001:0::/32) a cuando poseen direcciones IPv6 nativas; por ejemplo http://technet.microsoft.com/en-us/library/bb727035.aspx#ECAA

Situacion:
Deseo instalar y utilizar el cliente freenet6 en Linux y asi tener conectividad al mundo IPv6

Pasos:
1) Lo primero es conseguir los fuentes de Freenet aqui:
http://gogonet.gogo6.com/page/freenet6-services

2) En mi caso me faltaba el compilador g++ el cual instale con el comando: urpmi gcc-c++ (en el caso de Mandriva)


3) Luego es realizar la instalacion
a) # tar -zxvf gogoc-1_2-RELEASE.tar.gz
b) # make installdir=/usr/local/gogoc install (notese que se pasa como parametro el directorio de instalacion)

4) Finalmente ejecutar el binario:
cd /usr/local/gogoc/bin; ./gogoc (esperar aprox 10 segundos a que se conecte al servidor, obtenga DIR IP, etc)

Chequeo:
En las primeras oportunidades recomiendo ejecutar gogoc con la opcion -n (./gogoc -n) que significa foreground que se pueda apreciar la direccion IP que se reciba y todo eso.
Posteriormente para probar puedes realizar un ping6 a ipv6.google.com o un ping6 a portalipv6.lacnic.net
Al momento de ejecutar gogoc debe crearse la interfaz tun, la puedes monitorear mientras se negocia el tunel y veras cuando finalmente toma direccion IP

Mas informacion:
* RFC TSP http://tools.ietf.org/html/rfc5572
* Informacion General TSP http://en.wikipedia.org/wiki/Tunnel_Setup_Protocol
* Comportamiento de los queries DNS en ambientes IPv6 http://technet.microsoft.com/en-us/library/bb727035.aspx#ECAA

martes, 17 de agosto de 2010

Utilizar Linux como Teredo cliente

Introduccion:
Conectarse a una red IPv6 desde la casa u oficina hoy en dia es muy sencillo. Existen varias maneras y en este documento voy a explicar a instalar teredo y usarlo de manera muy sencilla y en pocos pasos.

Situacion:

Deseo utilizar mi servidor Linux como cliente Teredo para tener conectividad IPv6 en mi red IPv4 (el cual es a su vez nateada). En mi caso hice las pruebas desde un equipo Linux Mandriva 2010 y utilizando el servidor teredo de remlab.net

Solucion:
La solucion recomendada es utilizar el cliente Teredo para Linux llamada Miredo la cual es OpenSource, de distribucion gratuita es funciona muy bien.

Procedimiento:
1) Lo primeo es bajar Miredo de la pagina web en el URL: http://www.remlab.net/files/miredo/?C=N;O=D

2) Luego es necesario desempaquetarlo y compilarlo, en mi caso hice lo siguiente:
a) tar -jxvf miredo-1.2.3.tar.bz2
b) cd miredo-1.2.3
c) ./configure --without-Judy
d) make
e) make install

3) Finalmente ejecute Miredo con el comando:
/usr/local/sbin/miredo (luego de ejecutarlo espero entre 5-20 segundos para esperar que se cree la interfaz teredo y reciba su direccion ipv6)

Como comentario adicional el archivo de configuracion queda almacenado en:
/usr/local/etc/miredo/miredo.conf donde puedes cambiar el teredo server que deseas utilizar. Recomiendo que ubiques un servidor cercano a tu ubicacion geografica.

Para revisar:
La manera sencilla de revisar es haciendo por ejemplo un ping6 a ipv6.google.com.
Por otro lado, Miredo crea una interfaz logica en el sistema llamada teredo, la puedes revisar con el comando ifconfig. Por ejemplo:

ifconfig

teredo Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 addr: fe80::ffff:ffff:ffff/64 Scope:Link
inet6 addr: 2001:0:53aa:64c:18f6:6288:41b0:c5c8/32 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1
RX packets:243 errors:0 dropped:0 overruns:0 frame:0
TX packets:403 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:41816 (40.8 KiB) TX bytes:40042 (39.1 KiB)

Sobre la interfaz puedes utilizar herramientas como tcpdump o wireshark. Por ejemplo seria tcpdump -i teredo. Puedes tambien apreciar los paquetes entrantes y salientes los cuales se van a incrementar a medida que utilizar la conectividad IPv6

Por ultimo, tambien puedes revisar este post para probar tu conectividad IPv6
acostanetwork.blogspot.com/2009/04/probar-ipv6.html


Mas Informacion:
http://git.remlab.net/cgi-bin/gitweb.cgi?p=miredo.git;a=blob_plain;f=README;hb=HEAD

http://www.remlab.net/miredo/doc/miredo.8.html

sábado, 14 de agosto de 2010

Lista de administrador de dispositivos vacia. Windows XP

Problema:
Windows XP SP 2 no muestra las interfaces de red y al momento de administar el equipo el listado de "Administrador de dispositivos" no muestra nada

Solucion:
Luego de leer mucho e intentar varias cosas resumo los pasos. Espero alguno te ayude a ti:

a) El servicio Plug & Play debe arrancar automaticamente (http://support.microsoft.com/kb/311504).
b) El servicio Universal PuNP no debe arrancar
c) Ubica el registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum y asegurate que el usuario SYSTEM tenga permisos sobre esta llave. Para ello ubica primero la llave, hacer click derecho, selecciones permisos y AGREGA EL USUARIO SYSTEM con full control, en mi caso solo tenia lista el usuario principal del equipo. Adicionalmente agrega el grupo EVERYONE con la permisologia read-only.
d) Ejecuta: sfc/scannow (para revisar archivos del sistema danados y repararlos)

Si tu equipo venia funcionando bien y luego de la instalacion de un SP empezo el problema, muy probablemente tu solucion sea la opcion C
Luego de realizar cualquiera (o varios de los pasos anteriores) reinicia tu equipo. Estoy bastante seguro que apareceran las interfaces de red y veras el listado de dispositivos.

Suerte!

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...