Não passa som do ASTERISK

1. Não passa som do ASTERISK

André Noberto
metrathon

(usa Debian)

Enviado em 11/12/2012 - 15:17h

Olá galera,

Estou tendo um problema na empresa e não consegui resolver, já procurei no VOL e não achei algo para resolver, claro que posso ter procurado do jeito errado, mas vamos lá.

Na empresa utilizamos ASTERISK e temos contas VOIP nele, implantamos também um Debian 6.0 com IPTABLES, fiz as regras tudo certinho, exceto a que direciona a parte de som para o Asterisk.

As portas que passam o som no ASTERISK é de 10000 a 20000.

Desde já muito obrigado a todos.

Veja as regras que criei:

## INICIO/REINICIO DO FIREWALL
case $1 in
start|restart)
echo "Iniciando Firewall"

## VARIAVEIS DAS PLACAS DE REDE
NET="eth1"
RLOCAL="eth0"

## VARIAVEIS DE REDE
IPASTERISK="172.168.11.202"
IPFIREWALL="172.168.11.204"
IPREDE="172.168.11.0/16"
IPVALIDO="200.229.XXX.XXX"
INET="0/0"

## HABILITANDO MODULOS
echo "Carregando Modulos Principais"
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_queue
modprobe ip_tables
modprobe ipt_LOG
modprobe ipt_MARK
modprobe ipt_MASQUERADE
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_TCPMSS
modprobe ipt_TOS
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_mark
modprobe ipt_multiport
modprobe ipt_owner
modprobe ipt_state
modprobe ipt_tcpmss
modprobe ipt_tos
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
echo "Modulos Carregados ..... [ok]"

## LIMPAR REGRAS ANTERIORES
iptables -F
iptables -t nat -F

## DEFINIR POLITICA PADRAO (NEGAR TUDO)
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

## COMPARTILHAR INTERNET

## IP FIXO
iptables -t nat -A POSTROUTING -o $NET -j SNAT --to 200.229.XXX.XXX

## ATIVAR ROTEAMENTO
echo "1" > /proc/sys/net/ipv4/ip_forward

## LIBERAR A PROPRIA MAQUINA LOOPBACK PARA ACESSO A INTERNET
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT

##
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

## LIBERAR/BLOQUEAR A REDE LOCAL
iptables -A INPUT -s $IPREDE -j ACCEPT
iptables -A FORWARD -s $IPREDE -j ACCEPT
iptables -A FORWARD -d $IPREDE -j ACCEPT


## LIBERAR/BLOQUEAR PING
iptables -A INPUT -s 0/0 -i $NET -p icmp -j ACCEPT

## LIMITE CONTRA PING DA MORTE E DoS
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP

## DESCARTE DE PACOTES NÃO IDENTIFICADOS ICMP
iptables -A OUTPUT -m state -p icmp --state INVALID -j DROP
iptables -A INPUT -m state -p icmp --state INVALID -j DROP
iptables -A FORWARD -m state -p icmp --state INVALID -j DROP

## LIBERADO ACESSO ASTERISK

iptables -A INPUT -p udp -s $INET -d $IPVALIDO --dport 5060 -j ACCEPT
iptables -A FORWARD -p udp -d $IPASTERISK --dport 5060 -j ACCEPT
iptables -t nat -A PREROUTING -d $IPVALIDO -p udp --dport 5060 -j DNAT --to-destination $IPASTERISK:5060

iptables -A INPUT -p udp -s $INET -d $IPVALIDO --dport 10000:20000 -j ACCEPT
iptables -A FORWARD -p udp -d $IPASTERISK --dport 10000:20000 -j ACCEPT
iptables -t nat -A PREROUTING -d $IPVALIDO -p udp --dport 10000:20000 -j DNAT --to-destination $IPASTERISK:10000-20000

## LIBERAR/BLOQUEAR ACESSO SQUID
iptables -A FORWARD -o eth0 -s $IPREDE -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -p tcp -s $IPREDE -d $IPFIREWALL --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s $IPREDE -d $IPFIREWALL --dport 443 -j ACCEPT

## JOGANDO TRAFEGO DA PORTA 80 PARA O SQUID TRANSPARENT
iptables -t nat -A PREROUTING -s $IPREDE -p tcp --dport 80 -j REDIRECT --to-port 3128



  


2. Re: Não passa som do ASTERISK

leonardo Souza
lejoso

(usa Debian)

Enviado em 15/12/2012 - 11:41h

Boa Tarde, pelo que vi pode ser necessário os seguintes procedimentos:


#########################################################################################################################

A regra abaixo está incorreta(range de portas no final está com - ao invés de : ):

iptables -t nat -A PREROUTING -d $IPVALIDO -p udp --dport 10000:20000 -j DNAT --to-destination $IPASTERISK:10000-20000

Correto:

iptables -t nat -A PREROUTING -d $IPVALIDO -p udp --dport 10000:20000 -j DNAT --to-destination $IPASTERISK

ou

iptables -t nat -A PREROUTING -d $IPVALIDO -p udp --dport 10000:20000 -j DNAT --to-destination $IPASTERISK:10000:20000

#########################################################################################################################

Liberação das portas quando a origem for o ip do Asterisk (colocou apenas liberando o destino o ip do Asterisk)

iptables -A FORWARD -p udp -s $IPASTERISK --dport 5060 -j ACCEPT
iptables -A FORWARD -p udp -s $IPASTERISK --dport 10000:20000 -j ACCEPT

##########################################################################################################################

Pode ser necessário carregar os seguintes modulos:

modprobe nf_conntrack_sip
modprobe nf_nat_sip

##########################################################################################################################





3. Re: Não passa som do ASTERISK

André Noberto
metrathon

(usa Debian)

Enviado em 17/12/2012 - 08:39h

Obrigado,

Essa realmente era uma das coisas que tinha que mudar, outra era dentro do Asterisk. Mas já funcionou. Obrigado mesmo.


4. Solução

Gabriel
gpj_gabriel

(usa Ubuntu)

Enviado em 19/05/2014 - 11:34h

Amigo, estou com o mesmo problema...poderia postar a solução completa por favor...o que teve que mudar no asterisk e a regra exata do iptables, por favor.


5. Re: Não passa som do ASTERISK

leonardo Souza
lejoso

(usa Debian)

Enviado em 19/05/2014 - 13:39h

gpj_gabriel -> Normalmente dentro do asterisk te um arquivo chamado sip.conf, e quando o mesmo está atrás de nat, você é obrigado a declarar o ip válido para o devido funcionamento. Mais ou menos assim:


"[general]
localnet=192.168.0.0/255.255.0.0 ; or your subnet
externip=x.x.x.x ; use your address

[YOURREMOTEPEER] ; your peer's name
nat=yes
qualify=yes ; Force keepalives"


Segue o link muito bom sobre isso:

http://www.linuxjournal.com/article/9399


De resto, as regras no iptables são as mesmas informadas no tópico. Além disso, os módulos nf_nat_sip e nf_conntrack_sp tem que ser carregados conforme informado também.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts