Уточняем сетевые интерфейсы, и делим их на "внутренний" и "внешний".
...
- http|https для web сервисов (REST-API, административный интерфейс, клиентский интерфейс)
- UDP/1025-5067 и UDP/5069-65535 - для RTP/SIP трафика . Порт UDP/TCP/5080 должен быть закрыт для доступа снаружи
- порты, не попавшие в диапазон UDP/1025-65535, в зависимости от настроек параметра "listen_list" секции "[Kamailio]" файла /etc/ringme/main.cfg (дополнительные tcp/udp порты SIP)
Исходящие
- http|https для использования events и call interactive, доступа к repo.ringme.ru для обновления пакетов
- dns, ntp для корректной работы системы в случае использования дополнительных tcp/udp портов SIP)
Пример настройки iptables для конфигурации системы на одном сервере (single node):
cat > /etc/sysconfig/iptables <<EOF
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:kamailio - [0:0]
:freeswitch - [0:0]
:web - [0:0]
# prepare
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
# accept out, established
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#main section
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i ${EXT_DEV} -j kamailio
-A INPUT -i ${EXT_DEV} -j freeswitch
-A INPUT -i ${EXT_DEV} -j web
# deny other
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
#
#-A kamailio -i ${EXT_DEV} -p tcp -m tcp --dport 5060 -j ACCEPT -m comment --comment "SIP traffic - TCP (disabled)"
-A kamailio -i ${EXT_DEV} -p udp -m udp --dport 5060 -j ACCEPT -m comment --comment "SIP traffic - UDP"
-A kamailio -i ${EXT_DEV} -p udp -m udp --dport 5068 -j ACCEPT -m comment --comment "SIP traffic - UDP"
-A kamailio -j RETURN
#
# 5080 - freeswitch sip port, drop it, all another ports accept
-A freeswitch -i ${EXT_DEV} -p tcp -m tcp --dport 5080 -j DROP
-A freeswitch -i ${EXT_DEV} -p udp -m udp --dport 5080 -j DROP
-A freeswitch -i ${EXT_DEV} -p udp -m udp --dport 1024:65535 -j ACCEPT -m comment --comment "RTP freeswitch + rtpengine"
-A freeswitch -j RETURN
#
-A web -i ${EXT_DEV} -p tcp -m tcp --dport 80 -j ACCEPT -m comment --comment "HTTP"
-A web -i ${EXT_DEV} -p tcp -m tcp --dport 443 -j ACCEPT -m comment --comment "HTTPS"
-A web -j RETURN
#
COMMIT
EOF
При рестарте iptables правила будут перечитаны из /etc/sysconfig/iptables, firewalld должен быть выключен, а iptables-services установлены.
Для защиты от брутфорса 22го порта можно использовать fail2ban