есть два Астериска на Дебиане. Без всяких оболочек , только командная строка.
Настроил на обоих 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 пытался посмотреть ...
подскажите ШО ЦЕ ТАКЕ
за место нулей ip адрес противоположного asterisk, делать на обоих серверах
тоесть в рабочем скрипте iptables стоит правильный адресс
| Код: |
| /sbin/iptables -A INPUT -d 10.10.10.10 -p udp -m udp --dport 10000:20000 -j ACCEPT |
.... вроде 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 или ядра ...
| Цитата: |
| и tcpdump пытался посмотреть ... |
И что там было видно?
Проблема наверное все таки в том, что был не корректно задан вопрос. Изначально заданы два сервера 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 ?