Archives pour la catégorie Asterisk

Coupler Asterisk et Jabber

Ce script permet d’installer un serveur jabber et asterisk. Le serveur jabber peut être couplé au serveur Activedirectory de manière intuitive. J’ai également inclu certaines règles de filtrage au niveau d’iptables. Si jamais les régles ne vous conviennet pas, vous pouvez rebooter votre serveur et le filtrage sautera.

# !/bin/bash
 
# script d’installation du serveur de communication
# auteur : Seito
 
# date : 16 mars 2013
 
# version : 1
 
#la partie suivante est à adapter :
 
#Mise en place de l’adresse réseau :
 
rm /etc/network/interfaces
 
echo "auto lo" >> /etc/network/interfaces
 
echo "iface lo inet loopback" >> /etc/network/interfaces
 
echo "allow-hotplug eth0" >> /etc/network/interfaces
 
echo "iface eth0 inet static" >> /etc/network/interfaces
 
echo "address 172.16.1.4" >> /etc/network/interfaces
 
echo "netmask 255.255.252.0" >> /etc/network/interfaces
 
#Applications des droits
 
chown root :root /etc/network/interfaces
 
chmod 644 /etc/network/interfaces
 
# Insertion d’une nouvelle ligne de dépot
 
echo "deb http://ftp.us.debian.org/debian squeeze main non-free" >> /etc/apt/sources.list
 
# Recréation de la liste de dépôt
 
aptitude update
 
#Installation du jdk java
 
aptitude install -y sun-java6-jdk
 
cd /tmp/
 
#téléchargement du .deb pour openfire
 
wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.7.1_all.deb
 
#Installation :
 
dpkg -i downloadServlet\?filename\=openfire%2Fopenfire_3.7.1_all.deb
 
# Demarrage du deamon
 
/etc/init.d/openfire start
 
#Installation des prérequis pour Asterisk
 
aptitude install –y build-essential libxml12-dev ncurses-dev
 
#Rapatriement et extraction des sources :
 
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.3.3.tar.gz
 
tar xvzf asterisk-1.8.3.3.tar.gz
 
cd asterisk-1.8.3.3/ && make && make install && make config && make samples
 
/etc/init.d/asterisk start
 
#Configuration du filtrage :
 
#Flush de la base de filtre
 
/sbin/iptables -F
 
/sbin/iptables -P INPUT DROP
 
/sbin/iptables -P OUTPUT ACCEPT
 
#Autorisation des reponses
 
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
#Autorisation Ping
 
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
iptables -A INPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
iptables -A INPUT -p icmp -m limit --limit 5/s -j ACCEPT
 
#SSH
 
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
 
/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 22 -j ACCEPT
 
#Autoriser DNS
 
iptables -A OUTPUT --protocol udp --destination-port 53 -j ACCEPT
 
#Sortie web
 
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
 
#Autoriser sortie FTP
 
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
 
iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
 
#Creation des regles pour la connexion sur le loopback
 
iptables -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
 
iptables -A INPUT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
 
#Port d’administration jabber :
 
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 9090 -j ACCEPT
 
/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 9090 -j ACCEPT
 
#Port jabber :
 
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 5222 -j ACCEPT
 
/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 5222 -j ACCEPT
 
#Port Asterisk :
 
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 5060 -j ACCEPT
 
/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 5060 -j ACCEPT
 
clear
 
echo "Serveur Jabber installé"
 
echo "Serveur Asterisk installé"
 
echo "Filtrage effectué "
 
echo "Have Fun ! ! !"

Puis vous devez vous connecter à l’interface de gestion http://ipserv:9090 (ipserv étant à remplacer par votre adresse IP ) . L’interface est vraiment trés bien faite et vous devriez trouver comment faire la jonction avec l’ad très facilement.

Pour la suite, vous pouvez ajouter des plugins tel que :

– Asterisk IM Openfire (permettant d’intégrer asterisk dans openfire)

– Email listener (permettant de pouvoir récupere les mails)

– Packet filter (permettant de filtrer les paquets envoyé)

– SIP phone (permettant d’ajouter le support des comptes sip)

Vous trouverez la listes des plugins ici : http://www.igniterealtime.org/projects/openfire/plugins.jsp

Asterisk : Protégez-vous !

Depuis quelques semaines, avec plusieurs administrateurs de serveurs Asterisk nous constatons une évolution de tentatives d’attaques sont tentées chaque jours sur nos infrastructures. Ce sont des attaques de type ‘bruteforce’. Surement du à l’euphorie des vacances scolaires, nous avons répertorié une augmentation de 400% du nombre d’attaques/jours, soit 15-20 adresses IP bannies/jours et quelques mégas de traffic plombé :)

Lire le reste de cet article »

Tags: ,

Protection asterisk avec fail2ban

Dans un précédent article j’ai présenté comment protéger son serveur des attaques bruteforce avec l’aide de fail2ban. Comme décrit dans cet article de nos jours, il est très important de se protéger de ce type d’attaque et c’est pourquoi dans ce billet je vais vous montrer comment protéger un serveur asterisk avec fail2ban en une dizaine de minutes au maximum.
Lire le reste de cet article »

Tags: , ,

Musique de prédécroché avec asterisk et ovh

Plusieurs personnes sont ou ont étés confrontées à ce problème. Lorsque vous ajoutez les lignes pour permettre à un correspondant extérieur de vous joindre et de lui balancer une musique d’attente (à la manière normale diront nous) votre correspondant aura un silence morbide jusqu’au moment ou vous allez décrocher ou qu’il tombe sur le répondeur. Voici la solution pour balancer votre musique de pré-décroché :

Dans votre fichiers extensions.conf (et dans le context d’arrivée):

exten => ovh23,1,Ringing
exten => ovh23,2,Wait(1)
exten => ovh23,3,Answer()
exten => ovh23,4,StartMusicOnHold(predecro)
exten => ovh23,5,PlayBack(/usr/share/asterisk/sounds/silence/1)
exten => ovh23,6,Dial(SIP/100&SIP/101,20,tTm(predecro))
exten => ovh23,7,Voicemail(100)
exten => ovh23,8,HangUp()

Explications : ça sonne, vous attendez 1 seconde, vous répondez, vous démarrer la musique d’attente qui correspondant à la classe de la musique de prédécroché, vous jouez un silence d’une seconde (fichier fourni avec asterisk). Vous faites sonner vos postes avec le paramètre m(classe_moh) …

Le chemin vers les sons asterisk peut être différent selon votre distribution

Tags: , , ,

Bad request Protocol Paquet

Lorsque vous connectez un asterisk à OVH, vous avez sûrement cette ligne qui pourri vos logs :

[Dec  1 18:01:59] WARNING[26531]: chan_sip.c:6499 determine_firstline_parts: Bad request protocol Packet

Pour résoudre ce soucis, tapez cette commande :

# iptables -A INPUT -p udp -m udp --dport 5060 -m string --string "Cirpack KeepAlive Packet" --algo bm --to 65535 -j DROP

Tags: , , , ,