Настройка Firewall в Centos для полноценной работы сервера IP-телефонии


Проверяем текущие правила:

# firewall-cmd --zone=public  --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:  
  services: dhcpv6-client ssh
  ports: 80/tcp
  protocols:  
  masquerade: no
  forward-ports:  
  source-ports:  
  icmp-blocks:  
  rich rules:

Добавляем правила Firewall для Asterisk:

# firewall-cmd --zone=public --add-port=5060/udp --permanent
# firewall-cmd --zone=public --add-port=5061/udp --permanent
# firewall-cmd --zone=public --add-port=4569/udp --permanent
# firewall-cmd --zone=public --add-port=5060/tcp --permanent
# firewall-cmd --zone=public --add-port=5061/tcp --permanent
# firewall-cmd --zone=public --add-port=5038/tcp --permanent
# firewall-cmd --zone=public --add-port=10000-20000/udp --permanent
# firewall-cmd --reload

Проверяем изменения:

# firewall-cmd --zone=public  --list-all   
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:  
  services: dhcpv6-client ssh
  ports: 80/tcp 5060/udp 5061/udp 4569/udp 5060/tcp 5061/tcp 5038/tcp 10000-20000/udp
  protocols:  
  masquerade: no
  forward-ports:  
  source-ports:  
  icmp-blocks:  
  rich rules:

Небольшое дополнение. 

Если вы не видите назначенных интерфейсов для зоны external, то возможно вы имеете дело с чистой установкой FreePBX и вам необходимо сначала назначить интерфейс зоне FirewallD:

# firewall-cmd --permanent --zone=public --add-interface=eth0

Обратная операция выглядит соответственно так:

# firewall-cmd --permanent --zone=public --remove-interface=eth0