Catégories
Open-source Systeme

Toutes les expressions régulières sur une page A4

… enfin presque toutes… C’est sur le site AddedBytes que j’ai trouvé cet aide mémoire centralisant toutes les expressions régulières sur une simple page A4. Idéal pour les administrateurs Unix !

regular-expressions-cheat-sheet-v2.png

A imprimer et a garder sur vos bureaux !

Catégories
Open-source Systeme

Ubuntu 8.10 est là (par P2P)

200810301559.jpg

Pour ne pas effondrer les serveurs de téléchargement, le plus simple est encore d’utiliser les serveurs P2P.

Zou, à vos Transmission !

Catégories
Open-source Systeme

Redémarrer automatiquement un processus

Flickr Photo Download_ Shells.jpg

Certaines processus système sont plus sensibles que d’autres. Par exemple, dans le cas de l’administration d’un serveur distant, le processus SSHD est à protéger avant tout.

Voici donc le petit script que j’utilise sur mes serveurs pour relancer le daemon sshd au cas ou se dernier s’arrête (suite à un bug ou à une fausse manipulation d’un opérateur). Ce script shell est bien sûr adaptable pour d’autres processus.

#!/bin/sh

# /usr/local/bin/sshd_wrapper.sh

PROCESS_NAME=sshd

PROCESS_COMMAND=’ /usr/local/sbin/sshd’

ps auxw | grep -v grep | grep $PROCESS_NAME > /dev/null || $PROCESS_COMMAND

On rends alors ce script exécutable seulement par l’utilisateur qui doit lancer le processus.

chmod 700 /usr/local/bin/sshd_wrapper.sh

Puis on demande au système d’exécuter ce script toute les minutes:

crontab -e

* * * * * /usr/local/thales/bin/sshd_wrapper.sh > /dev/null 2>&1

et hop…

Catégories
Musique Open-source

Ecouter la musique de son Mac sous Linux

Si vous avez comme moi votre bibliothèque musicale stockée dans l’iTunes de votre Mac OS X et que vous souhaitez y accéder depuis votre PC Linux, alors ce billet est fait pour vous…

Comment ça marche ?

Nous allons utiliser DAAP (Digital Audio Access Protocol), un protocole commun entre votre Mac OS X qui va partager votre bibliothèque et votre lecteur audio sous Linux. Ce protocole se rapproche en fait du bien connu protocole HTTP (mais en écoute sur le port TCP/3689, avis aux utilisateurs de firewall…) permettant de partager des listes de lectures et de « streamer » des musiques (quelques soit le format/codec) sur le réseau.

Pour une description précise du protocole, vous pouvez consulter ce document.

Configuration du serveur DAAP sur le Mac OS X

Depuis iTunes 7.0, Apple (le vilain) a changé le protocole d’authentification des clients tiers. Il n’est donc plus possible d’accéder à une bibliothèque partager par iTunes 7.0 depuis un lecteur audio Linux comme Amarok, Banshee ou Rhytmbox.

Heureusement, la communauté open-source propose une solution alternative et que je trouve plus élégante: Fire Fly Media Server. Ce petit serveur DAAP (anciennement nommé mt-daap) est disponible sous Mac OS X.

Avant d’installer Fire Fly Media Server, on commence donc par vérifier que le partage est désactivé dans iTunes 7.0 afin qu’il n’y est pas de conflit entre les deux systèmes.

Partage-3.jpg

On peut alors passer à l’installation de Fire Fly Media Server. Il faut pour cela se rendre sur cette page et télécharger la dernière « nighly-build ».

Une fois installé, un nouvel icône est disponible dans les préférences systèmes:

Préférences Système.jpg

La configuration est très simple. On entre le nom du partage qui sera diffusé sur le réseau (1), le mot de passe (2) et si le serveur est lancé au démarrage de la session (3).

Firefly.jpg

Ensuite, dans l’onglet Avancé, on configure le répertoire ou se trouve la bibliothèque musicale (/Users/<login>/Music pour partager votre bibliothèque iTunes):

Firefly-1.jpg

Il ne reste plus qu’a démarrer le serveur .Cette action sera faite automatiquement au prochain reboot si vous avez sélectionné cette option (3).
Firefly-2.jpg

Configuration du client DAAP sous Linux

J’utilise le lecteur audio Banshee sous ma station Linux Ubuntu. La procédure pour accéder au partage est la suivante.

On commence par activer le plugin Partage de musique:

capture_200807313859.jpg

Le nom du partage devrait alors apparaître automatiquement dans la liste des Musique partagée de Banshee. Une fois sélectionné (1), il faut saisir le mot de passe (2).

capture_200807313522.jpg

Vous avez alors accès à votre bibliothèque. Lors de l’écoute d’un morceau, les données sont « streamées  » entre le Mac et le Linux. Ainsi, aucun fichier n’est stocké sur votre Linux.

capture_200807313727.jpg

Conclusion

Vous pouvez donc partager vos fichiers audio (MP3 ou autres) de manière très simple. L’avantage de cette solution par rapport à un simple partage iTunes (en dehors du fait que cela marche;) ) est qu’il n’est pas nécessaire de lancer iTunes pour accéder à vos musiques.

En cadeau bonux, Firefly Media Server dispose d’une interface Web d’administration accessible par défaut par l’adresse http://localhost:1024/index.html.

Catégories
Developpement Open-source

Première configuration d’Eclipse

Ce matin j’ai réinstallé Eclipse (mon environnement de développement fétiche aussi bien sous Linux que sous Mac OS X). Voici donc mes notes pour la configuration du logiciel avec les plugins suivants: eclipse_home_header.jpg

  • SVN
  • PHP

Installation d’Eclipse

Sous Ubuntu, l’installation se fait via les packages:

# sudo apt-get install eclipse

Compter environ 140 Mo d’espace sur votre disque dur.

Installation du plugin SVN

J’utilise un serveur SVN pour gérer en configuration mes développement. De base, Eclipse ne dispose que d’un plugin pour CVS. La procédure à suivre pour installer le plugin SVN est la suivante:

Lancer Eclipse
Aller dans le menu Help / Software updates / Find and install…
Cliquer sur le bouton « Search for new features to install » et cliquer sur le bouton « Next > »
Cliquer sur le bouton « New Remote Site… » et saisir:
Name: SVN
URL: http://subclipse.tigris.org/update_1.2.x (pour les versions d’Eclipse 3.2+)
Valider en appuyant sur le bouton OK
Sélectionner SVN dans le liste « Sites to include in search » puis cliquer sur « Finish »
Attendre le téléchargement de la liste des plugins et selectionner SVN
Finaliser l’installation en cliquant sur « Next > »
Après acceptation de la licence, cliquer sur « Finish »

Installation du plugin PHP

La procédure à suivre pour installer le plugin PHP (PHPEclipse) est la suivante:

Lancer Eclipse
Aller dans le menu Help / Software updates / Find and install…
Cliquer sur le bouton « Search for new features to install » et cliquer sur le bouton « Next > »
Cliquer sur le bouton « New Remote Site… » et saisir:
Name: PHP
URL: http://phpeclipse.sourceforge.net/update/releases
Valider en appuyant sur le bouton OK
Sélectionner PHP de la liste « Sites to include in search » puis cliquer sur « Finish »
Attendre le téléchargement de la liste des plugins et selectionner PHPEclipse
Finaliser l’installation en cliquant sur « Next > »
Après acceptation de la licence, cliquer sur « Finish »

Et voili, on code maintenant…

Catégories
Open-source Reseau Systeme

Installation serveur DHCP sous FreeBSD

procedure.jpgNous allons nous attaquer à la configuration d’un serveur DHCP (ISC DHCP Server) sous FreeBSD. Vous pouvez également utiliser en grande partie cette procédure sous GNU/Linux.

Rappel: le protocole DHCP permet la configuration automatique des paramètres IP des machines d’un réseau (plus de littérature sur le Wiki).

Introduction

ISC DHCP est un projet open-source disponible dans une suite qui comprend les éléments suivants:

  • le fameux serveur DHCPd
  • le client DHCPclient
  • un serveur de relais DHCPrelay

Cette suite est disponible sur la plupart des OS: Linux, BSD, Mac OS X et Windows.

La dernière version stable à la date de l’éecriture de ce billet est la 3.0.6

Installation du serveur DHCPd

Sous FreeBSD la procédure est la suivante:

# pkg_add -r isc-dhcp3-server

Pour les puristes, il est également de compiler le serveur à partir des sources.

Quelques trucs utiles à savoir avant la configuration

DHCP est un protocole servant à distribuer des configurations réseaux (c’est à dire adresse IP, masque, routes, serveurs DNS…) sur un réseau local. Il faut donc que le serveur et les clients se trouvent sur un même réseau de niveau 2. En clair, il ne doit pas y avoir de routeur IP entre le serveur et les clients. Si vous ne pouvez pas faire autrement, le serveur relais pourra vous être utile…

Si vous avez un Firewall entre votre serveur et vos clients, il faut veillez à ajouter les règles suivantes:

Autoriser les paquets UDP/67 (source UDP/68) entre l’adresse 0.0.0.0 et l’adresse 255.255.255.255

Autoriser les paquets UDP/68 (source UDP/67) entre le serveur et les clients

C’est à dire autoriser vos clients qui n’ont pas encore d’adresse IP (0.0.0.0) à envoyer sur le réseau une requête DHCP (UDP/67) vers toutes les machines du réseau (255.255.255.255) afin de chercher le serveur DHCP. Le serveur DHCP répond (UDP/68) en offrant un bail DHCP (c’est à dire une configuration IP valable un certain temps).

Sous FreeBSD, la règle IPFW correspondante est:

# ipfw add allow udp from 0.0.0.0 68 to 255.255.255.255 67 keep-state

# ipfw add allow udp from @SERVEUR 67 to any 68 keep-state

Configuration du serveur DHCP

Toute la configuration est centralisée dans le fichier dhcpd.conf. Nous allons donc commencer par archiver la configuration par défaut.

# mv /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf

Puis éditer notre fichier dhcpd.conf:

# vi /usr/local/etc/dhcpd.conf

# C’est bien le serveur DHCP principal

authoritative;

# Nom de domaine de votre réseau

option domain-name « monboreseau.com »;

# Adresses des serveurs DNS

option domain-name-servers ns1.monboreseau.com, ns2.monboreseau.com;

# Définition de la durée du bail

default-lease-time 600;

max-lease-time 7200;

# On logue les messages dans le syslog

log-facility local7;

# Définition des plages d’adresses dynamiques du LAN

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.100 192.168.1.200 ;

option routers 192.168.1.1 ;

option broadcast-address 192.168.1.255 ;

}

# Définition des machines statiques (les entrées doivent exister dans le serveur DNS)

# Attention, elles doivent être en dehors du range dynamique définie ci-dessus.

host mamachine {

hardware ethernet 00:11:09:1A:-:- ;

fixed-address mamachine.alcasat.net ;

}

Les opérations de base sur votre serveur DHCP

Démarrage du serveur (sous FreeBSD):

# /usr/local/etc/rc.d/isc-dhcpd start

Arrêter le serveur DHCP (sous FreeBSD):

# /usr/local/etc/rc.d/isc-dhcpd stop

Pour connaître la liste des baux (leases) en cours:

# cat /var/db/dhcpd.leases

Exemple:

lease 192.168.1.112 {

starts 2 2008/05/13 10:22:43;

ends 2 2008/05/13 10:32:43;

binding state active;

next binding state free;

hardware ethernet 00:08:02:f4:-:-;

uid « \001\000\010\002\364o\310 »;

client-hostname « port2 »;

}

Et la redondance ?

Si vous souhaitez avoir deux serveurs DHCP en redondance sur votre réseau, vous pouvez suivre cette procédure.

Catégories
Open-source Reseau

Tunnel IPSec sous Linux avec OpenSwan

Le but de ce tutoriel est de créer un tunnel IPSec entre deux réseaux privées (chez vous et chez un pote pas exemple) reliés par une connexion Internet publique. La solution proposée se base sur OpenSwan (exemple de configuration sous Ubuntu mais applicable sous n’importe quel Unix et BSD like)

vpn.png

Infrastructure servant de base au tutoriel:

PRIVEE_A — ROUTEUR VPN A — PUBLIQUE_A — INTERNET — PUBLIQUE_B — ROUTEUR VPN B — PRIVEE_B

Installation de OpenSwan

# sudo apt-get install openswan

Génération des clés:

Catégories
Open-source Systeme

Créer un OS Live sur CD et clé USB

Avoir un système d’exploitation live sur CD ou clé USB peut s’avérer extrêmement utile lorsque, par exemple, Windows plante au démarrage (ah bon?) et que l’on veut récupérer des fichiers importants sur le disque, ou tout simplement pour transporter sa propre boite a outils de geek dans sa poche.

Creative Commons License photo credit: Locator

Pour cela, on peut :

  • télécharger un OS Live existant comme celui d’Ubuntu, DSL (Damn Small Linux) ou autre
  • créer son propre OS from scratch
  • partir d’un OS Live existant et le customizer

La première solution est évidemment la plus simple et la plus rapide, mais ne permet pas de pré-configurer le système.

La seconde solution est la plus complète de toutes, mais nécessite de longues heures de compilation.

La troisième est un excellent compromis entre les 2 autres solutions et est celle que nous allons détailler dans ce sujet…

Catégories
Open-source Reseau

Installation d’un serveur SNMP sous GNU/Linux

Ce billet a pour but de détailler l’installation et la configuration d’un serveur SNMP sous Linux. J’ai choisi d’utiliser la solution open-source net-snmpd.

logo-netsnmp.jpg

Celle-ci dispose d’une communauté de développeurs très active. De plus cette solution est disponible sous de nombreux OS (Linux, BSD mais aussi Mac OS X et même Windows !).

Catégories
Open-source Reseau Uncategorized Web

Installation d’une carte Digium avec Asterisk

Attention: « DAHDI is the new name for ‘Zaptel’ as of May 19th 2008 »

/etc/zaptel.conf devient /etc/dahdi/system.conf

/etc/asterisk/zapata.conf devient /etc/asterisk/chan_dahdi.conf

Les cartes Digium sont indissociables d’Asterisk. Elles permettent la gestion de liaisons téléphoniques de type E1/T1, ISDN ou PSTN.

Nous allons dans ce billet détailler l’installation d’une carte Digium TE220 (compatible E1/T1) sous Linux.

Installation de la carte

Une fois la carte déballée, il faut vérifier que le jumper de sélection entre les normes T1 (US) et E1 (Europe) est bien positionné. Pour une liaison RNIS Européenne (E1), il faut que les jumpers soient fermés.

Une fois la carte installée physiquement dans le serveur (slot PCI-X), nous allons, dans un premier temps, vérifier qu’elle est bien identifiée par Linux:

# dmesg

Found a Wildcard: Wildcard TE220 (4th Gen)

# lspci -n

04:08.0 0780: d161:0220 (rev 02)

On récupère sur le site de Digium la dernière version des librairies PRI:

# wget http://downloads.digium.com/pub/telephony/libpri/libpri-1.4.5.tar.gz
PS: Remplacer 1.4.5 par la dernière version disponible.

puis on les installe:

# tar zxvf libpri-1.4.5.tar.gz
# cd libpri-1.4.5
# make
# sudo make install

On enchaîne avec le téléchargement des drivers Zaptel:

# wget http://downloads.digium.com/pub/telephony/zaptel/zaptel-1.4.11.tar.gz
PS: Remplacer 1.4.11 par la dernière version disponible.

et leur installation:

# tar zxvf zaptel-1.4.11.tar.gz
# cd zaptel-1.4.11
# ./install_prereq test
=> On vérifie que les pre-requis sont OK (sinon on lance ./install_prereq install)
# ./configure
# make
# make install
# make config

La carte TE200 partage les mêmes drivers que les TE400 (module wct4xxp). Afin d’optimiser le démarrage des modules, j’ai également modifié le fichier /etc/sysconfig/zaptel en suppriment toutes les occurrences MODULES et en laissant la ligne suivante:

MODULES= »$MODULES wct4xxp »

Nous pouvons redémarrer le serveur pour vérifier que le module est bien lancé au démarrage. Pour vérifier:

# lsmod

wct4xxp               400512  0
zaptel                190852  3 wct4xxp

Attention: il faut installer libpri AVANT d’installer Asterisk sinon le driver ne sera pas généré. Si vous avez déjà Asterisk installé sur votre système, il faudra le réinstaller….

Configuration de la carte

Nous allons d’abord définir les caractéristiques de la carte dans le fichier /etc/asterisk/zapata.conf. Pour une liaison E1 PRI (standard en Europe), vous pouvez utiliser la configuration suivante (voir ici http://docs.tzafrir.org.il/dahdi-tools pour une liste complète des paramètres):

group=1
signalling=pri_cpe
switchtype=euroisdn
context=incoming
channel=>1-15,17-31

Puis les caractéristiques de la liaison E1/T1 utilisée. Pour cela, il faut éditer le fichier /etc/zaptel.conf:

span=1,1,0,ccs,hdb3
bchan=1-15,17-31
dchan=16

Initialisation de la carte

Si vous n’avez pas rebooter votre serveur depuis l’installation des drivers, il faut commencer par charger le driver Zaptel dans le noyau Linux:

# modprobe wct4xxp

Ensuite, on doit lancer la configuration (une fois la liaison E1 connectée sur la carte):

# ztcfg -vv

Vérification de l’état des liaisons E1

Le plus simple est d’utiliser l’utilitaire zttool qui affiche l’état des liaisons:

# zttool

Il est également possible de vérifier si les liaisons sont bien montées en lançant Asterisk en mode debug:

# asterisk -vvvr

Et voilou, et à bientôt pour voir comment utiliser ces liaisons avec Asterisk…