<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Another Home Page Blog - RHEL</title><link href="https://blog.anotherhomepage.org/" rel="alternate"></link><link href="https://blog.anotherhomepage.org/feed/tag/RHEL/atom" rel="self"></link><id>https://blog.anotherhomepage.org/</id><updated>2018-10-25T13:50:00+02:00</updated><entry><title>FreeNAS VM : installation d'un invité CentOS 7</title><link href="https://blog.anotherhomepage.org/post/2018/10/25/freenas-vm-installation-invite-centos-7/" rel="alternate"></link><published>2018-10-25T13:50:00+02:00</published><updated>2018-10-25T13:50:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2018-10-25:/post/2018/10/25/freenas-vm-installation-invite-centos-7/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;Riga" src="https://blog.anotherhomepage.org/public/2018/Riga_20.08.2016_53.jpg" title="&amp;quot;Riga"&gt;J'ai commencé à jouer avec la fonctionnalité “VM” de FreeNAS 11, la célèbre distribution BSD pour créer son propre NAS. J'ai assez de puissance sur mon NAS actuel pour lancer quelques machines virtuelles, ce qui me permettra d'utiliser d'autres OS que FreeBSD (disponible via les jails), comme par exemple ici …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;Riga" src="https://blog.anotherhomepage.org/public/2018/Riga_20.08.2016_53.jpg" title="&amp;quot;Riga"&gt;J'ai commencé à jouer avec la fonctionnalité “VM” de FreeNAS 11, la célèbre distribution BSD pour créer son propre NAS. J'ai assez de puissance sur mon NAS actuel pour lancer quelques machines virtuelles, ce qui me permettra d'utiliser d'autres OS que FreeBSD (disponible via les jails), comme par exemple ici CentOS.&lt;/p&gt;
&lt;h3&gt;À propos de VM&lt;/h3&gt;
&lt;p&gt;FreeNAS étant basé sur FreeBSD, celui-ci base sa fonction d'hyperviseur sur bhyve, l'hyberviseur BSD. Les prérequis matériels sont assez simples :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;assez de mémoire vive pour que FreeNAS puisse continuer à en utiliser pour gérer la partie NAS ;&lt;/li&gt;
&lt;li&gt;assez de puissance CPU pour que FreeNAS puisse continuer à en utiliser pour gérer la partie NAS ;&lt;/li&gt;
&lt;li&gt;assez d'espace disque (puisqu'on va aussi en allouer à nos machines virtuelles) ;&lt;/li&gt;
&lt;li&gt;et enfin, s'assurer que le processeur de notre NAS dispose des instructions de virtualisation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Concernant la quantité de mémoire vive, il faut se rappeler que FreeNAS réclame au moins 8 Go de RAM, voire plus selon les usages. La section &lt;a href="http://doc.freenas.org/11/intro.html#hardware-recommendations" title="&amp;quot;FreeNAS"&gt;Hardware Recommandations&lt;/a&gt; de la documentation officielle est à ce titre à lire en premier. En ce qui me concerne, j'ai décidé d'ajouter de la mémoire vive à mon système avant de commencer à utiliser VM.&lt;/p&gt;
&lt;p&gt;Concernant les instruction de virtualisation, la section &lt;a href="http://doc.freenas.org/11/vms.html" title="&amp;quot;FreeNAS"&gt;VMs&lt;/a&gt; de la documentation officielle est aussi très instructive. Pour vérifier que notre CPU dispose bien du jeu d'instruction nécessaire, deux possibilités :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sur un système Intel : &lt;code&gt;grep VT-x /var/run/dmesg.boot&lt;/code&gt; ;&lt;/li&gt;
&lt;li&gt;Sur un système AMD : &lt;code&gt;grep POPCNT /var/run/dmesg.boot&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sur mon NAS, j'ai un Xeon E3-1220L V2. Cela donne donc :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@arreat:~&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# grep VT-x /var/run/dmesg.boot&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;VT-x:&lt;span class="w"&gt; &lt;/span&gt;PAT,HLT,MTF,PAUSE,EPT,UG,VPID
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Créer sa machine virtuelle&lt;/h3&gt;
&lt;p&gt;Dans l'absolu, créer sa machine virtuelle est assez simple et suivre la documentation en anglais assez facile. On commence par aller dans le menu &lt;em&gt;VMs&lt;/em&gt;, puis on clique sur le bouton &lt;em&gt;Add VM&lt;/em&gt;. Un menu s'affiche alors, et on peut renseigner les informations de notre système virtuel :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Name : nom de la machine virtuelle ;&lt;/li&gt;
&lt;li&gt;Description : un texte descriptif ;&lt;/li&gt;
&lt;li&gt;Virtual CPUs : le nombre de processeurs virtuels ;&lt;/li&gt;
&lt;li&gt;Memory Size (MiB) : la quantité de mémoire-vive ;&lt;/li&gt;
&lt;li&gt;Boot Method : si la machine virtuelle est en UEFI pur ou en mode de compatibilité avec BIOS (UEFI-CSM), mais visiblement il vaut mieux rester en UEFI ;&lt;/li&gt;
&lt;li&gt;Autostart : si la machine démarre automatiquement au démarrage du NAS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On peut ensuite créer des périphériques pour notre machine virtuelle, en la sélectionnant puis en appuyant sur le bouton "Devices" en bas de l'interface web. Un nouvel onglet apparaît, et grâce au bouton "Add device", on peut alors ajouter :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Network interface : une carte réseau (Intel émulée, ou VirtIO) ;&lt;/li&gt;
&lt;li&gt;Disk : un disque dur, sous forme de ZVol (en AHCI ou VirtIO) ;&lt;/li&gt;
&lt;li&gt;CD-ROM : un lecteur optique, en choisissant une image ISO hébergée sur le NAS ;&lt;/li&gt;
&lt;li&gt;VNC : un écran virtuel accessible via le protocole VNC.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Démarrer sa machine virtuelle et installer CentOS&lt;/h3&gt;
&lt;p&gt;Une fois la machine virtuelle crée, on s'assure que le CD-ROM virtuel est bien une ISO d'installation de CentOS et on appuie sur le bouton de démarrage.Par contre, et c'est à ce moment que la documentation et peut-être bhyve sont muets, c'est à propos du périphérique VNC : j'ai perdu littéralement des heures à cause du mapping clavier, qui respecte les lettres pour de l'azerty, mais qui ne respecte pas les caractères spéciaux et les chiffres. Ceci est donc particulièrement gênant.&lt;/p&gt;
&lt;p&gt;Mon astuce consiste à ne pas créer de périphérique VNC : VM crée alors une console série, à laquelle on peut accéder via la commande cu depuis un shell sur la machine FreeNAS :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cu&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9600&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-l&lt;span class="w"&gt; &lt;/span&gt;/dev/nmdm1B
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A noter que le périphérique d'accès peut changer selon la machine virtuelle, il faut donc changer la commande en conséquence.&lt;/p&gt;
&lt;p&gt;Une fois que le CD-ROM est démarré, il convient d'éditer les options de démarrage en appuyant sur 'e', puis en ajoutant à la première ligne l'option &lt;code&gt;console=ttyS0&lt;/code&gt;. Cette option est indiquée dans &lt;a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/chap-anaconda-boot-options" title="&amp;quot;RHEL"&gt;la documentation d'installation de RHEL 7&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://www.flickr.com/photos/108459338@N08/29164996475/" title="&amp;quot;Riga"&gt;E Livermore - Riga 20.08.2016 (53)&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 26/10/2018 08:09 par &lt;a href="https://utux.fr"&gt;utux&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Je l'utilise depuis quelques temps et c'est vraiment pas mal, bhyve carbure bien. Je dirais même qu'avec l'interface de FreeNAS on concurrencerait presque Proxmox. Je me rappelle juste de soucis avec UEFI-CSM (Bios) et FreeNAS voulait une affectation mini de 1GB de RAM pour les VM (alors que 256 me suffisent souvent pour les tests).&lt;/p&gt;
&lt;p&gt;VNC est une plaie pour le mapping de touches, l'astuce est de faire l'installation sans accents avec un mot de passe simple puis faire la modification après par SSH.&lt;/p&gt;
&lt;p&gt;J'utilise beaucoup les jails, avec iocage en ligne de commandes qui est vraiment bien et qui permet les updates. L'avantage par rapport à la virtualisation je trouve c'est le stockage direct sur zfs (compression, perfs, snapshots) et l'impact moindre sur les ressources (pas obligé de réserver de manière fixe 1GB de RAM, il prend ce qu'il a besoin).&lt;/p&gt;
&lt;h3&gt;Le 26/10/2018 11:17 par nzo&lt;/h3&gt;
&lt;p&gt;Merci pour l'article...je vais tester cela ce week-end.&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="bhyve"></category><category term="CentOS"></category><category term="FreeNAS"></category><category term="RHEL"></category><category term="UEFI"></category><category term="virtualisation"></category></entry><entry><title>CentOS 7 : installation vraiment minimale - errata</title><link href="https://blog.anotherhomepage.org/post/2018/04/23/centos-7-installation-vraiment-minimale-errata/" rel="alternate"></link><published>2018-04-23T09:30:00+02:00</published><updated>2018-04-23T09:30:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2018-04-23:/post/2018/04/23/centos-7-installation-vraiment-minimale-errata/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;&amp;quot;" src="https://blog.anotherhomepage.org/public/2018/samebutdifferent.jpg"&gt;Dans un billet précédent, j'avais réalisé une &lt;a href="/post/centos-7-installation-vraiment-minimale"&gt;installation vraiment minimale de CentOS 7&lt;/a&gt;. Si globalement le cahier des charges était respecté, je me suis heurté à quelques petites déconvenues, je me suis donc dit qu'un billet sous forme d'errata ne serait pas de trop.&lt;/p&gt;
&lt;h3&gt;SELinux&lt;/h3&gt;
&lt;p&gt;Bon, d'accord, SELinux est probablement …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;&amp;quot;" src="https://blog.anotherhomepage.org/public/2018/samebutdifferent.jpg"&gt;Dans un billet précédent, j'avais réalisé une &lt;a href="/post/centos-7-installation-vraiment-minimale"&gt;installation vraiment minimale de CentOS 7&lt;/a&gt;. Si globalement le cahier des charges était respecté, je me suis heurté à quelques petites déconvenues, je me suis donc dit qu'un billet sous forme d'errata ne serait pas de trop.&lt;/p&gt;
&lt;h3&gt;SELinux&lt;/h3&gt;
&lt;p&gt;Bon, d'accord, SELinux est probablement l'un des composants de CentOS, Fedora et RHEL le plus détesté (ou est-ce systemd ?), car nombreux sont encore les tutoriaux qui commencent par demander de désactiver celui-ci (à tort). Bref, si comme moi vous vous attendez à ce que votre système minimaliste soit paramétré en "Enforcing" (après tout c'est marqué dans le kickstart), pas de chance. Tapez 20 fois la commande &lt;code&gt;setenforce Enforcing&lt;/code&gt; si vous voulez, la réponse sera la même : non.&lt;/p&gt;
&lt;p&gt;Pourquoi ? Parce que votre serviteur, en allant tailler dans les paquets à la tronçonneuse, s'est débarrassé des politiques SELinux. Sans politique, cela fonctionne moins bien. Comment on les obtient ? En installant deux paquets : &lt;code&gt;selinux-policy&lt;/code&gt; et &lt;code&gt;selinux-policy-targeted&lt;/code&gt;. N'envisagez pas un seul instant de n'installer que le premier : le système se bloquera au démarrage.&lt;/p&gt;
&lt;h3&gt;scp&lt;/h3&gt;
&lt;p&gt;Quand on est sur une machine serveur, il n'est a priori pas nécessaire d'installer un quelconque client, sauf cas exceptionnel et identifié. En voici un : sans installer le paquet &lt;code&gt;openssh-clients&lt;/code&gt; sur mon serveur minimaliste, je ne peux pas faire de scp vers celui-ci. Je suppose que le binaire scp doit être appelé à un moment quelconque côté serveur, mais toujours est-il que sans, bein ça ne fonctionne pas.&lt;/p&gt;
&lt;h3&gt;Perl et la locale&lt;/h3&gt;
&lt;p&gt;Celui-ci est assez tordu et concerne les paramétrages de langue. Il se trouve qu'après avoir installé Perl sur ce serveur minimaliste, j'ai voulu lancer un script utilisant ce langage. J'ai eu droit, durant les scripts, à un message de ce genre :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;perl:&lt;span class="w"&gt; &lt;/span&gt;warning:&lt;span class="w"&gt; &lt;/span&gt;Falling&lt;span class="w"&gt; &lt;/span&gt;back&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;standard&lt;span class="w"&gt; &lt;/span&gt;locale&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;C&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Alors le pourquoi exact, je ne suis toujours pas certain, je suspecte qu'il manque un paquet et que celui-ci (toujours pas identifié) fait un paramétrage particulier, toujours est-il que je me voyais mal &lt;a href="https://stackoverflow.com/questions/2499794/how-to-fix-a-locale-setting-warning-from-perl" title="&amp;quot;Stackoverflow"&gt;modifier ma configuration OpenSSH&lt;/a&gt; pour aller jouer avec les variables d'environnement exportées par ce dernier. J'ai préféré finalement &lt;a href="https://qiita.com/Kaisyou/items/9c2c5f5e1b28c24e91b7" title="&amp;quot;CentOS7"&gt;ajouter deux petites lignes à /etc/environment&lt;/a&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;LANG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.utf-8
&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.utf-8
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Cela force le système en anglais américain, en UTF-8.&lt;/p&gt;
&lt;h3&gt;Les logs&lt;/h3&gt;
&lt;p&gt;Bon alors celle-là, elle est fantastique : rsyslog n'est du coup plus installé par défaut et certains logiciels n'envoient plus de log, comme OpenSSH : j'ai voulu diagnostiquer des erreurs de connexion SSH et je n'avais pas de fichier &lt;code&gt;/var/log/secure&lt;/code&gt; ! En effet, par défaut OpenSSH sous CentOS utilise le protocole syslog pour fournir ses logs. A noter aussi que logrotate manquait, ce qui aurait pu s'avérer plus dramatique au bout de quelques mois sur une machine de production.&lt;/p&gt;
&lt;h3&gt;C'est tout ?&lt;/h3&gt;
&lt;p&gt;Ce n'est probablement que le début. Je me rends compte à l'usage qu'il me manque pas mal de choses de mon petit confort (vim, less, tmux...). Un autre paquet que je n'ai pas encore réinstallé est NetworkManager, à voir si cela devient vraiment pratique.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux !&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://unsplash.com/photos/PtgLGdMzi-Y" title="&amp;quot;Same"&gt;Adam Sherez - Same but different&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 15/06/2018 06:47 par &lt;a href="http://www.standardtelephonique.org/"&gt;Alain C&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Merci pour ton tuto ! Perso je me verrais mal bosser sans NetworkManager mais je pense que c'est facile à ré-installer une fois que CentOS 7 est ON ? Non ?
Au plaisir,
Alain&lt;/p&gt;
&lt;h3&gt;Le 16/06/2018 12:12 par Nils&lt;/h3&gt;
&lt;p&gt;Merci de ton commentaire Alain ! Pour ce qui est de l’installation de NetworkManager sur un système CentOS 7 existant, oui c’est facile, il suffit d’utiliser yum pour les packages ! En revanche si de nombreuses configurations réseau particulières ont été faites (bridge, bonding...) ça sera un peu plus coton.&lt;/p&gt;
&lt;p&gt;Personnellement j’ai connu les versions précédentes de CentOS et de Fedora, où NetworkManager n’était pas forcément présent, donc je n’aurais pas de problème sans ;)&lt;/p&gt;
&lt;h3&gt;Le 20/06/2018 06:33 par Alain C&lt;/h3&gt;
&lt;p&gt;Ok super ! Merci pour ta réponse je vais essayer :)&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="installation"></category><category term="locale"></category><category term="openssh"></category><category term="Perl"></category><category term="Red Hat"></category><category term="RHEL"></category><category term="scp"></category><category term="SELinux"></category><category term="ssh"></category></entry><entry><title>CentOS 7 : installation vraiment minimale</title><link href="https://blog.anotherhomepage.org/post/2017/12/18/centos-7-installation-vraiment-minimale/" rel="alternate"></link><published>2017-12-18T11:25:00+01:00</published><updated>2017-12-18T11:25:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2017-12-18:/post/2017/12/18/centos-7-installation-vraiment-minimale/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;&amp;quot;" src="https://blog.anotherhomepage.org/public/feather.jpg"&gt;Il y a deux ans, j'ai écrit un article sur une &lt;a href="/post/2015/08/29/installation-minimaliste-de-CentOS-7"&gt;installation minimaliste de CentOS 7&lt;/a&gt;. Celle-ci avait le mérite d'avoir été réalisée rapidement, et d'être assez satisfaisante. Bref, un bon exemple de &lt;a href="https://fr.wikipedia.org/wiki/Principe_de_Pareto" title="&amp;quot;Loi"&gt;la loi de Pareto&lt;/a&gt;. Toutefois, je n'en étais pas pleinement satisfait, par exemple à cause de paquets …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;&amp;quot;" src="https://blog.anotherhomepage.org/public/feather.jpg"&gt;Il y a deux ans, j'ai écrit un article sur une &lt;a href="/post/2015/08/29/installation-minimaliste-de-CentOS-7"&gt;installation minimaliste de CentOS 7&lt;/a&gt;. Celle-ci avait le mérite d'avoir été réalisée rapidement, et d'être assez satisfaisante. Bref, un bon exemple de &lt;a href="https://fr.wikipedia.org/wiki/Principe_de_Pareto" title="&amp;quot;Loi"&gt;la loi de Pareto&lt;/a&gt;. Toutefois, je n'en étais pas pleinement satisfait, par exemple à cause de paquets de type firmware, qui peuvent être ajoutés avec le temps lors de nouvelles versions de CentOS, mais aussi parce que j'enlevais pas mal de paquets par rapport au groupe nommé “Base”. J'ai donc décidé de toucher au groupe “Core”.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Avertissement&lt;/strong&gt; : ce genre d'exercice ou d'expérience n'est pas à utiliser "en production" tel quel. Le système réellement basique qui en résulte ne contient pas vraiment grand-chose, et il manque ainsi de nombreux outils de diagnostic ou d'administration qui peuvent s'avérer utile en environnement professionnel. Dans le cas d'une reproduction de ces manipulations avec un système RHEL, il faudra très probablement ajouter de nombreux paquets pour gérer l'enregistrement auprès du RHN (ou d'un Satellite), ainsi que des paquets requis par le support de Red Hat.&lt;/p&gt;
&lt;p&gt;Je vois donc cet exercice comme une base, me permettant ensuite d'installer les logiciels que j'estime nécessaires pour le besoin de chaque serveur.&lt;/p&gt;
&lt;h3&gt;Pourquoi ?&lt;/h3&gt;
&lt;p&gt;Quel est l'intérêt de faire une installation vraiment minimale ? En fait j'en vois plusieurs :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tout d'abord, moins de paquets c'est moins de place occupée, même si la place sur nos disques durs augmente avec le temps, il apparaît pertinent dans le cas de machines virtuelles d'occuper le moins de place possible ;&lt;/li&gt;
&lt;li&gt;ensuite, car cela peut rendre l'installation plus rapide : moins de paquets à installer, moins de temps à les installer ;&lt;/li&gt;
&lt;li&gt;enfin, car c'est &lt;a href="https://www.ssi.gouv.fr/administration/guide/recommandations-de-securite-relatives-a-un-systeme-gnulinux/" title="&amp;quot;Recommandations"&gt;une recommandation ANSSI&lt;/a&gt;, de n'installer que le strict nécessaire, afin de limiter la surface d'attaque ; j'en viens d'ailleurs à passer pour un extrémiste auprès de certains lorsque j'annonce que les pages de manuel n'ont rien à faire sur un système de production...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un autre point à aborder avant de mettre les mains dans le cambouis : jusqu'où aller ? A quel point peut-on dire que cela est réellement une installation minimale, et à quel point le système qui en résulte est utilisable ? Voici mes critères pour cette installation :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le système doit pouvoir démarrer, au moins en machine virtuelle, idéalement en machine physique ;&lt;/li&gt;
&lt;li&gt;le système doit avoir un accès au réseau filaire fonctionnel avec une adresse IPv4 fixe (le DHCP n'est pas nécessaire) ;&lt;/li&gt;
&lt;li&gt;le système doit pouvoir installer et mettre à jour des paquets ;&lt;/li&gt;
&lt;li&gt;le partitionnement est réduit au minimum (/boot, / et swap) et utilise le système de fichiers utilisé par défaut (XFS) ;&lt;/li&gt;
&lt;li&gt;les fonctions suivantes sont disponibles : serveur SSH, client NTP, pare-feu (firewalld) ;&lt;/li&gt;
&lt;li&gt;le système peut rester en anglais.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tout le reste peut être retiré. Tout ? Presque, pour éviter de me casser la tête avec un clavier QWERTY, j'ai décidé d'installer le paquet &lt;em&gt;kbd&lt;/em&gt;. Mais cela reste une préférence toute personnelle.&lt;/p&gt;
&lt;h3&gt;Comment ?&lt;/h3&gt;
&lt;p&gt;Partir d'une installation "manuelle" et retirer des éléments est contre-productif. Pour arriver à l'objectif, il va falloir automatiser l'installation, grâce à &lt;a href="https://en.wikipedia.org/wiki/Kickstart_(Linux)" title="&amp;quot;Kickstart"&gt;kickstart&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Voici donc le fichier que j'utilise pour cela :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="cp"&gt;# Kickstart file automatically generated by anaconda.&lt;/span&gt;

&lt;span class="cp"&gt;#version=DEVEL&lt;/span&gt;
&lt;span class="n"&gt;install&lt;/span&gt;
&lt;span class="n"&gt;text&lt;/span&gt;
&lt;span class="n"&gt;reboot&lt;/span&gt;
&lt;span class="n"&gt;firstboot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;disabled&lt;/span&gt;
&lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;en_US&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UTF&lt;/span&gt;&lt;span class="mi"&gt;-8&lt;/span&gt;
&lt;span class="n"&gt;keyboard&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;latin9&lt;/span&gt;
&lt;span class="n"&gt;firewall&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;enabled&lt;/span&gt;
&lt;span class="n"&gt;authconfig&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;enableshadow&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;passalgo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sha512&lt;/span&gt;
&lt;span class="n"&gt;selinux&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;enforcing&lt;/span&gt;
&lt;span class="n"&gt;services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;enabled&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sshd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;chronyd&lt;/span&gt;
&lt;span class="n"&gt;timezone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;utc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Europe&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;Paris&lt;/span&gt;

&lt;span class="n"&gt;network&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;onboot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;yes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;eth0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;mtu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1500&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;bootproto&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;D&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;netmask&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;255.255.255.0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;gateway&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;E&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;nameserver&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;activate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;hostname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pxemachine&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;anotherhomepage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;

&lt;span class="n"&gt;rootpw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;
&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;nils&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;homedir&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nils&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;uid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1001&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;gid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1001&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;groups&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;wheel&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//X.Y.Z.T/pub/centos/7/os/x86_64/&lt;/span&gt;
&lt;span class="n"&gt;repo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;baseurl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//X.Y.Z.T/pub/centos/7/updates/x86_64/&lt;/span&gt;

&lt;span class="n"&gt;bootloader&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;mbr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;driveorder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sda&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;crashkernel=auto rhgb quiet&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;clearpart&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;initlabel&lt;/span&gt;
&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;boot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;asprimary&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;
&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;swap&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;asprimary&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;
&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;asprimary&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;grow&lt;/span&gt;

&lt;span class="nf"&gt;%packages&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;excludedocs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;instLangs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;en&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;nocore&lt;/span&gt;
&lt;span class="n"&gt;bash&lt;/span&gt;
&lt;span class="n"&gt;yum&lt;/span&gt;
&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;release&lt;/span&gt;
&lt;span class="n"&gt;passwd&lt;/span&gt;
&lt;span class="n"&gt;iputils&lt;/span&gt;
&lt;span class="n"&gt;iproute&lt;/span&gt;
&lt;span class="n"&gt;systemd&lt;/span&gt;
&lt;span class="n"&gt;rootfiles&lt;/span&gt;
&lt;span class="n"&gt;kbd&lt;/span&gt;
&lt;span class="n"&gt;openssh&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bind&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;license&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;dhclient&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;kexec&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;e2fsprogs&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;libs&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;e2fsprogs&lt;/span&gt;
&lt;span class="nf"&gt;%end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Comme évoqué plus haut, j'ai utilisé quelques arguments de la directive “%packages” qui me permet de n'installer que le minimum : ainsi, pas de documentation, on reste en anglais, et le groupe “Core” saute ! Il m'a donc fallu spécifier volontairement les paquets indispensables, comme le noyau, bash ou encore yum. Pour aller encore plus vite, j'ai choisi d'effectuer l'installation en mode texte (je pourrais être plus brutal et remplacer “text” par “cmdline”), mais effectuer celle-ci en mode graphique n'a pas d'incidence sur le nombre de paquets installés.&lt;/p&gt;
&lt;p&gt;Malgré tout, il m'a fallu retirer volontairement quelques paquets qui me semblent peu utiles pour le moment : pas besoin de gérer des partitions ext2, 3 ou 4, pas besoin de kexec, ni de dhcp.&lt;/p&gt;
&lt;p&gt;Le pare-feu reste activé, ainsi que SELinux : ils s'agit de paramètres par défaut assez sains, je ne vais donc pas recommander de les retirer. A noter malgré tout que le système est utilisable sans ces deux éléments.&lt;/p&gt;
&lt;h3&gt;Résultat&lt;/h3&gt;
&lt;p&gt;J'ai pu abaisser l'installation à 193 paquets installés. En poussant plus loin (pas de pare-feu, pas de ssh, pas de NTP, pas de kbd), je peux descendre à environ 170.Ma partition principale est alors utilisée à 466Mo, dont 393Mo dans &lt;em&gt;/usr&lt;/em&gt;, et 11Mo dans &lt;em&gt;/etc&lt;/em&gt;. Jamais je n'ai installé ou démarré un système CentOS aussi vite. Jamais je n'ai eu un système CentOS aussi austère : pas de vim, pas de less, pas de htop, et c'est limite si je dois me considérer heureux de disposer de grep !&lt;/p&gt;
&lt;p&gt;D'un autre côté, pas de fioritures : pas de firmware de matériel non utilisé, pas de system-config-*, ni de NetworkManager. Bon, par contre faut pas rêver, systemd est obligatoire ;)&lt;/p&gt;
&lt;h3&gt;Et la suite ?&lt;/h3&gt;
&lt;p&gt;A partir de maintenant il est possible de personnaliser plus en avant son installation, et de n'utiliser des outils non pas parce qu'ils sont présents, mais parce qu'on en a besoin. Je ne sais pas encore quelle suite je pourrais donner à ce billet, qui vaille la peine d'être racontée : il n'est probablement pas intéressant de faire des billets en mode "yum install" pour vim, audit, ou quelque autre logiciel. Une possibilité pourrait être de coller aux recommandations ANSSI, mais il existe déjà plein de guides de sécurité pour Linux, non ?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux !&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://www.flickr.com/photos/144396386@N05/27871981232/in/photolist-JsXbYy-otzCWr-otqh3v-7APFzX-5qtrDT-ocU67C-4jy9ns-otkJrQ-9GY3SR-7AAxYq-otEsUm-9hY2We-Y5AJM7-qNW86X-owqbFv-5zoJJr-cvNE2S-owdzRS-RQfbvV-otAb1v-ovkUxR-BrQ4TZ-X8s1r8-Eh7Btj-QSWPCN-VbGZQL-9GE3S6-obMEYV-otgFiJ-odFJbW-otz6QA-UY2RUD-owdB3j-oeU728-otGXrC-orRxeq-ov75pe-odwgJf-pd3FzP-otqncq-owZN72-5jVMGh-otBFZ6-oc1qnc-obYwWD-oc1gaK-sbg6wn-oweqq2-4VAJM7-otCm5a" title="Feather"&gt;badr yousef - Feather&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="blogmas"></category><category term="blogmas17"></category><category term="blogmas2017"></category><category term="CentOS"></category><category term="installation"></category><category term="kickstart"></category><category term="Red%20Hat"></category><category term="RHEL"></category></entry><entry><title>CentOS 7 : démarrer Anaconda en PXE</title><link href="https://blog.anotherhomepage.org/post/2017/12/16/centos-7-anaconda-pxe/" rel="alternate"></link><published>2017-12-16T11:42:00+01:00</published><updated>2017-12-16T11:42:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2017-12-16:/post/2017/12/16/centos-7-anaconda-pxe/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;Pare-brise brisé&amp;quot;" src="https://blog.anotherhomepage.org/public/carglass03.jpg"&gt;Je voulais, à la base, écrire un billet sur une installation particulière de CentOS 7. J'ai donc voulu utiliser mon "infrastructure de boot PXE" à la maison et commencer à gribouiller un kickstart, mais quand j'ai démarré ma machine virtuelle sur le réseau, le drame :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;dracut-initqueue&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;584&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;Warning:&lt;span class="w"&gt; &lt;/span&gt;Could&lt;span class="w"&gt; &lt;/span&gt;not …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;Pare-brise brisé&amp;quot;" src="https://blog.anotherhomepage.org/public/carglass03.jpg"&gt;Je voulais, à la base, écrire un billet sur une installation particulière de CentOS 7. J'ai donc voulu utiliser mon "infrastructure de boot PXE" à la maison et commencer à gribouiller un kickstart, mais quand j'ai démarré ma machine virtuelle sur le réseau, le drame :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;dracut-initqueue&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;584&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;Warning:&lt;span class="w"&gt; &lt;/span&gt;Could&lt;span class="w"&gt; &lt;/span&gt;not&lt;span class="w"&gt; &lt;/span&gt;boot.
dracut-initqueue&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;584&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;Warning:&lt;span class="w"&gt; &lt;/span&gt;/dev/root&lt;span class="w"&gt; &lt;/span&gt;does&lt;span class="w"&gt; &lt;/span&gt;not&lt;span class="w"&gt; &lt;/span&gt;exist
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ma configuration pxelinux à ce moment est la suivante :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;LABEL&lt;/span&gt; &lt;span class="n"&gt;centos7amd64&lt;/span&gt;
        &lt;span class="n"&gt;MENU&lt;/span&gt; &lt;span class="n"&gt;LABEL&lt;/span&gt; &lt;span class="n"&gt;Install&lt;/span&gt; &lt;span class="n"&gt;CentOS&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="n"&gt;x86_64&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;interactive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;KERNEL&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;isolinux&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vmlinuz&lt;/span&gt;
        &lt;span class="n"&gt;APPEND&lt;/span&gt; &lt;span class="n"&gt;initrd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;isolinux&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;initrd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;dhcp&lt;/span&gt; &lt;span class="n"&gt;inst&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;repo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;inst&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ks&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ks&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;c7_x86_64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cfg&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Et bien entendu, le même type de configuration fonctionne en CentOS 6.&lt;/p&gt;
&lt;p&gt;Ce message d'erreur arrive à des moments et des types d'installation parfois différents, de ce que j'ai lu. Et la résolution n'est pas toujours la même. Dans mon cas, il a fallu que j'ajoute le chemin vers un fichier squashfs, qui doit contenir l'OS minimal pour démarrer Anaconda je crois. Cela donne donc la configuration suivante :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;LABEL&lt;/span&gt; &lt;span class="n"&gt;centos7amd64&lt;/span&gt;
        &lt;span class="n"&gt;MENU&lt;/span&gt; &lt;span class="n"&gt;LABEL&lt;/span&gt; &lt;span class="n"&gt;Install&lt;/span&gt; &lt;span class="n"&gt;CentOS&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="n"&gt;x86_64&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;interactive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;KERNEL&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;isolinux&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vmlinuz&lt;/span&gt;
        &lt;span class="n"&gt;APPEND&lt;/span&gt; &lt;span class="n"&gt;initrd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;isolinux&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;initrd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;live&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LiveOS&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;squashfs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;dhcp&lt;/span&gt; &lt;span class="n"&gt;inst&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;repo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;inst&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ks&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ks&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;c7_x86_64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cfg&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;J'espère que cela rendra service à d'autres !&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux ! Si en plus vous avez des remarques, ou des propositions d'améliorations, n'hésitez pas : les commentaires sont là pour ça !&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://www.flickr.com/photos/mnsc/4391351493/in/photolist-7G3PNM-DBw5uK-kn9btB-rPm4Rs-5nwgSk-3k2H6u-VG2vMT-sHiEDr-Stg5Rm-7G3PE8-WeAcBc-7Wd8wT-TwtQjC-RHSjHY-T4biAk-schHmv-DvKkvL-fA1Kou-SPjrVS-7Wd8gz-T4axKV-rACUHa-UgGJde-sp4J5e-SRLv3Z-rmU7fN-5bgGnY-rTHJTM-5knknw-pgu9hJ-ouZyZp-oePFWz-oujSWW-hf1735-oszBPJ-S4SUnj-CuEiHV-H6seSx-jyNXi2-SRNxcK-T1ngND-21j23Fw-Stggks-4judBT-22pgdti-SWLSjb-qYGYz8-SRNhPB-4jyEdt-s1XYCR" title="&amp;quot;Car"&gt;Mattias - Car Glass 03&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="blogmas"></category><category term="blogmas17"></category><category term="blogmas2017"></category><category term="CentOS"></category><category term="Linux"></category><category term="PXE"></category><category term="Red Hat"></category><category term="RHEL"></category></entry><entry><title>CentOS 7 : désactiver firewalld et réactiver iptables</title><link href="https://blog.anotherhomepage.org/post/2017/06/27/centos-7-desactiver-firewalld-reactiver-iptables/" rel="alternate"></link><published>2017-06-27T13:10:00+02:00</published><updated>2017-06-27T13:10:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2017-06-27:/post/2017/06/27/centos-7-desactiver-firewalld-reactiver-iptables/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;tools&amp;quot;" src="https://blog.anotherhomepage.org/public/tools.jpg" title="&amp;quot;tools,"&gt;En plus de systemd, RHEL 7 et CentOS 7 disposent d'une nouvelle interface de pare-feu : firewalld. Bien qu'il fasse plutôt bien le boulot, je me suis trouvé dans des cas où j'avais du mal à lui faire faire ce que je voulais. En fait dès l'instant où j'ai commencé à …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;tools&amp;quot;" src="https://blog.anotherhomepage.org/public/tools.jpg" title="&amp;quot;tools,"&gt;En plus de systemd, RHEL 7 et CentOS 7 disposent d'une nouvelle interface de pare-feu : firewalld. Bien qu'il fasse plutôt bien le boulot, je me suis trouvé dans des cas où j'avais du mal à lui faire faire ce que je voulais. En fait dès l'instant où j'ai commencé à jouer avec des interfaces tun, des zones et de la retransmission de paquets, j'ai commencé à avoir des difficultés. En attendant de les résoudre, j'ai noté que je pouvais revenir au fonctionnement précédent, et piloter iptables directement.&lt;/p&gt;
&lt;h3&gt;Désactivation de firewalld&lt;/h3&gt;
&lt;p&gt;Commençons par arrêter firewalld, et s'assurer qu'il est bien coupé :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@test&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# systemctl stop firewalld.service&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;root@test&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# systemctl status firewalld.service&lt;/span&gt;
●&lt;span class="w"&gt; &lt;/span&gt;firewalld.service&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;firewalld&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;dynamic&lt;span class="w"&gt; &lt;/span&gt;firewall&lt;span class="w"&gt; &lt;/span&gt;daemon
&lt;span class="w"&gt;   &lt;/span&gt;Loaded:&lt;span class="w"&gt; &lt;/span&gt;loaded&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;/usr/lib/systemd/system/firewalld.service&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;disabled&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;vendor&lt;span class="w"&gt; &lt;/span&gt;preset:&lt;span class="w"&gt; &lt;/span&gt;enabled&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;Active:&lt;span class="w"&gt; &lt;/span&gt;inactive&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;dead&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;     &lt;/span&gt;Docs:&lt;span class="w"&gt; &lt;/span&gt;man:firewalld&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

Jun&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;:27:00&lt;span class="w"&gt; &lt;/span&gt;test.anotherhomepage.org&lt;span class="w"&gt; &lt;/span&gt;systemd&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;Starting&lt;span class="w"&gt; &lt;/span&gt;firewalld&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;dynamic&lt;span class="w"&gt; &lt;/span&gt;firewall&lt;span class="w"&gt; &lt;/span&gt;daemon...
Jun&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;:27:00&lt;span class="w"&gt; &lt;/span&gt;test.anotherhomepage.org&lt;span class="w"&gt; &lt;/span&gt;systemd&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;Started&lt;span class="w"&gt; &lt;/span&gt;firewalld&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;dynamic&lt;span class="w"&gt; &lt;/span&gt;firewall&lt;span class="w"&gt; &lt;/span&gt;daemon.
Jun&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;:27:25&lt;span class="w"&gt; &lt;/span&gt;test.anotherhomepage.org&lt;span class="w"&gt; &lt;/span&gt;systemd&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;Stopping&lt;span class="w"&gt; &lt;/span&gt;firewalld&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;dynamic&lt;span class="w"&gt; &lt;/span&gt;firewall&lt;span class="w"&gt; &lt;/span&gt;daemon...
Jun&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;:27:25&lt;span class="w"&gt; &lt;/span&gt;test.anotherhomepage.org&lt;span class="w"&gt; &lt;/span&gt;systemd&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;Stopped&lt;span class="w"&gt; &lt;/span&gt;firewalld&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;dynamic&lt;span class="w"&gt; &lt;/span&gt;firewall&lt;span class="w"&gt; &lt;/span&gt;daemon.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Bien sûr, cela veut dire qu'à partir de maintenant, la machine n'est plus protégée par le pare-feu.&lt;/p&gt;
&lt;p&gt;Ensuite, on désactive son démarrage automatique :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@test&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# systemctl disable firewalld.service&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Si vraiment on ne souhaite plus pouvoir démarrer firewalld par accident, on peut le masquer :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@test&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# systemctl mask firewalld.service&lt;/span&gt;
Created&lt;span class="w"&gt; &lt;/span&gt;symlink&lt;span class="w"&gt; &lt;/span&gt;from&lt;span class="w"&gt; &lt;/span&gt;/etc/systemd/system/firewalld.service&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;/dev/null.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Maintenant c'est pas tout, mais faut remettre un pare-feu.&lt;/p&gt;
&lt;h3&gt;Activation d'iptables&lt;/h3&gt;
&lt;p&gt;Pour activer iptables, c'est très simple, commençons par installer le paquet "iptables-services" :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@test&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# yum -y install iptables-services&lt;/span&gt;
Loaded&lt;span class="w"&gt; &lt;/span&gt;plugins:&lt;span class="w"&gt; &lt;/span&gt;fastestmirror
Loading&lt;span class="w"&gt; &lt;/span&gt;mirror&lt;span class="w"&gt; &lt;/span&gt;speeds&lt;span class="w"&gt; &lt;/span&gt;from&lt;span class="w"&gt; &lt;/span&gt;cached&lt;span class="w"&gt; &lt;/span&gt;hostfile
&lt;span class="w"&gt; &lt;/span&gt;*&lt;span class="w"&gt; &lt;/span&gt;base:&lt;span class="w"&gt; &lt;/span&gt;mirror.imt-systems.com
&lt;span class="w"&gt; &lt;/span&gt;*&lt;span class="w"&gt; &lt;/span&gt;extras:&lt;span class="w"&gt; &lt;/span&gt;mirror.netcologne.de
&lt;span class="w"&gt; &lt;/span&gt;*&lt;span class="w"&gt; &lt;/span&gt;updates:&lt;span class="w"&gt; &lt;/span&gt;mirror.ratiokontakt.de
Resolving&lt;span class="w"&gt; &lt;/span&gt;Dependencies
--&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;Running&lt;span class="w"&gt; &lt;/span&gt;transaction&lt;span class="w"&gt; &lt;/span&gt;check
---&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;Package&lt;span class="w"&gt; &lt;/span&gt;iptables-services.x86_64&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;:1.4.21-17.el7&lt;span class="w"&gt; &lt;/span&gt;will&lt;span class="w"&gt; &lt;/span&gt;be&lt;span class="w"&gt; &lt;/span&gt;installed
--&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;Finished&lt;span class="w"&gt; &lt;/span&gt;Dependency&lt;span class="w"&gt; &lt;/span&gt;Resolution

Dependencies&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Resolved&lt;/span&gt;

&lt;span class="o"&gt;=============================================================================================================================================================================================================================================&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;Package&lt;span class="w"&gt;                                                         &lt;/span&gt;Arch&lt;span class="w"&gt;                                                 &lt;/span&gt;Version&lt;span class="w"&gt;                                                       &lt;/span&gt;Repository&lt;span class="w"&gt;                                          &lt;/span&gt;&lt;span class="nv"&gt;Size&lt;/span&gt;
&lt;span class="o"&gt;=============================================================================================================================================================================================================================================&lt;/span&gt;
Installing:
&lt;span class="w"&gt; &lt;/span&gt;iptables-services&lt;span class="w"&gt;                                               &lt;/span&gt;x86_64&lt;span class="w"&gt;                                               &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;.4.21-17.el7&lt;span class="w"&gt;                                                 &lt;/span&gt;base&lt;span class="w"&gt;                                                &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;k

Transaction&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Summary&lt;/span&gt;
&lt;span class="o"&gt;=============================================================================================================================================================================================================================================&lt;/span&gt;
Install&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Package

Total&lt;span class="w"&gt; &lt;/span&gt;download&lt;span class="w"&gt; &lt;/span&gt;size:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;k
Installed&lt;span class="w"&gt; &lt;/span&gt;size:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;24&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;k
Downloading&lt;span class="w"&gt; &lt;/span&gt;packages:
iptables-services-1.4.21-17.el7.x86_64.rpm&lt;span class="w"&gt;                                                                                                                                                                            &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;kB&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;00&lt;/span&gt;:00:00
Running&lt;span class="w"&gt; &lt;/span&gt;transaction&lt;span class="w"&gt; &lt;/span&gt;check
Running&lt;span class="w"&gt; &lt;/span&gt;transaction&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;test&lt;/span&gt;
Transaction&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;test&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;succeeded
Running&lt;span class="w"&gt; &lt;/span&gt;transaction
&lt;span class="w"&gt;  &lt;/span&gt;Installing&lt;span class="w"&gt; &lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;iptables-services-1.4.21-17.el7.x86_64&lt;span class="w"&gt;                                                                                                                                                                                    &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;/1
&lt;span class="w"&gt;  &lt;/span&gt;Verifying&lt;span class="w"&gt;  &lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;iptables-services-1.4.21-17.el7.x86_64&lt;span class="w"&gt;                                                                                                                                                                                    &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;/1

Installed:
&lt;span class="w"&gt;  &lt;/span&gt;iptables-services.x86_64&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;:1.4.21-17.el7

Complete!
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ensuite, on l'active dans systemd :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@test&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# systemctl enable iptables&lt;/span&gt;
Created&lt;span class="w"&gt; &lt;/span&gt;symlink&lt;span class="w"&gt; &lt;/span&gt;from&lt;span class="w"&gt; &lt;/span&gt;/etc/systemd/system/basic.target.wants/iptables.service&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;/usr/lib/systemd/system/iptables.service.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On peut alors le lancer :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@test&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# systemctl start iptables&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Comme pour RHEL 6 et CentOS 6, la configuration se trouve dans le fichier &lt;em&gt;/etc/sysconfig/iptables&lt;/em&gt;, et dispose d'un jeu de règles n'ouvrant la voie qu'au ping et à SSH. La machine est, à partir de cet instant, de nouveau protégée par un pare-feu.&lt;/p&gt;
&lt;p&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux ! Si en plus vous avez des remarques, ou des propositions d'améliorations, n'hésitez pas : les commentaires sont là pour ça !&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://www.flickr.com/photos/velacreations/5249327029/" title="tools"&gt;velacreations - tools&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="firewalld"></category><category term="iptables"></category><category term="Linux"></category><category term="RHEL"></category><category term="systemd"></category></entry><entry><title>Installation d'un domU Xen Enterprise Linux sur un dom0 NetBSD</title><link href="https://blog.anotherhomepage.org/post/2011/06/20/Installation-d-un-domU-Xen-Enterprise-Linux-sur-un-dom0-NetBSD/" rel="alternate"></link><published>2011-06-20T09:30:00+02:00</published><updated>2011-06-20T09:30:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2011-06-20:/post/2011/06/20/Installation-d-un-domU-Xen-Enterprise-Linux-sur-un-dom0-NetBSD/</id><summary type="html">&lt;p&gt;Ces derniers temps je m'amuse à faire des installations par le réseau d'un peu tout et n'importe quoi. J'utilise principalement l'outil de virtualisation &lt;a href="www.virtualbox.org" title="VirtualBox"&gt;Oracle VirtualBox&lt;/a&gt;, mais il m'arrive aussi de faire joujou avec &lt;a href="http://www.xen.org" title="Xen"&gt;Xen&lt;/a&gt;. Avec un hôte (dom0) CentOS 5 (et sans doute toutes les distribution de type "Enterprise Linux …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ces derniers temps je m'amuse à faire des installations par le réseau d'un peu tout et n'importe quoi. J'utilise principalement l'outil de virtualisation &lt;a href="www.virtualbox.org" title="VirtualBox"&gt;Oracle VirtualBox&lt;/a&gt;, mais il m'arrive aussi de faire joujou avec &lt;a href="http://www.xen.org" title="Xen"&gt;Xen&lt;/a&gt;. Avec un hôte (dom0) CentOS 5 (et sans doute toutes les distribution de type "Enterprise Linux" telles que Red Hat Enterprise Linux ou Scientific Linux), il est très facile de créer d'autres machines virtuelles (domU) Xen de même type grâce à la commande "virt-install". Avec un dom0 NetBSD cependant, point de commande de ce type. Voyons donc comment faire.&lt;/p&gt;
&lt;p&gt;Sur un système Enterprise Linux 5, il est possible de trouver une image de noyau d'installation (et l'initrd approprié) spécifique à Xen, comme par exemple sur &lt;a href="http://ftp.free.fr/mirrors/ftp.centos.org/5/os/x86_64/images/xen/" title="&amp;quot;Miroir"&gt;ce miroir pour CentOS 5 64 bits&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ce qui me paraît étrange, c'est avec Enterprise Linux 6, tout du moins avec &lt;a href="http://www.scientificlinux.org/" title="&amp;quot;Scientific"&gt;Scientific Linux&lt;/a&gt;. Le noyau 2.6.32 dispose à priori des &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Paravirtualization#Linux_Paravirtualization_Support" title="&amp;quot;options"&gt;pv-ops&lt;/a&gt;, mais SL6 dispose &lt;a href="http://ftp.scientificlinux.org/linux/scientific/6/x86_64/os/images/" title="&amp;quot;FTP"&gt;d'un noyau et d'un initrd Xen&lt;/a&gt;. Peut-être est-ce par soucis de compatibilité de chemins, car les fichiers font la même taille que dans le répertoire &lt;em&gt;pxeboot&lt;/em&gt;. D'ailleurs, lors de ma synchronisation rsync avec le miroir officiel Scientific Linux, le répertoire xen n'apparaît pas. Et je n'en ai pas eu besoin :)&lt;/p&gt;
&lt;p&gt;Une fois nos images de noyau et d'initrd en main, il nous reste à créer notre fichier de configuration de domU, mon exemple prend comme exemple de disque dur un fichier et une connexion réseau par bridge :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;name = &amp;quot;centosexample&amp;quot;
uuid = &amp;quot;&amp;quot;
maxmem = 512
memory = 512
kernel  = &amp;quot;/srv/www/pub/CentOS/5/os/x86_64/images/xen/vmlinuz&amp;quot;
ramdisk = &amp;quot;/srv/www/pub/CentOS/5/os/x86_64/images/xen/initrd.img&amp;quot;
extra = &amp;quot;vnc&amp;quot;
on_poweroff = &amp;quot;destroy&amp;quot;
on_reboot = &amp;quot;restart&amp;quot;
on_crash = &amp;quot;restart&amp;quot;
vfb = [  ]
disk = [ &amp;quot;file:/srv/xen/images/disk/centosexample.img,xvda,w&amp;quot; ]
vif = [ &amp;quot;mac=00:16:3a:e2:12:34,bridge=bridge0&amp;quot; ]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Il est possible de faire l'installation en mode texte en supprimant la ligne "extra", et d'ajouter l'url d'un fichier kickstart dans la directive extra, qui devient donc :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;extra = &amp;quot;text ks=http://monserveur/pub/cfg/centos5_x86_64.cfg&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;La commande "xm create -c centosexample" vous permet de lancer votre domU et de débuter l'installation. Une fois celle-ci faite et votre domU de nouveau éteint, il suffit de commenter les lignes "kernel" et "ramdisk" et de décommenter la ligne "bootloader". Vous pouvez alors démarrer votre domU sans que le noyau de celui-ci soit sur le disque dur du dom0 :)&lt;/p&gt;
&lt;p&gt;Lors de mes tests, je me suis limité au partitionnement par défaut (qui utilise LVM), à un détail près : avec Scientific Linux 6, j'ai imposé ext3 à l'installeur. Une fois l'installation terminée, éteindre son domU (proprement de préférence) et modifier la configuration qui devient :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;centosexample&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;maxmem&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;
&lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;
&lt;span class="n"&gt;bootloader&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/usr/pkg/bin/pygrub&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;on_poweroff&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;destroy&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;on_reboot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;restart&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;on_crash&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;restart&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;vfb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;disk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;file:/srv/xen/images/disk/centosexample.img,xvda,w&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;vif&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;mac=00:16:3a:e2:12:34,bridge=bridge0&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;J'ai donc remplacé le noyau et l'initrd d'installation par pygrub, qui me permet de démarrer mon domU sur le noyau et l'initrd installés. De plus, les mises à jour ne nécessitent pas de copier de nouveau le noyau et l'initrd sur le dom0.&lt;/p&gt;
&lt;p&gt;Pour finir, si vous souhaitez installer un dom0 NetBSD, je ne peux que vous recommander &lt;a href="http://blog.bsdsx.fr/post/xen_1"&gt;l'excellent billet de Bsdsx&lt;/a&gt; !&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="Linux"></category><category term="NetBSD"></category><category term="RHEL"></category><category term="Scientific"></category><category term="Xen"></category></entry><entry><title>Vérifications de permissions</title><link href="https://blog.anotherhomepage.org/post/2010/12/30/V%C3%A9rifications-de-permissions/" rel="alternate"></link><published>2010-12-30T11:11:00+01:00</published><updated>2010-12-30T11:11:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2010-12-30:/post/2010/12/30/Vérifications-de-permissions/</id><summary type="html">&lt;p&gt;&lt;em&gt;Introduction&lt;/em&gt; : les astuces de ce billet sont extraites du document “Guide to the Secure Configuration of Red Hat Enterprise Linux 5” édité par la &lt;a href="https://secure.wikimedia.org/wikipedia/fr/wiki/NSA"&gt;NSA&lt;/a&gt;. Vous pouvez télécharger le document au format PDF dans son intégralité &lt;a href="http://www.nsa.gov/ia/guidance/security_configuration_guides/operating_systems.shtml#linux2"&gt;sur leur site&lt;/a&gt;. Cette introduction me permet d'être en conformité avec leur &lt;a href="http://www.nsa.gov/terms_of_use.shtml#copyright"&gt;notice de …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Introduction&lt;/em&gt; : les astuces de ce billet sont extraites du document “Guide to the Secure Configuration of Red Hat Enterprise Linux 5” édité par la &lt;a href="https://secure.wikimedia.org/wikipedia/fr/wiki/NSA"&gt;NSA&lt;/a&gt;. Vous pouvez télécharger le document au format PDF dans son intégralité &lt;a href="http://www.nsa.gov/ia/guidance/security_configuration_guides/operating_systems.shtml#linux2"&gt;sur leur site&lt;/a&gt;. Cette introduction me permet d'être en conformité avec leur &lt;a href="http://www.nsa.gov/terms_of_use.shtml#copyright"&gt;notice de Copyright&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Je vous propose de vérifier les permissions de certains de vos fichiers sur votre serveur ou poste fonctionnant sur un système Linux. Le but est de limiter les possibilités de tentatives d'intrusion en recherchant les moyens d'entrée possibles. Commençons par vérifier notre environnement :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@orgrimmar:~#&lt;span class="w"&gt; &lt;/span&gt;whoami
root
root@orgrimmar:~#&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/redhat-release&lt;span class="w"&gt; &lt;/span&gt;
CentOS&lt;span class="w"&gt; &lt;/span&gt;release&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;.5&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;Final&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Recherchons maintenant tous les répertoires dont les droits permettent à n'importe quel utilisateur d'écrire dedans, et dont le &lt;em&gt;sticky bit&lt;/em&gt; n'est pas positionné :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@orgrimmar:~#&lt;span class="w"&gt; &lt;/span&gt;find&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;-type&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-0002&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-1000&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Si jamais votre machine possède de nombreuses partitions, et qu'elles sont du genre bien remplies, il est possible de limiter la recherche de &lt;em&gt;find&lt;/em&gt; à une partition à la fois :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@orgrimmar:~#&lt;span class="w"&gt; &lt;/span&gt;find&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;-xdev&lt;span class="w"&gt; &lt;/span&gt;-type&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-0002&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-1000&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print
root@orgrimmar:~#&lt;span class="w"&gt; &lt;/span&gt;find&lt;span class="w"&gt; &lt;/span&gt;/home&lt;span class="w"&gt; &lt;/span&gt;-xdev&lt;span class="w"&gt; &lt;/span&gt;-type&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-0002&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-1000&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print
root@orgrimmar:~#&lt;span class="w"&gt; &lt;/span&gt;find&lt;span class="w"&gt; &lt;/span&gt;/var&lt;span class="w"&gt; &lt;/span&gt;-xdev&lt;span class="w"&gt; &lt;/span&gt;-type&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-0002&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-1000&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Idéalement (et c'est le cas sur ma machine, ouf !), cette commande ne devrait occasionner aucun affichage. Maintenant, amusons-nous un peu :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;insecure
root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;chmod&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;777&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;insecure
Le&lt;span class="w"&gt; &lt;/span&gt;mode&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="s1"&gt;&amp;#39;accès de `insecure&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;été&lt;span class="w"&gt; &lt;/span&gt;modifié&lt;span class="w"&gt; &lt;/span&gt;à&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0777&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;rwxrwxrwx&lt;span class="o"&gt;)&lt;/span&gt;.
root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;find&lt;span class="w"&gt; &lt;/span&gt;/tmp/&lt;span class="w"&gt; &lt;/span&gt;-type&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-0002&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-1000&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print
/tmp/insecure
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Positionnons maintenant le sticky bit :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;ls&lt;span class="w"&gt; &lt;/span&gt;-hl&lt;span class="w"&gt; &lt;/span&gt;/tmp/&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;insecure
drwxrwxrwx&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;,0K&lt;span class="w"&gt; &lt;/span&gt;déc&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;23&lt;/span&gt;:54&lt;span class="w"&gt; &lt;/span&gt;insecure/
root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;chmod&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;+t&lt;span class="w"&gt; &lt;/span&gt;/tmp/insecure/
Le&lt;span class="w"&gt; &lt;/span&gt;mode&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="s1"&gt;&amp;#39;accès de `/tmp/insecure/&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;été&lt;span class="w"&gt; &lt;/span&gt;modifié&lt;span class="w"&gt; &lt;/span&gt;à&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1777&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;rwxrwxrwt&lt;span class="o"&gt;)&lt;/span&gt;.
root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;ls&lt;span class="w"&gt; &lt;/span&gt;-hl&lt;span class="w"&gt; &lt;/span&gt;/tmp/&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;insecure
drwxrwxrwt&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;,0K&lt;span class="w"&gt; &lt;/span&gt;déc&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;23&lt;/span&gt;:54&lt;span class="w"&gt; &lt;/span&gt;insecure/
root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;find&lt;span class="w"&gt; &lt;/span&gt;/tmp/&lt;span class="w"&gt; &lt;/span&gt;-type&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-0002&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-1000&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print
root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Qu'est-ce que le &lt;em&gt;sticky bit&lt;/em&gt; ? Extrait de la page de manuel de &lt;em&gt;chmod&lt;/em&gt; (man chmod) :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;t (sticky-bit) conserver le code du programme sur le périphérique de swap après exécution. Il s’agit du comportement original, mais de nos jours il sert uniquement pour les répertoires. Il indique que seuls le propriétaire du répertoire, et le propriétaire d’un fichier qui s’y trouve ont le droit de supprimer ce fichier. C’est typiquement utilisé pour les répertoires comme /tmp ayant une autorisation d’écriture générale.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vérifions cela :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@orgrimmar:/tmp#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/
root@orgrimmar:/#&lt;span class="w"&gt; &lt;/span&gt;ls&lt;span class="w"&gt; &lt;/span&gt;-hl&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;tmp
drwxrwxrwt&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;,0K&lt;span class="w"&gt; &lt;/span&gt;déc&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;23&lt;/span&gt;:59&lt;span class="w"&gt; &lt;/span&gt;tmp/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Le sticky bit est positionné. Je suis rassuré. Néanmoins, il ne fait pas tout. Regardons donc quels répertoires sont accessibles à tous les utilisateurs, sans chercher à savoir si le sticky bit est positionné :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@orgrimmar:/#&lt;span class="w"&gt; &lt;/span&gt;find&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;-type&lt;span class="w"&gt; &lt;/span&gt;d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-perm&lt;span class="w"&gt; &lt;/span&gt;-0002&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print
/var/tmp
/var/lib/xenstored
/dev/shm
/tmp
/tmp/insecure
/tmp/.ICE-unix
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Cela fait déjà un peu plus de monde... pas très rassurant mais à part notre répertoire &lt;em&gt;insecure&lt;/em&gt;, pas de quoi s'affoler : &lt;em&gt;/var/tmp&lt;/em&gt; et &lt;em&gt;/tmp&lt;/em&gt; sont des répertoires destinés aux fichiers temporaires des programmes en fonctionnement, &lt;em&gt;/var/shm&lt;/em&gt; désigne &lt;a href="https://secure.wikimedia.org/wikipedia/fr/wiki/M%C3%A9moire_partag%C3%A9e"&gt;la mémoire partagée&lt;/a&gt; et le xenstored sert &lt;a href="http://books.google.com/books?id=XS-Jj7s2nhYC&amp;amp;pg=PA68&amp;amp;lpg=PA68&amp;amp;dq=/var/lib/xenstored&amp;amp;source=bl&amp;amp;ots=UUPHrW9az-&amp;amp;sig=NvdqPm8-x3cC6UOPlGEpRGOXKQY&amp;amp;hl=fr&amp;amp;ei=sw4dTcycMouo8QPnsrm9BQ&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=4&amp;amp;ved=0CC8Q6AEwAw#v=onepage&amp;amp;q=%2Fvar%2Flib%2Fxenstored&amp;amp;f=false"&gt;au bon fonctionnement de l'hyperviseur Xen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour finir, nous pouvons nettoyer notre petite expérience :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@orgrimmar:/#&lt;span class="w"&gt; &lt;/span&gt;rmdir&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;/tmp/insecure/
rmdir:&lt;span class="w"&gt; &lt;/span&gt;destruction&lt;span class="w"&gt; &lt;/span&gt;du&lt;span class="w"&gt; &lt;/span&gt;répertoire&lt;span class="w"&gt; &lt;/span&gt;/tmp/insecure/
root@orgrimmar:/#&lt;span class="w"&gt; &lt;/span&gt;ls&lt;span class="w"&gt; &lt;/span&gt;-hal&lt;span class="w"&gt; &lt;/span&gt;/tmp/&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;secu
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 06/01/2011 19:09 par &lt;a href="http://www.sakana.fr/blog/"&gt;stephane&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Juste un petit commentaire en passant, vu que ça fait longtemps :-)&lt;/p&gt;
&lt;p&gt;Un flag de ls a connaître : -d, pour éviter le ls .... | grep .... , tu peux faire un ls -ld /tmp par exemple. Ça te sort le ls du répertoire et non de son contenu.&lt;/p&gt;
&lt;p&gt;A+&lt;/p&gt;
&lt;p&gt;Stéphane&lt;/p&gt;</content><category term="Sécurité"></category><category term="CentOS"></category><category term="chmod"></category><category term="find"></category><category term="Linux"></category><category term="NSA"></category><category term="RHEL"></category><category term="sticky-bit"></category></entry><entry><title>Dédé le clown et son copain le live-cd</title><link href="https://blog.anotherhomepage.org/post/2010/05/25/D%C3%A9d%C3%A9-et-son-copain-le-live-cd/" rel="alternate"></link><published>2010-05-25T16:30:00+02:00</published><updated>2010-05-25T16:30:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2010-05-25:/post/2010/05/25/Dédé-et-son-copain-le-live-cd/</id><summary type="html">&lt;p&gt;C'est l'histoire de Dédé le clown, ou plutôt de &lt;a href="http://fr.wikipedia.org/wiki/Dd_%28Unix%29"&gt;dd&lt;/a&gt; le clone, qui rend bien service lorsqu'on a des sueurs froides... Mais qu'est-ce que dd ? Depuis la page de manuel, on peut lire : "convert and copy a file". C'est tellement simple qu'on se dit que ce n'est pas très puissant …&lt;/p&gt;</summary><content type="html">&lt;p&gt;C'est l'histoire de Dédé le clown, ou plutôt de &lt;a href="http://fr.wikipedia.org/wiki/Dd_%28Unix%29"&gt;dd&lt;/a&gt; le clone, qui rend bien service lorsqu'on a des sueurs froides... Mais qu'est-ce que dd ? Depuis la page de manuel, on peut lire : "convert and copy a file". C'est tellement simple qu'on se dit que ce n'est pas très puissant, mais on se met à créer des fichiers d'image disque, ou cloner des disques durs entiers, on comprend que parfois les énoncés les plus court peuvent être très complet ! La page wikipédia de dd en Français contient quelques exemples utiles, mais &lt;a href="http://en.wikipedia.org/wiki/Dd_%28Unix%29"&gt;la page anglophone&lt;/a&gt; en contient encore plus !&lt;/p&gt;
&lt;p&gt;Imaginons maintenant la situation : vous possédez deux machines, identiques. Vous installez la première et désirez installer la seconde à l'identique, il suffit de cloner le disque dur à l'aide de dd et de copier votre clone, toujours à l'aide de dd, sur la seconde machine. Une autre situation, que je ne vous souhaite pas : vous disposez de deux machines identiques toujours, mais l'OS de l'une d'entre elles se trouve endommagés (imaginez par exemple, 3/4 des fichiers de /boot disparus, idem dans /lib et à quelques autres endroits). Ajoutons à cela là contrainte que vous ne pouvez pas éteindre la machine encore en marche, et que le temps presse. Pas besoin de chercher deux heures un outil de clonage, il est installé sur votre linux adoré : dd. Récupérons un disque dur USB dont la capacité excède celle du disque local. Voici comment on clone le disque dur :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;root@machinequimarche ~&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sda&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;media&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usb&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;machine1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Je pars du principe que le disque dur s'appelle /dev/sda et que le disque USB est monté sous /media/usb/, mais cela peut différer selon la situation de chacun. On notera que l'option "bs=1M" (copier par blocs de 1 Méga-octet) rend la copie plus rapide. J'aurais bien tenté des blocs encore plus grands mais la copie s'est avérée déjà bien rapide.&lt;/p&gt;
&lt;p&gt;Une fois la copie terminée (environ une bonne heure pour 70Go de disque, sachant qu'il y avait du raid 1 matériel sur du SCSI 10000 tours...), reste à se rendre devant la deuxième machine, de démarrer celle-ci sur un live-cd contenant lui aussi dd (n'importe quel live-cd de distriubtion Linux devrait l'avoir), et copier dans l'autre sens :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;root@machinequimarchepas ~&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;media&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usb&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;machine1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sda&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Bien sûr, on a au préalable monté le disque USB ;) Une fois la copie terminée, le disque démonté, je recommande de monter les partitions du disque local (/dev/sda pour mon cas), et d'aller modifier les noms d'hôte, les adresses IP et autres configurations particulières qu'on pourrait trouver dans /etc, sinon la mise en réseau de la machine risquerait d'être problématique. Dans le cas d'une RHEL/CentOS/Fedora, on pensera à modifier :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/etc/hosts&lt;/li&gt;
&lt;li&gt;/etc/sysconfig/network&lt;/li&gt;
&lt;li&gt;/etc/sysconfig/network-scripts/ifcf-* (selon vos configurations, plusieurs cartes réseau, bonding...)&lt;/li&gt;
&lt;li&gt;/etc/sysconfig/iptables-config si vous sauvegardez ici votre firewall, sinon regardez votre script de firewall&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Autre chose, surtout pour les utilisateurs des distributions sus-cités : le mode rescue n'est disponible que sur le CD1 ou DVD1, mais pas dans le boot.iso ou tout autre média de net-install. Ce mode permet de démarrer sur un système live minimaliste permettant de monter les partitions du système, de monter un disque dur usb (si vous le branchez avant de booter pour du RHEL4), et bien sûr, d'accéder à dd :)&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="dd"></category><category term="Linux"></category><category term="live-cd"></category><category term="Red Hat"></category><category term="rescue"></category><category term="RHEL"></category></entry><entry><title>Utilisateurs virtuels sous CentOS 5 avec base de données MySQL</title><link href="https://blog.anotherhomepage.org/post/2008/06/20/Utilisateurs-virtuels-sous-CentOS-5-avec-base-de-donnees-MySQL/" rel="alternate"></link><published>2008-06-20T10:30:00+02:00</published><updated>2008-06-20T10:30:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2008-06-20:/post/2008/06/20/Utilisateurs-virtuels-sous-CentOS-5-avec-base-de-donnees-MySQL/</id><summary type="html">&lt;p&gt;&lt;code&gt;convert\_to\_centos5\_fr.sh --url howtoforge.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Depuis quelques temps j'essayais sans succès de faire des utilisateurs virtuels avec &lt;a href="http://vsftpd.beasts.org/"&gt;Vsftpd&lt;/a&gt;, mon logiciel de serveur ftp favori, sous CentOS 5. Alors oui, la db au format Berkeley, ça marche, mais je trouve ça casse-pieds à maintenir. Et puis pour changer …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;code&gt;convert\_to\_centos5\_fr.sh --url howtoforge.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Depuis quelques temps j'essayais sans succès de faire des utilisateurs virtuels avec &lt;a href="http://vsftpd.beasts.org/"&gt;Vsftpd&lt;/a&gt;, mon logiciel de serveur ftp favori, sous CentOS 5. Alors oui, la db au format Berkeley, ça marche, mais je trouve ça casse-pieds à maintenir. Et puis pour changer le mot de passe, galère. J'avais vu qu'il était possible d'utiliser &lt;a href="http://www-fr.mysql.com/"&gt;MySQL&lt;/a&gt; comme base pour les utilisateurs et leurs mots de passe. Je me met en quête d'un how-to pour CentOS, sans succès. J'adapte donc &lt;a href="http://www.howtoforge.com/vsftpd_mysql_debian_etch"&gt;ce how-to&lt;/a&gt; de Howtoforge pour CentOS.&lt;/p&gt;
&lt;p&gt;Commençons par l'installation des paquets qui vont bien. En supposant que vous ayez, comme moi, une CentOS 5 minimaliste mais à jour, ça se passe comme ceci :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;yum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mysql&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ensuite, soit on ajoute à ses dépôts le dépôt extras en mode testing (et là je vous encourage à faire très attention, et de n'activer que les noms des paquets nécessaires), soit on installe "à la main" le paquet &lt;a href="http://pam-mysql.sourceforge.net/"&gt;pam-mysql&lt;/a&gt;, qui permettra à vsftpd de dialoguer avec MySQL. Le RPM est disponible sur &lt;a href="http://rpm.pbone.net/index.php3/stat/4/idpl/6192385/com/pam_mysql-0.7-0.5.rc1.el5.kb.2.i386.rpm.html"&gt;Pbone&lt;/a&gt;.Moi j'ai fait :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;wget&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;ftp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pbone&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mirror&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;centos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;karan&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;el5&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;extras&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;testing&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;i386&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;RPMS&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pam_mysql&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;el5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;kb&lt;/span&gt;&lt;span class="mf"&gt;.2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;i386&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rpm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;puis :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rpm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;ivh&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pam_mysql&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;el5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;kb&lt;/span&gt;&lt;span class="mf"&gt;.2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;i386&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rpm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Une fois les logiciels qui vont bien installés, on peut avoir envie de gérer MySQL via phpMyAdmin, pour celà je vous renvoie à &lt;a href="/post/2008/05/17/installation-de-phpmyadmin-sur-CentOS-5"&gt;un autre billet qui en parle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Commençons par MySQL, pour respecter l'ordre originel du howto. Une fois celui-ci installé, on configure le mot de passe de root :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mysqld&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;start&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;MySQL indique les commandes pour changer le mot de passe de root pour MySQL, en indiquant quel est le nom d'hôte MySQL de la machine (détail très important !)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mysqladmin&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;changemoi&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mysqladmin&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tristram&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;anotherhomepage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;changemoi&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;(on voit donc que la machine servant à ce howto se nomme tristram.anotherhomepage.loc)Ensuite on se connecte à MySQL :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mysql&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On crée la base de données et son utilisateur, &lt;em&gt;vsftpd&lt;/em&gt; et mot de passe &lt;em&gt;ftpdpass&lt;/em&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;mysql&amp;gt; CREATE DATABASE vsftpd;
mysql&amp;gt; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO &amp;#39;vsftpd&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED BY &amp;#39;ftpdpass&amp;#39;;
mysql&amp;gt; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO &amp;#39;vsftpd&amp;#39;@&amp;#39;localhost.localdomain&amp;#39; IDENTIFIED BY &amp;#39;ftpdpass&amp;#39;;
mysql&amp;gt; FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ensuite on créé le schéma (on est toujours dans le shell de MySQL) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;mysql&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;USE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;mysql&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n n-Quoted"&gt;`accounts`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="n n-Quoted"&gt;`id`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;INT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="no"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;AUTO_INCREMENT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n n-Quoted"&gt;`username`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="no"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n n-Quoted"&gt;`pass`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="no"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="k"&gt;UNIQUE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="n n-Quoted"&gt;`username`&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ENGINE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MYISAM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Et on quitte MySQL :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;mysql&amp;gt; quit;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On créée l'utilisateur virtuel pour accéder aux comptes ; sous CentOS 5, le groupe de l'utilisateur &lt;em&gt;nobody&lt;/em&gt; est &lt;em&gt;nobody&lt;/em&gt;, avec comme gid 99 (vu dans &lt;em&gt;/etc/groups&lt;/em&gt;) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;useradd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;--home /home/vsftpd --gid 99 -m --shell /sbin/nologin vsftpd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On note aussi que pour empêcher un compte d'avoir un shell, on met plutôt &lt;em&gt;/sbin/nologin&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Passons à Vsftpd. Sauvegardons la configuration par défaut et ajoutons la nôtre :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf_orig&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vi&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Le fichier &lt;em&gt;vsftpd.conf&lt;/em&gt; est le suivant ( les options sont expliquées en anglais &lt;a href="http://vsftpd.beasts.org/vsftpd_conf.html"&gt;sur le site de vsftpd&lt;/a&gt;) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;listen&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;anonymous_enable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;NO&lt;/span&gt;
&lt;span class="n"&gt;local_enable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;write_enable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;local_umask&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;022&lt;/span&gt;
&lt;span class="n"&gt;dirmessage_enable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;xferlog_enable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;connect_from_port_20&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;nopriv_user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;
&lt;span class="n"&gt;chroot_local_user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;secure_chroot_dir&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;
&lt;span class="n"&gt;pam_service_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;
&lt;span class="n"&gt;guest_enable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;guest_username&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;
&lt;span class="n"&gt;local_root&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/$&lt;/span&gt;&lt;span class="n"&gt;USER&lt;/span&gt;
&lt;span class="n"&gt;user_sub_token&lt;/span&gt;&lt;span class="o"&gt;=$&lt;/span&gt;&lt;span class="n"&gt;USER&lt;/span&gt;
&lt;span class="n"&gt;virtual_use_local_privs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;YES&lt;/span&gt;
&lt;span class="n"&gt;user_config_dir&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;user_conf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Une première différence avec celui de Howtoforge, je n'ai pas mis l'option &lt;em&gt;rsa_cert_file=/etc/ssl/certs/vsftpd.pem&lt;/em&gt;, je verrai ça pour un autre billet. Une autre différence est l'endroit où je stocke les configurations personnalisées par utilisateur : comme il y a un répertoire &lt;em&gt;/etc/vsftpd&lt;/em&gt;, j'ai créé un sous-répertoire &lt;em&gt;user_conf&lt;/em&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mkdir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;user_conf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Cette possibilité est bien entendue totalement optionnelle.&lt;/p&gt;
&lt;p&gt;Il nous faut maintenant configurer pam, qui va permettre à vsftpd d'aller chercher les utilisateurs dans la base mysql plutôt que dans les utilisateurs système, stockés dans &lt;em&gt;/etc/passwd&lt;/em&gt; et &lt;em&gt;/etc/shadow&lt;/em&gt;. Comme avec Vsftpd, on sauvegarde l'ancien et on en crée un tout neuf :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pam&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pam&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd_orig&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pam&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vi&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pam&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Le contenu de ce fichier est le suivant :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;La différence avec la version howtoforge est que j'ai changé l'algorithme de hash du mot de passe. Au lieu d'utiliser la fonction PASSWORD(), je vais utiliser MD5(). Je reviendrai sur ce qui a motivé ce choix après. Pour le moment, relançons Vsftpd :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;restart&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Et maintenant, créons notre premier utilisateur dans MySQL :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mysql&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Nous sommes dans le shell MySQL :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;mysql&amp;gt; USE vsftpd;
mysql&amp;gt; INSERT INTO accounts (username, pass) VALUES(&amp;#39;testuser&amp;#39;, MD5(&amp;#39;secret&amp;#39;));
mysql&amp;gt; quit;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Le répertoire de l'utilisateur testuser est &lt;em&gt;/home/vsftpd/testuser&lt;/em&gt;, mais Vsftpd ne peut pas le créer automatiquement pour nous, faisons-le à la main, en prenant soin qu'il appartient bien à vsftpd :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mkdir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;testuser&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@tristram&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chown&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;vsftpd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;nobody&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vsftpd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;testuser&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Connectons-nous à notre serveur FTP en utilisant Filezilla sous Windows, Konqueror ou gFTP (ou bien en ligne de commande, ftp ou lftp) sous Linux/BSD, ou encore Cyberduck sous Mac OS X. Ca marche? Parfait :-)&lt;/p&gt;
&lt;p&gt;Maintenant le pourquoi du comment que j'ai mis 3 au lieu de 2 et MD5 au lieu de PASSWORD : tout simplement parce que ça ne fonctionne pas sous CentOS 5. L'explication vient du fichier README de pam-mysql, dispo là : &lt;em&gt;/usr/share/doc/pam_mysql-0.7/README&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The method to encrypt the user's password:&lt;/p&gt;
&lt;p&gt;0 (or "plain") = No encryption. Passwords stored in plaintext.HIGHLY DISCOURAGED.&lt;/p&gt;
&lt;p&gt;1 (or "Y") = Use crypt(3) function.&lt;/p&gt;
&lt;p&gt;2 (or "mysql") = Use MySQL PASSWORD() function. It is possiblethat the encryption function used by PAM-MySQLis different from that of the MySQL server, asPAM-MySQL uses the function defined in MySQL'sC-client API instead of using PASSWORD() SQL functionin the query.&lt;/p&gt;
&lt;p&gt;3 (or "md5") = Use plain hex MD5.&lt;/p&gt;
&lt;p&gt;4 (or "sha1") = Use plain hex SHA1.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La fonction PASSWORD de MySQL et celle de pam-mysql ne renvoient donc pas le même hash de mot de passe. Dommage, hein? J'ai aussi essayé l'option 0, mais elle ne m'intéressait pas. Je n'ai pas encore essayé la fonction crypt ni la fonction sha1 pour vérifier si elles fonctionnent, mais il n'y a pas de raison ;)&lt;/p&gt;
&lt;p&gt;Il ne reste à présent qu'à créer une page php ou un script shell qui permette de créer, modifier et effacer les utilisateurs.&lt;/p&gt;
&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 25/01/2011 15:45 par jennifer&lt;/h3&gt;
&lt;p&gt;Merci pour le tuto ca fonctionne nikel juste un petit oubli de votre part il faut créer le fichier vsftpd dans /var/run/ sinon il affiche un message d'erreur suite au chemin défini pour "secure_chroot_dir=/var/run/vsftpd" dans le fichier de configuration vsftpd.conf lors du lancement du ftp.&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="howtoforge"></category><category term="Linux"></category><category term="RHEL"></category><category term="Vsftpd"></category></entry><entry><title>RPMforge</title><link href="https://blog.anotherhomepage.org/post/2008/01/19/RPMforge/" rel="alternate"></link><published>2008-01-19T22:40:00+01:00</published><updated>2008-01-19T22:40:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2008-01-19:/post/2008/01/19/RPMforge/</id><summary type="html">&lt;p&gt;un dépôt qu'il est bien&lt;/p&gt;
&lt;p&gt;Oui, il y a des dépôts tierce-partie pour les distribs Red Hat, telles que RHEL, CentOS et Fedora. Un que j'apprécie beaucoup c'est &lt;a href="http://rpmforge.net/"&gt;RPMforge&lt;/a&gt;. Il contient entre autres, &lt;a href="http://htop.sourceforge.net/"&gt;Htop&lt;/a&gt; et &lt;a href="http://www.nagios.org/"&gt;Nagios&lt;/a&gt;, ce qui fait que j'aime bien l'installer sur une machine CentOS ou Fedora (htop …&lt;/p&gt;</summary><content type="html">&lt;p&gt;un dépôt qu'il est bien&lt;/p&gt;
&lt;p&gt;Oui, il y a des dépôts tierce-partie pour les distribs Red Hat, telles que RHEL, CentOS et Fedora. Un que j'apprécie beaucoup c'est &lt;a href="http://rpmforge.net/"&gt;RPMforge&lt;/a&gt;. Il contient entre autres, &lt;a href="http://htop.sourceforge.net/"&gt;Htop&lt;/a&gt; et &lt;a href="http://www.nagios.org/"&gt;Nagios&lt;/a&gt;, ce qui fait que j'aime bien l'installer sur une machine CentOS ou Fedora (htop c'est vraiment du confort face à top). Pour l'installer, c'est très simple : il suffit d'aller récupérer le RPM qui installe le dépôt dans yum, ce qui évite de rajouter le dépôt à la main dans la configuration de ce dernier. Pour trouver le rpm "rpmforge-release", c'est &lt;a href="http://dag.wieers.com/rpm/packages/rpmforge-release/"&gt;ici&lt;/a&gt;. On l'installe via un bon vieux rpm -ivh, on fait un petit yum update, et c'est parti !&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="Linux"></category><category term="Red Hat"></category><category term="RHEL"></category><category term="RPM"></category><category term="RPMForge"></category><category term="yum"></category></entry></feed>