AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Asterisk и iptables нет звука

Newbies/FAQ Forum 9 сообщений -
#1

Столкнулся с очень непонятной для меня ситуацией

есть два Астериска на Дебиане. Без всяких оболочек , только командная строка.

Настроил на обоих iptables . Ходит по SSH куда нужно SIP работает к телефонам и обратно
IAX2 между серверами работает до того момента пока не запущены оба !!! iptables
тоесть если iptables не запущены то все работает идет звонок и собеседника слышно
если запущен iptables на одном, то с него звонок идет нормально проходит вызов и голос в трубке присутствует
а вот обратная ситуация уже не та ... если звонят с того где не запущен iptables то звонок идет а когда снимаешь трубку тишина

и такоеже происходит при двух запущенных iptables в обе стороны

....
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
...
$IPTABLES -A INPUT -p udp -m udp -s 000.000.000.000 --dport 4569 -j ACCEPT

по идее вроде ничего больше и не нужно

и tcpdump пытался посмотреть ...

подскажите ШО ЦЕ ТАКЕ Smile
#2

IPTABLES -A INPUT -p udp -m udp -s 000.000.000.000 -j ACCEPT
за место нулей ip адрес противоположного asterisk, делать на обоих серверах
#3

нули поставленны только чтобы не показывать реальный IP Smile
тоесть в рабочем скрипте iptables стоит правильный адресс
#4

А RTP порты для передачи голоса кто будет открывать ?? дядя ?!

Код:
/sbin/iptables -A INPUT -d 10.10.10.10 -p udp -m udp --dport 10000:20000 -j ACCEPT
#5

да я уже скоро соглашусь что бы дед мороз пришел и открыл Smile

.... вроде IAX2 все должен гнать по одному порту 4569

и порты я открыл на обоих файерволах

$IPTABLES -A INPUT -p udp -m udp -s Х.Х.Х.Х --dport 10000:20000 -j ACCEPT
$IPTABLES -A INPUT -p udp -m udp -s Х.Х.Х.Х --dport 2727 -j ACCEPT

только результата никакого

я еже думаю что дело в начальных параметрах iptables или ядра ...
#6

У вас свои сервера ? тогда зачем порты ограничиваете ? пишите без --dport
#7

Цитата:
и tcpdump пытался посмотреть ...

И что там было видно?
#8

Во общем сам спросил сам ответил Smile
Проблема наверное все таки в том, что был не корректно задан вопрос. Изначально заданы два сервера Asterisk которые имеют два сетевых интерфейса. Один смотрит в локальную сеть (Х.Х.Х.Х), другой имеет реальный (белый IP Y.Y.Y.Y). То есть оба Asterisk сидят в DMZ. У них нет никаких NAT.
Звонок с телефона первой локальной под сети должен поступить на телефон второй локальной под сети.
Есть еще VPN между под сетями, по которому не нужно пускать VoIP трафик. Хотя я не уверен, что именно так он и не идет. Между серверами настроено соединение по IAX2. Телефоны к Asterisk-ам подключаются по SIP. На одном из Asterisk еще висит провайдер с доступом по SIP.
Вот с таким iptables работает:

cat ./iptables_start.sh

#!/bin/bash
IPTABLES='/sbin/iptables'

echo
echo "***** Start write iptaples rules!!! *****"
echo

# Set interface values
EXTIF='eth0'
INTIF='eth1'

#Сбрасываем старые данные, правила и цепочки
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -X -t nat
$IPTABLES -X -t mangle

echo
echo "***** Old Rules Flushed !!! *****"
echo

#Устанавливаем правила на DROP по-умолчанию. (Set Default-Drop Policy)
$IPTABLES -P INPUT DROP
# $IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# $IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
# $IPTABLES -P FORWARD ACCEPT

#Разрешаем работу локального интерфейса, того самого 127.0.0.1 (Allow The Loopback)
$IPTABLES -A INPUT -i lo -j ACCEPT

#Разрешаем поддерживать открытыми уже установленные соединения (Allow Established Connections)
$IPTABLES -A INPUT -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT

#Разрешаем присоединяться по SSH, при условии, что используется стандартный 22 порт (Allow SSH)
$IPTABLES -A INPUT -s Z.Z.Z.Z -p TCP -i $EXTIF --dport 22 -j ACCEPT
$IPTABLES -A INPUT -s X.X.1.0/24 -p TCP -i $INTIF --dport 22 -j ACCEPT
$IPTABLES -A INPUT -s X.X.6.0/24 -p TCP -i $INTIF --dport 22 -j ACCEPT

#Разрешаем присоединяться по SIP к нашему серверу, порт 5060
$IPTABLES -A INPUT -s Y.Y.Y.Y -p UDP -m udp -i $EXTIF --dport 5060 -j ACCEPT
$IPTABLES -A INPUT -s X.X.6.0/24 -p UDP -m udp -i $INTIF --dport 5060 -j ACCEPT

#Разрешаем присоединяться по RTP к нашему серверу, порты 10000:20000
$IPTABLES -A INPUT -s Y.Y.Y.Y -p UDP -m udp -i $EXTIF --dport 10000:20000 -j ACCEPT
$IPTABLES -A INPUT -s X.X.6.0/24 -p UDP -m udp -i $INTIF --dport 10000:20000 -j ACCEPT

#Разрешаем присоединяться по T.38 к нашему серверу, порты 4000:4999
$IPTABLES -A INPUT -s Y.Y.Y.Y -p UDP -m udp -i $EXTIF --dport 4000:4999 -j ACCEPT
$IPTABLES -A INPUT -s X.X.6.0/24 -p UDP -m udp -i $INTIF --dport 4000:4999 -j ACCEPT

#Разрешаем присоединяться по IAX2 к нашему серверу, порт 4569
$IPTABLES -A INPUT -s Y.Y.Y.Y -p UDP -m udp -i $EXTIF --dport 4569 -j ACCEPT
$IPTABLES -A INPUT -s X.X.6.0/24 -p UDP -m udp -i $INTIF --dport 4569 -j ACCEPT

#Разрешаем присоединяться по AMI к нашему серверу, порт 5038
$IPTABLES -A INPUT -s Y.Y.Y.Y -p tcp -m tcp -i $EXTIF --dport 5038 -j ACCEPT
$IPTABLES -A INPUT -s X.X.6.0/24 -p tcp -m tcp -i $INTIF --dport 5038 -j ACCEPT

#Allow ICMP Replies From Specified Hosts (Ping)
$IPTABLES -A INPUT -s X.X.1.0/24 -p ICMP -i $INTIF --icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT -s X.X.6.0/24 -p ICMP -i $INTIF --icmp-type 8 -j ACCEPT

#Log
$IPTABLES -A INPUT -j LOG --log-prefix "INPUT DROP: "

echo
echo "*************** Rules written!!! *******************"
echo

Остается открытым вопрос. Нужен ли Asterisk вообще форвардинг ? И не пойдет ли трафик по VPN ?
#9

Что трафик не ходил по vpn роутинг настраивать нужно