Archive

Archives pour 08/2010

ZFS nativement sous GNU/Linux pour le mois prochain ?

29/08/2010 Aucun commentaire

En tout cas c’est ce que Phoronix nous apprend.
Jusqu’à présent, le système de fichier natif de Solaris et Opensolaris (RIP) et ses extraordinaires capacités, ne pouvait pas tourner nativement sous GNU/Linux du à une incompatibilité entre la licence GPL de Linux et la licence CDDL de ZFS. Ceux qui le voulaient, étaient alors obligés de passer par Fuse ce qui rendait tout de suite moins attrayant et surtout moins performant le fait de faire tourner son système GNU/Linux sous ZFS.

C’est précisément là qu’intervient la société indienne KQ Infotech. Ils vont distribuer leur code CDDL vers un module kernel compilable en s’assurant de n’utiliser aucun symbole GPL.
Les utilisateurs de Fedora seront tout heureux d’apprendre qu’un RPM sera disponible, alors que pour les utilisateurs d’Ubuntu/Debian devront le compiler à partir des sources. En précisons qu’il ne sera possible de l’installer que sur des distributions 64 Bits.

Tout n’est pourtant pas rose car il est illusoire d’espérer voir un jour ZFS inclus nativement dans le kernel Linux toujours à cause de l’incompatibilité des licences, et son installation relèvera tout de même d’un niveau technique non négligeable.
Quoi qu’il en soit il s’agit quand même d’une excellente nouvelle.

Tags: , , , , , ,

Nouveau plugin WordPress pour Twitter : erreur php

19/08/2010 2 commentaires

Si comme moi vous avez fait la mise à jour du plugin twitter-tools, vous avez peut être rencontré l’erreur suivante au moment de cliquer sur « Connect to Twitter »:

Fatal error: Call to undefined function curl_init() in /var/www/wordpress/
wp-content/plugins/twitter-tools/twitteroauth.php on line 201

A ce moment la il y 2 solutions. Soit vous êtes sur un hébérgement mutualisé, auquel cas je ne pense pas qu’il soit possible de faire grand chose.
Soit vous disposez d’un serveur dédié (comme moi) et il vous suffit d’installer le paquet php5-curl :

sudo aptitude install php5-curl
sudo /etc/init.d/apache2 restart

Rentrez à nouveau les différents clés et secrets, cliquez sur « Connect to Twitter » et vous y êtes !!

Tags: , , ,

Monter une DMZ avec Pfsense

12/08/2010 5 commentaires

Récemment j’ai refait un peu le réseau chez moi (opération durant laquelle j’ai appris les ACLs sous BIND, voire mon précédent billet) car je voulais mettre en place une DMZ.
Le firewall que j’utilise est l’excellent PfSense dans la dernière version stable 1.2.3 que je recommande chaudement. La version 2.0 est actuellement en béta et devrait être là avant la fin de l’année.

Voici donc un modeste tutoriel à destination de ceux qui souhaiteraient reproduire cette architecture.
Pour commencer il y a des prérequis matériels. Il vous 3 cartes réseau dans la machine dédiée à PfSense.
1 pour le LAN 1 pour le WAN et 1 pour la DMZ. Dans le tuto, PfSense est déjà en production avec le WAN et le LAN configurés.
Après avoir inséré la nouvelle carte et rebooté la machine il faut la déclarer sur PfSense. On se connecte alors sur la console en SSH avec le compte admin (le même que pour le GUI).

sur le menu présenté on choisit : 1) Assign Interfaces

 pfSense console setup
***************************
 0)  Logout (SSH only)
 1)  Assign Interfaces
 2)  Set LAN IP address
 3)  Reset webConfigurator password
 4)  Reset to factory defaults
 5)  Reboot system
 6)  Halt system
 7)  Ping host
 8)  Shell
 9)  PFtop
10)  Filter Logs
11)  Restart webConfigurator
12)  pfSense Developer Shell
13)  Upgrade from console
14)  Disable Secure Shell (sshd)

PfSense vous pose ensuite des questions :

Valid interfaces are:

em0     00:1b:21:10:5f:47   (up)
rl0     00:08:54:55:1f:68   (up)
em1     00:1b:21:10:5c:7a   (up)
tun0    0   (up)

Do you want to set up VLANs first?
If you are not going to use VLANs, or only for optional interfaces, you should
say no here and use the webConfigurator to configure VLANs later, if required.

Do you want to set up VLANs now [y|n]?n

*NOTE*  pfSense requires *AT LEAST* 2 assigned interfaces to function.
        If you do not have two interfaces you CANNOT continue. 

        If you do not have at least two *REAL* network interface cards
        or one interface with multiple VLANs then pfSense *WILL NOT*
        function correctly.

If you do not know the names of your interfaces, you may choose to use
auto-detection. In that case, disconnect all interfaces now before
hitting 'a' to initiate auto detection. 

Enter the LAN interface name or 'a' for auto-detection: em1

Enter the WAN interface name or 'a' for auto-detection: em0

em0 et em1 sont déjà configurés il s’agit des interfaces LAN et WAN. rentrez les alors à leur place respective.
Dans mon cas la nouvelle carte réseau est rl0 (FreeBSD sur lequel repose PfSense nomme les interfaces par le nom du pilote ici une Realtek)
Il faut alors rentrer rl0 quand PfSense vous demande de spécifier une interface optionnelle :

Enter the Optional 1 interface name or 'a' for auto-detection
(or nothing if finished): rl0

On presse Entrée à la question :

Enter the Optional 2 interface name or 'a' for auto-detection
(or nothing if finished):

On valide ensuite la configuration :

Do you want to proceed [y|n]?y

Voila on en a terminé avec l’ajout de la nouvelle carte. On se rend ensuite dans le GUI.
Après vous être logué passez la souris sur Interfaces dans la barre de menu et cliquez sur OPT1 :
.

On commence par cocher la case :

Enable Optional 1 interface

Puis on lui donne un nom ici DMZ.

Dans la partie General configuration, on choisit le type d’interface Static ou DHCP (ici Static)
On passe ensuite à la partie IP configuration et on rentre l’IP de l’interface ici 192.168.2.1.
On valide ensuite avec le bouton Save en bas de page.

On passe ensuite la souris sur Services dans la barre de menus et on clique sur DHCP Server.
Il y a 2 onglets un LAN et UN DMZ, on clique sur DMZ et on paramètre ou pas le serveur DHCP sur l’interface DMZ. En ce qui me concerne le DHCP est activé avec des réservations d’adresses ce qui me permets de cocher la case :

Deny unknown client

De cette façon aucune machine ne pourra obtenir d’IP dans la zone DMZ sans que ce soit expressément autorisé.

A ce stade votre DMZ est prête à accueillir les machines. En ce qui me concerne mon installation comporte 2 switchs un pour le LAN et un pour la DMZ.
Le plus important reste à venir à savoir le paramétrage des règles du Firewall. Sur mon installation le LAN est autorisé à communiquer avec la DMZ mais la DMZ ne peut pas aller vers le LAN alors que les machines peuvent aller sur Internet. Pour réaliser cette dernière partie on passe sa souris sur Firewall dans la barre de menu et on clique sur Rules. On clique sur l’onglet DMZ et on crée la règle suivante :

Voici les détails de la règle :


On laisse tout le reste par défaut.

Il ne vous reste plus qu’à créer les règles sur l’interface WAN pour atteindre les serveurs dans la DMZ (ici serveur web et mail). Vous pouvez passer par les règles de NAT qui peuvent créer automatiquement les règles du Firewall.

Tags: , , , , ,

Autoriser les requêtes Bind depuis un autre réseau

05/08/2010 Aucun commentaire

Voici la problématique. J’ai refondu un peu mon réseau en créant une DMZ pour héberger les serveurs de Mails et Web.
Une fois la migration terminée (je ferai un tuto sur comment créer une DMZ avec PfSense) je me suis heurté à un problème de résolution de noms pour le serveur en DMZ.
En effet mon serveur DNS basé sur Bind acceptait de répondre aux requêtes concernant les zones locales (reverse et domaine) mais rejetait les requêtes sortant sur Internet dans les logs on pouvait voir ceci :

Aug  4 21:54:26 debian named[3625]: client 192.168.0.240#56126:
 query (cache) 'api.twitter.com/A/IN' denied

On voit que Bind refuse de relayer la requête. Il la rejette car le serveur DNS n’est pas sur le même réseau que les clients.
Il va donc falloir autoriser les différents plans d’adressage présents dans notre réseau à accéder à s’adresser à Bind.

Pour cela on édite le fichier /etc/bind/named.conf.options

 vim /etc/bind/named.conf.options

On ajoute l’option allow-query avant la dernière accolade et avec le formatage suivant :

options {
	directory "/var/cache/bind";

	// If there is a firewall between you and nameservers you want
	// to talk to, you may need to fix the firewall to allow multiple
	// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

	// If your ISP provided one or more IP addresses for stable
	// nameservers, you probably want to use them as forwarders.
	// Uncomment the following block, and insert the addresses replacing
	// the all-0's placeholder.

	// forwarders {
	// 	0.0.0.0;
	// };

	auth-nxdomain no;    # conform to RFC1035
	listen-on-v6 { any; };
Allow-query {
127.0.0.1/8;
192.168.0.0/24;
192.168.2.0/24;
}; 

};

On redémarre bind

/etc/init.d/bind9 restart
ou
rndc reload

De cette façon Bind acceptera de relayer les requêtes en provenance des réseaux 192.168.0.0, 192.168.2.0 ainsi que les demandes venant de l’interface loopback.

Tags: , , , ,

sortie du kernel 2.6.35

04/08/2010 Aucun commentaire

Le kernel Linux dans sa toute dernière version 2.6.35 est disponible au téléchargement.
Cette version se caractérise déjà par un nombre de commits moins importants entre la RC1 et la version finale (2000 contre 3800 pour la 2.6.34), ce qui tend à prouver que le cycle de développement est de mieux en mieux maitrisé.

Parmi les nouveautés on trouve notamment :

  • Une gestion accrue de la répartition de la charge réseau au travers des CPUs
  • Des améliorations sur la prise en charge du système de fichiers BTRFS (DIRECT I/O un système permettant aux applications d’utiliser leur propre cache en lieu et place de celui du système de fichiers)
  • Journalisation décalée XFS
  • Implémentation du débogueur KDB aux côtés de KGDB (l’intérêt de KDB est de pouvoir tourner sur la machine locale)
  • Améliorations graphiques (support du H264 et VC1 pour i915 …)
  • Amélioration de la gestion mémmoire. Le Kernel sera capable de regrouper ensemble les pages mémoires utilisées et libres afin de permettre une meilleure allocation de ces dernières.

Parmi les autres nouveautés on trouve une nouvelle interface de configuration basée sur Menuconfig, Nconfig se base sur Ncurses et ses librairies.
Plusieurs nouveautés font également leur apparition aux chapitres Systèmes de Fichiers, Réseau et Gestion de la Mémoire.
Je vous invite donc à prendre connaissance du changelog sur kernelnewbies.org.

Tags: , , ,