Commandes administrateur pour le système SLIS

<releaseinfo>$Id: realisation.xml,v 1.3 2004/09/07 15:58:49 laurent Exp $</releaseinfo>

Résumé

Cette documentation revet un caractère interne et sert de "base de connaissance" aux techniciens de l'académie de Grenoble ayant en charge le déploiement, le suivi et la maintenance des systèmes SLIS.


1. SAUVEGARDER
1.1. Sauvegarde des Bases utilisateurs
1.2. Sauvegarde du site Web Intranet
1.3. Sauvegarde des mails
1.4. Procedure de backup d'un "vieux" SLIS V 1.x avant reinstallation en 2.1+
2. RESTAURER
2.1. Restauration des bases utilisateurs
2.2. Restauration du site Web Intranet
2.3. Restauration des Mails spoolés
3. POSTGRES
3.1. Supprimmer tous les utilisateurs d'un SLIS
3.2. Accèder à la base SQL
3.3. Nettoyer la base
3.4. Purger les tables de logs
4. LDAP
4.1. Standard
4.2. cas des établissements "cartable electronique"
5. SERVICES
6. SENDMAIL
6.1. Forcer Sendmail à purger
6.2. Lancer une Validation via la console
7. SAMBA
7.1. Débuguer samba
7.2. Relancer le service
8. SQUID
8.1. Tester squid en mode console
8.2. Observer les requêtes transitant via squid en temps réel
9. INET
9.1. Passer une carte en mode "static"
9.2. Changer l'adresse IP d'une interface
9.3. Changer la passerelle utilisée par défaut
9.4. Afficher les routes
10. SLIS
10.1. Changer le mot de passe "Admin"

1. SAUVEGARDER

cette section traite des procèdures de sauvegarde

1.1. Sauvegarde des Bases utilisateurs

Pour sauvegarder les bases utilisateurs d'un SLIS
  1. Connecter votre station LINUX au réseau Intranet de l'etablissement ou placer vous sur un client Windows de l'intranet.
  2. Démarrer l'interface d'administration du SLIS :
    => http://172.16.0.1:1098/
  3. Commander la sauvegarde des bases :
    => Fonction avancée 
    => Menu experimental  
    => Sauvegarde
  4. Télécharger la sauvegarde (fichier archive du type "date_nom-du-SLIS__slis-backup")
  5. Enregistrer la sauvegarde sur votre station LINUX ou sur le client Windows.

1.2. Sauvegarde du site Web Intranet

Cette section traite de la sauvegarde du site Web Intranet

  1. Se connecter en root sur le vieux SLIS
    # ssh nom_du_slis
  2. Estimer la taille du fichier de sauvegarde
    # du -sk /home/httpd/html
  3. Trouver une partition avec de la place
    # df
  4. Commander l'archivage
    # tar  -zcvf  /home/assistance/html.tgz --exclude /home/httpd/html/index.html  /home/httpd/html
  5. Télécharger le fichier archive "html.tgz" via client FTP (login "assistance")
    # ncftp
    # open  -u assistance  nom_du_slis
    # get html.tgz
    # bye
    

1.3. Sauvegarde des mails

Cette section traite de la sauvegarde des mails spoolés

  1. Creer une archive des mails spoolés
    # tar zcvf /home/bzeznik/mails.tgz /var/spool/mail
  2. Copier l'archive vers son portable :
    # scp /home/bzeznik/mails.tgz root@ "adresse_ip_de_votre_portable":/tmp

1.4. Procedure de backup d'un "vieux" SLIS V 1.x avant reinstallation en 2.1+

  1. Se connecter en root sur le vieux SLIS
    # ssh nom_du_slis
  2. Mettre la DKS du nouveau SLIS dans le lecteur, puis :
    # mcopy a:backup-1x.bash .
    # bash ./backup-1x.bash
  3. Télécharger la sauvegarde depuis votre station LINUX ou un client du réseau:
    => http://172.16.0.1:1098/backup.tgz (attention a l'espace disque)
    => Enregistrer  le fichier de sauvegarde "backup.tgz" sur cette station (A).
  4. Réinstaller le SLIS
  5. Depuis cette meme station (A), allez dans l'interface du nouveau SLIS :
    => Fonction avancee 
    => Menu experimental  
    => Restauration des bases  
    => Restore from SLIS 1.x
  6. Ne pas oublier de supprimer le fichier backup.tgz de la station .

2. RESTAURER

Cette section traite des procedures de restauration

2.1. Restauration des bases utilisateurs

  1. Vous devez réaliser cette opération depuis la machine qui aura servi pour la sauvegarde.
  2. Démarrer l'interface d'administration du SLIS :
    => http://172.16.0.1:1098/
  3. Commander la restauration des bases :
    => Fonction avancée 
    => Menu experimental  
    => Restauration des bases  
    => Restore from SLIS 2.x
  4. Sélectionner le fichier de sauvegarde (fichier archive du type "date_nom-du-SLIS__slis-backup")
  5. L'envoyer.(SEND)

2.2. Restauration du site Web Intranet

  1. Uploader l'archive sur le SLIS : (Depuis votre client LINUX, avec "ncftp" (mode console)
    # ncftp# open  -u assistance  "nom_du_slis"
    # put html.tgz
    # bye
  2. Restaurer l'archive :
    # tar zxvf  /home/assistance/html.tgz --directory /

2.3. Restauration des Mails spoolés

  1. Lancer la procédure de restauration via l'interface d'administration
  2. Attendre que tous les comptes aient été recréés
  3. Déposer l'archive mail.tgz sur SLIS :
    # scp mail.tgz root@IP_slis:/tmp/mails.tgz 
  4. Décompacter l'archive :
    # tar zxvf /home/bzeznik/mails.tgz --directory /
  5. Réaffecter les bons utilisateurs :
    # cd /var/spool/mail; for i in `ls`; do chown $i $i; done 

3. POSTGRES

Postgres est le système de gestion de bases de données relationnelles (DBMS, en français : SGBDR) utilisé par SLIS.

Typiquement, on retrouve les bases suivantes sur SLIS :

hadmin=# \l
        List of databases
   Name    |  Owner   | Encoding  
-----------+----------+-----------
 b2i       | slis     | SQL_ASCII
 dhcp      | postgres | SQL_ASCII
 hadmin    | postgres | SQL_ASCII
 horde     | postgres | SQL_ASCII
 slis      | slis     | SQL_ASCII
 template0 | postgres | SQL_ASCII
 template1 | postgres | SQL_ASCII
(7 rows)

3.1. Supprimmer tous les utilisateurs d'un SLIS

Voici une procédure qui permet de supprimmer tous les utilisateurs d'un SLIS, d'un seul coup. (en effet, cette opération n'est pas possible depuis l'interface d'administration

  1. Extraire les mots de passe de connexion à la base SQL :
    # grep ADMIN /home/hadmin/html/config_pgsql.inc.php
    
  2. On obtient quelquechose de la forme :
    $ADMINPASS="Vzj1S2EX";
    $ADMINUSER="hadmin";
    $BASE_HADMIN="hadmin";
    
  3. Saisir :
    # export PGUSER=hadmin# export PGPASSWORD=Vzj1S2EX
    
  4. Se Connecter à la base SQL du SLIS :
    # psql hadmin
  5. Modifier les users :
    hadmin=> update users set delete='1',tovalid='1';
  6. Sortir du client SQL :
    hadmin=> \q
  7. Synchroniser avec le système :
    # /usr/local/sbin/valid
    
  8. Recréer un user "smbadm", dans l'interface du SLIS, pour un SLIS CyberEcole

3.2. Accèder à la base SQL

localisation => /home/hadmin/html

  1. Dupliquer l'ensemble de la base vers /pg :
    #cp -a phppgadmin/ pg
    
  2. Modifier la configuration de la base :
    ##vi config.inc.php
    
  3. Modifier les lignes contenant :
    $cfgServers[1]['stduser']       = $SLISSUSER;
    $cfgServers[1]['stdpass']       = $SLISPASS;
    $cfgServers[1]['user']          = $SLISSUSER;
    $cfgServers[1]['password']      = $SLISPASS;
    
    par :
    $cfgServers[1]['stduser']       = $POSTGRESUSER;
    $cfgServers[1]['stdpass']       = $POSTGRESPASS;
    $cfgServers[1]['user']          = $POSTGRESUSER;
    $cfgServers[1]['password']      = $POSTGRESPASS;
    
  4. Pour ouvrir la base apres duplication :
    http://mon_slis:1098/pg/
    

3.3. Nettoyer la base

Voici 3 lignes qui peuvent résoudre pas mal de soucis sur des SLIS qui ont des lenteurs (vous savez, par exemple, messages a répetition ERR: lockfile: Sorry, giving up on "/var/lock/process_subnets.cron" )

export PGPASSWORD=`grep POSTGRESPASS \
/home/hadmin/html/config_pgsql.inc.php |cut -d\" -f2`
export PGUSER=postgres
psql -tqc "vacuum full analyse" hadmin 

3.4. Purger les tables de logs

Voici une petite séquence de commandes qui peuvent remettre sur pied la base SQL d'un vieux SLIS lorsque celle-ci est bloquée sans raison apparente (process_subnets.cron qui plante en permanence sur une v2. Mais cela peut-etre utile sur v3 aussi). Le but est de purger les grosses tables de logs squid et apache (attention, on perd les données) et de reconstruire tout le reste et d'optimiser les index. Attention, il s'agit bien d'une séquence et pas d'un script, c'est à dire que ce sont des choses à taper ligne par ligne, cela ne marchera pas en copier-coller à partir de la commande psql puisqu'on passe en mode interactif. J'ai cependant ajouté des commentaires pour bien comprendre. Si le problème se reproduit trop souvent et que cette procédure se révèle efficace, on pourra en faire un script.

  1. Récupérer les password dans /home/hadmin/html/config_pgsql.inc.php)

    # less /home/hadmin/html/config_pgsql.inc.php 
  2. On passe "root" du serveur SQL

    # export PGUSER=postgres
    # export PGPASSWORD=xxxxxxx 
  3. On dump la structure complète de la base

    # pg_dump -s hadmin > /home/bzeznik/hadmin.sql 
  4. On dump les données de toutes les tables "utiles"

    for i in alias badlogin classes conns groups oldvalue password security_filters subnets subnetstat users
    do
      pg_dump -a -t $i hadmin >> /home/bzeznik/hadmin.sql
    done 
  5. On se connecte avec le client interactif

    # psql template1 
  6. On détruit la base hadmin

    # drop database hadmin
  7. On recréé la base hadmin et on quitte le client sql

    # create database hadmin;
    # \q 
  8. On passe sous le user hadmin

    # export PGUSER=hadmin
    # export PGPASSWORD=xxxxxxxx 
  9. # On se connecte avec le client interactif

    # psql hadmin
  10. On restaure la base et on quitte

    # \i /home/bzeznik/hadmin.sql
    # \q 

4. LDAP

4.1. Standard

A Grenoble, on utilise maintenant :

BASE_DN = "ou=<code RNE>,ou=ac-grenoble,ou=education,o=gouv,c=fr"
LDAP_USERS="ou=People,ou=<code RNE>,ou=ac-grenoble,ou=education,o=gouv,c=fr
LDAP_GROUPS="ou=Groups,ou=<code RNE>,ou=ac-grenoble,ou=education,o=gouv,c=fr
LDAP_COMPS="ou=Computers,ou=<code RNE>,ou=ac-grenoble,ou=education,o=gouv,c=fr 

Les SLIS existants n'ont pas été modifié, mais dès qu'on réinstalle un SLIS, on passe sur ce nouveau modèle. Par ailleurs, depuis SLIS 3.1, on ne peut plus reprendre des variables dans les définitions de variables.

4.2. cas des établissements "cartable electronique"

5. SERVICES

On retrouve les différents services ici:

/etc/rc.d/init.d

Pour connaître le statut d'un service:

service [nom du service] status

Pour relancer un service:

service [nom du service] restart

6. SENDMAIL

6.1. Forcer Sendmail à purger

Cette commande à pour effet de purger les mails spoolés dans Sendmail

#sendmail -q 

6.2. Lancer une Validation via la console

Cette commande permet de la ncer une validation via un accès SSH

# /usr/local/sbin/valid 

7. SAMBA

7.1. Débuguer samba

Il faut modifier le fichier /etc/samba/smb.conf et ajouter la ligne suivante dans la section [global] (Attention à la taille maxi du fichier de log qui serait écrasé si trop petit)

===============
[global]
log level = 9
=============== 

7.2. Relancer le service

Pour relancer samba:

#service smb restart

8. SQUID

8.1. Tester squid en mode console

Il est possible de diagnostiquer certains problèmes liés à squid en utilisant lynx. En spécifiant comme proxy l'interface Eth1 de slis dans la config de lynx, on oblige ce dernier à passer par squid pour tout accès http.

  1. Editer la configuration de lynx

    #vi /etc/lynx.cfg
  2. Rechercher et modifier les lignes spécifiques à la configuration du proxy

    /proxy
  3. Remplacer lal ligne:

    #http_proxy:http://some.server.dom:port/

    par

    http_proxy:http://172.16.0.1:3128/

    Avertissement

    N'oubliez pas de décommenter la ligne ...

8.2. Observer les requêtes transitant via squid en temps réel

Il est parfois utile de voir ce qui transite au niveau de squid. Cela peut aider à localiser une machine mal configurée, infectée par un virus ou tout simplement mal utilisée.

  • Commande:

    #tail -f /var/log/squid/access.log

9. INET

9.1. Passer une carte en mode "static"

Comment remettre une carte reseau qui n'est plus en static, c'est à dire qui prend par exemple une adresse ip du serveur dhcp présent sur le reseau. Le problème survient lors du changement d'une carte réseau et que celle-ci est mal parametrée au moment ou SLIS signale le changement.

  1. Se conecter root

  2. Editer la configuration de la carte

    #vi /etc/sysconfig/network-scripts/ifcfg-eth1
  3. Relancer le service:

    #/etc/rc.d/init.d/network restart

9.2. Changer l'adresse IP d'une interface

Dans certains cas spécifique, il est nécéssaire de changer l'adresse IP d'une interface réseau (cas des slis situés dans un réseau connecté par le biais d'autres équipements)

  • Se connecter root

    # ifconfig eth(1) 172.16.0.1 netmask 255.255.0.0

9.3. Changer la passerelle utilisée par défaut

Dans certains cas spécifique, il est nécéssaire de changer la route par défaut du système (cas des slis situés dans un réseau connecté par le biais d'autres équipements)

  1. Se connecter root

  2. Supprimer la route par défaut

    # route del default gateway
  3. Ajouter la route voulue

    # route add default gateway [IP gateway]

9.4. Afficher les routes

#route

10. SLIS

10.1. Changer le mot de passe "Admin"

Il s'agit du mot de passe pour l'administration via l'interface web.

  1. Se placer dans le répertoire /etc/hadmin/conf/
    #cd /etc/hadmin/conf
  2. Utiliser la commande htpasswd pour modifier le mot de passe du login admin, qui se trouve dans le fichier /etc/hadmin/conf/users
    #htpasswd users admin
  3. Le nouveau mot de passe est demandé deux fois.