Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Iptables и SIP телефония  (Прочитано 4176 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Iptables и SIP телефония
« : 03 Февраль 2015, 19:39:16 »
Замучало меня новое устройство интрнет телефонии Cisco SPA 112

Устройство находится за НАТ, прописал кажется все правила в iptables но телефон то отзывается то нет. Это просто ужас какой то. Если сделать TCPDUMP на eth0 то сигнал из вне приходит всегда. Но не всегда отвечает устройство.

Ребята, помоги чем можете.

Делал вот так:

iptables -I FORWARD -s 192.168.0.5 -p tcp --dport 5060:5061 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 5060:5061 -j DNAT --to-destination 192.168.0.5
iptables -A PREROUTING -t nat -i eth0 -p udp -m udp --dport 5060:5061 -j DNAT --to-destination 192.168.0.5
iptables -I FORWARD -s 192.168.0.5 -p udp --dport 10000:20000 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p udp --dport 10000:20000 -j DNAT --to-destination 192.168.0.5

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #1 : 03 Февраль 2015, 21:51:13 »
Показывайте iptables-save полностью.
У меня та же циска замечетельно работает за двумя(!) натами.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #2 : 04 Февраль 2015, 00:52:49 »
Я вот вечером сделал вот так вот нашел:

# Переменные
IPT="/sbin/iptables"
INET_IP="x.x.x.x" # Внешний IPшник
CLIENT_IP="192.168.0.10" # 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
# Пробросить порты до клиента (в данном случае клиентом может быть и сервер asterisk)
$IPT -t nat -A PREROUTING -p udp -d $INET_IP --dport 5060 -j DNAT --to-destination $CLIENT_IP:5060
# Разрешить NAT диапазона портов для клиента
$IPT -t nat -A POSTROUTING -s $CLIENT_IP -p udp -m multiport --dports 10000:20000 -j SNAT --to $INET_IP

Пока звоню из дома на рабочий этот номер и судя по TCPDUMP проходит все. Давайте до утра.

Хотя ранее у меня было так:

# Generated by iptables-save v1.4.21 on Thu Jan 29 14:51:38 2015
*filter
:INPUT ACCEPT [43471029:60359783017]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18932819:2485314480]
-A INPUT -i lo -j ACCEPT

-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 8080 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 445 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 8081 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -j DROP

-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5061 -j ACCEPT
-A INPUT -p udp -m udp --dport 5060 -j ACCEPT

-A FORWARD -s 192.168.0.6/24 -p udp -m udp --dport 10000:20000 -j ACCEPT
-A FORWARD -s 192.168.0.6/24 -p tcp -m tcp --dport 5060:5061 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -o eth0 -p udp -m udp --dport 5060 -j ACCEPT

-A OUTPUT -o lo -j ACCEPT

COMMIT
# Completed on Thu Jan 29 14:51:38 2015
# Generated by iptables-save v1.4.21 on Thu Jan 29 14:51:38 2015
*nat
:PREROUTING ACCEPT [534440:37078485]
:INPUT ACCEPT [308768:20836632]
:OUTPUT ACCEPT [434731:29270192]
:POSTROUTING ACCEPT [1674:404543]
-A PREROUTING ! -d 192.168.0.0/24 -i eth0 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.0.1:3128

-A PREROUTING -i eth0 -p tcp -m tcp --dport 5060:5061 -j DNAT --to-destination 192.168.0.6
-A PREROUTING -i eth0 -p udp -m udp --dport 5060:5061 -j DNAT --to-destination 192.168.0.6
-A PREROUTING -i eth0 -p udp -m udp --dport 10000:20000 -j DNAT --to-destination 192.168.0.6

-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Jan 29 14:51:38 2015

Но сейчас я закоментил строки что относились к сип устройству, и дергаю как написал выше. Интересно что получится и будет ли работать. Но ваш опыт будет бесценен.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #3 : 04 Февраль 2015, 02:28:07 »
Куча ненужного в ваших таблесах. Сами не путаетесь?

Цитировать
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 8080 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 445 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 8081 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -j DROP
-A INPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT

Это всё заменяется на два правила:
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-P INPUT DROP
(Аналогично для FORWARD)

Цитировать
-A OUTPUT -o lo -j ACCEPT
Это вообще бессмыслица. Чтобы нормально фильтровать OUTPUT, надо очень хорошо себе представлять, что происходит в системе.

Цитировать
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
Второе правило бессмысленно после первого.

У вас нигде нет разрешения пропускать DNAT'нутые пакеты. Вот SIP и не работал. Включанием nf_nat_sip вы немного разрядили обстановку, но именно что немного.

Вообще, должно быть что-то вроде
(Нажмите, чтобы показать/скрыть)
(Если что, DEVICES это как раз список устройств, включая SIP шлюз.)

P.S.
Достаточно будет добавить nf_nat_sip и nf_conntrack_h323 в /etc/modules, чтобы не мучаться со скриптами.
Поскольку оба модуля зависят от nf_conntrack_sip, тот будет загружен автоматом.

P.P.S.
И покажите iptables-save после всех ваших танцев.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #4 : 04 Февраль 2015, 11:50:13 »
Спасибо за вашу помощь. Я не сильно силен в iptables и только их учу. Сам этот файл я не составлял. Просто делал по примерам то одно то другое, а потом iptables-save > /etc/iptables-rules-up

Потому до конца не могу ответить что там за чем и почему так или иначе.

-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 8080 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 445 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 8081 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -j DROP

Это я хотел подропать входящие пакеты на эти порты. Чтоб они наружу не торчали.

Попробую проанализировать что вы написали, и ваши правила и попробую подправить у себя.

Покаже показываю что там в iptables-save есть сейчас, после тогда как дергается скрипт что я показал вначал:
enerated by iptables-save v1.4.21 on Wed Feb  4 10:48:39 2015
*nat
:PREROUTING ACCEPT [737844:52309332]
:INPUT ACCEPT [658296:46471851]
:OUTPUT ACCEPT [768205:50858364]
:POSTROUTING ACCEPT [1307:235675]
-A PREROUTING ! -d 192.168.0.0/24 -i eth0 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.0.1:3128
-A PREROUTING -d 66.81.66.30/32 -p udp -m udp --dport 5060 -j DNAT --to-destination 192.168.0.6:5060
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.6/32 -p udp -m multiport --dports 10000:20000 -j SNAT --to-source 66.81.66.30
COMMIT
# Completed on Wed Feb  4 10:48:39 2015
# Generated by iptables-save v1.4.21 on Wed Feb  4 10:48:39 2015
*filter
:INPUT ACCEPT [32000807:48875045563]
:FORWARD ACCEPT [385:24604]
:OUTPUT ACCEPT [13442472:3576295718]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 8080 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 445 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 8081 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -j DROP
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p udp -m udp --dport 5060 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Wed Feb  4 10:48:39 2015

Пользователь решил продолжить мысль [time]04 Февраль 2015, 13:07:16[/time]:
Уважаемый AnrDaemon научите лучше как передернуть все правила и вообще сеть чтоб и модули подгрузились что вы предложили и чтоб не передергивать сервер. Там просто люди сидят, а я дома, не хочется чтоб все легло неудачно.

Спасибо.


Пользователь решил продолжить мысль 04 Февраль 2015, 13:16:49:
Вот что интересно. Если само устройство перезагрузить то все работает прекрасно. Потом повисает, и уже не откликается. Как это можно расценить? Может таки не в правилась iptables дело?

Вот звонил 5 минут назад и ни в какую. Потом передернул его - звонит опять.
« Последнее редактирование: 04 Февраль 2015, 13:16:49 от tarya »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #5 : 04 Февраль 2015, 19:41:59 »
В файл /etc/modules допишите имена модулей, которые надо подгрузить. По одному модулю на строчку. (nf_nat_sip, nf_nat_pptp, nf_nat_h323)
Внимательно читайте пример правил, которые я привёл.
Идея в том, чтобы первыми разрешать самые часто встречающиеся пакеты (да-да, RELATED,ESTABLISHED), а не грузить CPU обработкой бессмысленных правил.
Единственное исключение, если вы посмотрите на правила, которые я привёл выше - это дроп инвалидных пакетов.
Обратите внимание на цепочку filter/FORWARD, третье правило. Даже если не добавлять nf_nat* модули, оно позволит пропускать проброшенные пакеты.
Внимательно думайте, что вы разрешаете/запрещаете/изменяете каждым правилом. Может, то, что вы хотите проверить или изменить, уже покрыто правилами выше?
Если не уверены, проверяйте все правила сначала на виртуалке. И вообще, не поленитесь поднять копию вашей конфигурации на виртуалках, и не ленитесь документировать все свои действия. Очень сильно упрощает поиск проблем впоследствии.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #6 : 04 Февраль 2015, 21:07:24 »
Спасибо за советы, модули добавил. Сейчас мы разбираемся с самим провайдером. На удивление вся эта штука работает когда угодно, и 100% после перезагрузки какое то время.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #7 : 04 Февраль 2015, 21:15:39 »
Ну, у меня "эта штука" месяцами работает без проблем.
Вообще, смотрите статусы в админке циски и смотрите по tcpdump на шлюзе, что именно куда ходит, когда не работает.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #8 : 04 Февраль 2015, 22:25:37 »
Я вешаю сразу два потока tcpdump один на вход eth0 по портам 5060-5061 и входящий сигнал всегда есть. Потом второй "tcpdump -n host 192.168.0.6 -i any" чтоб увидеть что входит и выходит. И когда все работает то видно как приходит запрос на eth0 и сразу же отвечает устройство. А когда ни работает то на вход есть, а устройство вообще молчит, как ни в чем не бывает. Бывает опрашивает там "19:51:51.284962 IP 192.168.0.6.55888 > 192.168.0.1.53: 31513+ A? 0.ciscosb.pool.ntp.org. (40)" и все. Как простучать и не знаю.

Пользователь решил продолжить мысль 04 Февраль 2015, 22:33:42:
Правила у вас конечно крутые, не могу такое пока разобрать.
« Последнее редактирование: 04 Февраль 2015, 22:33:42 от tarya »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #9 : 04 Февраль 2015, 23:04:14 »
Я уже говорил, смотрите в каком состоянии ваша циска в этот момент.
И только после этого смотрите, что идёт по сети.
Если циска повисла (не ломается только то, что не работает…) то, естественно, она отвечать не будет.
Правила очень простые. Никакой крутизны нет. Просто возьмите табличку в руки и последите по схеме, что делает каждое правило.
Если какое-то правило НУ ВОТ СОВСЕМ непонимаете - спрашивайте. (Впрочем, цепочку SSH_CHECK вообще лучше пока игнорировать, там действительно творится чёрная магия.)
« Последнее редактирование: 04 Февраль 2015, 23:29:26 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #10 : 03 Октябрь 2016, 10:25:26 »
У меня похожая проблема. После обновления ОС (на 16.04) и ядра (на 4.7.5) SIP отвалился от conntrack.
Вообще все отвалилось от conntrack. Проблема была в том, что теперь по умолчанию conntrack helper-ы не работают,
и нужно либо их включить глобально,
(Нажмите, чтобы показать/скрыть)
либо из iptables для каждого порта
(Нажмите, чтобы показать/скрыть)

Поблема в том, что ни глобальное включение, ни из iptables, на SIP не влияет, хотя FTP заработал любым способом.
В моём случае за шлюзом находится SIP-клиент, по-этому динамически разрешать нужно rtp-соединение в цепи FORWARD.
Я не совсем уверен, какой модуль нужно загружать, по-этому загружаю оба (nf_nat_sip и nf_conntrack_sip).

У кого работает такая схема, пришлите пожалуйста вывод
conntrack -E expectв момент открытия голосового подключения.

Еще есть вопрос в догонку, объясните, в чем прикол, в новых мануалах вместо
-m state --state RELATED,ESTABLISHEDиспользуется
-m conntrack --ctstate RELATED,ESTABLISHED
Нигде не могу найти, в чем разница. М.б. это одно и то же?

« Последнее редактирование: 03 Октябрь 2016, 12:18:01 от badfiles »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #11 : 03 Октябрь 2016, 12:06:32 »
Это не одно и то же. state и conntrack развивались параллельно, со временем слились вообще, сейчас стоит использовать только conntrack.
Покажите lsmod | grep sip
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #12 : 03 Октябрь 2016, 12:15:29 »
lsmod | grep sip
nf_nat_sip             20480  0
nf_conntrack_sip       28672  2 nf_nat_sip
nf_nat                 24576  4 nf_nat_sip,nf_nat_redirect,nf_nat_ipv4,xt_nat
nf_conntrack          118784  11 nf_nat_sip,xt_CT,ipt_SYNPROXY,nf_synproxy_core,nf_nat,nf_nat_ipv4,xt_conntrack,nf_conntrack_netlink,nf_conntrack_ftp,nf_conntrack_sip,nf_conntrack_ipv4

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #13 : 03 Октябрь 2016, 12:19:48 »
Забавно. Хэлперы загружены.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: Iptables и SIP телефония
« Ответ #14 : 03 Октябрь 2016, 12:38:18 »
Conntrack почему-то не реагирует на сигнальный sip поток, хотя пакеты туда из raw поподают (смотрю по счетчику). Может быть есть какая-то хитрая настройка модуля?
« Последнее редактирование: 03 Октябрь 2016, 13:32:11 от badfiles »

 

Страница сгенерирована за 0.063 секунд. Запросов: 25.