Proteggere un centralino VoIP con IPTables

Creato il 22 novembre 2012 da Michelepinassi @michele_pinassi

Francesco mi scrive:

Salve Dott. Pinassi
ho letto con attenzione il suo Blog per la parte di configurazione dell’Iptables.
Ho un problema con un cliente: ho installato e configurato un sistema Voip basato su asterisk (Centos) e per far connettere alcuni operatori dall’esterno al centralino hanno dovuto aprire un indirizzo pubblico. Ovviamente l’hanno bucato con conseguente consumo di chiamate !
 
Utilizzando iptables pensavo di bloccare i mac sconosciuti ma non ho capito se si può fare una regola cosi per connessioni esterne.
 
Ha qualche suggerimento?
 
Grazie
Francesco

Caro Francesco, aprire con un IP pubblico un centralino VoIP è sempre rischioso, come ben sanno coloro che hanno ricevuto fatture esorbitanti.

Come suggeriscono molti articoli tecnici (ad es. FreePBX Backdoor Passwords Pose Asterisk Security Threat), la prima cosa è utilizzare password sicure e cambiare sempre quelle di default. Oltre alle password, i centralini Asterisk devono essere sempre ben protetti anche a livello di rete. Alcuni buoni articoli per iniziare sono:

Come firewall l’ottimo IPTABLES che troviamo già presente nella maggioranza delle distribuzioni *nix è più che adeguato. Personalmente adoro usarlo con l’ausilio di Vuurmuur, che mi permette una configurazione più semplice dei servizi, delle zone, degli IP abilitati -o meno- a raggiungere la mia rete VoIP.

Pertanto, per rispondere alla tua domanda, è opportuno che il firewall sia configurato per lasciar passare solamente connessioni da e per gli IP degli operatori esterni, senza eccezioni, anche se questa pratica potrebbe non proteggerti da attacchi “IP spoofing“. Una soluzione sicura potrebbe essere l’uso di un tunnel (OpenVPN, IPSEC) anche se i tempi di latenza, sempre critici nelle trasmissioni RTP, potrebbero ridurre la qualità del traffico VoIP.

Eventualmente l’uso di strumenti di log analysis come fail2ban, anche se non specificatamente per Asterisk, può aiutare ad identificare e bloccare eventuali abusers.

Importante è anche attuare una serie di sistemi di controllo real-time e di reporting, magari giornaliera, sullo stato dei servizi e relativi consumi.

Spero di esserti stato di aiuto,

Michele