Bugzilla et un outil de suivi de bug (bug tracking system) permettant à une communauté d’utilisateur de logger, suivre et traité les bugs d’un système/logiciel. Bugzilla est utilisé pour le suivi de nombreux logiciels libre: Mozilla, Kernel Linux, Gnome, KDE, Apache, Open Office, Eclipse…
Catégorie : Systeme
Il y a plusieurs méthodes pour installer Nagios, le système de supervision libre, sur un nouveau serveur. La plus simple est d’utiliser les dépôts officiels de votre distribution GNU/Linux, avec le désavantage de ne pas avoir les dernières versions disponibles. La seconde est de suivre pas à pas mon tutoriel (PART 1 et 2) qui permet de faire une compilation depuis les sources.
Je vous propose dans ce billet une troisième voie, qui mixe la simplicité de la première méthode et la finesse de la seconde.
J’ai développé un petit script (sous licence GPL) permettant d’automatiser l’installation d’un serveur Nagios complet sur une distribution GNU/Linux Ubuntu (j’ai validé le script sur Ubuntu Desktop et Ubuntu Server). Libre à vous de modifier ce script pour l’adapter à vos besoins. Si des âmes charitables veulent modifier le script pour l’adapter à d’autres distribution GNU/Linux ou BSD, je suis preneur pour les mettre en téléchargement sur mon SVN.
Récupération du script
On lance la commande suivante pour télécharger le script sur son serveur et le rendre exécutable:
wget --no-check-certificate https://raw.github.com/nicolargo/nagiosautoinstall/master/nagiosautoinstall-ubuntu.sh chmod a+x nagiosautoinstall-ubuntu.sh
PS: vous pouvez télécharger le script directement sur GitHub.
Lancement du script
Il suffit ensuite de lancer le script et de répondre aux questions posées par le système (en root ou précédé de la commande sudo):
./nagiosautoinstall-ubuntu.sh
Informations sur l’installation
Dans la version 0.8 du script la configuration finale est la suivante:
Nagios Core version 4.0.0 Nagios Plugins version 1.5 Utilisateur système: nagios Groupe système: nagios Utilisateur pour l'interface Web (http://localhost/nagios/): nagiosadmin
Clamav est un antivirus sous licence libre (GPL) bien connu sur les environnements Windows. Ce que l’on sait moins, c’est qu’il est également disponible sur nos systèmes GNU/Linux. J’attend déjà des lecteurs qui tempêtent en disant, à juste titre, qu’à l’heure actuelle, il n’y pas ou peu de virus sur ce type de système Unix. Pourquoi s’embêter à développer des virus compliqués sur un système ayant une part de marché de l’ordre de 1% alors qu’il est facile d’en concevoir sur les systèmes occupant les 99% restant…
Ce constat mis à part, il est possible que des virus spécifiques (comme des virus s’attaquant à des serveurs, ou la part de marché des système GNU/Linux est bien plus importante) fassent leurs apparitions dans les prochaines années, quoi que l’on en dise il est tout à fait possible de développer un virus pour GNU/Linux. De plus dans les systèmes d’information modernes, la communication et l’échange des données entre les mondes Windows et GNU/Linux sont de plus en plus fréquentes. Quoi de plus désagréable pour un utilisateur GNU/Linux d’envoyer à un utilisateur Windows un fichier vérolé qui va corrompre son « beau » système…
Nous allons donc voir comment installer et utiliser Clamav sur un système GN/Linux Ubuntu.
Installation de Clamav
Par chance, Clamav et les bases de Virus sont dans les dépôts officiels:
[shell]aptitude install clamav[/shell]
Utilisation de Clamav
Scan d’un répertoire:
[shell]
clamscan -r
———– SCAN SUMMARY ———–
Known viruses: 676913
Engine version: 0.95.3
Scanned directories: 78
Scanned files: 1224
Infected files: 0
Data scanned: 196.17 MB
Data read: 208.18 MB (ratio 0.94:1)
Time: 51.808 sec (0 m 51 s)
[/shell]
Et hop, à automatiser dans crontab ou dans vos applications…
Pour une mise à jour majeure 7.x -> 8.x. Je vous conseille de suivre les procédures se trouvant sur le site suivant: http://people.freebsd.org/~rse/upgrade/
FreeBSD est surement un des systèmes d’exploitations les plus stable et modulaire que je connaisse. Son administration est une réelle partie de plaisir sauf pour un point: la mise à jour… Nous allons dans un premier temps expliquer pourquoi cette mise à jour n’est pas triviale et ensuite détailler une mise à jour complète.
Pourquoi ?
Un système FreebSD est composé de trois groupe de logiciels: le noyau, le monde et les ports.
Le noyau (ou kernel) est le coeur de système, il permet la communication avec le matériel (CPU, mémoire, entrée/sortie, processus…). Il est géré par l’équipe de développement de FreeBSD. Il est possible de customiser finement ce noyau à vos besoins.
Le monde (ou world) représente des applications ou services proche du système, fournies avec le système FreeBSD.
Les ports sont des applications/services/librairies portés par leurs auteurs ou par des personnes tierces sur le système FreeBSD.
Ainsi quand on doit faire une mise à jour de notre système FreeBSD, il faut commencer par se poser la question suivante: que veut on mettre à jour ? Nous allons dans la suite du billet détailler une mise à jour complète de son système FreeBSD
Comment ?
Avant de commencer la phase de mise à jour proprement dite, il faut récupérer les sources du noyau et du monde (le tout étant recompilé avant d’être installé sur votre machine).
Récupération des sources
Plusieurs méthodes existent. Personnellement, j’utilise la méthode cvsup. On commence par installer le logiciel cvsup (ou csup qui est plus rapide) avec la commande suivante:
pkg_add -r cvsup
mkdir /usr/local/etc/cvsup/
cp /usr/share/examples/cvsup/stable-supfile /usr/local/etc/cvsup
cp /usr/share/examples/cvsup/ports-supfile /usr/local/etc/cvsup
Ensuite on édite les fichiers de configuration /usr/local/etc/cvsup/stable-supfile et /usr/local/etc/cvsup/ports-supfile pour modifier l’URL du serveur de mise à jour:
*default host=cvsup1.fr.FreeBSD.org
Mise à jour du monde
On télécharge les mises à jours:
cvsup /usr/local/etc/csup/stable-supfile
cvsup /usr/local/etc/csup/ports-supfile
On commence par mettre à jour le monde:
cd /usr/src/
make buildworld
On redémarre en mode de maintenance:
mergemaster -p
make installworld
mergemaster -i
On redémarre en mode normal.
PS: l’étape de reboot en mode maintenance n’est pas obligatoire mais fortement conseillée…
Mise à jour du noyau
Puis et seulement puis, on met à jour le noyau de notre système avec les commandes suivantes:
cd /usr/src/sys/i386/conf
ls GENERIC
cd /usr/src
make buildkernel KERNCONF=GENERIC
make installkernel KERNCONF=GENERIC
PS: si vous avez customiser votre noyau, il faut donner le nom du fichier de configuration en lieu et place de GENERIC.
Mise à jour des ports
Comme pour le mode et le noyau, il est nécessaire de récupérer la liste des derniers ports (arbre des ports dans le jargon FreeBSD), pour cela j’utilise les commandes:
portsnap fetch
portsnap extract
portsnap update
Ensuite j’utilise le logiciel portupgrade pour effectuer les mise à jour. Il faut dans un première temps installer ce logiciel sur votre système:
pkg_add -r portupgrade
Ensuite on lance la mise à jour de nos ports installés:
portupgrade -ar
FreeBSD-Update Une solution tout en un
Sur les dernière versions de FreeBSD RELEASE (>6.3 et >8.0), un logiciel automatisant ces taches a été développé par l’équipe de FreeBSD. Le logiciel en question s’appelle freebsd-update.
Attention cette procédure ne peut pas s’appliquer sur les versions STABLE.
Il permet de mettre à jour votre système a deux niveaux:
Mise à jour au niveau sécurité
Il suffit de saisir les deux commandes suivantes:
freebsd-update fetch
freebsd-update install
Mise à jour majeure et mineure
Les trois commandes suivantes vont mettre à jours les ports et migrer FreeBSD dans la dernière version disponible (8.1-RELEASE):
portupgrade -af
freebsd-update -r 8.1-RELEASE upgrade
freebsd-update install
On doit ensuite rebooter la machine, puis re-saisir la commande suivante:
freebsd-update install
Mon script post install Ubuntu
Si comme moi vous êtes amené à installer/ré-installer régulièrement des PC sous GNU/Linux, un certain nombres d’actions post installation sont à effectuer (installation de logiciel, configuration desktop…).
Comme j’ai horreur de refaire plusieurs fois la même chose, je me suis créé un petit script shell qui:
- ajoute les dépôts PPA que j’utilise régulièrement
- installe les logiciels manquant dans la distribution d’origine
Étant de nature partageur, voici le script que vous pouvez adapter à vos besoins.
Le script a été validé pour les versions GNU/Linux Ubuntu Desktop 10.04 , 10.10 et 11.04.
Récupération du script directement sur GitHub ou en saisissant les commandes suivantes:
wget http://svn.nicolargo.com/ubuntupostinstall/trunk/ubuntupostinstall.sh
chmod a+x ./ubuntupostinstall.sh
Après l’avoir édité et si nécessaire adapté à votre besoin, vous pouvez lancer le script:
sudo ./ubuntupostinstall.sh
Et vous chers lecteurs, avez vous dans vos répertoires des scripts shell du même type ?
Je viens de recevoir une clés USB de 32 Go (que l’on trouve sur le web pour moins de 100 Euros). Je souhaite y installer deux partitions: la première de 5 Go permettra d’y installer un système live Ubuntu, l’autre de 25 Go pour y stocker mes données au format FAT32 (pour rester compatible avec le monde Windaube and co).
Attention: les opérations suivantes vont effacer le contenu de votre clés USB, pensez donc à faire un backup…
Nous allons dans ce billet détaillé l’installation d’un serveur WordPress (moteur de blog) sur une machine Linux Ubuntu. Vous aurez ainsi une plate-forme de blogging libre !
Installation du système GNU/Linux
On commence par mettre à jour notre système:
sudo aptitude update
sudo aptitude safe-upgrade
Mise en place des règles de Firewall:
#!/bin/bash
########################
# Nicolargo – 28/10/2009
# Regle de Firewall
# Serveur hebergeant:
# – SSH
# – HTTP
########################
# Debut
# Chargement des modules externes pour le suivi des connexions FTP
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# On commence par effacer toutes les regles
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# On autorise les flux locaux
iptables -A INPUT -i lo -j ACCEPT
# On autorise les flux des connexions etablies
iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
#————————–
# Autorise les flux entrant
#————————–
# SSH serveur
iptables -A INPUT -p tcp –dport ssh -j ACCEPT
# Web serveur
iptables -A INPUT -p tcp –dport http -j ACCEPT
#————————–
# Autorise les flux sortant
#————————–
iptables -A OUTPUT -p tcp –dport domain -j ACCEPT
iptables -A OUTPUT -p udp –dport domain -j ACCEPT
iptables -A OUTPUT -p udp –dport ntp -j ACCEPT
iptables -A OUTPUT -p tcp –dport http -j ACCEPT
iptables -A OUTPUT -p tcp –dport https -j ACCEPT
#————————–
# On drop-and-logue le reste
#————————–
# En cas d’attaque de type Syn-Flood
iptables -N syn-flood
iptables -A syn-flood -m limit –limit 10/second –limit-burst 15 -j RETURN
iptables -A syn-flood -j LOG –log-prefix « SYN flood: »
iptables -A syn-flood -j DROP
# UDP
iptables -A INPUT -p udp -j LOG –log-prefix « IPTABLES UDP-IN: »
iptables -A INPUT -p udp -j DROP
iptables -A OUTPUT -p udp -j LOG –log-prefix « IPTABLES UDP-OUT: »
iptables -A OUTPUT -p udp -j DROP
# TCP
iptables -A INPUT -p tcp -j LOG –log-prefix « IPTABLES TCP-IN: »
iptables -A INPUT -p tcp -j DROP
iptables -A OUTPUT -p tcp -j LOG –log-prefix « IPTABLES TCP-OUT: »
iptables -A OUTPUT -p tcp -j DROP
# Fin
Automatisation du lancement des règles au démarrage du serveur:
/etc/init.d/iptables.sh
chmod a+x /etc/init.d/iptables.sh
sudo update-rc.d iptables.sh defaults
Installation de LAMP
Simplement avec la commande suivante:
sudo install apache2 mysql-server php5 php5-mysql phpmyadmin
Configuration du serveur Apache
Test d’Apache en entrant l’adresse de votre serveur (http://@IPduserveur/) dans un navigateur Web: »It works! »
On désactive se site par défaut avec les commandes suivantes:
sudo a2dissite default
/etc/init.d/apache2 reload
Nous allons maintenant configurer le serveur Apache pour gérer les adresses virtuelles. Il faut dans un premier temps déclarer dans votre DNS une nouvelle entrée qui fait pointer le nom de domaine vers l’adresse IP du serveur (blog.mondomaine.com A @IPduserveur).
Pour tester votre DNS (attention la mise à jour peut prendre un certain temps):
ping blog.mondomaine.com
PING blog.mondomaine.com () 56(84) bytes of data.
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=1 ttl=47 time=111 ms
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=2 ttl=47 time=110 ms
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=3 ttl=47 time=110 ms
…
On configure ensuite le serveur Apache pour cette adresse:
# cd /etc/apache2/sites-available
# sudo vi virtualhosts
On édite:
NameVirtualHost @IPduserveur
<VirtualHost @IPduserveur>
ServerName @IPduserveur
DocumentRoot /var/www/default
</VirtualHost>
<VirtualHost blog.mondomaine.com>
ServerName blog.mondomaine.com
DocumentRoot /var/www/blog
</VirtualHost>
On créer ensuite les arborescences correspondantes:
cd /var/www
sudo mkdir default
sudo mkdir blog
sudo chown -R www-data:www-data *
Puis on active le site:
sudo a2ensite virtualhosts
sudo /etc/init.d/apache2 reload
Configuration de MySQL
On accède au logiciel phpMyAdmin qui va nous permettre de configurer une base de donnée pour notre blog WordPress. Pour cela, il faut saisir l’URL suivante dans votre navigateur: http://blog.mondomaine.com/phpmyadmin/
Puis ensuite saisir le nom de la base de donnée (par exemple blog) et enfin cliquer sur Créer:
PS: il est possible (et conseillé) de créer un utilisateur dédié pour pour accéder à cette base de donnée. Le plus simple est de créer un utilisateur (avec comme nom « blog ») puis de demander la création de la base de donnée correspondante. Les droits seront ainsi fixés automatiquement.
Installation de WordPress
La dernière version de WordPress 2.9 arrivera dans les bacs dans les prochains jours. Nous allons donc utiliser la version stable actuelle (WordPress 2.8.6) pour illustrer ce billet.
On commence par télécharger les sources:
wget http://wordpress.org/latest.zip
Puis on décompresse l’archive:
unzip latest.zip
Il faut ensuite déplacer le répertoire wordpress dans la bonne arborescence de votre serveur. Ainsi, si vous souhaitez accéder à votre blog par l'adresse http://blog.mondomaine.com/, il faut copier le contenu du répertoire de la manière suivante.
sudo cp -r ./wordpress/* /var/ww
Par contre si vous souhaitez que votre blog soit accessible par l'adresse http://blog.mondomaine.com/blog/, il faut saisir la commande:
sudo mv wordpress /var/www/blog
Il faut ensuite éditer le fichier wp-config.php:
cd /var/www cp wp-config-sample.php wp-config.php sudo chmod a+r wp-config.php vi wp-config.php
Puis éditer le fichier selon votre configuration:
define(‘DB_NAME’, ‘blog’);
define(‘DB_USER’, ‘blog’);
define(‘DB_PASSWORD’, ‘monmotdepasse’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, »);
Enfin on finalise l’installation en allant à l’URL: http://blog.mondomaine.com/wp-admin/install.php
Pour résumer
Votre blog est maintenant accessible par l’adresse http://blog.mondomaine.com/
L’interface d’administration se trouve à l’adresse: http://blog.mondomaine.com/wp-admin/
Bon blog !
Affiche la liste des processeurs de votre machine
[shell]sed -n ‘s/^model name[ \t]*: *//p’ /proc/cpuinfo[/shell]
Résultat:
[shell]Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz
Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz[/shell]
Affiche votre adresse IP publique
[shell]curl ip.appspot.com[/shell]
Résultat:
[shell]82.223.86.122[/shell]
Se localiser en ligne de commande (enfin localiser son DSLAM)
[shell]curl -s "http://www.geody.com/geoip.php?ip=$(curl -s icanhazip.com)" | sed ‘/^IP:/!d;s/<[^>][^>]*>//g'[/shell]
Résultat:
[shell]IP: 82.223.86.122 Location: , France (GANDI)[/shell]
MTR = traceroute+ping
[shell]mtr www.google.com[/shell]
Création d’une image thumbnail à partir d’une vidéo
[shell]ffmpeg -itsoffset -20 -i $i -vcodec mjpeg -vframes 1 -an -f rawvideo -s 640x272 ${i%.*}.jpg[/shell]
Tester son installation 5.1
[shell]speaker-test -D plug:surround51 -c 6 -l 1 -t wav[/shell]
Résultat:
[shell]Le périphérique de lecture est plug:surround51
Les paramètres du flux sont 48000Hz, S16_LE, 6 canaux
Fichier(s) WAV
Taux fixé à 48000Hz (demandé 48000Hz)
Taille du tampon entre 64 et 16384
Taille de la periode entre 32 et 8192
Utilisation du tampon maximal 16384
Périodes = 4
La durée de la période à été définie= 4096
La taille du tampon à été définie = 16384
0 – Avant Gauche
4 – Centre
1 – Avant Droit
3 – Arrière Droit
2 – Arrière Gauche
5 – Effets basse fréquence
Temps par période = 8,371535[/shell]
Source: http://www.commandlinefu.com/
Commenter plusieurs lignes dans vi
Petite note interne pour commenter plusieurs lignes (par exemple 4 avec le caractère de commentaire #) dans vi ou vim.
Il suffit de se positionner sur la première ligne à commenter puis de taper:
[shell]:.,+4 s/^/#/g[/shell]
Pour revenir en arrière et supprimer les commentaires:
[shell]:.,+4 s/^#//g[/shell]
Fin de la note…
Si comme moi vous avez essayé le logiciel de screencast XvidCap sous Ubuntu Janty, vous avez également du être déçu… En effet, le logiciel disponible dans les dépôts crache lamentablement au démarrage de l’enregistrement. C’est sur la bible documentaire Ubuntu-fr (que j’ai légèrement modifié pour l’occasion) que j’ai trouvé la solution que je détaille ici.
On va donc commencer par installer XvidCap à partir du dépôt Ubuntu afin de satisfaire toutes les dépendances:
[shell]sudo aptitude install xvidcap[/shell]
Ensuite on installe un certain nombre de pré-requis nécessaires à la compilation de XvidCap:
[shell]sudo aptitude install libavcodec-unstripped-52 libxmu-dev libglade2-dev libgtk2.0-dev build-essential[/shell]
On récupère la dernière version des sources (version 1.1.7 au moment de l’écriture de ce billet):
[shell]cd ~
mkdir tmp
cd tmp
wget http://downloads.sourceforge.net/project/xvidcap/xvidcap/1.1.7/xvidcap-1.1.7.tar.gz?use_mirror=surfnet[/shell]
On compile:
[shell]cd xvidcap-1.1.7
./configure
make
sudo make install[/shell]
Il ne reste plus qu’a lancer le logiciel apr le menu « Applications / Son et vidéo / XvidCap screen capture ».