Минимальный набор правил Iptables для работы SIP сервера, например Asterisk, находящегося за NAT'ом.
Для работы SIP
за NAT
'ом, организованным с помощью iptables
, необходимо следующее:
# Переменные IPT="/sbin/iptables" INET_IP="x.x.x.x" # Внешний IPшник ASTER_IP="192.168.0.10" # IPшник SIP сервера EXTEN_IP="192.168.0.100" # IPшник SIP клиента # Подключить модули: /sbin/modprobe nf_conntrack_sip /sbin/modprobe nf_nat_sip /sbin/modprobe nf_conntrack_h323 # Разрешить пересылку пакетов $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -p udp --dport 5060 -j ACCEPT $IPT -A FORWARD -p udp -m multiport --dports 10000:20000 -j ACCEPT # Пробросить SIP порт до сервера $IPT -t nat -A PREROUTING -p udp -d $INET_IP --dport 5060 -j DNAT --to-destination $ASTER_IP:5060 # Разрешить NAT для диапазона "голосовых" портов $IPT -t nat -A POSTROUTING -s $ASTER_IP -p udp -m multiport --dports 10000:20000 -j SNAT --to $INET_IP $IPT -t nat -A POSTROUTING -s $EXTEN_IP -p udp -m multiport --dports 10000:20000 -j SNAT --to $INET_IP
Если клиентов несколько - для каждого надо открыть NAT на диапазон портов 10000:20000, как в последнем правиле.
Этого достаточно для работы VoIP сервера и клиентов за NAT'ом.
Если есть внешние клиенты, подключающиеся из интернета, то не будет проходить голос в их направлении. Для решения надо прокинуть порты, по которым ходит голос, на SIP сервер:
$IPT -t nat -A PREROUTING -p udp -d $INET_IP -m multiport --dports 10000:20000 -j DNAT --to-destination $ASTER_IP
Но будет лучше взять у провайдера дополнительный IP и повесить телефонию на него.
Спасибо тебе в фаере я и сам разобрался, но то, что модули надо подключить я не знал, Спасибо, как коллега тебе респект большой!!!
# Подключить модули:
/sbin/modprobe nf_conntrack_sip
/sbin/modprobe nf_nat_sip
/sbin/modprobe nf_conntrack_h323
Из за этих и форварда у меня нифига не заводилось. Ты помог, Ты Класс!!!!
$IPT -A FORWARD -m state —state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p udp —dport 5060 -j ACCEPT
$IPT -A FORWARD -p udp -m multiport —dports 10000:20000 -j ACCEPT
Спасибо еще гуглу, что я на тебя вышел
Можно на «ты» Статья помогла мне твоя!
На oneser@pisem.net можешь скинуть сообщения, деньгами отблагодарю, мне нравится, потому что сей пост, выручил, в долгу не лю оставаться, я ценю сей труд!
Ибо я нифига не сдел, если бы не прочитав сей пост — пост меня в верное направление повернул, за что я блогадарен. Спасибо тебе ИТ специалист!!!
oneser86@gmail.com этот мейл предпочтительнее
Спасибо, с первого раза все взлетело!!!