Modifications entre les versions 1 et 13 (s'étendant sur 12 versions)
Version 1 à la date du 2009-06-10 08:09:11
Taille: 224
Commentaire: on se lance...
Version 13 à la date du 2010-03-19 05:19:42
Taille: 5245
Commentaire: quelques compléments + attention à l'interprétation par le shell !
Texte supprimé. Texte ajouté.
Ligne 2: Ligne 2:
La configuration de ce serveur doit correspond aux besoins des [[ZAP/Configuration/PosteClient|postes clients]]. La configuration de ce serveur doit correspondre aux besoins des [[ZAP/Configuration/PosteClient|postes clients]].

 * Installation système :
  * commencer par la [[ZAP/Configuration/Serveur/BaseCommune|configuration de base du serveur]]
  * penser à configurer le [[Etude/Unicode|support linguistique et Unicode]]
 * DNS (service de résolution de noms en adresses IP et inversement):
  * installer le paquet `bind9`
  * configurer des noms et résolutions inverses pour chaque machine connue
 * NTP (service d'heure) :
  * installer les paquets `ntp` et `ntpdate`
 * DHCP (service d'adresses IP) :
  * installer le paquet `dhcp3-server`
  * fixer des adresses IP pour chaque machine connue (par adresse MAC), dans un intervalle bien délimité (par exemple entre .64 et .127)
  * renseigner les informations de passerelle et masque de réseau, serveur DNS et domaine DNS, serveur d'heure et fuseau horaire, ...
 * NFS (service de partage de fichiers en réseau) :
  * installer le paquet `nfs-kernel-server`
  * fixer les ports des services RPC et les ouvrir uniquement aux machines connues
 * MySQL (service de base de données relationnelles de type SQL) :
  * installer le paquet `mysql-server`
  * avant d'enregistrer la moindre donnée, configurer le [[Etude/Unicode#mysql|support Unicode pour MySQL]]
 * Base d'utilisateurs en réseau :
  * installer le paquet `auf-django-users` pour créer puis gérer la base des utilisateurs
<<Anchor(autoconfig)>>
 * Support de l'auto-configuration du poste client :
  * déclarer dans le DNS les noms "autoconfig", "nss" et "ntp", pointant sur ce serveur
## pas encore prêt
## * installer le paquet `scponly` en le configurant en mode SUID pour limiter les accès via chroot
## useradd -r -s /usr/sbin/scponlyc -m auf-autoconfig && passwd auf-autoconfig
  * créer un compte utilisateur "auf-autoconfig" local à ce serveur (donc pas dans la base d'utilisateurs en réseau) : {{{
useradd -r -m auf-autoconfig && passwd auf-autoconfig
chmod 0700 ~auf-autoconfig
}}}
  * créer une configuration SSH pour les postes clients : {{{
cd ~auf-autoconfig
ssh-keygen -t dsa -f id_dsa -N "" -C root@auf-poste-client-fixe
ssh-keyscan -t dsa,rsa -H autoconfig > known_hosts
mkdir .ssh
cp -a id_dsa.pub .ssh/authorized_keys
chown auf-autoconfig .ssh .ssh/authorized_keys
chmod 0700 .ssh
chmod 0600 .ssh/authorized_keys
cp -a ~root/.ssh/authorized_keys .
tar --remove-files -czf ssh-root-keys.tar.gz id_dsa* known_hosts authorized_keys
chown auf-autoconfig ssh-root-keys.tar.gz
chmod 0400 ssh-root-keys.tar.gz
}}}
  * créer une configuration à déployer sur les postes clients : {{{
cd ~auf-autoconfig
mkdir -p root-jaunty/var/lib/auf-poste-client-fixe
cat << __EOF__ > root-jaunty/var/lib/auf-poste-client-fixe/synchro-postinst
#!/bin/bash

#
# adaptation des fichiers de configuration NSS-MySQL
#
NSS_SHELL='shell'
NSS_HOST='nss'
NSS_PASSWORD='XXXXXXXX'
NSS_ROOTPASS='XXXXXXXX'
export NSS_SHELL NSS_HOST NSS_PASSWORD NSS_ROOTPASS
/usr/share/auf-poste-client-fixe/helpers/libnss-mysql-config

#
# gestion du /home (et /srv) :
# - déplacement des utilisateurs locaux actuels dans /home/local/
# - lien de /home/server vers /net/nfs/home/share (spécifique BAP)
# - lien de /srv/share vers /net/nfs/srv/share (spécifique BAP)
#
if [ ! -d /home/local ] ; then
  cd /home
  mkdir local
  for user in * ; do
    [ "\$user" = "local" ] && continue
    mv "\$user" "local/\$user"
    usermod -d "/home/local/\$user" "\$user"
  done
  ln -s /net/nfs/home/share /home/server
  ln -s /net/nfs/srv/share /srv/share
fi

#
# gestion des droits d'accès => écriture pour le groupe par défaut
#
sed -i '/^umask/s/ .*$/ 002/' /etc/profile

#
# gestion du problème des noms de fichiers à l'impression en PDF
#
if [ -e /etc/cups/pstopdf.convs ] ; then
  mv /etc/cups/pstopdf.convs /etc/cups/pstopdf.convs.DISABLED
fi

#
# activation par défaut du moteur de saisie pour script complexes
#
im-switch -z all_ALL -s scim-bridge
im-switch -z fr_FR -s scim-bridge
im-switch -z vi_VN -s scim-bridge
im-switch -z en_US -s scim-bridge

#
# SSH
#
grep -q '^admin:.*,jcandre' /etc/group || sed -i -e '/^admin:/s/$/,jcandre/' /etc/group
grep -q '^admin:.*,dmha' /etc/group || sed -i -e '/^admin:/s/$/,dmha/' /etc/group
nscd -i group
sed -i -e 's/^[[:space:]#]*PasswordAuthentication[[:space:]]\+.*$/PasswordAuthentication yes/' /etc/ssh/sshd_config
service ssh restart

#
# wine
#
for desktop in /usr/share/applications/wine-*.desktop ; do
  if grep -q "^NoDisplay=" \${desktop} ; then
    sed -i -e 's/^NoDisplay=false/NoDisplay=true/' \${desktop}
  else
    echo 'NoDisplay=true' >> \${desktop}
  fi
done


echo "Mise à jour système terminée."
exit 0
__EOF__
chmod 0700 root-jaunty/var/lib/auf-poste-client-fixe/synchro-postinst
tar --remove-files -czf root-jaunty.tar.gz -C root-jaunty .
chown auf-autoconfig root-jaunty.tar.gz
chmod 0400 root-jaunty.tar.gz
}}}
  * ajouter `auf-autoconfig` aux utilisateurs/groupes ayant le droit de faire un SSH sur ce serveur, le cas échéant

Cette page présente la configuration d'un serveur bureautique pour la région Asie-Pacifique.
La configuration de ce serveur doit correspondre aux besoins des postes clients.

  • Installation système :
  • DNS (service de résolution de noms en adresses IP et inversement):
    • installer le paquet bind9

    • configurer des noms et résolutions inverses pour chaque machine connue
  • NTP (service d'heure) :
    • installer les paquets ntp et ntpdate

  • DHCP (service d'adresses IP) :
    • installer le paquet dhcp3-server

    • fixer des adresses IP pour chaque machine connue (par adresse MAC), dans un intervalle bien délimité (par exemple entre .64 et .127)
    • renseigner les informations de passerelle et masque de réseau, serveur DNS et domaine DNS, serveur d'heure et fuseau horaire, ...
  • NFS (service de partage de fichiers en réseau) :
    • installer le paquet nfs-kernel-server

    • fixer les ports des services RPC et les ouvrir uniquement aux machines connues
  • MySQL (service de base de données relationnelles de type SQL) :
  • Base d'utilisateurs en réseau :
    • installer le paquet auf-django-users pour créer puis gérer la base des utilisateurs

  • Support de l'auto-configuration du poste client :
    • déclarer dans le DNS les noms "autoconfig", "nss" et "ntp", pointant sur ce serveur

  • créer un compte utilisateur "auf-autoconfig" local à ce serveur (donc pas dans la base d'utilisateurs en réseau) :

    useradd -r -m auf-autoconfig && passwd auf-autoconfig
    chmod 0700 ~auf-autoconfig
  • créer une configuration SSH pour les postes clients :

    cd ~auf-autoconfig
    ssh-keygen -t dsa -f id_dsa -N "" -C root@auf-poste-client-fixe
    ssh-keyscan -t dsa,rsa -H autoconfig > known_hosts
    mkdir .ssh
    cp -a id_dsa.pub .ssh/authorized_keys
    chown auf-autoconfig .ssh .ssh/authorized_keys
    chmod 0700 .ssh
    chmod 0600 .ssh/authorized_keys
    cp -a ~root/.ssh/authorized_keys .
    tar --remove-files -czf ssh-root-keys.tar.gz id_dsa* known_hosts authorized_keys
    chown auf-autoconfig ssh-root-keys.tar.gz
    chmod 0400 ssh-root-keys.tar.gz
  • créer une configuration à déployer sur les postes clients :

    cd ~auf-autoconfig
    mkdir -p root-jaunty/var/lib/auf-poste-client-fixe
    cat << __EOF__ > root-jaunty/var/lib/auf-poste-client-fixe/synchro-postinst
    #!/bin/bash
    
    #
    # adaptation des fichiers de configuration NSS-MySQL
    #
    NSS_SHELL='shell'
    NSS_HOST='nss'
    NSS_PASSWORD='XXXXXXXX'
    NSS_ROOTPASS='XXXXXXXX'
    export NSS_SHELL NSS_HOST NSS_PASSWORD NSS_ROOTPASS
    /usr/share/auf-poste-client-fixe/helpers/libnss-mysql-config
    
    #
    # gestion du /home (et /srv) :
    # - déplacement des utilisateurs locaux actuels dans /home/local/
    # - lien de /home/server vers /net/nfs/home/share (spécifique BAP)
    # - lien de /srv/share vers /net/nfs/srv/share (spécifique BAP)
    #
    if [ ! -d /home/local ] ; then
      cd /home
      mkdir local
      for user in * ; do
        [ "\$user" = "local" ] && continue
        mv "\$user" "local/\$user"
        usermod -d "/home/local/\$user" "\$user"
      done
      ln -s /net/nfs/home/share /home/server
      ln -s /net/nfs/srv/share /srv/share
    fi
    
    #
    # gestion des droits d'accès => écriture pour le groupe par défaut
    #
    sed -i '/^umask/s/ .*$/ 002/' /etc/profile
    
    #
    # gestion du problème des noms de fichiers à l'impression en PDF
    #
    if [ -e /etc/cups/pstopdf.convs ] ; then
      mv /etc/cups/pstopdf.convs /etc/cups/pstopdf.convs.DISABLED
    fi
    
    #
    # activation par défaut du moteur de saisie pour script complexes
    #
    im-switch -z all_ALL -s scim-bridge
    im-switch -z fr_FR -s scim-bridge
    im-switch -z vi_VN -s scim-bridge
    im-switch -z en_US -s scim-bridge
    
    #
    # SSH
    #
    grep -q '^admin:.*,jcandre' /etc/group || sed -i -e '/^admin:/s/$/,jcandre/' /etc/group
    grep -q '^admin:.*,dmha' /etc/group || sed -i -e '/^admin:/s/$/,dmha/' /etc/group
    nscd -i group
    sed -i -e 's/^[[:space:]#]*PasswordAuthentication[[:space:]]\+.*$/PasswordAuthentication yes/' /etc/ssh/sshd_config
    service ssh restart
    
    #
    # wine
    #
    for desktop in /usr/share/applications/wine-*.desktop ; do
      if grep -q "^NoDisplay=" \${desktop} ; then
        sed -i -e 's/^NoDisplay=false/NoDisplay=true/' \${desktop}
      else
        echo 'NoDisplay=true' >> \${desktop}
      fi
    done
    
    
    echo "Mise à jour système terminée."
    exit 0
    __EOF__
    chmod 0700 root-jaunty/var/lib/auf-poste-client-fixe/synchro-postinst
    tar --remove-files -czf root-jaunty.tar.gz -C root-jaunty .
    chown auf-autoconfig root-jaunty.tar.gz
    chmod 0400 root-jaunty.tar.gz
  • ajouter auf-autoconfig aux utilisateurs/groupes ayant le droit de faire un SSH sur ce serveur, le cas échéant


ZAP/Configuration/Serveur/Bureautique (dernière édition le 2010-03-19 05:19:42 par JeanChristopheAndré)