Catégories
Open-source Systeme

Des livres de chevet pour GNU/Linux

Plusieurs lecteurs de ce blog, débutants ou utilisateurs dans le monde GNU/Linux, m’ont demandés si il existait des ouvrages faisant références dans le monde GNU/Linux.

Vaste question à laquelle je répond souvent par d’autres questions:

  • len Anglais ou en Français ?
  • focalisé sur une distribution ou générale ?
  • spécialisé sur un sujet (administration, utilisation, sécurité…) ?

Si vous répondez à ces questions par: Français, générale et tout les sujets alors les éditions Eyrolles ont peut être les « bibles » que vous cherchez. En effet, pas moins de 5 ouvrages couvrants tout les sujets, vont être publié par cet éditeur (3 sont actuellement disponibles).

J’ai eu entre les mains le premier tome et j’ai été agréablement surpris par l’habille mélange entre la théorie et la pratique (on est quand même là pour taper sur un clavier ;)).

Tome 1 – Les bases de l’administration système

51Q12V897WL._SL160_.jpg

Sommaire:

* Introduction

* L’installation

* Les commandes

* La lecture de scripts shell

* Les utilisateurs et les droits

* Les disques et les systèmes de fichiers

* La sauvegarde

* Les applications

* Installer des applications

* L’arrêt/démarrage

* Le réseau

* L’impression

* L’environnement graphique

* La sécurité

* Annexes

Tome 2 – Administration système avancée

51pznweM6zL._SL160_.jpg

Sommaire:

* Administration Linux professionnelle

* L’installation

* Le noyau

* La gestion des périphériques

* Les systèmes de fichiers

* Compléments sur les disques et les FS

* Le RAID

* Le LVM

* La sauvegarde

* Le démarrage

* La gestion des performances

* Le dépannage

* Compléments

* Annexes

Tome 3 – Sécuriser un serveur Linux

517DXj-klqL._SL160_.jpg

Sommaire:

* Quelques conventions de notation

* Progression pédagogique

* Introduction

* La cryptologie

* La sécurité locale

* PAM

* SELinux

* SSH

* PKI et SSl

* Kerberos

* Les pare-feu

* VPN

* Sécurisation des applications

* Audit

* Sécuriser un serveur

* Annexes

* Index

Je mettrais à jour cette page quand les tomes 4 et 5 seront publiés.

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

Actualité open-source de la semaine #40

L’actualité open-source de la semaine…

L’image de la semaine


O’Reilly de retour ? Une bonne nouvelle pour le libre !

Tout le monde en parle, sauf moi…

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

Autres choses ?

Catégories
Open-source Web

Installation de Liferay sous GNU/Linux

Le but est d’installer le portail Liferay sous un système GNU/Linux. La distribution retenue est une Ubuntu Server 8.10 10.04 mais la procédure suivante devrait être valable pour d’autres systèmes Linux et BSD aux locations des fichiers de configurations près.

Liferay - Liferay Portal.jpg

Installation du système d’exploitation GNU/Linux

Je suis partie sur une installation standard en mode texte. Les modules serveurs à installer sont les suivants:

  • Serveur SSH (pour l’administration à distance)
  • Java (JRE) 1.6 ou supérieure (installé par défaut sous Ubuntu)

Une fois le serveur installé, on peut entrer dans le vif du sujet avec l’installation de Liferay. Pour la suite de ce billet, je me suis basé sur le livre « Portal Administrator’s Guide » disponible au format PDF en anglais PDF (ici pour la version 5.2).

Installation de Liferay

On commence par récupérer la dernière version de Liferay sur le site officiel. Dans notre cas, il faut récupérer l’archive nommé « Bundled with Tomcat 6.0 ». Cette version inclue Liferay + Apache + Tomcat 6.0 + BD interne.

cd /usr/src

wget http://sourceforge.net/projects/lportal/files/Liferay%20Portal/liferay-portal-tomcat-6.0-5.2.3.zip

cd /opt

unzip /usr/src/liferay-portal-tomcat-6.0-5.2.3.zip

L’ensemble des fichiers se trouvent donc dans le répertoire /opt/liferay-portal-tomcat-6.0-5.2.3. Nous allons créer un lien symbolique vers le répertoire /opt/liferay afin de simplifier les choses et facilité les prochaines migrations.

ln -s liferay-portal-5.2.3 liferay

ln -s tomcat-6.0.18 liferay/tomcat

Premier lancement de Liferay

On peut alors lancer Liferay, pour cela on utilise la séquence suivante:

cd /opt/liferay/tomcat

./bin/startup.sh && tail -f ./logs/catalina.out

Si tout est ok, vous devriez voir s’afficher la page (http://adresseipduserveur:8080):

liferay.com - Welcome.jpg

Vous pouvez utiliser le login/password suivant:

Login: test@liferay.com

Password: test

Pour une rapide introduction des fonctions de Liferay, vous pouvez lire ce billet.

Si vous souhaitez arrêter Liferay, il faut utiliser les commandes suivantes:

cd /opt/liferay/tomcat

./bin/shutdown.sh

Automatiser le lancement de Liferay

Si vous souhaitez lancer Liferay sur le port découte Web standard (TCP port 80), il faut d’abord être sûr qu’un autre serveur Web ne tourne pas. Par exemple pour empêcher Apache de se lancer au démarrage d’un système GNU/Linux Ubuntu, il faut saisir les commandes:

apache2ctl stop

update-rc.d -f apache2 remove

update-rc.d apache2 stop 80 0 1 2 3 4 5 6 .

Configurer Liferay pour écouter sur le port TCP/80. Il faut éditer le fichier /opt/liferay/conf/server.xml et changer toutes les occurences 8080 par 80.

Plusieurs solutions sont alors possibles pour automatiser le lancement du bundle Liferay lors du démarrage du système GNU/Linux Ubuntu. Personnellement, je modifie le fichier /etc/rc.local pour lui ajouter la ligne suivante:

export JAVA_HOME=/usr/lib/jvm/default-java && PATH=$JAVA_HOME/bin:$PATH && cd /opt/liferay/tomcat/bin && ./startup.sh

et le rendre executable:

chmod 744 /etc/rc.local

Il ne reste plus qu’a relancer notre serveur Liferay:

./bin/shutdown.sh

./bin/startup.sh

Puis à vérifier que le serveur Tomcat répond bien aux requêtes HTTP sur le port 80: http://adresseipduserveur

Sécuriser les connections

A ce stade de l’installation, vous devriez disposer d’un serveur Liferay opérationnel répondant aux requêtes HTTP arrivant sur son port TCP/80. C’est déjà bien mais on peut mieux faire. Par exemple en sécurisant la connexion client serveur dans un tunnel SSL (HTTPs).

Pour cela, nous allons configurer le serveur Tomcat pour répondre seulement aux requêtes HTTPs et rediriger les requêtes HTTP vers HTTPs. Pour cet exemple, nous utiliserons un certificat que nous allons généré nous même (le navigateur Web va sûrement râler la première fois que vous allez accéder à votre portail), pour un serveur en production, il faudra utiliser un certificat généré par une autorité compétente (par exemple chez VeriSign).

Génération de la clés SSL

Nous allons générer une clés qui sera stocké dans le répertoire /opt/liferay/tomcat/webapps/keystore.key:

/usr/lib/jvm/default-java/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/liferay/tomcat/webapps/keystore.key

Je vous laisse répondre aux questions que keytool va vous poser (bien noter votremotdepasse).

Configuration du serveur Tomcat 6 pour la prise en compte du SSL

Il faut éditer le fichier ./conf/server.xml et remplacer la bonne section SSL (qui doit être commenté par défaut) par:

<Connector port=”443″

maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″

enableLookups=”false” disableUploadTimeout=”true”

acceptCount=”100″ debug=”0″ scheme=”https” secure=”true”

clientAuth=”false” sslProtocol=”TLS”

keystoreFile=”/opt/liferay/tomcat/webapps/keystore.key”

keystorePass=”votremotdepasse” />

Configuration du serveur Liferay pour la prise en compte du SSL

On ajoute la section suivante au fichier ./conf/web.xml (avant le tag </web-app>):

<security-constraint>

<web-resource-collection>

<web-resource-name>securedapp</web-resource-name>

<url-pattern>/*</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>

Il ne reste plus qu’a relancer notre serveur Liferay:

./bin/shutdown.sh

./bin/startup.sh

Puis à vérifier que le serveur Tomcat répond bien aux requêtes HTTPs: https://adresseipduserveur

Utilisation du JRE SUN

A l’utilisation, j’ai remarqué une certaine instabilité de la JRE (openjava) fournie avec Ubuntu. J’ai donc remplacé la JRE par celle de SUN:

sudo apt-get install sun-java6-jre

cd /etc/alternatives/

mv java java.default

ln -s /usr/lib/jvm/java-6-sun/jre/bin/java java

cd /usr/lib/jvm

mv default-java default-java.default

ln -s default-java java-6-sun

Et voili (ne pas oublier de redémarrer Liferay après ces menues manipulations).

Conclusion

Votre portail Liferay est maintenant opérationnel, il ne reste plus qu’a le configurer pour qu’il répondre à vos besoins. Pour cela, je vous laisse lire ce PDF (en Anglais), qui est le « quick start guide » du portail.

Catégories
Open-source Systeme

Synchronisation de deux répertoires avec rsync

Rsync est un utilitaire présent sur tout les systèmes Unix (de Linux à FreeBSD en passant par Mac OS X et même sous Windows en passant par Cygwin) et ayant pour but la synchronisation de fichiers/répertoires. Cette synchronisation peut se faire soit de manière locale (par exemple deux répertoire d’un même disque) soit par le réseau (via le protocole SSH).

Un petit exemple valant mieux qu’un long discours…

Imaginons que l ‘on veuille synchroniser un répertoire (/home/nicolargo/src) avec un autre stocké sur une clés USB (/media/uskkey/dst).

Le répertoire src contient 3 fichiers:

ls /home/nicolargo/src

1

2

3

Le répertoire dst est vide:

ls /media/usbkey/dst

Pour synchroniser le répertoire dst avec le contenu du répertoire src, il faut saisir la commande suivant:

rsync –delete -av /home/nicolargo/src/ /media/usbkey/dst

Attention: mettre deux – avant le delete

building file list … done

./

1

2

3

wrote 231 bytes read 80 bytes 622.00 bytes/sec

total size is 0 speedup is 0.00

/home/nicolargo/src est le répertoire source.

/media/usbkey/dst est le répertoire destination.

L’option -a (pour archive) permet de garder les propriétés des fichiers (droits, propriétaire, lien symbolique) intactes. L’option -v (verbose) permet d’afficher ce que fait rsync pendant sont exécution.

Si vous souhaitez que rsync ne créé par un répertoire src dans le répertoire dst mais qu’il mette directement les fichiers contenus dans src, il faut penser à mettre un / à la fin du répertoire source.

On vérifie que le répertoire destination contient bien les 3 fichiers.

ls /media/usbkey/dst

1

2

3

Nous allons maintenant vérifier que la commande « delete » fonctionne correctement. L’option –delete (noté le double – avant la commande) permet de supprimer dans le répertoire destination les fichiers non présents dans le répertoire source.

Nous pouvons le tester simplement en supprimant le fichier 1 du répertoire source:

rm /home/nicolargo/src/1

Puis en re-synchronisant:

rsync –delete -av /home/nicolargo/src/ /media/usbkey/dst

Attention: mettre deux – avant le delete

building file list … done

deleting 1

./

wrote 104 bytes read 20 bytes 248.00 bytes/sec

total size is 0 speedup is 0.00

On vérifie que le répertoire destination contient seulement 2 fichiers.

ls /media/usbkey/dst

2

3

Quelques options utiles…

Rsync fourmille d’options (je vous laisse consulter le man page pour une liste exhaustive). Voici quelques options que je trouve utile de détailler.

Synchronisation à travers un tunnel SSH

Si votre répertoire destination se trouve sur une autre machine disposant d’un serveur SSH correctement configuré (nommé serveur dans mon exemple ci-dessous), il est possible de faire une synchronisation à travers le réseau grâce à la commande suivante:

rsync –delete  -avz -e ssh /home/nicolargo/src/ serveur:/home/nicolargo/dst

Attention: mettre deux – avant le delete

J’ai ici ajouté l’option -z afin de compresser les données avant de les envoyer dans le réseau.

Utilisation de Rsync comme d’un daemon

Il est possible de lancer Rsync en mode daemon en utilisant l’option –daemon. Dans ce cas, on peut se passer d’un serveur SSH. Le daemon écoutera (sur le port TCP/873) les requêtes de synchronisation venant de machine lancant Rsync en mode client (voir la syntaxe dans les chapitre précédant).

Vous trouverez un exemple de configuration de Rsync en mode daemon ici.

Exclure des fichiers de la synchronisation

Si l’on souhaite exclure certain fichier de la synchronisation, on peut utiliser l’option –exclude.

Exemple ou l’on souhaite synchroniser tous les fichiers sauf ceux ayant pour extension .log:

rsync –delete  -av –exclude « *.log » /home/nicolargo/src/ /media/usbkey/dst

Attention: mettre deux – avant le delete et le exclude

Et si je veux simuler

Très facile Simone, il suffit d’utiliser l’option -n. Utilisée avec l’option -v, on aura la liste des fichiers qui seront copiés ou effacés…

Pour finir…

Et voilà pour cette très courte introduction à ce précieux outils. Si vous utilisez ce logiciel et que vous avez des options intéressantes à expliquer, les commentaires sont fait pour ça 😉

Catégories
Open-source

Actualité open-source de la semaine #39

L’actualité open-source de la semaine…

L’image de la semaine

Architectuur_5_2008_kz_v5_m.jpg

La nouvelle pièce de 5 Euros faite avec du libre !!!

Tout le monde en parle, sauf moi…

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

  • Fedora Core 10, la preview est disponible
  • DotClear 2.1 essaye de revenir sur WordPress !
  • Theora, le format vidéo libre basée sous MPEG-4 passe en version 1.0
  • Songbird 1.0 ? c’est pour bientôt..

Autres choses ?

Catégories
Developpement Open-source

Comment utiliser SourceForge

SourceForge.net_ Project Documentation.jpg

Un des fondement de l’open-source est le partage. SourceForge.net est un service Web mettant à disposition des développeurs libres tout un tas d’outils leurs permettant de partager le fruit de leur travail.

Nous allons dans ce billet voir comment créer un nouveau projet, pour mettre à disposition de la communauté Internet:

  • Création d’un compte pour un développeur
  • Ajout d’un nouveau projet (description, lien vers la page Web du projet…)
  • Ajouts de fichiers (sources, binaires, docs) dans le projet
  • Création d’une arborescence des sources sur le serveur SVN du projet

Création d’un compte utilisateur sous SourceForge

C’est la première étape: créer votre identité numérique (compte) sous SourceForge.

Ce compte vous permettra de vous identifié auprès de SourceForge. Il est bien sûr possible de créer plusieurs projets sous un même compte.

Par exemple, mon compte est le suivant: nicolargo

SourceForge.net_ Developer Profile.jpg

Création d’un nouveau projet sous SourceForge

Après s’être authentifié avec votre compte, un lien permettant la création d’un nouveau projet sera présent sur la page principale:

SourceForge.net_ Open Source Software.jpg .

Vous allez alors être guidé par un assistant comportant 4 étapes. La première consiste à saisir les informations générales (type de projet, nom, descriptions…). C’est une étape très importante. En effet, la description du projet est un des critère regardé par les administrateurs pour accepter ou non l’hébergement de votre projet.

La seconde étape vous permet de sélectionner le type de licence libre appliqué à votre projet.

La troisième est un peu plus laborieuse puisqu’il faut associé des catégories aussi diverses que variés à votre projet.

Enfin, la dernière étape consiste à accepter le contrat d’utilisation de SourceForge.

Les administrateurs de SourceForge sont assez pointilleux sur la qualité des projets hébergés (ce qui n’est pas plus mal…). Ainsi, après création, il faudra attendre entre 24 et 48h avant de pouvoir utiliser ce nouveau projet (si ce dernier est accepté).

Importation de fichiers associés à votre nouveau projet SourceForge

Une fois accepté, votre projet est une coquille vide ne comportant qu’une description. Sous Sourceforge, chaque projet est accessible depuis une URL dédiée: https://sourceforge.net/projects/<nomduprojet>/

La première chose à faire est de proposer aux utilisateurs qui tomberaient sur votre projet quelques chose à télécharger (source ou binaire peut importe). Pour cela, il faut se rendre dans le menu Admin/File Releases.

SourceForge.net_ Xyz2Lla.jpg

On clique ensuite sur le lien Add Release, puis on entre le numéro/nom de version du fichier à proposer en téléchargement et enfin on clique sur le bouton Create this release.

Après avoir saisi les descriptions (notes et change log) pour cette version, il faut ajouter le fichier sur le serveur (Add files to this release). Plusieurs solutions sont possibles (Web upload, WebDav, SFTP, RSYNC) . Personnellement j’utilise SFTP. Par exemple, si je veux envoyer le fichier projet.tgz sur le serveur SourceForge, j’utilise les commandes suivantes:

sftp <compte>@frs.sourceforge.net

Connecting to frs.sourceforge.net…

The authenticity of host ‘frs.sourceforge.net (216.34.181.57)’ can’t be established.

RSA key fingerprint is 68:b3:26:02:a0:07:e4:78:d4:ec:7f:2f:6a:4d:32:c5.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘frs.sourceforge.net,216.34.181.57’ (RSA) to the list of known hosts.

<compte>@frs.sourceforge.net’s password:

sftp> cd uploads

sftp> put projet.tgz

Uploading projet.tgz to /incoming/<…>/uploads/projet.tgz

projet.tgz 100% 241 0.2KB/s 00:01

sftp> exit

Une fois le fichier « uploadé » sur le serveur, il faut revenir à la page ou l’on a saisi les descriptions de la version et cliquer sur le bouton Add files and/or Refresh view. Le nom du fichier devrait apparaître, il reste à le sélectionner puis à cliquer une seconde fois sur le bouton Add files and/or Refresh view.

De retour sur la page du projet (https://sourceforge.net/projects/<nomduprojet>/), vous devriez voir apparaître le lien vers la page de téléchargement:

SourceForge.net_ Xyz2Lla.jpg

Ces opérations sont à refaire pour chaque nouvelles versions de votre logiciel.

Il est également possible, si votre projet dispose d’une page Web dédié, d’ajouter un lien vers cette page à partir de SourceForge. Pour cela, il faut se rendre dans le menu Admin/Shell-DB-Web:

SourceForge.net_ Xyz2Lla.jpg

Puis saisir l’URL de votre page Web dans le champ: Project Home Page URL, suivi d’un clique sur le bouton Update.

Partager ces sources dans le SVN SourceForge

SVN est un système de gestion de configuration permettant de travailler seul ou à plusieurs sur un code dont les sources sont centralisé sur un serveur. Sourceforge propose un serveur SVN pour votre projet.

Par défaut, seul CVS (un autre système de gestion de configuration) est activé. Pour activé SVN, il faut se rendre dans le menu Admin/Subversion.

SourceForge.net_ Xyz2Lla.jpg

Puis activer le radio bouton « enable subversion » puis cliquer le bouton Update.

L’accès à votre répertoire SVN se fera par l’URL suivante (à configurer dans votre environnement de développement favori, Eclipse par exemple…):

https://<nomduprojet>.svn.sourceforge.net/svnroot/<nomduprojet>

La première importation de vos sources peut se faire avec la commande suivante. Par exemple si vous voulez importer les sources d’un projet se trouvant dans le répertoire local /home/nicolargo/dev/projet:

cd /home/nicolargo/dev

svn import projet https://<nomduprojet>.svn.sourceforge.net/svnroot/<nomduprojet>

Vous pouvez vérifier l’mportation avec la commande suivante:

svn list https://<nomduprojet>.svn.sourceforge.net/svnroot/<nomduprojet>

Conclusion

On vient juste de voir une infime partie des services proposés par SourceForge. Pour aller plus loin vous pouvez consulter la documentation officielle (en Anglais uniquement à l’heure actuelle…).

Catégories
Open-source

Mise à jour de Nagios 3.0.5

La nouvelle version de Nagios (3.0.5) est en ligne. La liste des changements est disponible içi. Comme toujours, il est fortement conseillé de mettre à jour vos serveurs. Pour celà vous pouvez suivre une de ces procédures:

Je viens de tester la migration d’une version 3.0.4 vers 3.0.5 sans problème:

A vous de jouer !

Catégories
Open-source Systeme

La bible de FreeBSD

Si vous suivez régulièrement ce blog, vous savez tout le bien que je pense du système d’exploitation FreeBSD. C’est celui-ci que j’utilise sur mes serveurs critiques nécessitant des fonctions réseaux stables et performantes.

Sans rentrer dans un jeu de troll avec les « aficionados » d’autres systèmes d’exploitation, FreeBSD a un avantage que je trouve énorme pour un administrateur: la clarté de l’arborescence des fichiers de configuration. Un sentiment de propreté que je n’ai pas retrouvé sous GNU/Linux. Pour moi, le système d’information idéal, serait composé de serveur sous FreeBSD et de client sous GNU/Linux, on en est malheureusement encore loin dans la plupart des entreprises Françaises…

Mais revenons au but pricipal de ce billet qui est l’annonce de la publication d’un livre sur la dernière version de FreeBSD: « FreeBSD 7.0 Le guide complet de FreeBSD » aux éditions Broché.

51mbmb4lnzl_sl160_.jpg

C’est ce que l’on appelle une « bible » dans le jargon des bouquins techniques, un livre référence auquel on revient immanquablement. La structure du livre est à la fois adaptée à ceux qui ne connaissance pas encore les systèmes BSD et ceux qui l’utilise depuis de nombreuses années.

Peux de livre sont indispensables pour un administrateur réseau (la faute à Internet…), mais celui-ci en fait parti…

Catégories
Open-source Reseau

Mise à jour des plugins dans Nagios

litejazz_logo.pngLa version 1.4.13 des plugins officiels de Nagios viennent de sortir. Pour une description précise des changements, vous pouvez consulter ce billet sur Nagios-fr.

Voici donc un procédure effectuer cette mise à jour sur un serveur existant. Cette procédure est applicable pour toutes les mises à jours des plugins.

Récupération des plugins

Il faut se rendre sur le site officiel pour télécharger la dernière version des plugins.

wget http://ovh.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz

Compilation et installation

On lance la classique « combo » suivant:

cd nagios-plugins-1.4.13

./configure

make

make install

Puis on met à jour les droits des fichiers:

chown nagios:nagios /usr/local/nagios/libexec/*

Redémarrage de Nagios

Sous Fedora:

service nagios restart

Sous Ubuntu/Debian

/etc/init.d/ nagios restart