Recuperar un SPA400 como gateway en asterisk

Hace poco he recuperado un cacharro que tenía tirado por la oficina… el linksys spa400. En su día lo compramos como gateway para los enlaces GSM del asterisk de la office, pero sus cuelgues y estabilidad, lo relegaron a estar apagado y sustituirlo por un portech mv-374.

Pese a ello, tiene 4 puertos FXO, que nos valdrán para enchufarlo a alguna línea y hacer pruebas…. la config:

en el extensions.conf, sección [globals]

[globals]
OUT_2 = SIP/spa400

Luego, donde vayan las entrantes

exten => spa400,1,NoOP(llamada entrante desde spa400)
exten => spa400,n,Dial(SIP/3005&SIP/3006,100,tTm)
exten => spa400,n,Voicemail(3000)
exten => spa400,n,Hangup

Y para las salientes…..

exten => _[89][123456789]XXXXXXX,n,Dial(SIP/${EXTEN}@spa400,100,tT)

Y ahora, en el sip.conf, en el register

register => spa400@ip.del.spa.400/spa400

y la definición:

[spa400]
type =friend
user =spa400
secret =
host =ip.del.spa.400
dtmfmode=rfc2833
context =contexto_de_entrantes
insecure=very

Y ahora, en la web del spa400:

Y más cosillas:

Seguimos…

Y por último…

Enjoy your spa400 🙂

WVdial con VPN en debian / ubuntu

Estos días, tras jugar con mi samsung galaxy y actualizarla a la 2.3.5, descubrí que en si activamos el tethering usb, no comparte la conexión de manera correcta….. para solucionarlo, usé el paquete wvdial.

Hasta aquí todo correcto…. el problema es que, con el wvdial, no se activa el network manager, con lo que, no podemos hacer uso (a priori) del vpnc.

El vpnc, es el paquete usado para conectarnos a vpn’s cisco con el protocolo IPSEC, sin necesidad de usar el vpn-client en nuestro debian / ubuntu.

Para solucionar esto, podemos usar el vpnc desde la línea de comandos:

craem@cepheusMAC:~$ sudo vpnc
[sudo] password for craem:
Enter IPSec gateway address: x.x.x.x
Enter IPSec ID for x.x.x.x: miGroupAuthentication
Enter IPSec secret for usuariosRemotos@x.x.x.x:miGroupPassword
Enter username for x.x.x.x: miUsuario
Enter password for angel@x.x.x.x: miPassword
VPNC started in background (pid: 3542)…

Enjoy your vpn 😉

Y ahora para desconectar ….

sudo vpnc-disconnect

NATear rango de puertos en un router cisco

Como ya sabréis, para hacer NAT por puertos en un router cisco, hay que añadir una línea por cada uno de ellos, del tipo:

ip nat inside source static tcp 192.168.2.3 8080 X.X.X.X 8080 route-map nonat extendable

Aquí estamos NATeando el puerto 8080 a la máquina 192.168.2.3 de nuestra red, donde X.X.X.X es la ip pública nuestra.

Pero el problema es, si queremos NATear un rango entero de puertos…. por ejemplo…. publicamos nuestro servidor de VoIP y necesitamos del 10000 al 20000 UDP para el media y el 5060 UDP para el signaling.

La pesadilla puede ser tremenda…. aunque no es necesario para la voIP los 10000 puertos, pero hacer un rango de 10 o 20, es poco elegante, más si nuestro router ya tiene más nats hechos, con lo que la config se puede volver muuuuy larga.

hace unos días, leyendo documentación de cisco por otros temas, veo el NAT ROTARY, siendo la definición de cisco:

Destination Address Rotary Translation
A dynamic form of destination translation can be configured for some outside-to-inside traffic. Once a mapping is set up, a destination address matching one of those on an access list will be replaced with an address from a rotary pool. Allocation is done in a round-robin basis, performed only when a new connection is opened from the outside to the inside. All non-TCP traffic is passed untranslated (unless other translations are in effect).

Y vemos la palabra mágica:

Destination address matching one of those on an access list

Vamos a investigar un poco:

Primero, hacemos el access-list para los puertos de nuestro VoIP server:

ip access-list extended voip
permit udp any any eq 5060
permit udp any any range 10000 20000

Y ahora el nat con el access-list, contra la ip 192.168.2.5, que será nuestro VoIP Server:

ip nat pool ASTERISK 192.168.2.5 192.168.2.5 netmask 255.255.255.0 type rotary

Finalmente, la destinación del NAT con la ACL:

ip nat inside destination list voip pool ASTERISK

Y ahora, enjoy the nat!!!, hasta que llegue el IPv6.