Настройка iptables для работы с asterisk

Asterisk_Logo

IPtables — это брандмауэр, который защищает компьютер от несанкционированных подключений извне а также ограничивает исходящие подключения.  Для Астериска iptables дает возможность отключить подсети, из которых не должно быть подключений к Asterisk, а также в связке с fail2ban iptables может защитить сервер от атак типа bruteforce «грубая сила»  — подбора паролей к сервисам.

Чтобы просмотреть уже настроенные правила выполните (на примере CentOS):

Настройка iptables для Asterisk

SIP протоколу необходимо открыть порт 5060:

если у Вас asterisk работает на другом порту или Вы используете протокол TCP вместо UDP, исправьте команду соответствующим образом.

Если дополнительно SIP будет защищен TLS то и 5061 и 5062:

RTP протоколу (голосовой поток) необходимо открыть порты с 10000 по 20000:

В случае, если Вы ограничили в настройках asterisk диапазон портов (или полностью его сменили) не забудьте отразить это в правиле iptables!

Если Вы настроили соединение по IAX (точнее, IAX2) между двумя серверами asterisk (либо телефоны/софтфоны подключаются к астериску по IAX), необходимо открыть порт 4569:

Если у Вас настроен asterisk AMI (Asterisk Manager Interface), то добавьте следующее правило:

Сохраните правила чтобы они применялись после перезагрузки:

Настройка iptables через файлы конфигурации

В операционной системе RHEL / CentOS уже предусмотрены конфигурационные файлы для iptables, они находятся здесь: /etc/sysconfig/iptables. Для IPv6 соответственно: /etc/sysconfig/ip6tables.

Для Debian по умолчанию конфигурационных файлов не предусмотрено, необходимо установить пакет iptables-persistent:

После установки пакета можно сохранить правила в файл с конфигурацией:

для IPv6 это будет:

В соответствующий конфигурационный файл добавьте следующие строки (обязательно ДО строки COMMIT !):

# Для работы по SIP протоколу (порт UDP 5060):

# Для работы по RTP протоколу (голосовой поток, по умолчанию порты UDP с 10000 по 20000):

# соединение по IAX (точнее, IAX2) между двумя серверами asterisk :

# Asterisk AMI (Asterisk Manager Interface):

После сохранения файла необходимо перезагрузить iptables.
Для CentOS:

для Debian: