Publication de pages web individuelles, cours et/ou publique

jehan.procaccia@int-evry.fr

10 Octobre 2006

Table des matières

Résumé: Ce document decrit la publication et le fonctionnement du service de pages web individuelles (page perso, cours ....).

1  Usages

1.1  Espace de cours ou publique

S2IA offre à tout permanent des espaces de publication web individuel pour des cours ou de pages publiques (perso à usage professionnel) . La publication se fait sur le serveur webspace.int-evry.fr dans les répertoire cours et/ou public et se consulte respectivement sur les serveurs www-cours.int-evry.fr et www-public.int-evry.fr. Les exemples et captures d'ecrans d'usage de ce services dans cette documentation font reference à l'espace public (perso), pour la publication et la consultation des cours, c'est exactement le meme principe, il suffit de remplacer www-public par www-cours !.

1.2  Demande d'espace

Afin de disposer d'un espace de publication de cours ou/et de pages publiques, il faut envoyer à S2IA une demande d'ouverture d'espace WEB: envoyez un mail à informatique@int-evry.fr sujet: demande d'espace web individuel (publique ou/et cours), formulaire à venir ..., nous validerons ainsi le flag ldap qui ouvre l'espace web en question. Pour le momment il n'y a pas de quota, le service étant nouveau et hébergé sur une baie de disques de forte capacité. Cet espace est sauvegardé par notre outil de sauvegarde quotidiennement (amanda) .

2  Publication

La publication peux se faire au travers de plusieurs méthodes de connexion

2.1  Acces fichier CIFS/SAMBA

Il est possible d'accéder à un espace web individuel depuis tout type de client CIFS: l'explorateur de fichier sous windows (explorer) et un client sFTP, smbclient, nautilus, mountage smbfs, scp, sftp sous linux .

2.1.1  Depuis windows

Explorateur windows
Ouvrir l'explorateur de fichier, depuis le menu outils -> choisir connecter un lecteur réseau. Saisir le partage \\webspace.int-evry.fr\login\login correspond à votre nom d'utilisateur système. Cliquer sur terminer, une fenêtre de saisie du mot de passe apparait, il faut mettre le mot de passe de l'annuaire ldap (monde unix = celui de la messagerie) .




Maintenant , un lecteur W: (ou autre lettre choisie ...) apparait dans votre explorateur windows. Il suffit de faire un copier coller de vos fichiers entre votre arborescence locale et ce lecteur pour publier.

Bien entendu vous pouvez également utiliser des outils dédiés de publication (dreamweaver etc ... ) avec cette même destination.



FTP sécurisé windows
On peut utiliser une client FTP qui fonctionne sur ssh , FTP sécurisé = sftp , exemple filezilla http://filezilla.sourceforge.net/

2.1.2  Depuis linux

Gestionnaire de fichier gnome -> nautilus
Depuis nautilus (icone ordinateur/computer sur le bureau), menu fichier -> connecter au serveur:







Client samba interactif


$ smbclient //webspace.int-evry.fr/procacci -U procacci
Password:
Domain=[MICRO] OS=[Unix] Server=[Samba 3.0.14a-2]
smb: \> ls public/*
  .                                   D        0  Wed May 31 10:38:28 2006
  ..                                  D        0  Wed May 31 11:39:04 2006
  cgi                                 D        0  Wed May 31 10:37:40 2006
  index.html                                1707  Mon Jan 30 15:22:48 2006
  index.php3                          A       15  Fri Jan 27 16:28:24 2006
  ipv6.html                           A    21624  Wed Jan 11 18:14:28 2006
  logs                                D        0  Thu Mar  9 09:48:01 2006
  phpinfo.php                         A       15  Fri Jan 27 16:27:32 2006
  restricted                          D        0  Thu Mar 30 12:01:46 2006
  shibboleth                          D        0  Wed May  3 13:05:56 2006

                50395 blocks of size 2097152. 45592 blocks available




Montage statique sous Fedora Core 4
Montage local d'un systeme de fichier en samba (en tant que root !)

$ mount -t smbfs -o username=procacci,workgroup=micro //webspace.int-evry.fr/procacci /mnt/smb
Password:
$ ls -l /mnt/smb/public
total 52
drwxr-xr-x  1 root root     0 May 31 10:37 cgi
-rwxr-xr-x  1 root root  1707 Jan 30 14:22 index.html
-rwxr-xr-x  1 root root    15 Jan 27 15:28 index.php3
-rwxr-xr-x  1 root root 21624 Jan 11 17:14 ipv6.html
drwxr-xr-x  1 root root     0 Mar  9 08:48 logs
-rwxr-xr-x  1 root root    15 Jan 27 15:27 phpinfo.php
drwxr-xr-x  1 root root     0 Mar 30 12:01 restricted
drwxr-xr-x  1 root root     0 May  3 13:05 shibboleth



Montage statique sous Fedora Core 5
Montage local d'un systeme de fichier en samba (en tant que root !)

[root@calaz /tmp]
$ mount -t cifs //cobra3.int-evry.fr/procacci /mnt -o user=procacci
Password:
mount error 5 = Input/output error
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)


cela genere une erreure :-( , il faut etudier la question ....

Quelques demonstrations de fichiers utiles.

un script cgi


[root@calaz /mnt]
$ cat /mnt/smb/public/cgi/whoami.cgi
#!/bin/bash
echo "Content-Type: text/plain"
echo ""
date
touch /mci/mci/procacci/public/cgi/touch_proc.txt
echo "J'execute en tant que : `whoami`"
echo "je suis reel : `id -r`"
echo "je suis effectif : `id `"


un controle d'acces CAS


$ cat /mnt/smb/public/restricted/.htaccess
<Limit GET POST>
 AuthType CAS
 AuthName "INT auth"
 deny from all
 Require valid-user
 satisfy any
 </Limit>


un controle d'acces shibboleth


$ cat /mnt/smb/public/shibboleth/.htaccess
<Limit GET POST>
AuthType shibboleth
ShibRequireSession On
ShibExportAssertion On
require statut permanent
</LIMIT>


2.2  Montage via sshfs

Pour les clients sous Linux, verifiez que vous disposez du package fuse-sshfs

[jehan@calaz ~]
$ rpm -q fuse-sshfs
fuse-sshfs-1.7-1.fc5


Creer un repertoire de travail pour le montage via ssh

[jehan@calaz ~]
$ mkdir sshfs


Montage du systeme de fichier dans le tunnel ssh

[jehan@calaz ~]
$ /usr/bin/sshfs procacci@webspace.int-evry.fr:/mci/mci/procacci ./sshfs/


Visulalisation du montage et des fichiers

[jehan@calaz ~]
$ df
sshfs#procacci@webspace.int-evry.fr:/mci/mci/procacci
                     1048576000         0 1048576000   0% /home/jehan/sshfs
[jehan@calaz ~]
$ cd sshfs/public
[jehan@calaz ~/sshfs/public]
$ ls
index.html ....


Il suffit d'aller dans  /sshfs et vous avez un acces complet au repertoire de votre webspace .

Pour demonter le disque reseau

[jehan@calaz ~/sshfs/public]
$ cd ../..
[jehan@calaz ~]
$ fusermount -u ./sshfs/


2.3  SSH restreint

Un acces ssh restreint au sftp et au scp est disponible, mais pas d'accès shell interactif directement sur la machine !.

$ ssh procacci@webspace
procacci@webspace's password:
Last login: Thu Jan 12 16:56:23 2006 from calaz.int-evry.fr

This account is restricted by rssh.
Allowed commands: scp sftp

If you believe this is in error, please contact your system administrator.

Connection to webspace closed.


2.4  Automatisation de l'acces ssh

L'objectif est de ne plus avoir a saisir le couple login/password.

References:
http://www.int-evry.fr/s2ia/user/doutrele/ssf/ssf.html
http://www.linux-france.org/prj/edu/archinet/systeme/x2500.html
http://www-sop.inria.fr/semir/securite/ssh/

2.4.1  Génération des cles

Si vous n'en disposez pas deja d'une, creez une clé (ici j'ai changé le nom de fichier par defaut pour ne pas effacer ma clé actuelle !)

$  ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jehan/.ssh/id_rsa): /home/jehan/.ssh/id_webspace_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jehan/.ssh/id_webspace_rsa.
Your public key has been saved in /home/jehan/.ssh/id_webspace_rsa.pub.
The key fingerprint is:
47:e2:03:6d:86:fe:77:8b:3a:00:55:74:8f:e9:d0:4f jehan@calaz


La passphrase, protège la clé, mais il faudra par conséquent la saisir lors d'un transfert de fichier. Pour cela on peux faire tourner un agent ssh qui au lancement de votre session cliente unix vous la demandera une fois pour toute. Pour un exemple de configuration sous gnome: http://www.int-evry.fr/s2ia/user/doutrele/ssf/ssf.html#htoc9
Autrement il est possible de ne pas mettre de passphrase (chaine vide), mais ce n'est pas optimal au niveau sécurité !.

2.4.2  Fichier d'autorisation

On génere le fchier d'autorisation en y incluant notre clé public (on peux en mettre plusieurs, d'où le >> )

$ cat .ssh/id_webspace_rsa.pub >> .ssh/authorized_keys


2.4.3  Transfert de la clé

Nous devons transferer la clé contenu maintenant dans le fichier authorized_keys sur le serveur de publication. La clé publique doit se trouver dans un fichier portant exactement ce nom (authorized_keys) et étant dans le sous réptoire .ssh. C'est pourquoi nous commençons par créer l'arborescence et finirons par positioner les droits restrictifs d'acces à ces fichiers .

$ sftp procacci@webspace.int-evry.fr
Connecting to webspace.int-evry.fr...
The authenticity of host 'webspace.int-evry.fr (157.159.10.74)' can't be established.
RSA key fingerprint is 4c:34:e8:8f:a0:08:07:f8:e5:06:19:4a:7f:66:be:cf.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'webspace.int-evry.fr' (RSA) to the list of known hosts.
procacci@webspace.int-evry.fr's password:
sftp> mkdir .ssh
sftp> put .ssh/authorized_keys .ssh/authorized_keys
Uploading .ssh/authorized_keys to /mci/mci/procacci/.ssh/authorized_keys
.ssh/authorized_keys                          100%  393     0.4KB/s   00:00
sftp> chmod 700 .ssh
Changing mode on /mci/mci/procacci/.ssh
sftp> chmod 400 .ssh/authorized_keys
Changing mode on /mci/mci/procacci/.ssh/authorized_keys


2.4.4  Exemple d'utilisation

ici sans ssh-agent sur le client ! -> d'où le demande de saisie de la passphrase.

$ scp -i ~/.ssh/id_webspace_rsa  index.html procacci@webspace:~procacci/public_html/
Enter passphrase for key '/home/jehan/.ssh/id_webspace_rsa':
index.html                                    100% 1707     1.7KB/s   00:00


3  Consultation

Le résultat des publications est consultable depuis un navigateur avec une URL du type http://www-public.int-evry.fr/~login

4  Fonctionnalités

4.1  Scripts CGI

Des scripts CGI sont réalisables, il suffit de les déposer dans un sous-répertoir nommé cgi sous public ou cours. Ils s'exécuteront en tant que vous même .

4.2  Modules

4.2.1  php

Le module php est disponible, vous pouvez donc créer des pages php Details/exemples à venir ...

4.2.2  Perl

Le module perl est disponible, vous pouvez donc créer des pages perl Details/exemples à venir ...

4.2.3  CAS

Le module CAS (SSO web) est disponible, vous pouvez donc protéger vous pages en utilisant une authentification centralisée (ldap) et sécurisée (https). Voir chapitre 4.4 ci-dessous .

4.3  Base de donnée

L'accés à une base de donnée mysql est possible, il suffit de demander la création d'une base à S2IA (mail a helpdesk@int-evry.fr , sujet: demande de création d'une BD pour le login XXX, formulaire a venir ...). La base portera le nom de votre login et sera administrable via l'URL (Attention au S !) : https://mysql1.int-evry.fr/phpMyAdmin/

4.4  Controle d'acces, SSO

Vous pouvez resteindre individuellement l'acces à vos pages en utilisant le Single Sign On (SSO) deployé à l'INT -> CAS , doc technique à ce sujet: http://www.int-evry.fr/s2ia/user/procacci/Doc/serveur-cas-client-mod-cas.html.
Pour cela il suffit de postionner un ficher .htaccess dans le répertoire que où vous souhaitez controler l'acces. Exemple de fichier .htaccesssous procacci\public_html\restricted :

<Limit GET POST>
 AuthType CAS
 AuthName "INT auth"
 deny from all
 Require valid-user
 satisfy any
 </Limit>


Test sur l'URL: http://www-public.int-evry.fr/~procacci/restricted/
Apres authentification CAS, c'est à dire depuis la base de compte de l'annuaire ldap de l'int, le serveur apache ouvrira un fichier index.php ou index.html se trouvant dans ce répertoire protégé, ou tout autre nom de fichier si celui-ci est préciser dans l'URL .
On peux aussi restreindre à certains utilisateurs en enumerant leurs login

Require user procacci doutrele mercey



Ce document a été traduit de LATEX par HEVEA