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

Créer un iso en shell

La manipulation est simple, elle est réalisée avec la commande dd qui copie bit à bit tout ce que vous voulez vers un fichier ou encore un périphérique.

dd if=/dev/cdrom of=nomfichier.iso

Puis une fois que vous avez finis, vous pouvez le monter comme suit :

mkdir /mnt/virtualcd && mount -t iso9660 nomfichier.iso /mnt/virtualcd -o loop

Puis pour vérifier le montage :

mount

Visitez un datacenter de Google avec Street View !

Un billet que je ne peux m’empêcher de poster !

Visitez un datacenter de google dans la Caroline du Nord :

Cliquez-ici pour vous balader à votre tour

Bonne visite :)

Tags: ,

Linux : Trouver des occurrences parmi plusieurs fichiers

Je ressors un petit script qui m’a permis de gagner beaucoup de temps dans beaucoup de situations ! Je vous en fait profiter :)
Il permet de trouver les occurrences d’un mot dans tous les fichiers d’un répertoire, de plus il indique quel fichier et la ligne ou trouver cette occurrence :) Et le tout en couleur !

#!/bin/bash
function search()
{
        find $DIRECTORY -name "*" -exec grep --color -Hn $PATTERN {} \;
}
 
if [ $1 ]; then
        if [ $2 ]; then
                DIRECTORY=$1
                PATTERN=$2
        else
                DIRECTORY="."
                PATTERN=$1
        fi
        search
else
echo "Usage : $0 [path] pattern"
echo "eg. $0 /home/user occurence"
fi

A vous de l’utiliser, pour faciliter la tâche de ceux qui débutent, voici comment le rendre accessible via une simple commande « findoccur » de votre shell :

1. Créez le fichier /bin/findoccur et coller le script ci-dessus dans ce fichier
2. Donnez les droits d’exécution aux utilisateurs : chmod a+x /bin/findoccur
3. Exécutez la commande findoccur et les paramètres qui vont bien :)

Tags: , ,

Linux : Surligner les occurrences d’un mot sur la sortie standard

Il peut être pratique de voir les occurrences d’une mot après avoir fait un cat sur un ou plusieurs fichiers sans pour autant masquer le reste (le cas de grep). Je partage avec vous un script qui permet de surligner ces occurrences :

Utilisation:
cat fichier | highlight « occurence »

Code :

#! /bin/bash
perl -p -e 's/'$1'/\e[31m'$1'\e[0m/'

A vous de l’utiliser, pour faciliter la tâche de ceux qui débutent, voici comment le rendre accessible via une simple commande « highlight » de votre shell :

1. Créez le fichier /bin/highlight et coller le script ci-dessus dans ce fichier
2. Donnez les droits d’exécution aux utilisateurs : chmod a+x /bin/highlight
3. Exécutez la commande highlight et les paramètres qui vont bien :)

Tags: , ,

Linux : Convertir UNICODE UTF-16 en UTF-8

Voici une méthode simple et rapide pour convertir des fichiers UTF-16 issus du monde Windows :

Afin d’avoir plus d’informations sur le fichier, nous allons utiliser file :

file 20120513_chat.log
20120513_chat.log: Little-endian UTF-16 Unicode English text, with CRLF line terminators

Nous avons bien à faire à un fichier encodé en UTF-16 il va donc falloir le convertir en UTF-8 avec iconv :

iconv -f UTF-16 -t UTF-8 -o fichier_de_sortie.log 20120513_chat.log

Si on ré-exécute file avec le fichier obtenu :

file fichier_de_sortie.log
UTF-8 Unicode English text, with CRLF line terminators

Il est réencodé en UTF-8 et va permettre l’utilisation de grep :)

Tags: , , ,

Linux : détruire facilement des fichiers avec shred et wipe

Comme vous le savez sûrement, un fichier n’est jamais vraiment supprimé du système, il est très souvent possible de récupérer des fichiers qui ont été supprimé quelques heures/jours/mois voire années avant l’utilisation d’une application telle que foremost (Linux) ou EasyRecovery (Windows).

Deux commandes permettent de détruire simplement vos dossiers/fichiers sous linux afin d’éviter toute récupération possible de ces fichiers/dossiers

La commande shred (qui signifie déchiqueter) va permettre de détruire un fichier :

shred nom-du-fichier
#Avec plusieurs passes :
shred -n nombre_passes nom-du-fichier
#En supprimant le résultat à la fin :
shred -u nom-du-fichier

 

shred va simplement réécrire le fichier au nombre de passes désirées avec des caractères aléatoires

Attention, aucune confirmation ne sera demandée ;)

La seconde commande est wipe, qui va permettre de détruire des dossiers et en plus de manière récursive :

wipe -r chemin-du-dossier

  Il existe plusieurs options pour chacune de ces deux commandes, mais pour ça :

RTFM

Tags: , , , ,

Règles de routage simple pour iptables

Un petit billet dédié pour mon ami foireatout qui aurait besoin de connaître quelques commandes afin d’implémenter des règles pour bien débuter dans ce monde :) Les règle ci-dessous sont très loin d’exploiter toute la puissance de netfilter 😉

Pour faire court, iptables est un logiciel libre qui va permettre de gérer le framework netfilter qui implémente un pare-feu (à partir du noyau 2.4).

Pour notre exemple, notre machine est frontale et possède deux interfaces réseau : WAN (eth0) et LAN (eth1)

Sur l’interface WAN (eth0) plusieurs adresses IP publiques sont directement reliées :

eth0 => 91.xx.xx.80

eth0:0 => 91.xx.xx.82

eth0:1 => 91.xx.xx.83

eth0:2 => 91.xx.xx.84

L’adresse de notre interface LAN eth1 est 192.168.1.254 et notre réseau 192.168.1.0/24

Parmi les machines qui sont sur le LAN nous avons :

machine utilisation adresse ip ip publique à utiliser redirection de ports nat d’adresse ip
www serveur web 192.168.1.10 91.xx.xx.84 91.xx.xx.84
asterisk serveur sip 192.168.1.11 91.xx.xx.82 UDP : 10000-20000,5060
srvtse serveur TSE 192.168.1.12 91.xx.xx.80 TCP : 3389
srvmail Serveur mail 192.168.1.13 91.xx.xx.83 TCP : 25,110,143
admin Machine administration 192.168.1.20 91.xx.xx.80

Avant de commencer

Le travail ci-dessous va utiliser la table NAT qui permet d’effectuer de la traduction d’adresses réseau (le NAT) pour les paquets. Ensuite nous allons utiliser les chaines POSTROUTING, PREROUTING et les cibles SNAT, DNAT et MASQUERADE.

Chaine PREROUTING et cible DNAT

Dans la chaine PREROUTING (avant routage) on ne peut modifier que l’adresse de destination (et les numéros de ports au cas où ils seraient déja utilisés), d’ou l’utilisation de la cible DNAT (NAT de destination).

Chaine POSTROUTING et cible SNAT

Dans la chaine POSTROUTING (après routage) on ne peut modifier que l’adresse source, d’ou l’utilisation de la cible SNAT (NAT source).

Cible MASQUERADE

Cette cible permet de déterminer l’adresse IP de sortie pour chaque paquet, ce qui est moins performant car il va vérifier l’interface de sortie pour chaque connexion. MASQUERADE est utilisée dans le cas d’une adresse IP publique dynamique, dans le cas d’IP fixe nous préfèrerons utiliser la cible SNAT en spécifiant l’adresse IP de sortie.

Si déja vous êtes perdu(e) attaquez-vous à iptables-tutorial de Oskar Andreasson à cette adresse : http://www.inetdoc.net/guides/iptables-tutorial/

Simple passerelle

La machine admin a simplement besoin d’utiliser notre serveur en tant que passerelle :

iptables -t nat -A POSTROUTING -s 192.168.1.20/32 -o eth0 -j SNAT --to-source 91.xx.xx.80

ou en utilisant la cible MASQUERADE :

iptables -t nat -A POSTROUTING -s 192.168.1.20/32 -o eth0 -j MASQUERADE

Si toutefois vous deviez permettre à tout votre réseau 192.168.1.0/24 d’utiliser le serveur en passerelle, remplacez simplement 192.168.1.20/32 par 192.168.1.0/24

NAT d’adresse IP publique

La machine www doit avoir une IP publique nattée (91.xx.xx.84).

Les commandes suivantes sont pour permettre les connexions entrantes et la seconde les connexions sortantes

iptables -t nat -A PREROUTING -d 91.xx.xx.84/32 -i eth0 -j DNAT --to-destination 192.168.1.10
iptables -t nat -A POSTROUTING -s 192.168.1.10/32 -o eth0 -j SNAT --to-source 91.xx.xx.84

Redirection de ports

Le serveur TSE utilise l’IP publique 91.xx.xx.80 et on veut rediriger le port 3389 TCP :

iptables -t nat -A PREROUTING -d 91.xx.xx.80/32 -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.12:3389
iptables -t nat -A POSTROUTING -s 192.168.1.12/32 -o eth0 -j SNAT --to-source 91.xx.xx.80

Le serveur de mail utilise l’IP publique 91.xx.xx.83 et les ports TCP 25, 110 et 143 :

iptables -t nat -A PREROUTING -d 91.xx.xx.83/32 -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.13:25
iptables -t nat -A PREROUTING -d 91.xx.xx.83/32 -i eth0 -p tcp -m tcp --dport 110-j DNAT --to-destination 192.168.1.13:110
iptables -t nat -A PREROUTING -d 91.xx.xx.83/32 -i eth0 -p tcp -m tcp --dport 143 -j DNAT --to-destination 192.168.1.13:143
iptables -t nat -A POSTROUTING -s 192.168.1.13/32 -o eth0 -j SNAT --to-source 91.xx.xx.83

Le serveur asterisk utilise l’IP publique 91.xx.xx.82 et on veut rediriger le port 5060 UDP :

iptables -t nat -A PREROUTING -d 91.xx.xx.82/32 -i eth0 -p udp -m udp --dport 5060 -j DNAT --to-destination 192.168.1.11:5060
iptables -t nat -A POSTROUTING -s 192.168.1.11/32 -o eth0 -j SNAT --to-source 91.xx.xx.82

Redirection d’une plage de ports

Le serveur asterisk utilise l’IP publique 91.xx.xx.82 et on veut rediriger la plage de ports 10000 à 20000 UDP :

iptables -t nat -A PREROUTING -d 91.xx.xx.82/32 -i eth0 -p udp -m udp --dport 10000:20000 -j DNAT --to-destination 192.168.1.11:10000-20000

Si vous ne l’avez pas déja fait avec une autre règle (cf. la dernière règle pour la redirection de ports), entrez cette commande :

iptables -t nat -A POSTROUTING -s 192.168.1.11/32 -o eth0 -j SNAT --to-source 91.xx.xx.82

Démarrage machine

Si vous redémarrez votre serveur sachez que les règles iptables ne seront pas restaurées automatiquement, des outils sont là pour vous aider :

iptables-backup et iptables-restore

Tags: , , ,

Concours de programmation IA : Sup’IA

Organisé par des étudiants de SUPINFO Caen, le concours, ouvert aux personnes de moins de 22 ans,
a pour objectif de proposer un challenge de programmation autour de l’intelligence artificielle.

Débutant comme passionné, vous aurez tout à gagner à participer à cette première édition de SUP’IA.

Ce concours se divisera en plusieurs étapes :
– La première, qui vous permettra aussi de vous inscrire, vous sensibilisera aux grands concepts de l’Intelligence artificielle.
– la deuxième visera à tester vos compétences.
– Puis viendra la finale. Le temps d’un weekend, les meilleurs des deux précédentes étapes se confronteront
sur la programmation d’une intelligence artificielle sur un jeu créé spécialement pour l’occasion.

De nombreux lots sont à prévoir !
Des entreprises seront aussi présentes !
Et bien plus encore !

Alors n’hésitez plus et rendez-vous sur www.sup-ia.fr

Bonne chance !

Tags: , ,

Free mobile … On a tous à y gagner ? ou pas ?

Depuis mon dernier billet je fais preuve d’une patiente gigantesque d’une parce que je ne suis plus engagé auprès de mon opérateur, de deux parce que je n’en peut vraiment plus du téléphone (enfin il n’en peut plus de moi aussi).

J’entends partout Free va tout péter, oui mais à quel prix ? Sur divers forums je lis des réactions où on ne sait pas d’où les types sortent les tarifs de Free mais je vais essayer de faire quelque chose qui pourrait vous aiguiller :).

Il faut savoir qu’un téléphone type « Smartphone » coûte cher, il est compris dans le prix du forfait que vous payez tous les mois avec votre opérateur.

Je pars du principe où je n’ai pas de freebox déja chez moi donc un nouveau client uniquement mobile ;).

Sur 20 personnes interrogées ces derniers jours, personne n’a un forfait full illimité … ca tourne aux alentours des 2h, SMS, internet… le forfait de monsieur tout le monde (comme mon forfait !!!).

Je vous présente mon forfait actuel chez Orange :
– 2h + 2h soirs et week-ends
– SMS/MMS Illimités
– 500Mo Web (débit réduit au delà)
– TV Orange
– Avantage 24 mois
= 38€/Mois

C’est le forfait qu’il me faut, je n’utilise pas mes 2h en entier tous les mois, mais les 500 du net sont cramés au bout de 15 jours … La TV, ben heuuu option inutile mais comprise. Il faut aussi souligner que des options comme le double-appel très pratique 2 fois/an sont comprises dedans (certains opérateurs ne l’incluent pas de base)

Le téléphone qui va me servir de support est le HTC Sensation.

C’est un smartphone normal, (j’en entends déja dans la salle qui sont pour Samsung, d’autres pour la pomme et ben pas moi ^^)

Le téléphone neuf, sorti d’usine coûte 400€ soit sur 24 mois 16,67 € Si je garde mon forfait chez Orange il m’est présenté à 1€ (avec 100€ remboursés) ce qui me permet de calculer un forfait brut à 21,33€

 

En peut en lire de toutes les couleurs sur la toile au niveau des prix de Free mais ce ne sont que des spéculations :

Je ne cite pas les sources prises de manière volontaire mais en quelques clics vous les trouverez 😉 D’autres avancent que l’offre de free sera une offre unique, d’autres non, la date, certains parlent de tests au mois de Septembre … rien de sûr 😉

Il y a tellement d’informations qui résulte de calculs scientifiques et qui ne sont en aucun cas officielles ni officieuses, Xavier Niel PDG de free nous garde bien la surprise :) Il y a quelques mois on lisait sur le net qu’une offre allait être sur le marché et internet en option à 5€/mois … bref toutes les informations sur les tarifs sont fausses !!!

Revenons à notre forfait :

  • Si Free propose un forfait à 25€ tout illimité (je rêve un peu :p j’ai le droit) je réfléchirais mais celà représenterai une somme totale de 25+16,67 = 41,67€ mois soit 3 euros et quelques de plus tous les mois
  • Si Free propose le même forfait que j’ai (2h, Internet + SMS) à une quinzaine d’euros (là je rêve mois ça j’approcherai de la réalité) cela représenterai une somme de 15€+16.67€ = 31.67€ / mois soit ~6.30€ d’économie par mois …

Ce Week-end Xavier Niel interrogé par les journaliste d’ITexpresso a annoncé quelques informations relayées ci-dessous :

« Je suis étonné d’un truc, c’est que nos concurrents n’ont toujours rien fait. Ils ont micro baissé leurs prix de quelques %. Ce n’est pas raisonnable il faut y aller pour de vrai, il faut vraiment baisser vos prix … avant qu’on arrive »

Oui effectivement les opérateurs n’ont pas baissé leurs tarifs de plusieurs euros … mais ils ont fait des efforts qui ne leur permettra peut-être pas de garder tous leurs clients …

« S’il y a des offres à 10 euros sur le marché, il y aura surement des offres à  5 euros, s’il y a des offres à 7 euros il y aura à 3,50 euros »

Sur cette déclaration je pense qu’il faut partir du principe où le concurrent ne subventionnerai pas lui non plus le mobile. C’est cette déclaration qui augmente le rêve de free :p Moi j’aimerais bien que cela soit réalité et Xavier Niel en est capable. On sera tous fixés et nous devons faire preuve de patiente encore et encore… mais Free mobile n’a pas fini de faire parler de lui :)

Tags: , ,