Association Marmottux, Logiciel Libre et Fibre Optique en Maurienne

Aller au contenu | Aller au menu | Aller à la recherche

Keyword - terminaux

Fil des billets - Fil des commentaires

Faire du ssh graphique avec windows

Voici l'énoncé du problème :
A la fac de grenoble, nous faisons nos TP de programmation et d'algoritmiques sur des serveurs linux. Des machines sont mis a disposition pour permettre de finir et/ou avancer ces TP, mais ce n'est souvent pas suffisant.
Comment remedier a ce problème ?
Materiel requis :

  • Un PC sous Windows (XP ou Vista) : si ce pc a linux, le problème ne se pose pas
  • Une connexion au serveur par intranet

Logiciel :

  • Première alternative : Starnet SSH, propriétaire, cher et lourd.
  • Seconde alternative : Logiciels libres !

Sans surprise, nous étudierons le premier deuxième cas ... :-)
Plan de l'explication :

  1. récupération desdits logiciels dans leur bonne version
  2. Configuration de ces logiciels

A télécharger :

  1. L'installateur PuTTY (Attention ! pas seulement le client SSH) =>download
  2. Le serveur X pour Windows Xming => download

Let's go ...
On configure maintenant Putty
Connexion > Proxy : on remplit ici les champs nom d'utilisateur, mot de passe, proxy port éventuellement
Sessions : On remplit le champ host et on clique sur Save pour enregistrer les paramètres.
On peut donc maitenant utiliser SSH. C'est bien , mais ca ne correspond toujours pas aux données du problème, a savoir utiliser SSH en mode graphique. En effet, pour les besoin de ces TP, il faut souvent utiliser le programme nedit, qui se lance dans une fenêtre a part.
Pour finaliser l'installation, il suffit donc d'installer Xming, puis de le lancer avant d'utiliser PuTTY, et c'est bon on a une session de SSH en état de marche.

terminaux HP T5125 au collège Maurienne

Nous avons reçu lundi les 2 nouveaux terminaux linux (HP Compaq Thin Client T5125) achetés à 214€ ttc (port gratuit) chez http://www.goldway.fr, (livraison en 3 jours, à cheval sur un week-end, Bravo les gars !).

Ils sont livrés avec leur clavier USB et leur souris (USB aussi mais à boule). Sinon y'a 4 ports USB, le son et tout...

Ils sont diskless, fanless et assez mignons, et consomment presque rien (écolo !), garantie 3 ans constructeur, bref, que d'la bonne !

Ces terminaux démarrent (à partir de la mémory flash) sous linux xfce et se paramètrent très facilement sous interface graphique.

On a configuré (en 10 minutes) sur chacun d'eux une connexion rdesktop qui pointe sur le serveur win2000 terminal server existant et une connexion xdmcp qui pointe sur les serveurs linux (type LTSP) montés par Marmottux.

Ca permet de gérer l'existant (à savoir une salle de 22 terminaux HP, d'ancienne génération, sous win2000 Terminal-Server), le temps d'acheter les autres T5125 et de passer progressivement tout ce petit monde sous LTSP (Linux Terminal Server)...

Sur les nouveaux terminaux, les élèves, au démarrage, peuvent choisir sur quels serveur et OS ils veulent se connecter...

Je crois que je vais acheter ça pour la maison, avec un serveur central linux (LTSP), à 214 € par poste, je vais équiper toute la famille...


Au premier plan, les 2 hp5125 sous Linux Debian et win2000 TS, à l'arrière plan, les anciens terminaux HP.

Terminaux Linux


Terminaux Linux
Vidéo envoyée par marmottux
Java fonctionne dans firefox sur des terminaux XDMCP linux

Archéologie


Marmottux
Vidéo envoyée par marmottux
Archéologie chez marmottux

Comment ajouter un utilisateur sur les terminaux ?

Se logger sur 160 ou 170

ssh -lroot 172.16.0.160
vi essai.csv
"3A" "obelix" "obelix" "obelix" "obelix"
./creation-utilisateurs essai.csv

Création des utilisateurs en utilisant le fichier essai.csv Traitement de l'entrée 3A obelix obelix obelix obelix ldap_add: Already exists (68) Création du compte obelix 1503 1500

       dn: uid=obelix,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr
       cn: obelix
       uid: obelix
       objectClass: account
       objectClass: posixAccount
       objectClass: top
       objectClass: shadowAccount
       shadowMax: 99999
       shadowWarning: 7
       loginShell: /bin/bash
       uidNumber: 1503
       gidNumber: 1500
       userPassword: {SSHA}60FcNvimX5tkWj14MB0UHyzHkCB7s9ri
       homeDirectory: /shared-home/obelix
       gecos: obelix obelix,,,

adding new entry "uid=obelix,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"

ldap_initialize( ldap://172.16.0.200:389 ) add memberUid:

       obelix

modifying entry "cn=3A,ou=Group,dc=clg-maurienne,dc=ac-grenoble,dc=fr" modify complete

ldap_initialize( ldap://172.16.0.200:389 ) add memberUid:

       obelix

modifying entry "cn=terminal,ou=Group,dc=clg-maurienne,dc=ac-grenoble,dc=fr" modify complete

done !

Monter un bridge ethernet en pont filtrant DHCP

Comment faire très simplement un bridge ethernet utilisé ici en pont filtrant DHCP ?

On a eu le problème sur notre réseau de terminaux dont le serveur DHCP était en conflit avec le serveur DHCP du reste du réseau.
Nota : on ne doit jamais avoir 2 serveurs DHCP sur un même segment de réseau.

Problème : isoler les 2 réseaux et leurs serveurs DHCP respectifs.

Solution : On a simplement installé un bridge (pont filtrant) sur un vieux pentium 75 avec 2 cartes réseaux qui sépare les 2 réseaux locaux.

On a mis dessus une distrib linux minimum (debian) sans interface graphique, et une règle "ebtable" qui filtre les appels DHCP et ça marche depuis un an et demi sans problème...

Le traffic vers le net (slis) ou autres serveurs (de fichiers, web...) n'est pas affecté, seul les appels UDP sur les ports 67 et 68 sont filtrés...

On est parti d'une doc de lealinux (http://lea-linux.org/cached/index/Reseau-secu-pont-filtrant.html#) et on a appliqué le script suivant :

#!/bin/sh
/sbin/ifconfig eth0 0.0.0.0 promisc
/sbin/ifconfig eth1 0.0.0.0 promisc
/usr/sbin/brctl addbr mon-pont
/usr/sbin/brctl addif mon-pont eth0
/usr/sbin/brctl addif mon-pont eth1
/sbin/ifconfig mon-pont x.x.x.x
/sbin/ebtables -A FORWARD -p ipv4 ==ip-proto udp ==ip-destination-port 67:68 -j DROP

(Nota : Attention les 4 signes "=" de la dernière ligne, sont à remplacer par des "-")
Ce sript filtre les ports UDP 67 (serveur) et 68 (client) utilisés par le protocole DHCP

Donc pour récapituler, une installation d'une debian minimum (ou autres) en 2.6, sans interface graphique, mais avec SSH lancé pour gérer à distance, puis ajouter le paquet "bridge-utils" (ou l'archive http://sourceforge.net/project/showfiles.php?group_id=26089) ainsi que le paquet "ebtables" (ou l'archive http://sourceforge.net/project/showfiles.php?group_id=39571&package_id=31718)

Recopier le script ci-dessus, le nommer "script_pont.sh", remplacer x.x.x.x par un numéro ip compatible avec votre réseau et qui sera l'ip appellé par SSH (ex : 172.16.0.162), rendre exécutable le script et le lancer automatiquement au boot.

D'autres infos sur http://guides.ovh.com/LinuxBridgeFirewall/contenu.html http://ebtables.sourceforge.net/examples.html#easy

Alex et Deny

Petites astuces ...

Voila deux astuces pratiques :

  • Pour aller dans son repertoire personnel : cd ~
romain@citron:/usr/share$ cd ~
romain@citron:~$

Marche aussi pour l'utilisateur root

root@citron:/usr/share # cd ~
root@citron:~ #
  • Pour activer le pavé numérique au départ ( sur un fixe) : ( on fait une copie de sauvegarde au cas ou ca planterait)
root@citron:/home/romain # cd /etc
root@citron:/etc # cp profile profile_sauv
root@citron:/etc # mcedit profile

Dans /etc/profile, on copie a la fin :

INITTY=/dev/tty1-7
for tty in $INITTY;
do setleds -D +num < $tty
done

On enregistre (F2), on quitte (F10)

root@citron:/etc # reboot

Travaux sur les terminaux linux

Quelques travaux :

  • Ajout de 800 utilisateurs à la base LDAP c'est done ! Il y'a un petit bug dans le script de création des utilisateurs
  • Modifications des droits :

vi /etc/kde3/kdm/kdmrc

pour interdir aux utilisateurs d'éteindre la machine..

AllowShutdown=None

/etc/init.d/kdm reload

Travaux sur les terminaux linux

Travaux en cours.. sur les serveurs de terminaux

Lire la suite...

Mise à jour openoffice sur les serveurs de terminaux

Journal des serveurs de terminaux :

Toute mise à jour, il faut la faire avec précaution ! :)

  1. Vérifier que le mirroir est à jour..
  2. Il l'est pas.. alors utiliser un des multiples mirroir debian du réseau
  3. Ensuite apt-get update
  4. On regarde quel version on a en local et quels paquets sont installés dpkg -l |grep openoffice
  5. on mets à jour un des paquets, les dépendences vont faire le reste apt-get install openoffice.org
  6. on réfléchit..
  7. quand on voit :
Les paquets supplémentaires suivants seront installés :

libc6 libc6-dev libxinerama1 locales openoffice.org-bin openoffice.org-debian-files openoffice.org-l10n-en openoffice.org-l10n-fr

libc6 !!!! Mise à jour annulée !

Le risque de tout casser sur les serveur est trop grand, des choses comme DRBD pourraient ne pas trop aimer. La mise à jour necessite d'effectuer quelques tests !

Mise à jour de firefox : Les paquets suivants seront mis à jour : mozilla-firefox

passage en version 1.0.4 done

Terminaux DAY-7

C'est le jour N°7

C'est fini !!

Les serveurs de terminaux sont fonctionnels, avec un serveur LDAP, du DRBD, du NFS-HA, du RAID 1, du dernier noyau linux stable, du dernier patch, du dernier paquet debian, du dernier kde 3.4.1 package alioth.

Une documentation ? Un jour sans doute :)


Le D-DAY

  • LDAP !
# ls -la ldap
lrwxrwxrwx  1 root root 31 2005-08-11 10:54 ldap -> /exports/shared-disk/data/ldap/

DOCUMENTATION :

cd /var/lib/ldap

Arrêt du LDAP !

/etc/init.d/slapd stop

Ensuite, on va virer des choses pour importer la liste

rm __db*
rm id2entry.bdb
rm dn2id.bdb
rm log.*

Ensuite on importe le fichier ldap.ldif

slapadd -l ldap.ldif

Optionnel pour debbuger : slapadd -l ldap.ldif -d 3 Relancage du LDAP

/etc/init.d/slapd start

Restart du NSCD

/etc/init.d/nscd restart
#!/bin/sh
cd /var/lib/ldap/
/etc/init.d/slapd stop
rm __db*
rm id2entry.bdb
rm dn2id.bdb
rm log.*
/usr/sbin/slapadd -l ldap.ldif
/etc/init.d/slapd start
/etc/init.d/nscd restart

Pour tester :

# getent passwd

su - alex

Voilà..

Deny !!!!!!

nb : bon ok.. pas inscrit à la GNIIIIIIIIIIL

Aug 12 11:25:27 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=colinm,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"

Aug 12 11:25:27 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=collombs,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:27 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=Jonathan,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:27 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=defarbug,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:27 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=duprazs,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:27 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=fouquerp,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=ghabridy,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=ghilardv,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=heronm,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=inglebem,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=kunejmiv,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=lavandif,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=Paul,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=mollarem,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=perrigon,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=pichenon,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=ratss,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"
Aug 12 11:25:28 debian-160 slapd14290: conn=4818 op=1 ENTRY dn="uid=taravelc,ou=People,dc=clg-maurienne,dc=ac-grenoble,dc=fr"

Terminaux DAY-6

Terminaux linux day 6

  • Passage en cable gigabit

Modifications de /etc/hosts

# via 100 mb/s
127.0.0.1       localhost
172.16.0.160    debian-160
172.16.0.170    debian-170
172.16.0.200    debian-ha
# via gigabit

10.0.0.160      drdb-160
10.0.0.170      drbd-170
10.0.0.160      nfs-160
10.0.0.170      nfs-170
10.0.0.200      nfs-ha

#172.16.0.160   drdb-160
#172.16.0.170   drbd-170
#172.16.0.160   nfs-160
#172.16.0.170   nfs-170
#172.16.0.200   nfs-ha
# via 100 mb/s
172.16.0.230    master
172.16.0.231    terminal-1
172.16.0.232    terminal-2
172.16.0.233    terminal-3
172.16.0.234    terminal-4
172.16.0.235    terminal-5
172.16.0.236    terminal-6
172.16.0.237    terminal-7
172.16.0.238    terminal-8
172.16.0.239    terminal-9
172.16.0.240    terminal-10
172.16.0.241    terminal-11
172.16.0.242    terminal-12
172.16.0.243    terminal-13
172.16.0.244    terminal-14
172.16.0.245    terminal-15
172.16.0.246    terminal-16
172.16.0.247    terminal-17
172.16.0.248    terminal-18
172.16.0.249    terminal-19
172.16.0.250    terminal-20
172.16.0.251    terminal-21
172.16.0.252    terminal-22
  • /etc/exports

Il faut bien regarder que l'exports fasse référence à /etc/hosts

exemple :  10.0.0.160      drdb-160
  • drbd.conf

vi /etc/drbd.conf

:%s/172.16.0./10.0.0./g  
:wq
  • /etc/network/interfaces
auto lo
iface lo inet loopback
# This entry was created during the Debian installation
#
#
#auto eth0
auto eth0 eth1
iface eth0 inet static
       address         10.0.0.160
       netmask         255.0.0.0
       broadcast       10.255.255.255
       mtu                10000
iface eth1 inet static
       address         172.16.0.160
       netmask         255.255.0.0
       broadcast       172.16.255.255
       gateway         172.16.0.1
  • /etc/heartbeat/haressources
debian-160 172.16.0.200 10.0.0.200 drbddisk::drbd0 drbddisk::drbd1 drbddisk::drbd2   Filesystem::/dev/drbd0::/exports/shared-disk::reiserfs::rw,usrquota,grpquota Filesystem::/dev/drbd1::/exports/debian-mirror::reiserfs::rw   Filesystem::/dev/drbd2::/exports/clients::reiserfs::rw nfs-common nfs-kernel-server quota slapd dhcp3-server
  • dpkg-reconfigure dhcp3-server

pour mettre l'interface eth1 (3com 100 mb/s) en écoute du dhcp

  • Kiosk

ln -s /shared-disk/data/kiosk/kde-profile/ kde-profile

Terminaux Day 5

Terminaux linux day 5 :

  • installer le disque SATA : Done
  • Reconstruire le RAID 1
/dev/sda1   *           1         244     1959898+  fd  Linux raid autodetect
/dev/sda2             245       14946   118093815   fd  Linux raid autodetect

pour la reinstall du nouveau disque : refaire la table de partitions

dd if=/dev/sda of=/dev/sdb count=1 bs=512

  • Rajouter un disque :
# raidhotadd /dev/md0 /dev/sdb1   
#raidhotadd /dev/md1 /dev/sdb2
# cat /proc/mdstat
md1 : active raid1 sda21
     118093696 blocks 2/1 _U
md0 : active raid1 sdb12 sda11
     1959808 blocks 2/1 _U
     ==>..................  recovery = 14.9% (293440/1959808) finish=0.6min speed=41920K/sec
unused devices: <none>
debian-160:~# raidhotadd /dev/md1 /dev/sdb2
debian-160:~# cat /proc/mdstat
Personalities : linear raid0 raid1 raid5 multipath raid6
 md1 : active raid1 sdb22 sda21
     118093696 blocks 2/1 _U
     >....................  recovery =  0.2% (254080/118093696) finish=46.3min speed=42346K/sec
md0 : active raid1 sdb10 sda11
     1959808 blocks 2/2 UU
  • Relancer le cache des choses en rapport à
/etc/ldap.secret   (c'est le mot de passe de l'admin ldap) c'est pour que pam accede au mot de passe
  • Remettre grub
  • Cable croisé : 1 gb/s

Terminaux linux DAY 4

TODO :

  • Documenter
  • Ldap
  • Mettre le disque dur (trouver des vis, et un tourne-vis) (on a pas)
  • On sait plus
  • Rapporter les marmottes (Apette, et celle d'un coté ou de l'autre de la montagne)

Documentation

EVMS

Patchs à appliquer au noyau

patch -p1 < ../patch-evms/bd-claim.patch

Aller le chercher sur http://evms.sourceforge.net/ dans : http://sourceforge.net/project/showfiles.php?group_id=25076 puis Download evms-2.5.3.tar.gz

Ouvrir avec Ark, puis sauver le fichier bd-claim.patch puis utiliser la barre en haut : rechercher : taper : bd extraire ou vous voulez

Puis y'a evms-2.5.3/kernel/2.6 le fichier est dedans

Il faut sauvegarder le fichier dans /usr/src/patch-evms

Appliquer le patch dans les sources du noyau : patch -p1 < ../patch-evms/bd-claim.patch

DRBD

  • Une fois le bon noyau compilé !!

Aller sur http://www.drbd.org/

récupérer le dernier : http://oss.linbit.com/drbd/0.7/drbd-0.7.11.tar.gz

le mettre dans /usr/src/ le décompresser

aller dedans, faire : make install

Ecrire le fichier de configuration de drbd.conf

# cat /etc/drbd.conf
resource drbd0 {
       protocol C;
       incon-degr-cmd "halt -f";
       on debian-170 {
               device    /dev/drbd0;
               disk      /dev/evms/home;
               meta-disk internal;
               address   172.16.0.170:7789;
       }
       on debian-160 {
               device    /dev/drbd0;
               disk      /dev/evms/home;
               meta-disk internal;
               address   172.16.0.160:7789;
       }
       syncer {
               rate      20000;
       }
}
resource drbd1 {
       protocol C;
       incon-degr-cmd "halt -f";
       on debian-170 {
               device    /dev/drbd1;
               disk      /dev/evms/debian;
               meta-disk internal;
               address   172.16.0.170:7790;
       }
       on debian-160 {
               device    /dev/drbd1;
               disk      /dev/evms/debian;
               meta-disk internal;
               address   172.16.0.160:7790;
       }
       syncer {
               rate      20000;
       }
}
resource drbd2 {
       protocol C;
       incon-degr-cmd "halt -f";
       on debian-170 {
               device    /dev/drbd2;
               disk      /dev/evms/clients;
               meta-disk internal;
               address   172.16.0.170:7791;
       }
       on debian-160 {
               device    /dev/drbd2;
               disk      /dev/evms/clients;
               meta-disk internal;
               address   172.16.0.160:7791;
       }
       syncer {
               rate 20000;
       }
}

RAID

  1. cat /etc/raidtab

raiddev /dev/md0

       raid-level              1
       nr-raid-disks           2
       persistent-superblock   1
       chunk-size              8
       device                  /dev/sda1
       raid-disk               0
       device                  /dev/sdb1
       raid-disk               1

raiddev /dev/md1

       raid-level              1
       nr-raid-disks           2
       persistent-superblock   1
       chunk-size              8
       device                  /dev/sda2
       raid-disk               0
       device                  /dev/sdb2
       raid-disk               1