Le Blog de C-quad

Archive pour la catégorie ‘Réseau’

Installer via le réseau – boot PXE

J’installe depuis un bout de temps, mes ordinateurs en passant par le réseau. Jusqu’à présent je me référais en cas de doute à la documentation Fedora pour configurer le serveur hébergeant les images.

Cela fonctionnait très bien jusqu’à ce que je décide de migrer mon serveur vers CentOS 6. Et oui system-config-netboot n’est plus disponible sur CentOS 6.

Nous allons voir ici comment se passer de cet utilitaire. Plutôt que de détailler uniquement la configuration du netboot, et d’avoir à aller lire le reste sur d’autres sites, je détaille ici la procédure complète.

Préparation – Installation des logiciels nécessaires

Afin de pouvoir effectuer une installation grâce au réseau, il est nécessaire d’avoir quelques logiciels sur le serveur :

  • Un serveur DHCP : qui va attribuer une adresse IP au PC qui démarre et l’envoyer vers le boot PXE.
  • Un serveur TFTP : qui va héberger la partie nécessaire au boot
  • Un serveur HTTP : qui va héberger les ISO d’install. Ceci étant optionnel, il est tout à fait possible d’utiliser un répertoire NFS ou autre.

Nous allons donc procéder à l’installation de ces divers services :

# yum install syslinux xinetd tftp-server dhcp

Le service tftp est lancé par xinetd, il est nécessaire de l’activer :

# chkconfig tftp on
# service xinetd restart

Le service dhcp doit pointer vers le serveur hébergeant le boot.
Nous allons donc éditer le fichier /etc/dhcp/dhcpd.conf, Voici en exemple le mien :

 ddns-update-style none;
 ignore client-updates;
 authoritative;
 allow booting;
 allow bootp;
 subnet 192.168.0.0 netmask 255.255.255.0 {
        option routers 192.168.0.254;        # passerelle par défaut
        option subnet-mask 255.255.255.0;    # masque de sous-réseau
        option domain-name "cquad.lan";    # nom de domaine
        option domain-name-servers 212.27.40.241, 212.27.40.240;# serveurs DNS (free)
        range 192.168.0.50 192.168.0.100;    # plage d’adresse
        default-lease-time 21600;        # durée du bail en secondes
        max-lease-time 43200 ;            # durée maxi du bail en sec.
        next-server 192.168.0.5;             # adresse du serveur tftp     
        filename "pxelinux.0";   # fichier a chercher sur le serveur tftp
}

Les informations nous concernant sont les 2 dernières lignes :

        next-server 192.168.0.5;             # adresse du serveur tftp     
        filename "pxelinux.0";   # fichier a chercher sur le serveur tftp

Après avoir modifié cette configuration, il est nécessaire de relancer le service dhcp afin qu’elle soit prise en compte :

service dhcpd restart

Publier les images ISO d’installation

Nous allons créer un point de montage qui correspond à la distribution qui sera installée via PXE et y monter l’image du DVD ou CD :

# mkdir -p /var/pxe/fedora17
# mount -t iso9660 -o loop /home/Ced/Téléchargements/iso/Fedora-17-x86_64-DVD.iso /var/pxe/fedora17

Vous pouvez bien sur monter l’image via /etc/fstab

Il faut indiquer au serveur apache qu’il doit publier ces informations :

Nous créons le fichier suivant /etc/httpd/conf.d/pxeboot.conf :

Alias /fedora17 /var/pxe/fedora17
<Directory /var/pxe/fedora17>
 Options Indexes FollowSymLinks
 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1 10.0.0.0/24
 </Directory>
Penser à vérifier et recharger la configuration apache :
# apachectl -t
 Syntax OK
# service httpd reload

Configuration du boot

Cette partie était précédemment réalisée par l’utilitaire system-config-netboot. Nous allons désormais le faire manuellement.

A noter que cela n’est pas spécialement une mauvaise chose, cela permet de comprendre le fonctionnement.

Nous allons créer un répertoire qui va contenir le menu de démarrage lors du boot PXE :

# mkdir -p /var/lib/tftpboot/pxelinux.cfg

Nous recopions le fichier pxelinux.0 qui est pointé par la configuration DHCP et le fichier qui permet de gérer le menu:

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

Pour chaque distribution à installer, nous allons ajouter un dossier contenant les fichiers nécessaires à son installation :

# mkdir /var/lib/tftpboot/fedora17

Nous y recopions les données nécessaires au boot :

# cp /var/pxe/fedora17/images/pxeboot/vmlinuz /var/lib/tftpboot/fedora17/
# cp /var/pxe/fedora17/images/pxeboot/initrd.img /var/lib/tftpboot/fedora17/

Il nous reste à définir les options du boot dans le fichier /var/lib/tftpboot/pxelinux.cfg/default

# create new

timeout 100
default menu.c32

menu title ########## PXE Boot Menu ##########
label 1
   menu label ^1) Install Fedora 17
   kernel fedora17/vmlinuz
   append initrd=fedora17/initrd.img method=http://192.168.0.5/fedora17 devfs=nomount

label 2
   menu label ^2) Boot from local drive
   localboot

Attention, Il est nécessaire d’ouvrir le port 69 en UDP afin que le serveur TFTP soit accessible

Il ne vous reste plus qu’a démarrer le PC à installer en lui demandant dans le BIOS de démarrer sur la carte réseau.

Lenteur des accès internet sous Linux – FAI ipv4 (exemple Orange)

J’ai constaté en branchant mon netbook chez mes parents sous Orange une résolution de nom particulièrement longue. Autant le téléchargement était correct, mais la navigation désastreuse (comparé à Free).

Après quelques investigations, il s’avère que ce souci serait lié au fait qu’Orange ne soit pas encore passé à l’ipv6. Nos distributions modernes essaient par défaut la connexion ipv6 et basculent en ipv4 si celle-ci n’est pas disponible.

Néanmoins, firefox semble embarquer lui aussi cette fonctionnalité pour la résolution DNS.

En désactivant la résolution DNS ipv6 de Firefox, la connexion internet chez mes parents est redevenue normale. Je vais donc vous livrer la méthode utilisée :

Sous firefox dans la barre d’adresse saisir:

 about:config

et modifier l’entrée :

network.dns.disableIPv6 à true

L’accès à internet devrait gagner en vélocité.

Je me pose par contre la question, s’il ne serait pas nécessaire en plus de blacklister ipv6 étant donné qu’il n’est pas disponible …

Quel est votre avis ?

MAJ suite aux commentaires : Il est préférable de modifier les DNS utilisés pour éviter d’utiliser ceux d’Orange et cela résout effectivement le problème. La modification des DNS se fait via NetworkManager.

 

Accéder à Internet sous Fedora en étant derrière un proxy Microsoft

Cet article a pour objectif de décrire comment accéder à Internet en étant derrière un proxy ISA-Server de Microsoft.
Le proxy ISA-Server de Microsoft ne reconnaît pas l’authentification par compte/motdepasse, il n’est donc pas possible avec ce proxy de se contenter de mettre à jour le fichier /etc/yum.conf et la variable http_proxy pour accéder à internet.

Il est dans ce cas nécessaire d’installer un paquet qui va se charger de réaliser l’authentification auprès du proxy Microsoft et servira de proxy pour les logiciels nécessitant un accès à l’extérieur.

Installation de cntlm

Sous Fedora, le paquet qui va se charger de dialoguer avec le proxy Microsoft s’appelle cntlm. Évidement si vous avez besoin de ce paquet, c’est que vous ne pouvez accéder à internet et de ce fait un yum install va poser problème.

il vous faudra récupérer le paquet en local soit avec une autre machine ayant accès :

$ yumdownloader cntlm

ou en se rendant sur la page du paquet fedora https://admin.fedoraproject.org/pkgdb/acls/name/cntlm vous pouvez télécharger le(s) rpms désirés dans la section build.

Après avoir copié le fichier rpm récupéré par la méthode de votre choix, on peut procéder à l’installation :

# yum localinstall cntlm-0.35.1-7.fc14.i686.rpm

Il faut bien entendu adapter le nom du fichier en fonction de la version téléchargée.

Configuration de cntlm

La configuration de cntlm se fait par le fichier /etc/cntlm.conf dont voici la section qui nous intéresse :

Username        votre_identifiant
Domain          nom_de_domaine
Password        votre_password
#Workstation    netbios_hostname        # Should be auto-guessed

Proxy           proxy:8080  #le nom du proxy et son port d'écoute
Proxy           proxy2:8080 #s'il y a plusieurs proxy il suffit de les ajouter

#
# This is the port number where Cntlm will listen
#
Listen          3128        # le port qui sera ouvert par cntlm

Le fichier de configuration renseigné, nous pouvons lancer le service :

# service cntlmd start

Si l’on désire que ce service soit lancé par défaut :

# chkconfig cntlmd on

Utilisation de cntlm

Maintenant que le relai est actif, il nous reste à l’utiliser. il faut donc configurer les applications pour utiliser ce reali proxy.

Par exemple :

  • pour Firefox vous utiliserez comme définition du proxy http://localhost:3128 :

  • pour yum, il faut éditer le fichier de configuration /etc/yum.conf et ajouter la ligne suivante :
proxy=http://localhost:3128/

Interface graphique à distance avec FreeNX

Il y a déjà quelques temps j’avais rédigé un article sur l’accès à distance avec vnc, nous allons voir maintenant comment faire la même chose avec FreeNX.

La technologie NX est un protocole client-serveur permettant des connexions graphiques X11 distantes rapides et sûres pour accéder à un bureau Linux / Unix à distance. Le protocole est basé à la fois sur SSH (pour la sécurité) et sur la compression X (pour l’interface graphique et la rapidité)

Par rapport à VNC, j’y retrouve 2 avantages :

  • Fonctionne sur une  connexion avec peu de bande passante
  • Permet de s’authentifier (la prise de main peut facilement se faire sans qu’une session soit ouverte)

Installation et configuration de FreeNX

Comme tout logiciel sous Fedora, l’installation est très simple il nous suffira de l’installer avec yum :

# yum install freenx

Nous vérifions ensuite que le service tourne bien :

# service freenx-server status
freenx-server est en cours d’exécution

Nous allons ensuite récupérer la clé située dans /etc/nxserver/

# cat /etc/nxserver/client.id_dsa.key

Installation du client

Il n’y a malheureusement pas à ma connaissance de client libre qui soit pleinement fonctionnel avec le serveur freenx. Il est donc nécessaire de télécharger le client fourni par nomachine.

La configuration n’est pas compliquée, il suffit de lancer nxclient sur le client et de cliquer sur le bouton configure.

On renseigne l’adresse du serveur auquel on désire se connecter. Il est important de cliquer sur le bouton « Key »  et d’y copier collé le contenu du fichier clé édité sur le serveur (/etc/nxserver/client.id_dsa.key)

Et tout doit fonctionner.

Références

Documentation fedora-fr

Configurer sendmail – envoyer des emails grâce à un relai SMTP

Nous allons voir comment configurer le service sendmail pour fonctionner en tant que relai SMTP.

Pour pouvoir intervenir sur la configuration de sendmail il est nécessaire d’installer le paquetage sendmail-cf :

# yum install sendmail-cf

Configuration

Le fichier de configuration

Le fichier de configuration de sendmail se situe dans /etc/mail et se nomme sendmail.mc.
Pensez à faire une sauvegarde du fichier d’origine :

# cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.sauvegarde

Ensuite éditez-le via votre éditeur préféré.

Il faudra modifier et/ou ajouter quelques lignes. (les dnl en début de ligne permettent l’ajout de commentaires) :

dnl # permettra de savoir que votre fichier de configuration a été modifié par vous
VERSIONID(`Installation Personnelle')dnl

dnl # définir smtp.fournisseur.fr comme serveur de relai
define(`SMART_HOST',`smtp.fournisseur.fr')

dnl # demander au serveur de relayer le local
GENERICS_DOMAIN(localhost.localdomain localhost)dnl

dnl # masquer le header mais aussi l'enveloppe
FEATURE(masquerade_envelope)dnl

dnl # Définir le domaine qui va apparaitre lors de l'envoi des mails
MASQUERADE_AS(`mon_domaine.fr')dnl

Si le serveur SMTP que vous avez défini dans SMART_HOST effectue un contrôle et que de ce fait vos mails ne sont pas envoyés , vous avez 2 solutions :

  1. vous définissez dans MASQUERADE_AS le domaine de votre serveur SMTP (par exemple free.fr)
  2. vous laissez le paramètre MASQUERADE_AS tel qu’il est, et ajoutez les lignes suivantes dans votre fichier :
FEATURE(always_add_domain)dnl
FEATURE(masquerade_entire_domain)dnl
FEATURE(`allmasquerade')dnl 

MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(`mon_domaine.fr')dnl 

Obtention du fichier sendmail.cf

Dernièrement, vous devrez générer le fichier sendmail.cf

# cd /etc/mail
# make

Il est ensuite nécessaire de redémarrer sendmail afin que les paramètres soient pris en compte

# service sendmail restart

Références

Documentation Fedora