O script de firewall do servidor Asterisk permite áudio bidirecional de chamadas recebidas, mas não de saída?

0

Estou executando um PBX Asterisk em uma máquina virtual diretamente conectada à Internet e eu realmente quero impedir que crianças de script, l33t h4x0rz e hackers reais acessem meu servidor. A maneira básica que eu protejo meu call-bill agora é usando senhas de 32 caracteres, mas eu prefiro ter uma maneira de proteger

O script de firewall que estou usando atualmente está declarado abaixo, no entanto, sem a regra de firewall de conexão estabelecida (regra mencionada 1), não consigo receber áudio de entrada do destino durante as chamadas de saída:

#!/bin/bash

# first, clean up!
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP # we're not a router
iptables -P OUTPUT ACCEPT

# don't allow invalid connections
iptables -A INPUT -m state --state INVALID -j DROP

# always allow connections that are already set up (MENTIONED RULE #1)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# always accept ICMP
iptables -A INPUT -p icmp -j ACCEPT

# always accept traffic on these ports
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# always allow DNS traffic
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

# allow return traffic to the PBX
iptables -A INPUT -p udp -m udp --dport 50000:65536 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
iptables -A INPUT -p udp --destination-port 5060:5061 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 5060:5061 -j ACCEPT
iptables -A INPUT -m multiport -p udp --dports 10000:20000
iptables -A INPUT -m multiport -p tcp --dports 10000:20000

# IP addresses of the office
iptables -A INPUT -s 95.XXX.XXX.XXX/32 -j ACCEPT

# accept everything from the trunk IP's
iptables -A INPUT -s 195.XXX.XXX.XXX/32 -j ACCEPT
iptables -A INPUT -s 195.XXX.XXX.XXX/32 -j ACCEPT

# accept everything on localhost
iptables -A INPUT -i lo -j ACCEPT

# accept all outgoing traffic
iptables -A OUTPUT -j ACCEPT

# DROP everything else
#iptables -A INPUT -j DROP

Gostaria de saber qual regra de firewall estou perdendo para que tudo isso funcione. Há tão pouca documentação sobre quais asteriscos de entrada (entrada e saída) realmente precisam ... (portas de retorno incluídas).

Há algum especialista do firewall / iptables aqui que veja os principais problemas com esse script de firewall?

É tão frustrante não conseguir encontrar uma solução de firewall simples que me permita ter um PBX em execução em algum lugar na Internet, que tenha um firewall habilitado para permitir conexões de e para o escritório, os servidores DNS e o (s) tronco (s) (e apenas suportam SSH (porta 22) e tráfego ICMP para o mundo externo).

Espero que, usando essa pergunta, possamos resolver esse problema de uma vez por todas.

    
por Henry van Megen 11.06.2014 / 10:09

1 resposta

1

Existe documentação completa sobre portas disponíveis. Não está claro por que você acha que não está disponível.

Asterisco usa porta depende da tecnologia / tipo de canal usado

Para o asterisco do protocolo sip, use as portas descritas em sip.conf (padrão 5060) e para os dados do rtp, use as portas descritas no arquivo rtp.conf (padrão 10000-20000). Normalmente saborear usar apenas porta udp. O TCP-sip também pode usar a porta tcp.

Se você usar o asterisco após o firewall / NAT (não o ip branco), você também terá que informar o asterisco sobre o endereço IP externo. Para mais informações, consulte sip.conf.sample ou manuais na Internet.

    
por 11.06.2014 / 23:30