Firewall + acceso a servidor Elastix

ceduardo

Joined
Jul 9, 2009
Messages
4
Likes
0
Points
0
#1
Hola a todos de antemano gracias por la ayuda que me puedan prestar.

Tengo una infraestructura de red de la siguiente forma:
(Internet) -----[ipPub][INTERNET-SERVER][ipPri]------[LAN]------[SERVIDOR-ELASTIX]

[INERNET-SERVER]
eth2 IP publica XXX.YYY.ZZZ.QQQ
eth0 IP privada 192.168.2.15
eth1 IP privada 192.168.150.2

[SERVIDOR-ELASTIX]
eth0 IP 192.168.2.72

Quiero que los clientes externos a la red accedan al servidor elastix para ello hice unas reglas de iptables asi:

Code:
echo -n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

#Hace el ruteo a las CT Servidor Elastix
iptables -t nat -A PREROUTING -i eth2 -p UDP --dport 5060:5080 -j DNAT --to 192.168.2.72
iptables -t nat -A PREROUTING -i eth2 -p UDP --dport 10000:20000 -j DNAT --to 192.168.2.72

iptables -A INPUT -p udp --dport 5060:5061 -j ACCEPT
iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT

## Empezamos a filtrar para el acceso a internet
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)

/sbin/iptables -A INPUT -i lo -j ACCEPT

# Al firewall tenemos acceso desde la red local
iptables -A INPUT -s 192.168.2.0/24 -i eth0 -j ACCEPT

# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING (imprescindible!!!!!)

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth2 -j MASQUERADE

# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras m
 

gamba47

Joined
May 28, 2009
Messages
595
Likes
0
Points
0
#2
Es porque tenes que redireccionar los puertos TCP y UDP para el Elastix, el necesita ser el que maneje esos puertos.

No se bien cuales puertos son, pero más o menos los que seguro son necesarios:

TCP 5060
UDP 10000:20000

Lo mejor es redireccionar todos los puertos.

Después de esto es necesario que agregues el archivo /etc/asterisk/sip_nat.conf con la siguiente información:

Code:
nat=yes
externip=`curl whatismyip.com/automation/n09230945.asp`
localnet=192.168.254.2/255.255.255.0 -o la que aplique en tu caso
externrefresh=120
A algunos les funciona y a otros no, porque el problema esta cuando cambia la IP, a veces asterisk no se da cuenta de eso.

Yo acá estoy armando un script para automatizar este tipo de cosas, veo que te llevas bien con iptables, por ahí me podes ayudar a solucionar el problema del script que armé para chechear la ip cada 10 minutos.
http://www.elastix.org/index.php?option ... 3&id=27668

Saludos. gamba47
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#3
los puertos son :

443 - este es el puerto ssl para entrar al admiistrador web del elastix por internet

5060 UDP
4000 al 6000 UDP
10000 al 20000 UDP

son todos los que requieres, claro modificando el SIP_NAT.CONF
 

ceduardo

Joined
Jul 9, 2009
Messages
4
Likes
0
Points
0
#4
Holas gracias por la ayuda.

Bueno hice el cambio en el archivo sip_nat.conf del servidor elastix
Code:
nat=yes
externip=`curl whatismyip.com/automation/n09230945.asp`
localnet=192.168.2.0/255.255.255.0
externrefresh=120
Y en el servidor de internet hice las siguientes modificaciones

Code:
#Hace el ruteo a las CT
iptables -t nat -A PREROUTING -i eth2 -p UDP --dport 5060:5080 -j DNAT --to 192.168.2.72
iptables -t nat -A PREROUTING -i eth2 -p UDP --dport 4000:6000 -j DNAT --to 192.168.2.72
iptables -t nat -A PREROUTING -i eth2 -p UDP --dport 10000:20000 -j DNAT --to 192.168.2.72

#Acepto el trafico
iptables -A INPUT -p udp --dport 5060:5061 -j ACCEPT
iptables -A INPUT -p udp --dport 4000:6000 -j ACCEPT
iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT
Pero aun no logro que me escuchen desde afuera.:S


PD: Claro gamba47 que te ayudare, pero te aclaro no soy el super experto en iptables pero se puede ayudar a buscar una solución. Voy a revisar el link que me pasaste.
 

ceduardo

Joined
Jul 9, 2009
Messages
4
Likes
0
Points
0
#5
Bueno se ha solucionado el problema, yo creo que de todo un poco de lo que uds me dijeron, mas algo que por aquí hicieron, el detalle adicional fue que reiniciaron la configuración de los codes de sonido en el X-Lite.

Para la gente que como yo tenga un servidor de Internet y que a su vez haga de firewall comparto el script con el que me dio resultado. Recuerden que el servidor Elastix esta dentro de la red LAN no directo a Internet.

Este script va en el servdidor de Internet.
Code:
#!/bin/sh
## SCRIPT de IPTABLES - ejemplo del manual de iptables
## Ejemplo de script para firewall entre red-local e internet

echo -n Aplicando Reglas de Firewall...

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

#Hace el ruteo a las CT
iptables -t nat -A PREROUTING -i eth2 -p UDP --dport 5060:5080 -j DNAT --to 192.168.2.72
iptables -t nat -A PREROUTING -i eth2 -p UDP --dport 4000:6000 -j DNAT --to 192.168.2.72
iptables -t nat -A PREROUTING -i eth2 -p UDP --dport 10000:20000 -j DNAT --to 192.168.2.72

iptables -A INPUT -p udp --dport 5060:5061 -j ACCEPT
iptables -A INPUT -p udp --dport 4000:6000 -j ACCEPT
iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT

## Empezamos a filtrar
## Nota: eth2 es el interfaz conectado al router y eth0 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)

/sbin/iptables -A INPUT -i lo -j ACCEPT

# Al firewall tenemos acceso desde la red local
iptables -A INPUT -s 192.168.2.0/24 -i eth0 -j ACCEPT

# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING (imprescindible!!!!!)

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth2 -j MASQUERADE

# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras m
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#6
Gracias a ti por poner el resultado de tu tabajo :D

saludos
 

aparicio_juan

Joined
Mar 6, 2008
Messages
109
Likes
0
Points
0
#7

gamba47

Joined
May 28, 2009
Messages
595
Likes
0
Points
0
#8
Tenes algún tipo de QoS en el server ? mirá que el trafico VOIP tenes que matchearlo como prioritario para que sea fluida la conversación.


gamba47
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#9
en ocaciones me a tocado que agarran el puerto 4040 o esos rangos y ya o sale la llamada, siempreaperturo esos puertos UDP, aunque la teoria dice que del 560 al 6000 es sufucuente.

saludos
 

Members online

No members online now.

Latest posts

Forum statistics

Threads
30,902
Messages
130,887
Members
17,565
Latest member
omarmenichetti
Top