Différences entre les pages « UserModeLinux » et « CAS »

De Cliss XXI
(Différence entre les pages)
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
 
imported>SylvainBeucler
m (client CAS)
 
Ligne 1 : Ligne 1 :
== Compilation du noyau utilisateur ==
+
== Installation ==
  
C'est très simple: on compile le noyau Linux avec le paramètre <code>ARCH=um</code> ''pour chaque commande''.
+
* Installer [[Java]]
 
+
* Installer Tomcat:
  wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.13.tar.bz2
+
  aptitude install tomcat5.5
  tar xjf linux-2.6.17.13.tar.bz2
+
  sed -i -e 's,#JAVA_HOME=.*,JAVA_HOME=/usr/lib/jvm/java-6-openjdk,' /etc/default/tomcat5.5
cd linux-2.6.17.13
+
# TODO: faire ça proprement avec un fichier 'policy' quelque part
 
+
  sed -i -e 's,#TOMCAT5_SECURITY=.*,TOMCAT5_SECURITY=no,' /etc/default/tomcat5.5
make defconfig ARCH=um
+
invoke-rc.d tomcat5.5 restart
make xconfig ARCH=um # facultatif; pensez à activer HOSTFS si besoin
+
* Installer le module CAS/
make ARCH=um
+
wget http://www.ja-sig.org/downloads/cas/cas-server-3.2-release.tar.gz
strip linux
+
  tar xzf cas-server-3.2-release.tar.gz
 
+
  cd cas-server-3.2
Cf. [http://user-mode-linux.sourceforge.net/new/source.html Building from source] chez UML.
+
  cp ./modules/cas-server-webapp-3.2.war /var/lib/tomcat5.5/webapps/
 
+
* Visitez http://localhost:8180/cas-server-webapp-3.2/
== Construction du système de base ==
+
* Par défaut, un module d'authentification de test est installé: si le login et le mot de passe sont identiques (quel que soit le login), CAS accepte l'authentification.
 
+
* Installez le client CAS:
On se propose de construire et de lancer un système UML sans aucun accès root.
+
  wget http://mesh.dl.sourceforge.net/sourceforge/esup-phpcas/esup-phpcas-0.5.1-1.zip
 
+
  unzip esup-phpcas-0.5.1-1.zip
Vraisemblablement, ce n'est pas possible facilement. Cela est dû au manque d'outil en mode utilisateur pour travailler directement sur des systèmes de fichiers ext3.
+
  cd esup-phpcas-0.5.1-1
 
+
  echo "deploy.home=/usr/share/php" >> properties/build.properties
=== Tentative 1 ===
+
  ant deploy
 
 
Essayons de créer un système complet, sans faire d'image, et en possédant tous les fichiers:
 
 
 
La dernière version de debootstrap propose une variante ''fakechroot'' qui permet de l'utiliser sans accès root:
 
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:$PATH # pour trouver la commande 'chroot'
 
  fakechroot /usr/sbin/debootstrap --variant=fakechroot sarge sarge-uml/ http://localhost/mirrors/debian
 
/usr/src/linux-2.6.17.13/linux  root=/dev/root rootflags=/home/sylvain/tests/uml/debian/sarge-uml/ rootfstype=hostfs
 
 
 
Résultat: cela ne fonctionne pas, à mon avis parce que dans ce cas précis sarge-uml/dev est un lien symbolique vers /dev.
 
 
 
== Tentative 2 ==
 
 
 
Essayons à partir d'une image UML déjà opérationnelle.
 
 
 
[http://packages.debian.org/unstable/utils/rootstrap rootstrap] fonctionne apparemment sur ce principe.
 
Je n'ai pas réussi mais je n'ai pas beaucoup cherché.
 
 
 
== En mode root ==
 
 
 
Faute de mieux, utilisons sudo:
 
 
 
  mkdir loop/
 
# image de 1Go, à trous (espace disque progressif)
 
dd if=/dev/null of=image count=0 bs=1G seek=1
 
# on formatte en ext3
 
/sbin/mkfs.ext3 -F image
 
 
sudo mount image loop/ -o loop
 
sudo debootstrap sarge loop/ http://192.168.1.60/mirrors/debian
 
   
 
# configuration de la console:
 
sudo grep -v tty loop/etc/inittab > inittab.work
 
  sudo echo "1:2345:respawn:/sbin/getty 38400 console linux" >> inittab.work
 
sudo mv inittab.work loop/etc/inittab
 
 
# configuration réseau:
 
sudo echo -e "auto lo\niface lo inet loopback" > loop/etc/network/interfaces
 
 
sudo umount loop/
 
 
 
== Réseau ==
 
 
 
Imaginez un câble virtuel qui relie la machine hôte et la machine UML, une carte carte réseau virtuelle à chaque bout. Chaque carte a une adresse IP, mais comme sur un réseau classique, les deux cartes ne doivent pas avoir la même adresse.
 
 
 
=== mode root ===
 
 
 
host# sudo /usr/src/linux ubda=sarge-debootstrap eth0=tuntap,,,192.168.1.101
 
 
 
Notez les messages d'UML indiquant la mise en place d'une interface tuntap <code>tap0</code>, une route pour accéder à la machine virtuelle, et un partage de connexion pour que la machine virtuelle puisse accéder au réseau extérieur.
 
 
 
Puis dans UML:
 
 
 
uml# ifconfig eth0 192.168.1.201
 
 
=== Mode utilisateur avec tuntap ===
 
 
 
Pour utiliser tuntap, il faut créer à l'avance (et en mode root) une interface tap0 et lui assigner une adresse IP.  
 
 
 
  # tunctl -u sylvain
 
Set 'tap0' persistent and owned by uid 1000
 
 
 
Puis il faut donner des droits aux utilisateurs non-privilégiés d'utiliser tuntap (en mode root aussi):
 
 
 
chmod 666 /dev/net/tun
 
 
 
C'est une solution efficace mais qui nécessite plusieurs étapes de préconfiguration en mode root, accompagné de permissions lâches sur tuntap.
 
 
 
 
 
=== Mode utilisateur avec tuntap (2) ===
 
 
 
Mettre l'utilisateur concerné dans le groupe <code>uml-net</code>. Ce groupe a accès au programme setuid <code>/usr/lib/uml/uml_net</code>, qui peut lancer et configurer des interfaces tuntap. La sécurité du procédé n'est pas grande (l'utilisateur peut créer de nouvelles interfaces réseau et perturber iptables par exemple), mais est facile à mettre en place.
 
 
 
host# /usr/src/linux ubda=sarge-debootstrap umid=deb eth0=tuntap,,,10.10.10.10
 
uml# ifconfig eth0 10.10.10.11
 
iml# route add default gw 10.10.10.10
 
 
 
=== Mode utilisateur avec slirp ===
 
 
 
Lancer UML avec une interface slirp, en utilisant le binaire 'fullbolt' (qui s'affranchit de la limitation débit de 10ko/s dans slirp 'classique'):
 
 
 
  host# /usr/src/linux ubda=sarge-debootstrap umid=deb eth0=slirp,,/usr/bin/slirp-fullbolt
 
 
 
Dans UML, quelques étapes spécifiques à slirp sont nécessaires:
 
 
 
# Configurer l'interface sur 10.2.0.15 (IP de choix pour slirp)
 
ifconfig eth0 10.2.0.15
 
  # Utiliser la redirection DNS 10.0.2.3
 
  echo "10.0.2.3" > /etc/resolv.conf
 
# Ajouter une route par défaut vers eth0:
 
  route add default dev eth0
 
  
 
== Liens ==
 
== Liens ==
  
* [http://user-mode-linux.sourceforge.net/new/ The User-mode Linux Kernel Home Page]: lien direct vers la nouvelle version du site - on s'y retrouve mieux
+
* [http://www.switch.ch/aai/docs/shibboleth/SWITCH/1.3/idp/install-idp-1.3-debian.html Install Shibboleth 1.3 Identity Provider on Debian 4.0 (etch), Tomcat only with CAS SSO]: accent sur les certificats x509?
* [http://eggdrop.ch/texts/uml/ Running Debian inside of Debian with User-Mode Linux]
 
* [http://www.metz.supelec.fr/metz/personnel/galtier/PagesPerso/TutorielUML/index.html Tutoriel User Mode Linux]: avec introduction à SKAS et réseau
 
 
 
* [http://user-mode-linux.sourceforge.net/UserModeLinux-HOWTO-6.html#ss6.11 Slirp] dans le UML HOWTO.
 
 
 
== Dépannage ==
 
 
 
Kernel panic - not syncing: start_userspace : expected SIGSTOP, got status = 256
 
 
 
Cf. http://www.mail-archive.com/user-mode-linux-devel@lists.sourceforge.net/msg03414.html
 
 
 
Votre noyau (hôte) est, si j'ai bien compris, mal configuré. Recompilez-le ou utilisez-en un autre.
 

Version du 2 avril 2008 à 15:37

Installation

  • Installer Java
  • Installer Tomcat:
aptitude install tomcat5.5
sed -i -e 's,#JAVA_HOME=.*,JAVA_HOME=/usr/lib/jvm/java-6-openjdk,' /etc/default/tomcat5.5
# TODO: faire ça proprement avec un fichier 'policy' quelque part
sed -i -e 's,#TOMCAT5_SECURITY=.*,TOMCAT5_SECURITY=no,' /etc/default/tomcat5.5
invoke-rc.d tomcat5.5 restart
  • Installer le module CAS/
wget http://www.ja-sig.org/downloads/cas/cas-server-3.2-release.tar.gz
tar xzf cas-server-3.2-release.tar.gz
cd cas-server-3.2
cp ./modules/cas-server-webapp-3.2.war /var/lib/tomcat5.5/webapps/
  • Visitez http://localhost:8180/cas-server-webapp-3.2/
  • Par défaut, un module d'authentification de test est installé: si le login et le mot de passe sont identiques (quel que soit le login), CAS accepte l'authentification.
  • Installez le client CAS:
wget http://mesh.dl.sourceforge.net/sourceforge/esup-phpcas/esup-phpcas-0.5.1-1.zip
unzip esup-phpcas-0.5.1-1.zip
cd esup-phpcas-0.5.1-1
echo "deploy.home=/usr/share/php" >> properties/build.properties
ant deploy

Liens