ESIEE

Vous trouverez dans ces pages des astuces pour vous faciliter la vie sur les postes de l'ESIEE.

Accèder au web depuis les labos d'élec

Voilà on peut avoir besion d'aller voir de la documentation en ligne sur le LF356 depuis un labo d'élec où mozilla n'est pas configuré et il hors de question d'utiliser ie6. C'est simple il suffit de configurer le proxy correctement. Pour cela une fois mozilla lancé :
=> Edition
=>préférences
+ Avancé
|_ proxies

Là il faut remplir les champs suivants :
1- cocher configuration manuelle du proxy
2- Remplir la case Proxy HTTP avec "cache.esiee.fr"
3- remplir la case port avec "3128"
4- clicker sur la case : utliser ces paramètres pour SSL, FTP et Gopher

Valider et recharger la page.

Chargement automatique de l'environement pour l'assemblage

Pour pouvoir assembler des fichiers .s (68000) avec la commande assembleur (et faire plein d'autres choses, notamment lire la doc de la 5201), il faut à chaque fois charger l'environnement à l'aide de la commande source /user/info_lib/.5201_env , ce qui peut être fastidieux au bout de la 100ème fois, surtout quand on oublie un _ ou un . une fois sur deux.

Pour que l'environnement soit chargé automatiquement au démarrage de la console, il suffit de coller cette commande dans un fichier appelé .cshrc à la racine de votre session (nedit ~/.cshrc)
ensuite on est tranquille jusqu'en I5 !

Connexions SSH

ce tutoriel explique comment se connecter au club en ssh aux noobs.

Introduction

SSH ça veut dire Secure Shell, et c'est un protocole de communication sécurisé (c'est écrit dessus).
Une fois qu'on est connecté en SSH sur une machine, c'est (presque) comme si on avait un terminal sur la dite machine. Donc par exemple si je me connecte en ssh au club avec mon login, j'ai accès à tous mes documents, je peux compiler avec gcc, faire du latex, bref c'est trop l'éclate quoi.
Avec SSH, on peut :

  • se connecter de l'esiee sur une autre machine de l'esiee
  • se connecter du Club*Nix sur une machine de l'esiee
  • se connecter de l'esiee sur le club
  • se connecter de l'extérieur au club

et donc vous aurez déduis qu'on peut se connecter au club de chez soi, puis à l'esiee du club, c'est à dire se connecter à l'esiee de chez soi, ce qui est tout bonnement wonderful.
Bien sur, pour faire tout ça faut avoir un compte au club nix et à l'esiee...

Comment ça marche

Oh c'est pas bien dur ma petite dame. Supposons que t'aies un terminal linux devant toi, ben tu tapes :

user@ordi ~ $ man ssh

et tu lis !

bon, ensuite tu as compris que basiquement, pour se connecter en ssh faut faire :

user@ordi ~ $ ssh <ton login>@<le host>

allez, mise en pratique :

connexions dans l'école

cas n°1 : se connecter au smig

Tout d'abord il faut connaitre le nom d'une machine, qui sert de host. Il y a entre autres "acmeX", "geminiX", où X est un chiffre entre 1 et 12.
quand je serais re à l'école je ferai une liste plus complète des pc sshables
ensuite par exemple ça donne ça :

coco@clubnix9 ~ $ ssh vandonr@acme6
The authenticity of host 'acme6 (147.215.186.75)' can't be established.
RSA key fingerprint is ec:23:4b:d6:8b:4e:5e:6e:b9:a0:6a:d9:00:03:31:6f.
Are you sure you want to continue connecting (yes/no)?

Là t'ecris yes et tu pose pas de questions.

ensuite tu tapes ton mot de passe (le mot de passe du compte avec lequel tu essayes de te connecter, on voit pas les lettres c'est normal), tu fais entrée, et hop :

coco@clubnix9 ~ $ ssh vandonr@acme6
The authenticity of host 'acme6 (147.215.186.75)' can't be established.
RSA key fingerprint is 3d:a0:a9:0b:9e:1a:96:3a:e9:b4:47:25:f9:4a:39:25.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'acme7,147.215.186.75' (RSA) to the list of known hosts.
Password:
Last login: Wed Apr 16 16:50:29 2008
acme6:~>

et voilà, amuse toi bien, ça marche pareil du club ou de l'esiee.

cas n°2 : se connecter au club

C'est le même principe, sauf qu'il y a pas le choix pour la machine, c'est clubnix101.
ça donne ça :

acme7:~> ssh coco@clubnix101
The authenticity of host 'clubnix101 (147.215.81.101)' can't be established.
RSA key fingerprint is 39:f2:a3:7f:46:2b:0c:04:1b:13:ec:21:e5:83:fc:28.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'clubnix101,147.215.81.101' (RSA) to the list of known hosts.
Password:
Last login: Tue Apr 29 22:17:03 2008 from <chez moi>
coco@clubnix9 ~ $

allez, maintenant plus dur :

connexions de l'exterieur

Seule la connexion au club nix est possible de l'exterieur. Pour ça le host n'est plus le nom d'une machine, mais clubnix.esiee.fr.
ça donne donc :

user@ordi ~ $ ssh coco@clubnix.esiee.fr

sinon...

sous Windows

sous windows, on peut accéder au club nix en ssh, notement avec :

  • FileZilla, pour les échanges de fichiers
  • cygwin, si on a installé les bons packages
  • PuTTY

qui sont des logiciels libres et gratuits, giyf.

  • Avec FileZilla
    C'est pas bien dur, c'est du clickodrome :
    ctrl + S (gestionnaire de sites) -> Nouveau Site
    et puis il suffit de remplir les champs hôte, port, sélectionner le type de serveur : SSH (SFTP), type d'identification normale, remplir les champs login et mot de passe et c'est parti !

  • Avec cygwin
    comme sous linux

  • Avec PuTTY
    Remplir les champs Host Name et Port, sauvegarder en default settings si on veut pas les retaper à chaque fois, puis open.
    Ensuite on rentre l'utilisateur et le mot de passe et on est au club.

    Les commandes utiles en ssh

    cp
    à faire

    à retenir :

  • de l'esiee :
    ssh user@host
    où host est le nom d'une machine
    le host du club est clubnix101.
  • de chez soi :
    ssh user@clubnix.esiee.fr
    (host clubnix@esiee.fr)
  • Imprimer en 5000 depuis les PC du clubs

    Si vous voulez imprimer en 5000, c'est le moment de réviser la commande lp. Si on combine ça avec ssh et scp, on peut facilement imprimer depuis n'importe quel ordi connecté sur le réseau de l'ESIEE. Il faut savoir aussi que les ordis sur lesquels on peut se ssh sont les ordis allumés sous Linux. On a aussi besoin que ces ordis aient la bonne imprimante ajoutée (ps5003a). Pour rappel, la commande lp s'utillise comme ça:

    $ lp -d <imprimante> -o <option[=valeur]> <fichier texte, pdf, ou ps>

    J'ai rajouté les options car il y en a des intéressantes comme Stapling qui permet de choisir la position des agrafes (les valeurs possible sont: "Off", "LL", "LR", "MB", "ML", "MR", "MT", "SS", "UL" et "UR"). Vous pouvez regardez les options et leurs valeurs actuelles avec la commande lpoption ou lpoption -l pour voir aussi toutes les valeurs possibles. Attention: une partie des options disponibles changent en fonction de l'imprimante.

    Bref, trêve de bavardages, voici le script:

    1. #!/bin/bash
    2.  
    3. # http://redsymbol.net/articles/unofficial-bash-strict-mode/
    4. set -euo pipefail
    5. IFS=$'\n\t'
    6.  
    7. if [ $# -lt 2 ]; then
    8. echo "Usage: $0 <file> <login> [lp options]"
    9. exit 1
    10. fi
    11.  
    12. if [ ! -f "$1" ]; then
    13. echo "No such file: '$1'"
    14. exit 1
    15. fi
    16.  
    17. FILE=$1
    18. LOGIN=$2
    19.  
    20. shift
    21. shift
    22.  
    23. MIMETYPE="$(file -b --mime-type "$FILE")"
    24.  
    25. if [[ ! ("$MIMETYPE" =~ ^text || "$MIMETYPE" == "application/pdf" || $MIMETYPE == "application/postscript") ]]; then
    26. echo "Warning: printing supported only with pdf, ps or text files."
    27. echo "Found: $MIMETYPE"
    28. echo "Continuing anyway..."
    29. echo
    30. fi
    31.  
    32. BASENAME="$(basename "$FILE")"
    33.  
    34. echo "Destination file? [default='~/$BASENAME']"
    35. read DESTINATION
    36.  
    37. if [ -z "$DESTINATION" ]; then
    38. DESTINATION="~/$BASENAME"
    39. fi
    40.  
    41. echo "Trying 5008 computers"
    42. for i in a b c d e f g h i j k l m; do
    43. HOST="pc5008${i}.esiee.fr"
    44. if scp "-o" "ConnectTimeout=1" "$FILE" "$LOGIN@$HOST:$DESTINATION"; then
    45. ssh "-o" "ConnectTimeout=1" "$LOGIN@$HOST" "lp -d ps5003a $@ $DESTINATION"
    46. break
    47. fi
    48. done

    Les lignes 4 et 5 mettent Bash en mode "strict" (non officiel). Il s'agit d'options très sympas pour que le le langage soit plus strict et donc de sauver des heures de debugging. Pour plus d'informations sur comment ça marche, allez voir le site.

    Les lignes de 7 à 18 vérifient simplement les arguments passés en ligne de commande et stockent le nom du fichier à imprimer et le login ESIEE.

    Pour les shift ligne 20 et 21, cela permet décaler les arguments: l'argument 1 disparaît, l'argument 2 devient l'argument 1, l'argument 3 devient l'argument 2, etc…

    De la ligne 23 à 30 le script vérifie que le fichier est bien un fichier texte, pdf ou postscript mais affiche seulement un warning si ça n'est pas le cas.

    De la ligne 32 à la ligne 39 le script récupère le nom de fichier (enlève le chemin s'il y est) et propose de spécifier un autre chemin pour stocker le fichier sur la machine distante

    Le cœur du script est situé entre les lignes 41 à 48. On va essayer de scp le fichier sur toutes les machines situées en 5008 (pc5008a, pc5008b, pc5008c, etc…) et si jamais ça marche, on lance la commande lp via ssh, avec les options rajoutées via la ligne de commande, qui sont représentées par la variable $@ (ce qui explique l'intérêt des deux shift) et on sort de la boucle.

    Tadaa ! La magie (qui n'est pas vraiment de la magie en fait) est faite !

    Installer git dans sa home

    ssh machinesmig

    wget http://clubnix.fr/redmine/projects/smigtools/repository/revisions/master...
    chmod +x installgit.sh
    ./installgit.sh

    à ajouter dans cshrc :

    setenv PATH /user/votrelogin/usr/bin:$PATH

    vous pouvez maintenant git clone depuis n'importe quel pc du smig.

    Proxy SOCKS avec SSH

    Le problème est le suivant : à l'ESIEE, dans la plupart des sous-réseaux on ne peut pas dialoguer avec l'extérieur de l'école, le seul moyen étant de passer par le proxy HTTP avec lequel on ne peut bien sûr faire que du HTTP.
    Heureusement, le Club*Nix est là !

    Proxy SOCKS

    Le proxy SOCKS, au contraire du proxy HTTP permet de faire passer n'importe quel protocole. Il est très facile d'en créer avec OpenSSH, avec la commande ci-dessous.

    ssh -D 10000 user@clubnix101.esiee.fr

    OpenSSH va écouter sur le port 10000 et transférer tout ce qui arrive dessus via un tunnel SSH vers clubnix101.

    Utilisation du proxy

    Il s'agit maintenant de configurer nos applis pour qu'elles utilisent le proxy. Les environnements de bureau Gnome et KDE peuvent être configurés pour utiliser un proxy SOCKS, mais je vais ici présenter une technique plus globale.

    Tsocks

    Tsocks est une librairie permettant d'utiliser de manière transparente un proxy SOCKS. Après l'avoir installée de la manière appropriée à votre distribution, il faut éditer le fichier de configuration /etc/tsocks.conf afin d'indiquer l'emplacement de notre proxy.

    server = 127.0.0.1
    server_port = 10000

    Le fonctionnement ensuite est simple, tsocks <commande> permet de lancer un programme qui verra ses connexions réseaux redirigées de manière transparente.
    Afin que tous les programmes l'utilisent, on peut rajouter la librairie à la variable d'environnement LD_PRELOAD, la commande tsocks on remplit cet office. Si celle-ci ne donne rien comme chez moi, on pourra utiliser :

    export LD_PRELOAD=$LD_PRELOAD:/usr/lib/libtsocks.so

    (à adapter selon l'emplacement de la librairie) .

    Radio derrière le proxy ESIEE et les horribles glitches des neiges

    Notre cher furet vous a expliquer comment accèder au web depuis les labos d'élec. Pendant les longues heures passé en TP et projets ça aide. Mais c'est encore mieux si on peut avoir la radio. En attaquant directement le stream sur le serveur avec votre logiciel préféré (mplayer), vous entendez d'horrible glitch toutes les 10 secondes. D'après paulez se serait du au proxy squid de l'école.

    Cool nous n'avons pas se problème au club puisque nous pouvons directement accéder a l'extérieur.

    => Tunnel ssh

    ssh -NTL 1025:ta_radio:son_port trax@clubnix101

    => Ecouter la radio

    mplayer http://localhost:1025/rest_de_l_adresse