Nouveaux postes SIP Digium : D6x

Digium vient d’annoncer la sortie de nouveaux postes SIP, les D6x qui viennent compléter la gamme IP Phones de Digium. Les modèles sont au nombre de 3, le D60 étant l’entrée de gamme, le D62 le milieu de gamme avec port gigabit et le D65 représentant le haut de gamme.

Les prix annoncés sont les suivants : D60 – $139 USD, D62 – $189 USD, et D65 – $239 USD.

A voir maintenant leurs qualités face à des postes Yealink ou Snom ayant fait leurs preuves !

Source : New Digium IP Phones are Now Available

Règles iptables afin de bloquer les scanners SIP

Les serveurs SIP (Asterisk, FreeSwitch … mais aussi les serveurs propriétaires) sont constamment scannés par des automates ou des humains avec pour seule idée, découvrir une faille à exploiter. En effet, les enjeux financiers sont importants.
Je partage avec vous ce jour, un script iptables pour bloquer les scanners SIP (à adapter notamment les ports si vous utilisez des différents de 5060).

iptables -N SIPDOS

iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sundayddr” –algo bm –to 65535 -m comment –comment “deny sundayddr” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sipsak” –algo bm –to 65535 -m comment –comment “deny sipsak” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sipvicious” –algo bm –to 65535 -m comment –comment “deny sipvicious” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “friendly-scanner” –algo bm –to 65535 -m comment –comment “deny friendly-scanner” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “iWar” –algo bm –to 65535 -m comment –comment “deny iWar” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sip-scan” –algo bm –to 65535 -m comment –comment “deny sip-scan” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: sipcli” –algo bm –to 65535 -m comment –comment “deny sipcli” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: Nmap NSE” –algo bm –to 65535 -m comment –comment “deny Nmap NSE” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: VaxSIPUserAgent” –algo bm –to 65535 -m comment –comment “deny VaxSIPUserAgent” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “From: sipp <sip:” –algo bm –to 65535 -m comment –comment “deny sipp” -j SIPDOS

iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sundayddr” –algo bm –to 65535 -m comment –comment “deny sundayddr” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sipsak” –algo bm –to 65535 -m comment –comment “deny sipsak” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sipvicious” –algo bm –to 65535 -m comment –comment “deny sipvicious” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “friendly-scanner” –algo bm –to 65535 -m comment –comment “deny friendly-scanner” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “iWar” –algo bm –to 65535 -m comment –comment “deny iWar” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sip-scan” –algo bm –to 65535 -m comment –comment “deny sip-scan” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: sipcli” –algo bm –to 65535 -m comment –comment “deny sipcli” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: Nmap NSE” –algo bm –to 65535 -m comment –comment “deny Nmap NSE” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: VaxSIPUserAgent” –algo bm –to 65535 -m comment –comment “deny VaxSIPUserAgent” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “From: sipp <sip:” –algo bm –to 65535 -m comment –comment “deny sipp” -j SIPDOS

iptables -A SIPDOS -j LOG –log-prefix “firewall-sipdos: ” –log-level 6
iptables -A SIPDOS -j DROP

Si vous avez des idées pour l’améliorer, toutes les suggestions sont les bienvenues, l’idée étant de faciliter la sécurisation des serveurs SIP au plus grand nombre.

Mises à jour :

  • 4 août 2016 : ajoût de règles + correction typo suite au commentaire de Ztur

PyFreeBilling disponible en italien

Grâce à l’excellent travail de Vito, PyFreeBilling est entièrement traduit en italien. Un grand merci à lui. Une traduction en français et espagnol est en cours.

Lancement du forum de support pour FreeSwitch

Afin de combler un manque, j’ai décidé de lancer un forum de support dédié à la communauté francophone de FreeSwitch. En effet, je reçois pas mal de demandes d’aide par email, et je trouve dommage de ne pas faire profiter la communauté des réponses.

FreeSwitch est un outil fantastique permettant de créer des applications VoIP et vidéo (mais pas seulement) complexes et performantes. J’ai créé plusieurs sections (d’autres sections peuvent être envisagées) : actualités, installation, configuration, programmation et matériels. L’objectif est de créer une communauté d’entre-aide.

Si vous souhaitez devenir modérateur, envoyez moi un message privé.

L’adresse : forum FreeSwitch France

Ansible : installation automatisée de Freeswitch Ubuntu Debian – v1.3

Nouvelle mise à jour (v1.3) du role FreeSwitch pour Ansible, le célèbre moteur d’orchestration. Installation automatisée de FreeSwitch à partir des sources sur les systèmes linux basés sur Debian/Ubuntu.

Je viens de publier la mise à jour du role FreeSwitch pour Ansible, le célèbre moteur d’orchestration, la version 1.3. Ce role permet d’installer FreeSwitch de manière automatique à partir des sources sur les systèmes linux basés sur Debian et Ubuntu.

Un bug de dépendances touchant Debian Jessie a été corrigé, plus quelques modifications mineures.

L’utilisation est simple. Il faut dans un premier temps installer Ansible, puis ajouter mwolff44.freeswitch-mw à vos roles.

Installation d’Ansible recommandée (il faut une version supérieure à la 1.8, les paquets de Jessie ne fournissant que la 1.7 !) :

apt-get install -y python-apt python-pycurl libtiff5-dev git python-pip python-dev autoconf g++ libgmp-dev
pip install ansible makupsafe

Pour un usage rapide du script, voici la démarche.

git clone https://github.com/mwolff44/freeswitch-mw.git
echo localhost > inventory
ansible-playbook -i inventory freeswitch-mw/test.yml --connection=local

Bien entendu, vous pouvez utiliser vos fichiers de configuration et des options spécifiques (le détail est sur le github de freeswitch-mw – role d’installation automatisée de FreeSwitch). Voici un exemple de configuration ci-dessous (le fichier test.yml appelé ci-dessus) :

- hosts: all
  vars_files:
    - 'defaults/main.yml'
  tasks:
    - include: 'tasks/main.yml'
  handlers:
    - include: 'handlers/main.yml'

Le repository du role Ansible pour FreeSwitch est hébergé chez Github et est bien sûr validé en intégration continue grâce au service de travis-ci.org.

Si vous voyez des idées d’amélioration, n’hésitez pas.

 

Mise à jour du 11/02/2016 : mise à jour des paquets Debian / Ubuntu à installer pour Ansible. Installation avec pip de markupsafe

PyFreeBilling V2 : quelles sont les news ?

Nouvelles de la v2 de PyFreeBilling, solution open source softswitch VoIP. PyFB gère les trunks, les comptes SIP, le routage, les tarifs, la facturation

Cela fait maintenant très longtemps que je n’ai pas communiqué sur la version 2 de PyFreeBilling, solution open source de softswitch VoIP. PyFB gère les clients, les fournisseurs, les trunks, les comptes SIP (mode user/mdp ou authentification par IP), les règles de routage, les tarifs, la facturation et le reporting.

La version 2 apporte de nombreuses nouveautés. La plus importante est la prise en charge native de plusieurs serveurs FreeSwitch de manière intégrée et simple. La V1 permet de le faire, mais il faut utiliser des scripts ssh et communiquer plusieurs ip à ses clients et fournisseurs. La V2 intègre Kamailio en frontal qui gère l’authentification et le load balancing entre les différents serveurs média (FreeSwitch).

La seconde nouveauté est une nouvelle interface plus moderne, plus rapide et plus réactive grâce à la technologie Ajax. Une API permet aussi d’intégrer PyFreeBilling à votre site web ou votre backoffice. Au passage, je cherche des traducteurs pour la documentation et l’interface. Pour le moment seul la langue anglaise est prévue.

La troisième importante nouveauté est la gestion des services (abonnement de canaux SIP par exemple) et des factures pdf.

Cette version est toujours en développement mais avance vite.

J’en profite pour remercier les sponsors qui me permettent de consacrer autant de temps à ce projet.

Quand la version 2 est prévue : j’espère libérer une beta pour la fin d’année (cadeau de Noël ?). Elle sera présentée avec le nouveau site de PyFreeBilling qui sera basé sur Pluxml.

Découvrez l’évènement Voip2day 2015 à Madrid

Je suis dans les starting blocks pour le Voip2day qui se déroule à Madrid ce 11 et 12 novembre 2015.

Cet évènement est organisé par la société espagnole AVANZADA 7 et rassemble les acteurs majeurs du marché des télécoms espagnols.

Comme chaque année, le programme est intéressant : exposants, ateliers commerciaux et surtout ateliers techniques. Au programme, du voicexml, du webrtc (vous allez m’y retrouver), de l’Asterisk dans docker, de l’Elastix et un atelier sur la sécurité SIP. Plus d’infos sur le programme du Voip2day du 11/11 et le programme ateliers voip2day du 12/11.

Le lieu de l’évènement est magique pour les amateurs de foot : le stade Santiago Berbabéu. Peut-être que je verrai Ronaldo ?


Si vous êtes de passage sur Madrid, n’hésitez pas à me faire signe.

Xivo : vidéo de présentation de l’IPBX libre

L’équipe Xivo vient de publier une vidéo en anglais présentant l’IPBX libre. Dans cette vidéo de 3:51 minutes, la communauté Xivo est présentée par Gregory Sanderson, développeur R&D de la team Xivo, les partenaires et les contributeurs. Enfin, vous trouverez un tutorial de prise en main de  Xivo en 3 étapes.

Bon visionnage.

FreeSwitch : mettre à jour une ancienne installation

Mise à jour ancienne installation FreeSwitch : résoudre les problèmes liés au changement de repository de FreeSwitch et de certificats.

Vous devez mettre à jour une ancienne installation de FreeSwitch. La procédure est assez simple. Soit vous souhaitez utiliser la même branche, dans ce cas cette commande est suffisante :

make current

ou vous souhaitez en profitez pour migrer vers la dernière version stable ou une version de dev, pour cela vous devez au préalable saisir cette commande :

git checkout v1.4.stable

Mais l’équipe de FreeSwitch ayant changé l’hébergement des repos, il y a de grandes chances pour que vous obteniez des erreurs comme celle-ci :

error: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none while accessing https://stash.freeswitch.org/scm/fs/freeswitch.git/info/refs

ou une erreur indiquant que le repo est inaccessible (l’ancien repo FreeSwitch git).

Voici la solution :

git remote set-url origin https://freeswitch.org/stash/scm/fs/freeswitch.git

Et vous n’avez plus qu’à relancer une nouvelle compilation de FreeSwitch.

Xivo et Raspberry PI 2 : l’IPBX idéal pour les petites sociétés ?

Intégrer Xivo, IPBX libre sur Asterisk, et une carte low cost, la Raspberry PI 2 pour proposer une solution de téléphonie low cost aux TPE.

Pouvoir utiliser une carte Raspberry PI pour faire un petit IPBX est un projet intéressant : compacité et faible consommation. Plusieurs manières existent afin d’atteindre cet objectif. Naturellement, installer un Asterisk ou un FreeSwitch tout frais sur une distribution adaptée à la carte, la Raspbian, est la première idée qui a germée dans mon esprit. L’exercice fut concluant, mais les performances assez limitées, entre 3 et 5 appels simultanés selon la configuration et le système. Un peu juste, et difficilement utilisable en production sans une interface graphique digne de ce nom (sauf pour des projets de niche).

Depuis, la carte Raspberry PI 2 a vu le jour avec des spécifications en hausse ouvrant ainsi d’intéressantes perspectives. Les limitations techniques de la carte étant repoussée, une utilisation en IPBX pour les petites entreprises devient envisageable. Cette carte embarque assez de puissance afin de pouvoir faire tourner Asterisk ou FreeSwitch et un petit serveur web pour la configuration et l’interface utilisateur. N’ayant pas eu beaucoup de temps disponible, ni de carte Raspberry PI 2 sous la main, je n’ai pas encore monté de lab.

Mais un intégrateur Nantais, Geoffroy RABOUIN a remonté ses manches et a passé quelques nuits blanches afin d’intégrer Xivo, un célèbre IPBX Open Source basé sur Asterisk offrant une interface web agréable,  à une carte Raspberry PI 2. Au passage, un grand merci à la community manager de Xivo, Valérie DAGRAIN, de m’avoir fait découvrir ce projet. Le nom de ce sympathique projet : simplement Raspivo, Xivo sur Raspberry PI 2.

A l’heure de la rédaction de cet article, Raspivo intègre la dernière version de Xivo, la 15.12.

La documentation d’installation est disponible en ligne : installation de Raspivo depuis les dépôts de Iris Networks (société de Geoffroy RABOUIN). Le process est vraiment simple. Selon le créateur, les performances sont très intéressantes. Il a en effet atteint 12 appels simultanés sans déformation de la voix. Reste à voir les limitations, je pense notamment à certaines fonctionnalités gourmandes en CPU et en I/O.

Ce projet mérite une attention toute particulière, de part la qualité de la distribution Xivo (une de mes 2 solutions de téléphonie libre préférées), et d’autre part par les caractéristiques de la carte Raspberry PI 2 : faible consommation, pas de pièces mobiles et taille réduite.

Dès que j’ai un peu de temps et une carte sous la main, je testerai Raspivo et je vous ferai un retour détaillé.

Raspivo présente une réelle alternative permettant aux petites sociétés de disposer d’une solution de téléphonie libre low cost, un IBPX asterisk simple et fiable.