Translation in English (Google)  Übersetzung in Deutsch (Google)  Traducción en Español (Google) 
webmaster@smeserver.fr
 Version imprimable 

Astuces et howtos


But

Cette page sert à recenser le plus grand nombre d'astuces et de howtos utiles sous SME v7.x.
Comme il s'agit le plus souvent de modifier le comportement standard de SME et cela implique que vous soyez parfaitement conscient des altérations apportées au système avec les éventuels risques que cela peut comporter. Si vos connaissances de SME et de l'exploitation de la ligne de commande sont limitées, vous devriez absolument vous documenter sur le sujet avant d'exploiter le contenu de cette page.

Je vous encourage vivement à me faire part de nouvelles astuces à ajouter à cette liste en m'envoyant un mail. Merci d'avance pour votre aide.

Utilisateurs
Groupes
I-bays
Modifier le niveau complexité des mots de passe
Modifier le nombre maximal de caractères utilisables dans les noms
Autoriser un utilisateur à exploiter la ligne de commande
Réinitialiser le mot de passe du compte root
Apache Restreindre l'accès au service Apache ou le désactiver
Masquer le listing des fichiers dans les i-bays
Résoudre les noms d'hôte dans les logs
Personnaliser les messages d'erreur standards d'Apache
Créer une galerie de photos dans une i-bay avec phpWebGallery
PHP Visualiser les messages d'erreur PHP sous Apache
Autoriser les scripts PHP à accéder à certains répertoires
Autoriser l'accès aux fichiers distants
Modifier la taille des fichiers pouvant être envoyés sur le serveur
MySQL Créer des utilisateurs MySQL
Accéder au serveur MySQL depuis le réseau
Messagerie Modifier le nombre maximal de connexions IMAP simultanées
Visualiser dans le webmail les messages envoyés en HTML
Limiter la taille des courriels pouvant être envoyés
Supprimer les "double bounce"
Forcer un serveur SMTP tiers pour certains domaines destinataires
Supprimer les alertes de rkhunter concernant l'accès SSH par root
Samba Changer le commentaire associé au serveur
Autoriser tout le monde à utiliser les imprimantes
Système de fichiers Utiliser un disque dur supplémentaire pour stocker une ou plusieurs i-bay(s)
Réseau Ouvrir un port réseau sur l'interface externe pour un service
Limiter l'accès à certains services sur l'interface externe
Désactiver le proxy transparent
Créer et utiliser des paires de clés SSH
Modifier le niveau d'enregistrement des évènements du pare-feu
Mettre à jour plusieurs domaines DynDNS (service gratuit)
Bloquer de façon permanente des adresses IP externes


Convention typographique

Afin de vous faciliter la compréhension de qui apparait à l'écran, j'ai mis en place le code couleur suivant :

En blanc : ce que vous devez taper
En magenta : les éléments que vous devez taper, en fonction de vos besoins
En cyan : ce qui est affiché par le système


Créer des paires de clés asymétriques RSA

Comme vous le savez sûrement déjà, il est possible de se connecter au serveur avec le protocole SSH (ainsi que SCP et SFTP). Vous pouvez définir dans le gestionnaire du serveur la méthode d'authentification que vous souhaitez utiliser : avec un mot de passe standard ou avec des clés de cryptage asymétriques qui accroissent considérablement le niveau de sécurité.
Dans la mesure du possible, essayez d'imposer l'interdiction de se connecter avec des mots de passe standards.

Si vous autorisez l'accès SSH depuis Internet, je vous recommande vivement d'utiliser la méthode d'authentification par clés. Il va donc vous falloire créer et mettre en place les clés pour les utilisateurs devant utiliser une connexion de type SSH.
Pour mémoire, les comptes de ces utilisateurs ne doivent pas être vérouillé (ie. vous leur avez initialisé un mot de passe) et ils doivent disposer d'un "vrai" shell.

Il existe deux méthodes communément utilisées pour cette opération : l'une avec PuTTYgen (complément de l'utilitaire de connexion SSH PuTTY qui est l'un des plus utilisé sous Windows), et l'autre avec l'utilitaire ssh-keygen, le générateur de clés d'OpenSSH, disponible entre autre sous SME.
J'ai choisi d'utiliser la deuxième méthode car elle est plus universelle : tout le monde ne dispose pas d'un ordinateur sous Windows.

Dans un premier temps, nous allons créer les clés pour l'utilisateur toto. Durant cette opération, il vous sera demandé de taper une "passphrase" ; c'est en quelque sorte un mot de passe qui sera intégré à vos clés. Ainsi, si quelqu'un arrive à s'emparer de votre clé privée, il ne pourra l'utiliser que s'il connait en plus le mot de passe associé. Je vous recommande donc d'indiquer une passphrase :

su toto -s /bin/bash -c 'ssh-keygen -qt rsa -b 1024 -C "$USER@$HOSTNAME" -f ~/.ssh/$USER@$HOSTNAME.rsa'
Enter passphrase (empty for no passphrase): votre passphrase
Enter same passphrase again: votre passphrase
Ceci va créer deux fichiers, l'un contenant la clé privée (extension .rsa) et l'autre la clé publique (extension .rsa.pub)

Pour que le serveur prenne en compte la nouvelle clé publique de l'utilisateur, tapez :

su toto -s /bin/bash -c 'cat ~/.ssh/$USER@$HOSTNAME.rsa.pub  >> ~/.ssh/authorized_keys'

Vous pouvez, si vous le souhaitez, récupérer les clés de l'utilisateur afin qu'elles ne trainent pas dans son profil. Je vous recommande d'utiliser un répertoire protégé pour stocker toutes les clés de vos utilisateurs. Dans cet exemple, je vais supposer qu'elles vont dans /root/user_keys/ (chmod 700) :

mv /home/e-smith/files/users/toto/.ssh/toto*.rsa* /root/user_keys/

Vous pouvez également envoyer par mail sa clé privé à l'utilisateur. Il faut bien entendu que l'accès à la messagerie de l'utilisateur soit protégé afin que personne d'autre que lui ne puisse prendre connaissance de cette clé (et pensez à informer l'utilisateur sur les mesures de protection qu'il doit adopter pour protéger sa clé) :

echo "Attention, fichier sensible." | mutt -n -s "Votre clé privée" -a toto\@nom_serveur.rsa toto


Utiliser SSH (OpenSSH) avec une clé privée

En ligne de commande, pour accéder au serveur ayant l'adresse IP 1.2.3.4 avec l'utilisateur toto et la clé privée cle_privee.rsa, il vous suffit de taper :

ssh -i cle_privee.rsa toto@1.2.3.4

Ceci n'est qu'une connexion basique ; si vous avez des besoins spécifiques, regardez la documentation du client ssh (man ssh).


Utiliser SCP (OpenSSH) avec une clé privée

Personnellement, je trouve peu pratique l'utilisation de SCP en ligne de commande et je vous recommande plutôt le SFTP (voir plus bas).
Voici toutefois un exemple permettant de voir comment copier le fichier local /rep_loc/fic_loc dans /rep_dist/fic_dist sur le serveur ayant l'adresse IP 1.2.3.4, avec l'utilisateur toto et la clé privée cle_privee.rsa :

scp -oIdentityFile=cle_privee.rsa /rep_loc/fic_loc toto@1.2.3.4:/rep_dist/fic_dist

Pour toutes les possibilités offertes par ce client, je vous renvoie vers sa documentation (man scp).


Utiliser SFTP (OpenSSH) avec une clé privée

L'utilisation de sftp est sensiblement la même que celle d'un client ftp classique. La principale différence se situe au niveau de la connexion.
Ainsi, pour vous connecter au serveur ayant l'adresse IP 1.2.3.4 avec l'utilisateur toto et la clé privée cle_privee.rsa, il vous suffit de taper :

sftp -oIdentityFile=cle_privee.rsa toto@1.2.3.4

Comme pour les deux précédentes commande, je vous recommande de lire la documentation de sftp (man sftp) pour connaître toutes ses fonctions.


Convertir la clé privée (OpenSSH) avec PuTTYgen

Une fois l'utilisateur en possession de sa clé privée, il va pouvoir l'utiliser avec son client SSH.
Pour les utilisateurs de PuTTY ou de WinSCP, vous allez devoir au préalable convertir la clé privée OpenSSH en clé privée PuTTY. Pour cela, lancez PuTTYgen et suivez les opérations suivantes :

  • dans le menu Conversions, sélectionnez Import key
  • chargez votre fichier de clé privée OpenSSH (extension .rsa)
  • indiquez la passphrase associée à cette clé
  • cliquez sur le bouton Save private key
  • indiquez le nom du fichier de clé privée PuTTY (extension .ppk)


Utiliser PuTTY avec une clé privée

Je ne vais pas détailler l'utilisation de PuTTY, d'autres sites le font bien mieux que moi. Mais je vous propose juste une entrée en matière pour une première utilisation de PuTTY avec une clé privée :

  • dans le menu Session, indiquez le nom ou l'adresse IP de votre serveur dans le champs Host Name (or IP address)
  • dans le menu Terminal / Features, cochez la case Disable application keypad mode afin de pouvoir utiliser "normalement" le pavé numérique de votre clavier
  • dans le menu Connection / Data, indiquez le nom de l'utilisateur qui doit se connecter dans Auto-login username (attention, pour se connecter en SSH, vous devez avoir modifié le shell par défaut de l'utilisateur)
  • dans le menu Connection / SSH / Auth, sélectionnez votre fichier de clé privée PuTTY (extension .ppk) dans Private key file for authentification
  • si vous le souhaitez, vous pouvez enregistrer ces paramètres : dans le menu Session, indiquez le nom que vous souhaitez donner à cette session (toto@serveur, par exemple) et cliquez sur le bounton Save
  • il ne vous reste plus qu'à vous connecter en cliquant que le bouton Open et à taper votre passphrase quand elle vous sera demandée


Utiliser WinSCP avec une clé privée

Comme pour PuTTY, je ne vais pas détailler l'utilisation de ce logiciel, mais voici les premiers éléments pour l'utiliser avec une clé privée :

  • dans le menu Session, indiquez le nom ou l'adresse IP de votre serveur dans le champs Nom d'hôte, le nom de l'utilisateur qui doit se connecter dans Nom d'utilisateur et sélectionnez votre fichier de clé privée PuTTY (extension .ppk) dans Fichier de clé privée
  • si vous le souhaitez, vous pouvez enregistrer ces paramètres en cliquant sur le bouton Sauver : indiquez le nom que vous souhaitez donner à cette session (toto@serveur, par exemple) et validez avec le bouton OK. Vous retrouverez alors facilement vos paramètres dans le menu Session / Sessions sauvées
  • il ne vous reste plus qu'à vous connecter en cliquant que le bouton Connecter et à taper votre passphrase quand elle vous sera demandée


Modifier la passphrase d'une clé privée

Toujours dans l'optique de maintenir un niveau élevé de protection de votre serveur, il est recommandé de modifier régulièrement la passphrase associée aux clés publiques des utilisateurs, de la même façon qu'il faut changer son mot de passe sur un système standard.

Avec ssh-keygen (OpenSSH), il vous suffit de taper :

ssh-keygen -p -f cle_privee.rsa
Enter old passphrase: ancienne passphrase
Key has comment 'votre commentaire'
Enter new passphrase (empty for no passphrase): nouvelle passphrase
Enter same passphrase again: nouvelle passphrase
Your identification has been saved with the new passphrase.

Avec PuTTYgen, vous devez cliquer sur le bouton Load, sélectionnez votre fichier de clé privée PuTTY (extension .ppk) et taper l'ancienne passphrase. Vous pouvez maintenant taper la nouvelle passphrase dans Key passphrase et Confirm passphrase. Il ne reste plus qu'à cliquer sur le bouton Save private key et indiquer le chemin et le nom de cette clé pour la sauvegarder.

Nota : ceci n'affecte pas la clé publique, celle-ci n'a pas besoin d'être modifiée.


Contrat Creative Commons smeserver.fr
Site consacré à la distribution Linux SME Server
Site sous licence Creative Commons (by, nc, sa)