Catégories
Open-source

Actualité open-source de la semaine #29

L’actualité open-source de la semaine…

L’image de la semaine

Internet Explorer 8 arrive… je rappelle que le meilleur navigateur au monde
est libre, gratuit et s’appelle Firefox

Tout le monde en parle, sauf moi…

L’actualité du libre et de l’open source en vrac:

  • OpenArena, basée sur le moteur graphique de Quake III, est un FPS open-source.
  • La formule du jour: Ubuntu – « non GNU » = gNewSense
  • Des news de KDE 3.5 et Gnome 2.24
  • Et voilà ce qui arrive quand on met du Windows dans la station spatiale internationale…

Autres choses ?

Catégories
Open-source Reseau

De IPFW à PF

istockphoto_143506_burning_fire_wall.jpgFidèle utilisateur de l’operating système FreeBSD pour toutes les fonctions réseaux (notamment les Firewall), je suis tombé il y a quelques temps sur un problème d’interopérabilité entre l’utilisation du couple CARP/PFSYNC (le truc pour faire de la redondance de Firewall) avec IPFW.

J’ai donc décidé de switcher de IPFW vers PF. Je vais donc abordé dans ce billet les quelques choses à avoir en tête si vous suivez le même chemin… Si vous souhaitez vous formez sur PF, je vous conseille la lecture de l’excellent article paru dans Linux Magazine HS n°29, dont vous trouverez une version électronique ici.

Un peu d’histoire

IPFW (IPFireWall) est un module logiciel permettant de faire du filtrage de paquets réseau sous BSD (c’est actuellement le module de firewall utilisé par défaut sous Mac OS X).

Jusqu’à la version 3.0 de OpenBSD, ce module était intégré par défaut au noyau du système, mais de sombres histoires de licences et de batailles interne entre Darren Reed (l’auteur de IPFW) et les développeurs d’OpenBSD ont débouché par son remplacement par PF (Packet Filter).

PF est maintenant fourni en standard sur l’OS FreeBSD (depuis la version 5.3).

Les principales différences entre IPFW et PF

Voici une liste non-exhaustive:

  • le fichier de configuration unique (/etc/pf.conf) comprend, la définition des règles (comme sous IPFW) mais aussi la configuration du NAT et du PAT (délégué au processus IPNAT avec IPFW)
  • comportement atomique du chargement de la configuration: si une erreur est détectée dans le fichier de configuration, aucune règle n’est appliquée
  • l’interprétation des règles est de type “last matching rules wins”: la dernière règle qui correspond au paquet est appliquée
  • le suivi de connexions complexes comme FTP se fait via un module externe (ftp-proxy)
  • il est possible de rediriger les paquets en fonction de l’OS émetteur (ne marche pas dans tout les cas de figures)
  • assure une compatibilité native avec CARP et PFSYNC pour faire de la redondance active de Firewall

Architecture du fichier de configuration /etc/pf.conf

Le fichier comporte plusieurs sections (l’ordre est important).

1) Définition des macros, listes et des tables

En plus des listes (comme sous IPFW), il est possible d’utiliser des tables pour stocker des adresses IP. L’avantage des tables par rapport aux listes est la rapidité d’accès à l’information. En effet, basées sur des tables de hachage, le temps pour accéder à une information est constant quel que soit la taille de la table. De plus il est possible de modifier dynamiquement ces tables (à l’aide de la commande “pfctl -t …”) sans avoir à recharger les règles.

Quelques exemples de macros:

Définition

ip_interne=”192.168.1.254”

ip_externe=”80.80.80.80”

Utilisation dans les règles

pass quick proto tcp from $ip_interne to any port 80

pass quick from $lan_interne to any keep state

Quelques exemples de listes:

Définition

lan_interne=”{ 192.168.1.0/24 192.168.2.0.24 }”

lan_interne_saufdmz=”{ 192.168.1.0/24 192.168.2.0.24 !192.168.2.0/29 }”

web_ports=”{ http https ftp }”

Utilisation dans les règles

pass quick from $lan_interne to any keep state

Quelques exemples de tables:

Définition

table <ip_clients> “{ 192.168.1.10 192.168.1.100 }”

Utilisation

pass quick from <ip_clients> to any keep state

Modification de la table

pfctl -t ip_clients -T add 192.168.1.101

pfctl -t ip_clients -T delete 192.168.1.101

2) Options et normalisation des paquets

Personnellement, j’utilise les options suivantes:

# On ne filtre pas sur l’interface locale

set skip on lo

# En cas de blocage, on envoie un RST sur les paquets TCP

# et UNREACHABLE sur les ICMP

set block-policy return

# On normalise les paquets avec gestion de la fragmentation

scrub in all fragment reassemble

3) Gestion des queues pour la QoS

Permet de faire de la qualité de service: CBQ, Priorité et HFSC. Il faut cependant passer par un module externe: altq.

Je reviendrai sûrement sur ces fonctions 12c4.

4) Translation d’adresse (NAT) et re-direction de ports (PAT)

Contrairement à IPFW qui ne gérait pas la translation d’adresse et de port (il fallait utiliser IPNAT), PF s’acquitte parfaitement de ces taches. La syntaxe est très proche de celle utilisée par IPNAT.

Exemple de NAT:

nat pass on eth0 from eth1:network to any -> $ip_externe

On notera l’utilisation de la macro eth1:network qui donne le réseau associé à l’interface réseau eth1

binat on $if_externe from 192.168.1.100 to any -> 80.80.80.81

Exemple de PAT:

rdr on $if_externe from any to $ip_externe port 8080 -> $ip_serveur port 80

5) Règles de filtrage

On entre (enfin ?) dans le vif du sujet avec l’adaptation des règles de IPFW vers PF.

La première chose à se rappeler est que l’interprétation des règles est de type “last matching rules wins”: la dernière règle qui correspond au paquet est appliquée. C’est le contraire de la logique que l’on suivait avec IPFW. Cependant, si comme moi vous avez du mal à réfléchir à l’envers, il reste la possibilité d’utiliser l’option quick. Quand cette dernière est présente dans une règle, PF arrête l’interprétation des règles suivantes.

L’option permettant de faire du suivi de connexion (sur TCP mais aussi sur UDP ou tout autre protocole IP) est “keep state” (attention c’était “keep-state” avec un – sous IPFW…). Cette option est maintenant ajouté par défaut sur les OS BSD (depuis OpenBSD 4.0 et FreeBSD 7.0).

Exemple de filtres:

pass in on $int_if from $internal_net to any

pass out on $ext_if proto tcp all modulate state flags S/SA

pass out on $ext_if proto { udp, icmp } all keep state

pass in on $ext_if inet proto tcp from any to $webserver port 80 flags S/SA synproxy state

Gestion de votre nouveau Firewall PF

La gestion de la configuration de votre Firewall PF se fait via l’utilitaire pfctl.

Quelques commandes utiles:

Vérification de la syntaxe du fichier /etc/pf.conf

pfctl -n -f /etc/pf.conf

Activation du filtrage:

pfctl -e

Dés-activation du filtrage:

pfctl -d

Rechargement des règles:

pfctl -f /etc/pf.conf

Affichage des règles de filtrage:

pfctl -s rules

Affichage des NAT et PAT:

pfctl -s nat

Affichage l’état des sessions existantes (connections):

pfctl -s state

Affichage du fichier de log (pour voir les paquets rejetés):

tcpdump -r /var/log/pflog

ou bien:

tcpdump -i pflog0 -qea -ttt

Conclusion

Je dois vous avouer que j’étais très réticent pour ce passage de IPFW et PF mais après quelques heures d’utilisations je pense que ce système de filtrage est très bon et aussi facile à administrer (en tout cas beaucoup plus simple que l’usine à gaz IPTABLES… je sais je troll…).

Catégories
Musique Open-source Web

Last.fm sous Ubuntu et Mac OS X

last-fm_audioscrobbler_logo.jpg

Last.fm est un service permettant de diffuser la liste des musiques que vous écoutez et de récupérer en échange des titres, des vidéos et des concerts collant au plus près à vos goûts. Il est donc possible d’écouter « une radio » ne passant que des chansons qui sont sensés vous plaire.

J’étais un peu septique, c’est pour cela que j’ai mis un certain pas à faire le grand saut… avec du recul, j’aurai dû le faire avant 🙂 En effet, Last.fm est convivial a utilisé et très pertinent dans ces propositions.

Dis, comment ça marche ?

C’est très simple, on commence par créer un compte sur le site puis on configure son lecteur audio pour qu’il diffuse ce qu’il joue sur votre base de donnée Last.fm (cela s’appelle « to scrobble »).

Sous Mac OS X, si vous utilisez iTunes, le plus simple est de télécharger le logiciel Last.fm qui va automatiquement « scrobbler » ce qui a été joué sur votre iTunes et même sur votre iPod ! Le logiciel dispose également d’un petit lecteur permettant d’écouter des musiques qui collent à vos goûts. Notamment la radio « Mes Recommandations », que j’écoute en boucle 🙂

Last.fm.jpg

Sous GNU/Linux et en particulier Ubuntu, tout dépend du logiciel que vous utiliser. La possibilité de « scrobbler » sur Last.fm est disponible sur la plupart des logiciels: Amarok, Banshee, SongBird… Je vous laisse trouver la procédure sur les sites correspondants.

Installation de Last.fm sous Ubuntu

Vous pouvez également installer le logiciel Last.fm assez simplement car il existe un dépôt Ubuntu. I suffit de suivre a procédure suivante:

wget -q http://apt.last.fm/last.fm.repo.gpg -O- | sudo apt-key add –

sudo vi /etc/apt/sources.list
# Ajouter la ligne suivante:
deb http://apt.last.fm/ debian stable

sudo apt-get update

sudo apt-get install lastfm

L’installation finie, le logiciel peut être lancé à partir du menu: Application / Son et vidéo / Last.fm

capture_200808264810.jpg

Et voila, il ne reste plus qu’a écouter et découvrir de nouveaux bijoux !

Vous pouvez consulter mon profile Last.fm à l’adresse suivante: http://www.lastfm.fr/user/nicolargo

N’hésitez pas à m’ajouter comme ami !

Catégories
Musique Open-source Systeme Web

Installation de SongBird sous Ubuntu

SongBird est le concurrent open-source de iTunes. Il est actuellement en développement. La dernière version disponible au moment de la rédaction de ce billet est la 0.7.

Voici la procédure à suivre pour une installation sous une GNU/Linux Ubuntu 8.04.

Téléchargement de SongBird

Il faut se rendre sur le site suivant puis télécharger la dernière version disponible. L’archive d’installation se présente sous la forme d’un fichier .deb de 17 Mo pour la version 0.7.

Pour installer le .deb, il suffit de double cliquer sur le fichier songbird_0.7.0-0~getdeb1_i386.deb puis de cliquer sur le bouton « Installer le paquet ».

Un fois l’installation effectuée, vous pouvez lancer le programme à partir du menu Applications / Son & Video / Songbird.

Après acceptation de la licence d’utilisation et le télépchargement automatique du pack Français, vous devez saisir l’emplacement ou se trouve vos fichiers musicaux (par défaut /home/user/Musique) puis sélectionner les plugins qui peuvent vous intéresser (par exemple un plugin de gestion iPod).

Utilisation de SongBird

SongBird partage avec Firefox les systèmes de navigation par onglets et de plugins (.xpi). En cliquant sur le marque-page « songbird add-ons », un nouvel onglet affiche la liste des plugins disponibles.

J’utilise personnellement:

  • « Ipod device support » pour le support de mon Ipod.

  • « Media Flow » pour parcourir sa bibliothéque avec un effet très cher à Apple.

  • « DeezerBird » pour jouer vos playlist Deezer depuis Songbird
  • « Seeqpod » pounr une intégration du site SeeqPod

A vos casques !

Catégories
Blog

I am back…

… et oui toutes les bonnes choses ont une fin. Donc retour au taf.

Je viens de mettre à jour le blog avec la dernière version de WordPress (2.6.1). Comme d’habitude j’ai suivi la procédure suivante:

  • sauvegarde intégrale du blog (répertoire entier + base de données SQL)
  • suppression des répertoires wp-admin et wp-includes
  • téléchargement de la dernière version
  • visite du lien d’upgrade de la base de données (/wp-admin/upgrade.php)
Catégories
Uncategorized

A bientôt !!!

Je prends 3 semaines de vacance pour profiter de la vie en général et de ma famille en particulier. On se retrouve fin août pour la suite des aventures…

« L’optimiste se dit qu’un travailleur a droit à 5 semaines de congé par an.
Le pessimiste, lui, se dit que des tas de braves gens sont obligés d’interrompre chaque année leurs vacances pendant 47 semaines pour aller bosser. »

Philippe Geluck

Saint Malo

Catégories
Open-source Reseau Systeme

Exemples de check de services Nagios

Quelques exemples de services pour Nagios. N’hésitez pas à donner d’autres exemples via les commentaires ou ma fiche de contact.

J’intégrerai les exemples les plus pertinents au billet.

On menu du jour:

  • superviser un serveur Web (HTTP)
  • superviser un serveur Web sécurisé (HTTP over SSL)
  • superviser un serveur de messagerie (mail)
  • superviser un serveur VoIP (sip)
  • superviser un serveur de fichiers (samba)
  • superviser un serveur annuaire (LDAP)
  • superviser un serveur de base de données (mySQL ou pgSQL)
  • superviser un serveur réseau (DHCP et DNS)
  • supervision de disques RAID (carte hardware HP Proliant)
  • supervision de disques RAID 1 logiciel sous FreeBSD
  • supervision d’un serveur Asterisk (suivre ce lien)
  • supervision d’un trunk IAX sur un serveur Asterisk

< tous les plats sont accompagnés de frites et de salade >

Catégories
Open-source

Actualité open-source de la semaine #28

L’actualité open-source de la semaine…

L’image de la semaine

gary.jpg
Et voilà Solo, à abuser de nmap et de john the ripper, on a des problèmes

Tout le monde en parle, sauf moi…

L’actualité du libre et de l’open source en vrac:

Autres choses ?

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
Open-source Reseau

Tester la faille DNS CP en ligne de commande

Pour vérifier que vos serveurs DNS ne sont pas touchés par la faille DNS Caching Poisoning (DNS CP), un simple test via la ligne de commande de votre système est possible. Nous allons dans ce billet voir comment réaliser et interpréter ce test puis détailler les actions à prendre au cas ou ce test serait positif.

Faire le test

On va utiliser l’utilitaire dig, fourni en standard dans tout OS qui se respecte.On lance la commande suivante (remplacer dns par l’adresse IP de votre serveur DNS):

dig +short @dns porttest.dns-oarc.net TXT

Si le résultat est:

z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
« dns is GOOD: 26 queries in 4.4 seconds from 26 ports with std dev 20195.32″

Alors vous pouvez pavoiser, pas la peine d’aller plus loin, votre DNS est protégé contre ce type d’attaque.

Par contre si le résultat est le suivant:

porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
« dns is POOR: 26 queries in 4.3 seconds from 1 ports with std dev 0″

Il faut vite penser à mettre à jour votre DNS en suivant les conseils du paragraphe suivant.

Mettre à jour son serveur DNS

Sous FreeBSD

On commence par mettre à jour les ports en suivant cette procédure. Puis on tape les commandes:

cd /usr/ports/dns/bind9
make deinstall
make reinstall

Sous Linux Ubuntu

On passe par le gestionnaire de package apt-get:

sudo apt-get update
sudo apt-get upgrade

Sous Linux Fedora

On passe par le gestionnaire de package yum:

su – root
yum update

Configurer son serveur DNS

Si vous avez une architecture DNS avec un primaire et un secondaire (par exemple si vous avez suivi ce tutorial). Il peut être bon d’avoir une configuration différente entre le primaire (celui qui est le plus exposé aux attaques venant d’Internet et le secondaire qui sera uniquement utilisé par les clients de votre réseau local).

Source: SecureWorks

Sur le serveur primaire (« Authoritative nameserver ») il est conseillé de désactivé la résolution des requêtes par récursion (option allow-recursion) et d’activer le changement dynamique du port réseau de réponse du serveur DNS (option dnssec-enable).

Sur ce premier serveur, la section options di fichier named.conf ressemblera donc à:

options {

allow-recursion { none; };
dnssec-enable yes;
}

Selon la criticité de votre réseau vous pouvez également appliquer cette configuration sur le serveur secondaire (« caching nameserver »).

Il ne reste plus qu’a relancer le serveur DNS et à recommencer le test du premier chapitre.