Annexe T. Trucs et Astuces

Table des matières
1. Allumer le verrouillage numérique
1.1. en console
1.2. sous X
2. Brancher un périphérique IDE à chaud
3. Faire du SSH à travers un firewall
3.1. Changer de port
3.2. Monter un tunnel HTTP
3.3. Utiliser un proxy HTTPS

1. Allumer le verrouillage numérique

Les utilisateurs d'un ordinateur fixe sont souvent habitués à utiliser le pavé numérique... mais le NumLock n'est jamais allumé par défaut sous Linux !

1.1. en console

Décommentez les lignes suivantes dans le fichier /etc/zsh/zlogin :


# Pour les ordinateurs avec un pavé numérique...
# Active le pavé numérique quand on se loggue en console
case "`tty`" in /dev/tty[1-6]*)-
    setleds +num
esac

1.2. sous X

Installez le package requis :


# apt-get install numlockx

Lors de l'installation du package, il vous demande Enable NumLock automatically ? : répondez Oui.

Si vous utilisez GDM, il faut ajouter le script de lancement de numlockx au script de lancement de GDM. Pour cela, éditez le fichier /etc/gdm/PreSession/Default et importez le contenu du fichier /etc/X11/Xsession.d/55numlockx après la première ligne qui commence par PATH= (commande :r nom_du_fichier pour importer un fichier sous vim), puis redémarrez GDM.

2. Brancher un périphérique IDE à chaud

Si vous avez un portable muni d'une media-bay et de périphériques IDE amovibles, un utilitaire très pratique permet l'ajout et le retrait à chaud de ces périphériques.

Attention

Les lecteurs de disquettes ne sont pas gérés par cet utilitaire.

Installez le package hotswap-text :


# apt-get install hotswap-text

L'utilisation est très simple ; il suffit de taper le nom du programme en root :


# hotswap

et de se laisser guider par le programme comme illustré ci-dessous.

3. Faire du SSH à travers un firewall

Cas typique : vous êtes dans un entreprise et vous voulez vous connecter par SSH vers un serveur à l'extérieur du réseau de l'entreprise... mais il y a un firewall entre le réseau interne et Internet !

Avertissement

L'utilisation des techniques décrites ci-dessous est peut-être interdite par l'entreprise.

Il y a trois possibilités, sachant que seule la dernière est potentiellement réalisable si vous ne pouvez pas modifier la configuration du serveur.

3.1. Changer de port

Si le firewall a un port complètement ouvert (le port 80 par exemple), vous pouvez modifier la configuration du serveur pour que son démon SSH écoute sur le port 80 en plus du port 22 (attention, il ne doit pas y avoir de serveur Web qui écoute déjà sur le port 80). Pour cela, modifiez le fichier de configuration /etc/ssh/sshd_config pour qu'il contienne les deux lignes suivantes :


Port 22
Port 80

Puis relancez le serveur SSH :


# /etc/init.d/ssh reload
Reloading OpenBSD Secure Shell server's configuration.

Vous pouvez alors lancer votre client SSH en lui précisant d'utiliser le port 80 :


% ssh -p 80 login@nom_DNS_du_serveur

3.2. Monter un tunnel HTTP

Si le firewall surveille le port 80 et vérifie que seuls des packets HTTP passent par ce port, alors vous pouvez essayer d'utiliser le programme httptunnel. Ce programme doit tourner sur le client et le serveur. Il encapsule dans une connexion HTTP n'importe quel type de connexion (pas forcément une connexion SSH). Il permet aussi de faire passer la connexion par un Proxy. Installez le package sur le client et sur le serveur :


# apt-get install httptunnel

Lancez le serveur httptunnel sur le serveur :


% hts -F localhost:22 8888

Puis lancez le client httptunnel sur le client :


% htc -F 2222 nom_DNS_du_serveur:8888

ou, si vous devez passer par un Proxy proxy.exemple.org qui écoute sur le port 8080 :


% htc -F 2222 -P proxy.exemple.org:8080 nom_DNS_du_serveur:8888

Vous pouvez alors lancer votre client SSH :


% ssh -p 2222 login@localhost

3.3. Utiliser un proxy HTTPS

Récupérez le script ssh-https-tunnel :


% wget http://zwitterion.org/software/ssh-https-tunnel/ssh-https-tunnel
# mv ssh-https-tunnel /usr/local/bin/

Editez le fichier /usr/local/bin/ssh-https-tunnel contenant le programme et rentrez le nom DNS et le port du proxy du réseau interne dans les variables prévues à cet effet :


# Proxy details
my $proxy      = "proxy.exemple.org";
my $proxy_port = 8080;

Créez (s'il n'existe pas déjà) un fichier ~/.ssh/config contenant :


host nom_DNS_du_serveur
   ProxyCommand /usr/local/bin/ssh-https-tunnel %h %p
   Port 22

Puis essayez de vous connecter au serveur comme vous le faites normalement :


% ssh login@nom_DNS_du_serveur

Si cela ne marche pas, essayez de faire écouter le démon SSH du serveur sur le port 443 (port des connexions HTTP sécurisées), comme expliqué dans la première possibilité, et modifiez le fichier ~/.ssh/config en remplaçant 22 par 443, puis réessayez de vous connecter.