Modifications entre les versions 3 et 56 (s'étendant sur 53 versions)
Version 3 à la date du 2011-02-18 13:50:33
Taille: 9341
Commentaire:
Version 56 à la date du 2013-07-25 20:04:56
Taille: 16457
Éditeur: MoussaNombre
Commentaire: /boot dans un lvm
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
Cette page présente le modèle de serveur bureautique pour le déploiement du poste de travail AuF sous ''Ubuntu « Lucid » 10.04''.

||<#FF0000> '''ATTENTION :''' cette documentation est en cours de rédaction est n'est donc pas encore validée officiellement !!||
<<TableOfContents()>>
Cette page présente le modèle de serveur bureautique pour le déploiement du poste de travail AuF sous ''Ubuntu Lucid Lynx” 10.04 LTS''.

||<#FFFF00> '''AVERTISSEMENT :''' cette documentation est encore incomplète mais néanmoins validée ; elle a déjà servi à installer de vrais serveurs en production.||
Ligne 7: Ligne 8:
 * processeur 64 bits (Intel Xeon ou AMD Opteron)
 * beaucoup de RAM (8 Go recommandés)
 * processeur 64 bits (Intel Xeon ou AMD Opteron), multi-cœurs autant que possible
 * beaucoup de RAM (4 Gio ou plus recommandés)
Ligne 18: Ligne 19:
  . {i} ''[[MoussaNombre|je]] confirme que le /boot marche bien dans un LVM sans soucis (en prod à Montréal)''
Ligne 52: Ligne 54:
 . {i} ''dans les cas où les locales étaient déjà installées, s'assurer de leur bonne configuration en lançant `dpkg-reconfigure locales`, c'est important''
 * installation de quelques paquets indispensables/utiles : {{{
aptitude install less vim screen mtr-tiny openssh-client xauth-
}}}
 . {i} ''Dans le cas où les locales auraient déjà été installées, s'assurer de leur bonne configuration en lançant `dpkg-reconfigure locales`, c'est important.''
Ligne 57: Ligne 56:
aptitude install bind9 aptitude install --without-recommends ntp bind9 openssh-server
}}}
 * installation de quelques autres paquets indispensables/utiles : {{{
aptitude install --without-recommends less vim ssh screen mtr-tiny dnsutils
Ligne 63: Ligne 65:
/etc/init.d/networking stop service networking stop
Ligne 87: Ligne 89:
Ligne 95: Ligne 98:
/etc/init.d/networking start
}}}
service networking start
}}}

{i} Remarque : en principe le serveur de bureautique n'est pas sensé jouer aussi le rôle de passerelle. On peut fusionner les deux au besoin mais cette documentation se concentre plutôt sur le modèle général où les deux fonctions sont séparées.
Ligne 101: Ligne 106:
aptitude install openssh-server
}}}
 . /!\ '''ATTENTION : configuration (restrictions) restant à préciser'''
aptitude install --without-recommends openssh-server
}}}
 * dans le cas où l'on voudrait donner un accès SFTP aux partages réseaux (par exemple pour les nomades), ajouter ceci tout à la fin (c'est important) du `/etc/ssh/sshd_config` : {{{
AllowGroups ssh users
Subsystem sftp internal-sftp
Match Group users
   ChrootDirectory /nfsv4
   X11Forwarding no
   AllowTcpForwarding no
   ForceCommand internal-sftp
}}}
 . /!\ Le répertoire partages (ici /nfsv4) et ses parents doivent avoir root comme owner et non writable par group et other, si non vous avez ce type d'erreur "fatal: bad ownership or modes for chroot directory" dans /var/log/auth

 * pour une gestion des fichiers par groupe d'utilisateurs, ajouter ces lignes à `/etc/pam.d/sshd` : {{{
# Setting UMASK for all ssh based connections (ssh, sftp, scp)
session optional pam_umask.so umask=0002
}}}
 . /!\ dans ce cas ajouter également un `umask 0022` dans `/root/.bashrc`

/!\ '''ATTENTION : configuration (restrictions) restant à préciser'''
Ligne 108: Ligne 130:
aptitude install ntp aptitude install --without-recommends ntp
Ligne 115: Ligne 137:
aptitude install bind9 aptitude install --without-recommends bind9
Ligne 127: Ligne 149:
Ligne 135: Ligne 158:
@ IN SOA ns1.lucid.auf. postmaster.lucid.auf. ( @ IN SOA ns1.lucid.auf. hostmaster.lucid.auf.org. (
Ligne 147: Ligne 170:
server IN A 192.168.50.10
$GENERATE 130-249 poste$ IN A 192.168.50.$
nfs IN A 192.168.50.10
$GENERATE 130-249 dynamic-$ IN A 192.168.50.$
Ligne 151: Ligne 174:
ntp IN CNAME server
nfs IN CNAME server
mirror IN CNAME mirror.vn.refer.org.
ntp IN CNAME nfs
nss IN CNAME nfs
Ligne 158: Ligne 180:
@ IN SOA ns1.lucid.auf. postmaster.lucid.auf. ( @ IN SOA ns1.lucid.auf. hostmaster.lucid.auf.org. (
Ligne 169: Ligne 191:
10 IN PTR server.lucid.auf.
$GENERATE 130-249 $ IN PTR poste$.lucid.auf.
10 IN PTR nfs.lucid.auf.
$GENERATE 130-249 $ IN PTR dynamic-$.lucid.auf.
Ligne 174: Ligne 196:
/etc/init.d/bind9 restart service bind9 restart
}}}
 * valider la configuration DNS avec quelques tests : {{{
host nfs.lucid.auf
host dynamic-130.lucid.auf
host www.auf.org
Ligne 182: Ligne 209:
 * spécifier dans `/etc/default/dhcpd` l'interface sur laquelle on fournit le service : {{{  * spécifier dans `/etc/default/isc-dhcp-server` l'interface sur laquelle on fournit le service : {{{
Ligne 185: Ligne 212:
 * définir dans `/etc/dhcp3/dhcpd.conf` le réseau que l'on sert : {{{  * définir dans `/etc/dhcp/dhcpd.conf` le réseau que l'on sert : {{{
Ligne 187: Ligne 214:
filename "pxelinux.0";
Ligne 189: Ligne 216:
  next-server 192.168.50.1;
  range dynamic-bootp 192.168.50.130 192.168.50.249;
  option domain-name-servers 192.168.50.1;
  deny unknown-clients; # recommandé sur un réseau dont toutes les machines sont connues
  range 192.168.50.130 192.168.50.249;
  option subnet-mask 255.255.255.0;
  option broadcast-address broadcast.lucid.auf;
  option routers gw.lucid.auf;
Ligne 193: Ligne 222:
  option broadcast-address 192.168.50.255;
  option routers 192.168.50.1;
  option domain-name-servers ns1.lucid.auf;
  option ntp-server ntp.lucid.auf;
  filename "pxelinux.0";
  next-server nfs.lucid.auf;
  server-name "nfs.lucid.auf";
Ligne 198: Ligne 230:
/etc/init.d/dhcp3-server restart
}}}

== service TFTP ==

 * aptitude install tftpd-hpa
 * /etc/init.d/openbsd-inetd restart
 * wget -q http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-i386/current/images/netboot/netboot.tar.gz -O- | tar -C /var/lib/tftpboot -xpzf -
 * chown -hR root:root /var/lib/tftpboot
 * /var/lib/tftpboot/default (ajout) : {{{
label Lucid sauce AUF
        kernel ubuntu-installer/i386/linux
        append vga=vesa initrd=ubuntu-installer/i386/initrd.gz locale=fr_FR.UTF-8 console-setup/ask_detect=false console-setup/layoutcode=fr netcfg/wireless_wep= netcfg/choose_interface=eth0 netcfg/get_hostname= url=http://nfs/preseed/lucid-auf --
}}}

== service WEB ==
service isc-dhcp-server restart
}}}

== Service TFTP ==

 * installer le service TFTP : ''(garder le chemin `/srv/tftp` par défaut)'' {{{
aptitude install tftpd-hpa
}}}
 . {i} ''Pour ''Lenny'', choisir de ne pas démarrer via `inetd`, mettre `RUN_DAEMON="yes"` et `OPTIONS="-v -l -s /srv/tftp"` dans `/etc/default/tftpd-hpa` et lancer `/etc/init.d/tftpd-hpa restart` ; ce n'est plus nécessaire avec ''Squeeze'' où le service TFTP est maintenant autonome.''
 * mettre en place l'installation en réseau de ''Ubuntu Lucid'', par exemple : {{{
wget http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-i386/current/images/netboot/netboot.tar.gz -O- | tar -C /srv/tftp -xpzf -
chown -hR root:nogroup /srv/tftp
}}}
 * ajouter à la fin de `/srv/tftp/pxelinux.cfg/default` une option d'installation au modèle AuF : {{{
label lucid
  menu label Lucid sauce AUF
  kernel ubuntu-installer/i386/linux
  append vga=vesa initrd=ubuntu-installer/i386/initrd.gz locale=fr_FR.UTF-8 console-setup/ask_detect=false console-setup/layoutcode=fr netcfg/wireless_wep= netcfg/choose_interface= netcfg/get_hostname= url=http://nfs/config/lucid-preseed-auf-fixe --

label local
  menu label Disque local
  menu default
  localboot 0
  append -
}}}

{i} Cela ne fonctionnera pas tout de suite car il faut d'abord mettre en place le service web pour servir le fichier ''preseed''.

== Service web ==
Ligne 217: Ligne 262:
 * aptitude install apache2
 * /etc/apache2/conf.d/security : {{{
 * installer le service web : {{{
aptitude install apache2
}}}
* configurer dans `/etc/apache2/conf.d/security` le niveau de détails techniques : {{{
Ligne 221: Ligne 268:
 * /etc/apache2/conf.d/charset : {{{  * configurer dans `/etc/apache2/conf.d/charset` le jeu de caractères par défaut : {{{
Ligne 224: Ligne 271:
 * /etc/init.d/apache2 restart
 * /var/www/preseed/lucid-auf : [[attachement:preseed-lucid-auf.txt]]

== service NFS ==

 * aptitude install nfs-kernel-server
 * /etc/default/nfs-common : {{{
NEED_IDMAPD=yes
}}}
 * /etc/init.d/nfs-common restart
 * mkdir -p /srv/nfs4/home
 * /etc/exports : {{{
/srv/nfs4 *.lucid.auf(ro,async,root_squash,no_subtree_check,insecure,fsid=0,crossmnt)
/srv/nfs4/home *.lucid.auf(rw,async,root_squash,no_subtree_check,insecure)
}}}
 * exportfs -rv
 * ajouter dans `/etc/apache2/sites-available/default`, avant la ligne `ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/`, les restrictions d'accès suivantes : {{{
 <Directory /var/www/config/>
  Options FollowSymLinks
  AllowOverride None
  Order allow,deny
  allow from 192.168.50.0/24
 </Directory>
 <Files wpad.dat>
  AddType application/x-ns-proxy-autoconfig .dat
 </Files>
}}}
 * relancer le service web : {{{
service apache2 restart
}}}
 * copier dans `/var/www/config/lucid-preseed-auf-fixe` le contenu de la page [[../PreseedAuFFixe]] : {{{{
mkdir /var/www/config
wget --header='User-Agent: Firefox' http://wiki.auf.org/wikiteki/Projet/Mod%C3%A8leLucid/PreseedAuFFixe?action=raw -O- | awk '/}}}/{ok=0} {if(ok)print} /{{{/{ok=1}' > /var/www/config/lucid-preseed-auf-fixe
chmod 0644 /var/www/config/lucid-preseed-auf-fixe
}}}}
 * copier dans `/var/www/config/lucid-authorized_keys` la clé publique qui servira à gérer les postes clients, par exemple : {{{
cp -a /root/.ssh/authorized_keys /var/www/config/lucid-authorized_keys
chmod 0644 /var/www/config/lucid-authorized_keys
}}}
 * copier dans `/var/www/config/lucid-postpreseed` le script suivant : {{{#!shell
#!/bin/sh

# désactivation des sources des logiciels par défaut
sed -i '/^deb-src/s/^/#/' /etc/apt/sources.list

# (re)configuration de l'environnement linguistique (bogue ?)
dpkg-reconfigure locales

# (re)configuration de l'imprimante PDF (nécessite que CUPS soit lancé)
service cups start
dpkg-reconfigure cups-pdf
service cups stop

# ajout du compte "auf" dans le groupe sudo (à faire le preseed, un jour...)
adduser auf sudo

# installation des clés SSH dans les comptes "root" et "auf"
mkdir -m 0700 -p /root/.ssh
wget http://nfs/config/lucid-authorized_keys -O /root/.ssh/authorized_keys
chmod 0600 /root/.ssh/authorized_keys
cp -a /root/.ssh ~auf/
chown -R auf:auf ~auf/.ssh

# après le redémarrage, il faudra encore ajuster les 'username' et 'password'
# dans /etc/libnss-mysql.cfg et /etc/libnss-mysql-root.cfg puis lancer :
# service nscd restart ; nscd -i passwd ; nscd -i group ; service gdm restart

# déplacement du "/home" actuel vers "/home.local"
sed -i 's|:/home/|:/home.local/|' /etc/passwd
mv /home /home.local
ln -s /net/nfs/home /home

# masque autorisant l'écriture pour le groupe par défaut
# (à activer dans les réseaux où on travaille par groupes Unix)
#sed -i 's/^umask .*$/umask 002/' /etc/profile

exit 0
}}}

 . (!) idée pour une amélioration possible pour le `umask` pour la gestion par groupes, faire ajouter plutôt quelque chose comme ça dans `/etc/profile` : {{{
if [ "`id -u`" -lt 1000 ]; then
  umask 022
else
  umask 002
fi
}}}

== Service NFS ==

Mettre en place le service NFS selon les indications sur la page [[NFS/NFSv4|NFSv4]] (uniquement la partie serveur).

Respecter les exemples fournis sur cette page, à l'exception du paramétrage pour le partage des répertoires utilisateurs (`/nfsv4/home`) : nous sommes pour le moment toujours obligés de mettre un `no_root_squash` au lieu de `root_squash`, toujours à cause de `cups-pdf` (imprimante PDF virtuelle).

== Gestion de l'espace disque ==

 * installer la gestion des quotas : {{{
aptitude install --without-recommends quota quotatool
}}}
 . /!\ '''ATTENTION : configuration (`usrquota` dans `/etc/fstab`, journalisation) restant à préciser'''

== Service auf-mkhomedir ==

 * installer le méta-serveur de services : {{{
aptitude install inetutils-inetd update-inetd
}}}
 * mettre en place le service de création de répertoire utilisateur : {{{
wget 'http://git.auf.org/?p=auf-poste-client.git;a=blob_plain;f=lucid/auf-client-fixe/auf-mkhomedir/inetd_auf-mkhomedir' -O /usr/local/sbin/inetd_auf-mkhomedir

chown root:root /usr/local/sbin/inetd_auf-mkhomedir
chmod 0700 /usr/local/sbin/inetd_auf-mkhomedir

update-inetd --group AUF --add '10 stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/inetd_auf-mkhomedir'
service inetutils-inetd reload
}}}

/!\ '''Il faut absolument vérifier''' dans `/usr/local/sbin/inetd_auf-mkhomedir` si le paramétrage des quotas correspond à votre politique locale de gestion de l'espace disque.

<<Anchor(Service_NSS)>>
== Base d'utilisateurs réseau ==

 * installer l'accès à la base des utilisateurs : {{{
aptitude install libnss-mysql-bg nscd
sed -i -e "s|,shell |,'/bin/false' |" -e '/ username=/s/=/= binary /' -e '/^host/s/^.*$/host nss/' /etc/libnss-mysql.cfg
}}}
 * éditer encore les fichiers `/etc/libnss-mysql.cfg` et `/etc/libnss-mysql-root.cfg` pour y configurer les `username` et `password` d'accès à la base dans MySQL
 * activer l'utilisation de cette base : {{{
sed -i -e '/^\(passwd\|group\|shadow\):/s/:.*$/:\t\tfiles mysql/' /etc/nsswitch.conf
service nscd restart
nscd -i passwd
nscd -i group
}}}

''(autres détails à venir… en particulier l'installation de `auf-django-users`)''

----

Cette page présente le modèle de serveur bureautique pour le déploiement du poste de travail AuF sous Ubuntu “Lucid Lynx” 10.04 LTS.

AVERTISSEMENT : cette documentation est encore incomplète mais néanmoins validée ; elle a déjà servi à installer de vrais serveurs en production.

Pré-requis matériels

  • processeur 64 bits (Intel Xeon ou AMD Opteron), multi-cœurs autant que possible
  • beaucoup de RAM (4 Gio ou plus recommandés)
  • beaucoup d'espace disque, en double pour faire du RAID-1 (2 × 500 Go SATA, ou du SCSI si on est riche)

Pré-requis système

  • /!\ aller dans le BIOS régler l'heure correcte, en UTC (!) (dans le doute sur l'heure précise, il veut mieux être en retard qu'en avance)

  • installer une Debian Squeeze (ou adapter une Debian Lenny existante si on n'a pas d'autre choix dans l'immédiat)

  • organisation des disques : /!\ ces choix sont très discutables et seront probablement revus au fur et à mesure des retours d'expérience

    • une première partition primaire de 100 Mo (pour /boot) de type RAID auto sur chaque disque

    • {i} en principe ce n'est plus nécessaire avec Squeeze qui utilise grub-pc (GRUB 2) et est donc capable de démarrer directement sur un volume LVM, mais je n'ai pas encore testé cela, en particulier dans le cas d'un LVM au dessus d'un RAID qui posait officiellement problème autrefois, et ce n'est donc pas encore une solution validée

    • {i} je confirme que le /boot marche bien dans un LVM sans soucis (en prod à Montréal)

    • le reste en partition(s) primaire(s) de type RAID auto sur chaque disque

    • (en découpant éventuellement par tranche de 250 Go, pour découper les re-synchronisation après crash)

    • aller dans le menu RAID pour :
      • joindre les partitions RAID auto 2-par-2 en des volumes RAID-1 de 2 disques et 0 de réserve (spare)

    • ne rien faire avec le premier volume RAID-1 (md0) car ce sera perdu (et donc à refaire) après la configuration LVM
    • déclarer les autres volumes RAID-1 (md1, md2, …) de type Volume physique LVM

    • aller dans le menu LVM pour :
      • joindre les volumes physique LVM dans un seul Groupe de volumes

      • (on recommande d'utiliser un nom de groupe de volumes unique entre tous les serveurs, par exemple vn1nfs0, ceci afin de pouvoir éventuellement déplacer ces disques dans un autre serveur plus tard sans avoir de conflit pour cause de noms de groupes de volumes identiques)

      • déclarer les volumes logiques suivants :
        • un volume de nom swap d'une taille de 10 Go

        • un volume de nom root d'une taille de 1 Go

        • un volume de nom var d'une taille de 1 Go

        • un volume de nom log d'une taille de 1 Go

        • un volume de nom tmp d'une taille de 1 Go

        • un volume de nom home d'une taille de 100 Go (par exemple, à vous de voir)

    • déclarer le volume logique swap de type swap

    • déclarer le volume logique root de type ext4 monté sur /

    • déclarer le volume logique var de type ext4 monté sur /var

    • déclarer le volume logique log de type ext4 monté sur /var/log

    • déclarer le volume logique tmp de type ext4 monté sur /tmp

    • déclarer le volume logique home de type ext4 monté sur /home

    • déclarer le premier volume RAID-1 (md0) de type ext3 monté sur /boot

  • choisir pour nom de machine nfs (non obligatoire, mais suggéré)

  • installer GRUB sur le MBR des deux disques en RAID, donc lancer ces commandes après redémarrage du serveur :

    grub-install /dev/sda
    grub-install /dev/sdb

Base système

  • configurer l'environnement linguistique : (choisir fr_FR.UTF-8, ou autre locale encodée en UTF-8)

    aptitude install locales
  • {i} Dans le cas où les locales auraient déjà été installées, s'assurer de leur bonne configuration en lançant dpkg-reconfigure locales, c'est important.

  • installation dès le départ de quelques services indispensables que l'on configurera plus tard :

    aptitude install --without-recommends ntp bind9 openssh-server
  • installation de quelques autres paquets indispensables/utiles :

    aptitude install --without-recommends less vim ssh screen mtr-tiny dnsutils

Base réseau

  • arrêter le réseau (pour stopper le client DHCP mis en place par défaut) :

    service networking stop
  • configurer le réseau dans /etc/network/interfaces, par exemple :

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
            address 192.168.50.10
            netmask 255.255.255.0
            network 192.168.50.0
            broadcast 192.168.50.255
            gateway 192.168.50.1
  • vérifier le nom de machine dans /etc/hostname, par exemple :

    nfs
  • vérifier le nom de machine dans /etc/hosts, par exemple :

    127.0.1.1       localhost
    # ne pas utiliser cette forme pour un vrai serveur (a priori, toutes les conséquences ne sont pas encore connues)
    #127.0.1.1      nfs.lucid.auf nfs
    # utiliser la véritable adresse IP
    192.168.50.10   nfs.lucid.auf nfs
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
  • démarrer le réseau :

    service networking start

{i} Remarque : en principe le serveur de bureautique n'est pas sensé jouer aussi le rôle de passerelle. On peut fusionner les deux au besoin mais cette documentation se concentre plutôt sur le modèle général où les deux fonctions sont séparées.

Service SSH

  • installer le service SSH :

    aptitude install --without-recommends openssh-server
  • dans le cas où l'on voudrait donner un accès SFTP aux partages réseaux (par exemple pour les nomades), ajouter ceci tout à la fin (c'est important) du /etc/ssh/sshd_config :

    AllowGroups ssh users
    Subsystem sftp internal-sftp
    Match Group users
       ChrootDirectory /nfsv4
       X11Forwarding no
       AllowTcpForwarding no
       ForceCommand internal-sftp
  • /!\ Le répertoire partages (ici /nfsv4) et ses parents doivent avoir root comme owner et non writable par group et other, si non vous avez ce type d'erreur "fatal: bad ownership or modes for chroot directory" dans /var/log/auth

  • pour une gestion des fichiers par groupe d'utilisateurs, ajouter ces lignes à /etc/pam.d/sshd :

    # Setting UMASK for all ssh based connections (ssh, sftp, scp)
    session    optional     pam_umask.so umask=0002
  • /!\ dans ce cas ajouter également un umask 0022 dans /root/.bashrc

/!\ ATTENTION : configuration (restrictions) restant à préciser

Service NTP

  • installer le service d'heure et de maintenance de l'heure :

    aptitude install --without-recommends ntp
  • /!\ ATTENTION : configuration (sur NTP local ou exemple de asia.pool.ntp.org) restant à préciser

Service DNS

  • installer le service DNS :

    aptitude install --without-recommends bind9
  • configurer la résolution DNS dans /etc/resolv.conf, par exemple :

    domain lucid.auf
    search lucid.auf
    nameserver 127.0.0.1
  • déclarer deux zones pour le réseau local dans /etc/bind/named.conf.local, par exemple :

    zone "lucid.auf" IN {
            type master;
            file "/etc/bind/db.lucid.auf";
    };
    
    zone "50.168.192.in-addr.arpa" IN {
            type master;
            file "/etc/bind/db.50.168.192";
    };
  • créer ensuite le contenu de la première zone dans /etc/bind/db.lucid.auf, par exemple :

    $ORIGIN lucid.auf.
    $TTL 24H
    @                       IN SOA  ns1.lucid.auf. hostmaster.lucid.auf.org. (
                                    2011013000      ; Serial
                                    8H              ; Refresh
                                    1H              ; Retry
                                    2W              ; Expire
                                    600 )           ; Negative Cache TTL
    ;
    @                       IN NS   ns1
    ns1                     IN A    192.168.50.10
    ;
    network                 IN A    192.168.50.0
    gw                      IN A    192.168.50.1
    nfs                     IN A    192.168.50.10
    $GENERATE 130-249 dynamic-$ IN A        192.168.50.$
    broadcast               IN A    192.168.50.255
    ;
    ntp                     IN CNAME        nfs
    nss                     IN CNAME        nfs
  • créer ensuite le contenu de la seconde zone dans /etc/bind/db.50.168.192, par exemple :

    $ORIGIN 50.168.192.in-addr.arpa.
    $TTL 24H
    @                       IN SOA  ns1.lucid.auf. hostmaster.lucid.auf.org. (
                                    2011013000      ; Serial
                                    8H              ; Refresh
                                    1H              ; Retry
                                    2W              ; Expire
                                    600 )           ; Negative Cache TTL
    ;
    @                       IN NS   ns1.lucid.auf.
    ;
    0                       IN PTR  network.lucid.auf.
    1                       IN PTR  gw.lucid.auf.
    10                      IN PTR  nfs.lucid.auf.
    $GENERATE 130-249 $     IN PTR  dynamic-$.lucid.auf.
    255                     IN PTR  broadcast.lucid.auf.
  • relancer le service DNS :

    service bind9 restart
  • valider la configuration DNS avec quelques tests :

    host nfs.lucid.auf
    host dynamic-130.lucid.auf
    host www.auf.org

Service DHCP

  • installer le service DHCP :

    aptitude install isc-dhcp-server
  • spécifier dans /etc/default/isc-dhcp-server l'interface sur laquelle on fournit le service :

    INTERFACES="eth0"
  • définir dans /etc/dhcp/dhcpd.conf le réseau que l'on sert :

    authoritative;
    
    subnet 192.168.50.0 netmask 255.255.255.0 {
      deny unknown-clients; # recommandé sur un réseau dont toutes les machines sont connues
      range 192.168.50.130 192.168.50.249;
      option subnet-mask 255.255.255.0;
      option broadcast-address broadcast.lucid.auf;
      option routers gw.lucid.auf;
      option domain-name "lucid.auf";
      option domain-name-servers ns1.lucid.auf;
      option ntp-server ntp.lucid.auf;
      filename "pxelinux.0";
      next-server nfs.lucid.auf;
      server-name "nfs.lucid.auf";
    }
  • relancer le service DHCP :

    service isc-dhcp-server restart

Service TFTP

  • installer le service TFTP : (garder le chemin /srv/tftp par défaut)

    aptitude install tftpd-hpa
  • {i} Pour Lenny, choisir de ne pas démarrer via inetd, mettre RUN_DAEMON="yes" et OPTIONS="-v -l -s /srv/tftp" dans /etc/default/tftpd-hpa et lancer /etc/init.d/tftpd-hpa restart ; ce n'est plus nécessaire avec Squeeze où le service TFTP est maintenant autonome.

  • mettre en place l'installation en réseau de Ubuntu Lucid, par exemple :

    wget http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-i386/current/images/netboot/netboot.tar.gz -O- | tar -C /srv/tftp -xpzf -
    chown -hR root:nogroup /srv/tftp
  • ajouter à la fin de /srv/tftp/pxelinux.cfg/default une option d'installation au modèle AuF :

    label lucid
      menu label Lucid sauce AUF
      kernel ubuntu-installer/i386/linux
      append vga=vesa initrd=ubuntu-installer/i386/initrd.gz locale=fr_FR.UTF-8 console-setup/ask_detect=false console-setup/layoutcode=fr netcfg/wireless_wep= netcfg/choose_interface= netcfg/get_hostname= url=http://nfs/config/lucid-preseed-auf-fixe --
    
    label local
      menu label Disque local
      menu default
      localboot 0
      append -

{i} Cela ne fonctionnera pas tout de suite car il faut d'abord mettre en place le service web pour servir le fichier preseed.

Service web

{i} Nécessaire au moins pour le preseed et pour auf-django-users.

  • installer le service web :

    aptitude install apache2
  • configurer dans /etc/apache2/conf.d/security le niveau de détails techniques :

    ServerTokens OS
  • configurer dans /etc/apache2/conf.d/charset le jeu de caractères par défaut :

    AddDefaultCharset UTF-8
  • ajouter dans /etc/apache2/sites-available/default, avant la ligne ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/, les restrictions d'accès suivantes :

            <Directory /var/www/config/>
                    Options FollowSymLinks
                    AllowOverride None
                    Order allow,deny
                    allow from 192.168.50.0/24
            </Directory>
            <Files wpad.dat>
                    AddType application/x-ns-proxy-autoconfig .dat
            </Files>
  • relancer le service web :

    service apache2 restart
  • copier dans /var/www/config/lucid-preseed-auf-fixe le contenu de la page ../PreseedAuFFixe :

    mkdir /var/www/config
    wget --header='User-Agent: Firefox' http://wiki.auf.org/wikiteki/Projet/Mod%C3%A8leLucid/PreseedAuFFixe?action=raw -O- | awk '/}}}/{ok=0} {if(ok)print} /{{{/{ok=1}' > /var/www/config/lucid-preseed-auf-fixe
    chmod 0644 /var/www/config/lucid-preseed-auf-fixe
  • copier dans /var/www/config/lucid-authorized_keys la clé publique qui servira à gérer les postes clients, par exemple :

    cp -a /root/.ssh/authorized_keys /var/www/config/lucid-authorized_keys
    chmod 0644 /var/www/config/lucid-authorized_keys
  • copier dans /var/www/config/lucid-postpreseed le script suivant :

    #!/bin/sh
    
    # désactivation des sources des logiciels par défaut
    sed -i '/^deb-src/s/^/#/' /etc/apt/sources.list
    
    # (re)configuration de l'environnement linguistique (bogue ?)
    dpkg-reconfigure locales
    
    # (re)configuration de l'imprimante PDF (nécessite que CUPS soit lancé)
    service cups start
    dpkg-reconfigure cups-pdf
    service cups stop
    
    # ajout du compte "auf" dans le groupe sudo (à faire le preseed, un jour...)
    adduser auf sudo
    
    # installation des clés SSH dans les comptes "root" et "auf"
    mkdir -m 0700 -p /root/.ssh
    wget http://nfs/config/lucid-authorized_keys -O /root/.ssh/authorized_keys
    chmod 0600 /root/.ssh/authorized_keys
    cp -a /root/.ssh ~auf/
    chown -R auf:auf ~auf/.ssh
    
    # après le redémarrage, il faudra encore ajuster les 'username' et 'password'
    # dans /etc/libnss-mysql.cfg et /etc/libnss-mysql-root.cfg puis lancer :
    # service nscd restart ; nscd -i passwd ; nscd -i group ; service gdm restart
    
    # déplacement du "/home" actuel vers "/home.local"
    sed -i 's|:/home/|:/home.local/|' /etc/passwd
    mv /home /home.local
    ln -s /net/nfs/home /home
    
    # masque autorisant l'écriture pour le groupe par défaut
    # (à activer dans les réseaux où on travaille par groupes Unix)
    #sed -i 's/^umask .*$/umask 002/' /etc/profile
    
    exit 0
  • (!) idée pour une amélioration possible pour le umask pour la gestion par groupes, faire ajouter plutôt quelque chose comme ça dans /etc/profile :

    if [ "`id -u`" -lt 1000 ]; then
      umask 022
    else
      umask 002
    fi

Service NFS

Mettre en place le service NFS selon les indications sur la page NFSv4 (uniquement la partie serveur).

Respecter les exemples fournis sur cette page, à l'exception du paramétrage pour le partage des répertoires utilisateurs (/nfsv4/home) : nous sommes pour le moment toujours obligés de mettre un no_root_squash au lieu de root_squash, toujours à cause de cups-pdf (imprimante PDF virtuelle).

Gestion de l'espace disque

  • installer la gestion des quotas :

    aptitude install --without-recommends quota quotatool
  • /!\ ATTENTION : configuration (usrquota dans /etc/fstab, journalisation) restant à préciser

Service auf-mkhomedir

  • installer le méta-serveur de services :

    aptitude install inetutils-inetd update-inetd
  • mettre en place le service de création de répertoire utilisateur :

    wget 'http://git.auf.org/?p=auf-poste-client.git;a=blob_plain;f=lucid/auf-client-fixe/auf-mkhomedir/inetd_auf-mkhomedir' -O /usr/local/sbin/inetd_auf-mkhomedir
    
    chown root:root /usr/local/sbin/inetd_auf-mkhomedir
    chmod 0700 /usr/local/sbin/inetd_auf-mkhomedir
    
    update-inetd --group AUF --add '10 stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/inetd_auf-mkhomedir'
    service inetutils-inetd reload

/!\ Il faut absolument vérifier dans /usr/local/sbin/inetd_auf-mkhomedir si le paramétrage des quotas correspond à votre politique locale de gestion de l'espace disque.

Base d'utilisateurs réseau

  • installer l'accès à la base des utilisateurs :

    aptitude install libnss-mysql-bg nscd
    sed -i -e "s|,shell |,'/bin/false' |" -e '/ username=/s/=/= binary /' -e '/^host/s/^.*$/host nss/' /etc/libnss-mysql.cfg
  • éditer encore les fichiers /etc/libnss-mysql.cfg et /etc/libnss-mysql-root.cfg pour y configurer les username et password d'accès à la base dans MySQL

  • activer l'utilisation de cette base :

    sed -i -e '/^\(passwd\|group\|shadow\):/s/:.*$/:\t\tfiles mysql/' /etc/nsswitch.conf
    service nscd restart
    nscd -i passwd
    nscd -i group

(autres détails à venir… en particulier l'installation de auf-django-users)


Projet/ModèleLucid/ServeurBureautique (dernière édition le 2013-07-25 20:04:56 par MoussaNombre)