É assim que eu seguro meu servidor Asterisk, que está em produção continuamente desde 2006.
Firewall
Abra portas de entrada apenas para serviços necessários. (Você precisa abrir um amplo intervalo para fluxos RTP, mas isso geralmente não é um problema, já que nada normalmente ouve esse intervalo de portas.)
-
22/tcp
ssh (para gerenciamento, claro) -
4520/udp
DUNDi (se você estiver usando o DUNDi) -
4569/tcp
IAX2 (se você estiver usando o IAX) -
5060/udp
registro SIP -
10000-20000/udp
RTP - transporte de mídia
Alguns dispositivos têm um intervalo muito menor de portas que eles usam para fluxos RTP. Por exemplo, certos dispositivos Cisco (anteriormente chamados de números de peça Linksys / Sipura; começam com PAP, SPA ou WRP) usam apenas16384-16482
.
Extensões
Se possível, restrinja os intervalos de endereços IP dos quais os clientes SIP podem se conectar. Se isso for implantado em um escritório, restrinja as conexões à porta 5060 para endereços IP dentro dos locais onde os telefones estão localizados. Se você precisar aceitar conexões de endereços da Internet que não estão sob seu controle, considere o bloqueio de intervalos de endereços IP específicos do país.
Não use o número do ramal SIP como o nome de usuário. Se seus clientes SIP o suportarem, dê a eles todos os nomes.
Defina senhas strongs para todas as extensões SIP. Isso deve ser óbvio, mas nem sempre é assim.
A partir da leitura dos registros anexados à sua pergunta anterior , consegui determinar que você tinha uma extensão SIP definida com o nome de usuário 1
, com um segredo tão fácil de adivinhar que o atacante acertou na primeira tentativa. A extensão provavelmente não tinha nenhum segredo definido.
Use alwaysauthreject=yes
em sip.conf
. Isso impede que atacantes sejam capazes de determinar se existe uma extensão SIP por meio da força bruta.
Use allowguest=no
em sip.conf
. Isso evita que clientes não autenticados façam chamadas.
Administração
Altere todas senhas padrão para seus usuários UNIX, seus bancos de dados e seus front-ends administrativos, como o FreePBX.
Defina bindaddr = 127.0.0.1
em manager.conf
para garantir que a interface de gerenciamento do Asterisk não esteja aberta ao mundo.
Outro
Instale o fail2ban. Eu tenho configurado para bloquear após duas tentativas com falha, mas se você tiver controle total de todos os seus dispositivos de forma que eles nunca deixem de fazer o login corretamente, você poderá configurá-lo para bloquear após uma tentativa malsucedida.
Se você não precisar fazer chamadas internacionais, peça ao provedor de tronco SIP para desativar a capacidade no final. Você também pode configurar seu servidor asterisco para não rotear tais chamadas.
Isso deve cobrir o básico, e vai mantê-lo fora de problemas na maior parte. Se você implantar serviços incomuns ou escrever suas próprias configurações personalizadas, talvez seja necessário fazer algum trabalho adicional para protegê-los.