walk-hoary

Mémo de compilation de kernel

Introduction

Il y a quelques années, il était assez fréquent de devoir recompiler son noyau linux pour pouvoir utiliser tel ou tel module… Aujourd’hui c’est très rare mais reste toujours instructif. Je vais donc détailler ici les étapes essentielles pour la compilation mais aussi l’installation d’un noyau compilé par vos petites main sous debian/ubuntu/linuxmint…

Pre-requis

Les sources

Les sources du noyau. On va prendre ceux de linuxmint, mais vous pouvez allez cherchez la version que vous voulez sur kernel.org. Ces deux moyens vont vous donner un fichier tar.gz que nous devons décompresser dans l’emplacement standard /usr/linux/src (Si vous prenez les sources depuis apt de votre distrib, il devrait se trouver dans /usr/src/). Vos sources sont à décompresser dans le répertoire universel /usr/src/linux/

Pour gérer les version, nous utilisons la méthode du lien symbolique en décompressant dans /usr/src/linux-source-3.0.2

sudo tar xvf MESSOURCES -C /usr/src/

Et Ferons un lien symbolique linux

sudo ln -s /usr/src/linux-source-3.0.2 /usr/src/linux

La configuration

Récupérer la configuration utilisé par le noyau de la distribution s’avère utile pour partir sur quelque chose qui marche. Ce n’est pas obligatoire si vous savez ce que vous faites. Vous trouverez ces config dans le répertoire /boot de votre système. (exemple /boot/config-3.2.0-30-generic)

sudo cp /boot/config-3.2.0-30-generic /usr/src/linux/.config

Outils

Pour compiler votre noyau, vous aurez besoin d’un compilateur, mais aussi d’un outil pour configurer et surement un autre pour packager car il est très utile d’en faire un .deb. Cela facilite la désinstallation par exemple ou sa distribution.

sudo aptitude install build-essential

Configurer

Rentrez dans le répertoire /usr/src/linux et lancez l’outil qui vous permettra de configurer votre kernel.

sudo make menuconfig ou sudo make xconfig si vous préférez une version graphique sous X

Oui faites pas comme moi, préférez compiler vos programme en tant qu’utilisateur ! 😉

Compilation et empacketage

sudo make-kpkg --initrd --revision=NumeroQueVousVoulez kernel_image kernel_headers modules_image

Cette commande va compiler et vous faire les 3 .deb qu’il vous faut pour installer votre kernel. Et c’est cette commande que j’oublie tout le temps 🙂 Vous connaissez sûrement la suite pour installer des .deb.



                      

Tags: , ,

Tester un serveur smtp

Il m’arrive souvent de devoir tester si un serveur est capable de relayer un email (ou l’inverse pour empecher l’open relay).

$telnet monserveur.exemple 25
helo nimportequoi
mail from: uneadresse@valide.exemple
rcpt to: uneautreadresse@valide.exemple
data
Tapez votre message
et terminez par une ligne comportant juste un point
quit

A chaque commande, le serveur doit vous répondre un code de retour et parfois une description. Ce code est standard, 2xx = ok (continuez), 4xx = erreur temporaire (ressayez plus tard), 5xx = erreur permanente (votre mail ne passera jamais)

Tags: , ,

Certificats pour serveurs

Cet article vous montre comment créer un certificat willcard signé par un tiers

Pourquoi un certificat ?

Parfois il m’arrive de ne pas pouvoir consulter mes emails car le réseau que j’utilise n’est pas sécurisé. J’entends par là que je ne sais pas qui est derrière et pourrait écouter mon trafic et capturer aisément mes identifiants.

J’ai donc décidé d’installer un certificat sur qth.fr. Comme la plupart de mes services sont en *.qth.fr j’ai choisis de faire un certificat willcard que j’ai fait signé par cacert. Le faire signer par autre que soit a l’avantage de pouvoir vérifier auprès de cacert que le certificat est valide. Il faut savoir que cacert est une autorité non reconnue par les navigateurs par défaut car son modele de confiance se base sur ses utilisateurs. (C’est les utilisateurs vérifient entre eux leur identité, cherchez « Key signing party » sur un moteur de recherche).

Ce serveur utilise donc les certificats de cacert ; pour installez le certificat root de cacert, rendez vous sur la page http://www.cacert.org/index.php?id=3 et cliquez simplment sur http://www.cacert.org/certs/root.crt . Attention, cela veux dire que vous acceptez tout les certificats signés par cacert !

Comment ça marche ? (grossièrement)

Pour sécuriser un site en SSL, le serveur doit obligatoirement connaitre un clée privée et un certificat publique signé. Il arrive qu’un ou plusieurs certificats intermédiaires soient nécessaires, j’en parlerais plus loin. Notez que les extensions varient d’un système à l’autre, mais on retrouve globalement KEY, CRT, CSR et PEM (ce dernier désigne en fait jusque c’est un fichier pour le chiffrement, j’utiliserais donc cette extension pour tous mes fichiers).

  • Le certificat privé « KEY » est un fichier généré que vous devez conserver et ne jamais le divulguer ! Il sera utilisé par votre serveur pour chiffrer votre trafic. Il peut être protégé par un mot de passe, libre à vous, personnellement je n’en met pas.
  • La demande de signature certificat « CSR » est un fichier généré à partir de la clé privée. ici je la crée en même temps. Elle peut être divulgué à votre tier de confiance. Elle contient diverses informations comme quels domaines il concerne, la durée de validité…
  • Le certificat « CRT » est le fichier généré par votre autorité de certification tiers.

Lorsque votre navigateur demande une page à votre serveur en SSL, ce dernier vous renvoie la réponse chiffrée avec le certificat publique signé par votre tiers. Votre navigateur peut donc vérifier que le certificat est valide auprès de l’autorité et déchiffrer la réponse du serveur.

Le certificat intermédiaire est parfois nécessaire lorsque l’autorité de certificat est inconnue de votre navigateur mais qui a pourtant été approuvé par une autre autorité, qui elle est connue de votre navigateur. Ce fichier doit donc être envoyé par le serveur en même temps que votre certificat signé. (Il peut y avoir plusieurs certificats intermédiaires).

Notez qu’il existe les certificats normaux et les certificats EV (Extended validate). Ces derniers permettent juste une vérification plus poussée de votre identification et provoque l’apparition de la barre d’adresse verte. (Sinon elle reste de la couleur normal)

Gérer un KEY et un CSR

Créer le fichier /usr/share/ssl-cert/ssleay-MONDOMAINE.cnf (un exemple se nome ssleay.cnf) et insérez ce texte que vous adapterez.

# -------------- BEGIN custom openssl.cnf -----
HOME                    = /etc/ssl/qth/
RANDFILE                = /dev/urandom
oid_section             = new_oids
[ new_oids ]
[ req ]
default_days            = 730            # how long to certify for (2yr)
default_keyfile         = /etc/ssl/qth/wildcard.qth.fr_key.pem
distinguished_name      = req_distinguished_name
encrypt_key             = no
string_mask = nombstr
req_extensions          = v3_req # Extensions to add to certificate request
[ req_distinguished_name ]
commonName              = Common Name (eg, YOUR name)
commonName_default      = qth.fr
commonName_max          = 64
countryName             = Country Name (2 letter code)
countryName_default             = FR
countryName_min                = 2
countryName_max                = 2
organizationName        = Organization Name (company)
organizationName_default        = QTH

localityName            = Locality Name (city, district)
localityName_default    = Paris

stateOrProvinceName     = State or Province Name (full name)
stateOrProvinceName_default = IDF
emailAddress            = ca-admin@localhost.com
emailAddress_max        = 40
[ v3_req ]
subjectAltName=DNS:qth.fr,DNS:*.qth.fr
# -------------- END custom openssl.cnf -----

Lancez la génération :

openssl req -batch -config /usr/share/ssl-cert/ssleay-wildcard.qth.fr.cnf -newkey rsa:2048 -out /etc/ssl/qth/wildcard.qth.fr_csr.pem

Faites signez votre CSR chez une autorité de confiance

Pour ma part j’utilise startssl qui permet de signer des certificat entre 1 et 3 ans en wildcard. Pour cela il est nécessaire d’être identifié en class 2, cela coute 59$ ce qui vous permet de signer des certificats pendant 1 an.

Donc si vous  vous démerdez bien, vous n’avez qu’a vous aqcuiter des 59$ une fois tous les 3 ans. Moi je suis partit pour 2 ans car je me suis trompé dans la génération du CSR car c’est là qu’est précisé la durée de validité. La révocation coûte 24$.

Configurez apache/nginx

Créez un virtualhost qui écoutera sur le port 443 et insérez la configuration suivante :

SSLEngine on
SSLCertificateFile /etc/ssl/qth/wildcard.qth.fr_crt.pem
SSLCertificateKeyFile /etc/ssl/wildcard.qth.fr_key.pem

Et si besoin les certificats intermédiaires (Ajoutez les si votre autorité en a car d’autres navigateurs peuvent se comporter différemment que le votre au moment de vos tests) :
SSLCertificateChainFile /etc/ssl/qth/wildcard.qth.fr_intermediate1.pem

Cisco

J’ai du récemment dans mon travail à administrer des équipements CISCO, j’y ai passé pas mal de temps que ce soit pro ou perso car je n’ai jamais travaillé avec. Outre le petit routeur qui nous a servit de passerelle PPPoE remplacé par un FreeBSD, j’avoue ne pas être à l’aise avec cette syntaxe. Je vous donne ici les premiers élement qui m’on manqué pour commencer. Il ne s’agit là que de quelques mémos que je juge utile avant d’essayer de comprendre leur syntaxe. Après cela, la documentation est très abondante et surtout fournie par CISCO.

  • Lorsque vous êtes logué sur un cisco, vous pouvez être dans un mode normal qui ne vous autorise pas à le configurer. Vous devez alors taper enable pour y entrer et acceder à la config, aux propriétés…
  • La configuration se trouve dans un format linéaire, vous pouvez la voir en tapant show run (pour running-config)
  • Pour modifier la configuration, cela se fait ligne par ligne, entrez dans l’édition en tapant « conf t », terminez par CTRL+Z. Vos modifications sont appliquées immédiatement.
  • Vous vous déplacez par bloc dans la configuration, ainsi pour acceder au bloc Bloc_A.SousBloc_1, vous devez tapper Bloc_A, puis taper SousBloc_1. Vous pouvez à tout moment accéder aux autres blocs tant qu’ils sont enfant directs ou plus haut hiérarchiquement. (Bloc_E est accessible à tout moment par exemple)
  • Lorsque vous êtes en mode édition vous pouvez ajouter des ligne en les entrant directement, ou en enlever en tapant « no  » suivie de la ligne exacte.

Haha

boom !

Afficher

Depuis la version de 7 de firefox, le mot http:// n’aparait plus dans la barre d’adresse. Cela est embettant si comme moi, vous utilisez beaucoup le copier coller…

Pour le réafficher, tapez about:config dans la barre d’adresse puis passez à false la clé suivante : browser.urlbar.trimURLs

Tags: , ,

Ne donnez pas vos avis chez les revendeurs

Donner un avis chez un revendeur n’est pas objectif. Celui ci pourra le filtrer à sa guise en fonction de ses besoins.

Le comble est materiel.net où je cite :

J'autorise la société Domisys, éditrice du site www.materiel.net, à modifier, utiliser et reproduire librement mon commentaire sur toute publication et tout support électronique ou non.

Cela peut se traduire par : en gros, vous pouvez poster un commentaire, mais on peut le transformer complètement pour en changer le sens. Je trouve cela irrespectueux pour leurs clients.

Inondation de vidéos sur google

Je ne sais plus faire de recherche google !

Quel est cette nouvelle mode de donner des résultats vidéos dans une recherche google ??? Si j’ai envie de vidéo, je clique sur vidéo et si j’en veux pas je dois faire quoi ? Danser ?

Je veux bien que les contenu multimédia soient une nouvelle façon de diffuser du contenu, mais qu’elle ne me soit pas imposée en tête de recherche !

Mais bordel ! Utilisez la vidéo pour illustrer !!

Je ne parle pas des blogueurs qui parlent de leur vie, qui montre un chat qui joue, ou de votre exploit de dominos, quel est cette manie de lancer des vidéos qui dure 20 minutes pour expliquer ce qu’un texte le fait en 5 secondes ? Peut être car on ne sais plus écrire correctement ? A qui aura le plus de vidéos ? Voir sa tête partout sur le net ?

Les vidéos sont, je trouve une énorme perte de temps lorsqu’ils montre ce qu’un article le fait. Outre la quantité qu’il faille pour la stocker (et je ne parle pas de la bande passante quand une 20ène de personne lisent des vidéos en entreprise), ce qu’il y a a voir d’intéressant dure généralement quelques seconde ; soit une infime partie de la vidéo, le reste étant de la narration.

Je crois que nous avons trouvé la boite à image abrutissante de demain d’aujourd’hui.

 

Faire des recherches sous linux

Afficher tous les fichiers contenu dans le répertoire courant (en donnant les chemin relatif au répertoire courant)

Recherche de fichier avec find

Par faignantise, on utilise des fois ceci pour cherche un fichier qui contient bateau dans son nom. Ça a l’avantage d’être très explicite mais nous nous retrouvons parfois avec des répertoire qui comportent aussi « bateau ».

find /var/log | grep "bateau"

Voici quelque chose de plus élégant :

find -name *bateau*

Ou tous les fichier qui finissent par .log

find -name *.log

Rechercher un contenu

Recherche tous les fichiers qui contienne l’expression « bateau »

grep "bateau" -r *

Voici des options très utiles :

  • -i pour être insensible à la case
  • -a pour cherche dans les fichiers binaires
  • -n pour afficher le nom du fichier avec son numéro de ligne
  • -c pour afficher le nombre d’occurance dans le fichier
  • -o n’affiche que l’occurance trouvée
grep  -rino "bateau" *

Combinons les deux recherche

Cherche l’expression bateau dans les fichiers qui se termine par .log

find -name *.log -exec grep -ino "bateau" {} \;

Pas à suivre, vous perdez le nom du fichier, préférez l'outil grep seul.

Vous l’aurez compris, vous pouvez utiliser cela pour supprimer par exemple des fichiers qui correspondent à une recherche. Par exemple, supprimer les fichier qui commence par toto dans le répertoire /tmp :

find /tmp -name toto* -exec rm {} \;

Motion sous linux

Le logiciel motion sous GNU/Linux est un démon qui permet de faire des captures vidéo sur du long terme à partir d’une webcam.

Voici quelques fonctions sympas :

  • Créer une vidéo accéléré du ciel, d’une plante ou d’un escargot en accéléré
  • Capturer et envoyer sur un FTP l’image d’une webcam à intervalle régulière
  • Enregistrer les séquences de mouvement devant une webcam
  • Se connecter à motion via le web pour contrôler ou visualiser sa webcam
  • Avoir 8 webcams (ou plus) qui captent en même temps sur la même machine
  • Traquer et suivre avec une webcam motorisée les mouvements
  • Enregistrer les événements dans une base de données

Je vais vous préciser ici les options de base pour permettre les 3 fonctions ci dessous (Je pars de la config du paquet de Debian Squeeze) :

  1. Créer une image toute les 10s
  2. Créer un film d’une semaine de capture avec 1 minute capturée = 1 frame donc 1 journée capturée = 1 minutes de vidéo environ.
  3. Créer autant de séquences vidéo à 5 FPS que de détections de mouvement avec une image associée
# Pour le point 3 : On définit le framerate à 5FPS
framerate 5
# Je fixe la sensibilité à 1000 pixel pour la captation de mouvement
threshold 1000
# Je capture 3 frames de buffer avant une captation de mouvement
pre_capture 3
# Je clos les captation de mouvement 5 secondes si plus rien de bouge devant la webcam
gap 5
# Je décide d'avoir une image qui correspond aux premiers instant de detection de mouvement
output_normal first

# Point 2 : Je capture une frame toute les 60 secondes pour la vidéo en accélérée
ffmpeg_timelapse 60
# Je fait réinitialiser le film accéléré tout les lundi
ffmpeg_timelapse_mode weekly-monday
# Je fixe la qualité des vidéo à 15/31 (2 étant le plus fort)
ffmpeg_variable_bitrate 15
# Je définis la compression en mpeg4
ffmpeg_video_codec mpeg4

# Pour le point 1 : Je définis 1 capture image toutes les 10 secondes
snapshot_interval 10

Tags: , , ,

Je n'aime pas les boîtes noires.