Problema:
Tengo un servidor de correo en Linux Debian con Sendmail, en IPv4 todo funciona bien pero no escucha conexiones en IPv6
Escenario:
Servidor Debian con Sendmail 8.14.3 e IPv6 configurado
Procedimiento:
Primero verificar que efectivamente Sendmail no escucha en IPv6. Por ejemplo:
#netstat -pan | grep sendmail
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2596/sendmail: MTA:
unix 2 [ ACC ] STREAM LISTENING 4198 1025/mysqld / var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 13539 2596/sendmail: MTA: / var/run/sendmail/mta/smcontrol
unix 2 [ ] DGRAM 13535 2596/sendmail: MTA:
En la salida anterior notamos que sendmail se encuentra escuchando solo sobre la red IPv4.
Solucion:
La solucion es indicarle al Sendmail que también levante sobre la familia Inet6. Para ello es necesario modificar el sendmail.mc para reconstruir el sendmail.cf y luego reiniciar el sendmail. Los pasos son los siguientes:
1) Editar el sendmail.mc y agregar las siguientes lineas:
DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=DIRIPV6')dnl
DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
OJO: Sustituir DIRIPV6 por tu dirección IPv6
2) Ejecutar sendmailconfig (para procedar el sendmail.mc con m4 y generar el .cf)
3) Luego de ejecutar el comando anterior lo siguiente es siempre indicarle que Y en las siguientes preguntas:
Configure sendmail with the existing /etc/mail/sendmail.conf? [Y] y
Configure sendmail with the existing /etc/mail/sendmail.mc? [Y] y
Reload the running sendmail now with the new configuration? [Y] y
Verificar:
Para verificar ejecuta el comando:
#netstat -pan | grep sendmail
Realiza un telnet de la siguiente manera:
#telnet ::1 25
debes recibir respuesta similar a:
Trying ::1...
Connected to ::1.
Escape character is '^]'.
220 ipv6.para.com ESMTP Sendmail 8.14.3/8.14.3/Debian-9.1ubuntu1; Fri, 1 Oct 20 10 11:52:48 -0430; (No UCE/UBE) logging access from: localhost(OK)-localhost [IPv6:::1]
Suerte, espero haya sido util.
Blog en espanol destinado a diferentes temas tecnicos principalmente en IT y Networking. Se desea cubrir Linux, DNS, DNSSEC, RPKI, BGP, Cisco, Programacion (Bash, Python, etc), Protocolos de Enrutamiento, Seguridad en Redes, VoIP.
viernes, 1 de octubre de 2010
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
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
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
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
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
Suscribirse a:
Entradas (Atom)
Solución a: Error: eth0 interface name is not allowed for R2 node when network mode is not set to none
Problema: Containerlab devuelve un error similar: Error: eth0 interface name is not allowed for R2 node when network mode is not set to no...
-
Debido al crecimiento moderado que ha tenido el presente blog se me ocurrió añadir/integrar las estadisticas de google analytics a mi blog. ...
-
Introduccion: En algunas ocasiones es necesario "bajar" o deshabilitar iptables en nuestro Linux, el procedimiento depende de...
-
Saludos, Lo primero que debemos de hacer para quitar el stacking entre los switches es desconectar los cables Stack que los unen.... Es buen...