Sécurité, Performance
et Haute Disponibilité
Csoftadm par ligne de commande
Comment utiliser notre outil de configuration à ligne de commande

Qu'est-ce que csoftadm?

Ce guide décrit à l'aide de plusieurs exemples, l'utilisation de notre programme de configuration à ligne de commande, csoftadm. La fonctionnalité qu'offre csoftadm est équivalent à celle offerte par notre panneau de contrôle web, mais csoftadm est plus facilement scriptable et plusieurs utilisateurs préfèrent une interface à ligne de commande plutôt qu'une interface web.

L'interpréteur de commande

Il n'est pas nécessaire de mémoriser la syntaxe exacte des commandes. En mode interactif, csoftadm affiche une invite pour chaque paramètre manquant (avec la valeur par défaut affichée entre crochets). Dans ce guide, le texte en italique indique une valeur de paramètre à titre d'exemple. Grâce à la fonction de complétion de commande, la touche de tabulation a pour effet de compléter la commande saisie (ou elle affiche une liste de commandes possibles s'il ya un conflit).


  csoftadm> commande
  question? valeur par défaut saisie utilisateur

L'exécution du programme

Connectez vous à votre serveur à l'aide d'un client SSH (voir la documentation) et exécutez «csoftadm» à l'invite de l'interpréteur de commandes. Pour utiliser la version française de csoftadm, assurez vous que vos variables d'environnement LC_ALL et LANG ont pour valeur «fr» (ces valeurs sont habituellement attribuées dans le fichier d'initialisation du shell, tel ~/.cshrc et ~/.profile).

  $ csoftadm

Pour utiliser l'aide en ligne, tapez «help», optionellement suivi d'une commande pour obtenir de l'aide sur cette commande en particulier.

  csoftadm> help
  csoftadm> help dns
  csoftadm> help mail
  csoftadm> help mail alias
  csoftadm> help mail mbox
  csoftadm> help db
  csoftadm> help conf

Configuration des Adresses Électroniques

Les commandes mail alias sont responsables de l'attribution de destinations précises aux adresses électroniques, soit une boîte aux lettres, une adresse électronique externe, un fichier sur le serveur, un programme à exécuter sur le serveur (soit un filtre de courrier), ou une référence vers un jeu d'instructions. Voici quelques exemples.

1.1. Configurer une nouvelle électronique

Faire suivre les messages adressés à «moi@mon-domaine» vers «lui@son-domaine»:

  csoftadm> mail alias add

  Adresse de courrier électronique? moi@mon-domaine
  Nouveau récipient #1? [terminé] lui@son-domaine
  Le récipient «lui@son-domaine» a été ajouté à l'alias «moi@mon-domaine».

Pour diriger les messages pour «flavius@mon-domaine» vers une nouvelle boîte de courrier nommée «flavius»:


  csoftadm> mail mbox add flavius
  csoftadm> mail alias add flavius@mon-domaine flavius

Pour enregistrer le courrier envoyé à «archive@mon-domaine» dans ./Mail/mon-archive (relatif à votre $HOME):


  csoftadm> mail alias add archive@mon-domaine ./Mail/mon-archive

Pour traiter les messages adressés à «citation@mon-domaine», en utilisant un programme situé sur ~/bin/citation:


  csoftadm> mail alias add citation@mon-domaine |./bin/citation

Note: Il faut faire preuve de jugement dans l'utilisation de cette fonction, car un déluge de messages causés par spam ou attaque délibérée pourrait consommer beaucoup de ressources sur le serveur. Si vous devez traiter un volume de messages important, veuillez nous contacter afin de mettre en place un serveur LMTP à cet effet.

On peut combiner les exemples précédents avec des conditions afin de classifier les messages en fonction de critères spécifiques. Par exemple, dans l'exemple suivant, on utilise la condition « spam » afin de prendre une décision en fonction des résultats d'un test de SpamAssassin. Il est souvent pratique de regrouper ces directives en jeux d'instructions indépendants des adresses de courrier.

  csoftadm> mail rule add user@my-domain spam<=5.0 ./Mail/Mailbox.non-spam
  csoftadm> mail rule add user@my-domain spam>=5.0 ./Mail/Mailbox.spam
  
  csoftadm> mail rule add &myruleset spam<=5.0 ./Mail/Mailbox.non-spam
  csoftadm> mail rule add &myruleset spam>=5.0 ./Mail/Mailbox.spam
  csoftadm> mail rule add foo@my-domain &myruleset
  csoftadm> mail rule add bar@my-domain &myruleset
1.2. Supprimer une adresse électronique
Utilisez mail alias del pour supprimer entièrement une adresse.
  csoftadm> mail alias del

  Alias à détruire? terminé monutilisateur@mon-domaine
  L'alias «vieil-utilisateur@mon-domaine» a été supprimé.
1.3. L'affichage des alias

Pour afficher la liste des alias actuels:

  csoftadm> mail alias list

La gestion des boîtes de courrier

Les boîtes de courrier sont des comptes dédiés généralement accédés par le biais d'un programme de courrier électronique compatible POP3 ou IMAP. Cette commande crée une nouvelle boîte, associée à aucune adresse de courrier par défaut (voir mail alias add).

2.1. L'ajout de boîtes

Utilisez mail mbox add pour créer une nouvelle boîte:

  csoftadm> mail mbox add

  nom de la nouvelle boîte? maboite
  mot de passe initial? monmotdepasse
  format? (pop3|imap) pop3
  La boîte aux lettres «maboite» a été créée avec succès.
2.2. Le changement de mot de passe de boîte

Utilisez mail mbox pass pour changer le mot de passe d'une boîte:

  csoftadm> mail mbox pass

  nom de la boîte aux lettres? maboite
  nouveau mot de passe? monmotdepasse
  Le mot de passe de la boîte aux lettres «maboite» a été changé.
2.3. La suppression de boîtes

Pour supprimer une boîte, utilisez mail mbox del:

  csoftadm> mail mbox del maboite

Pour afficher votre liste de boîtes de courrier, saisissez la commande mail mbox list:

  csoftadm> mail mbox list

La gestion des noms de domaine

La fonction de gestion des noms de domaine est seulement disponible aux clients qui possèdent un plan d'hébergement à hôte virtuel avec IP dédié (à partir de Budget v-host).

Ces commandes permettent l'ajout et la configuration de noms de domaine (et de sous-domaines) à nos serveurs de nom (ns*.csoft.net), mais vous devez tout de même faire affaire avec un bureau d'enregistrement de domaines (registrar) pour enregistrer ou effectuer des transferts de domaines.

Il ya un délai de 4 à 8 heures pour les changements effectués au niveau des serveurs de noms.

3.1. L'ajout de noms de domaine

Utilisez dns add pour enregistrer un domaine en votre possession auprès de nos serveurs de noms. Pour créer un domaine «sekhmet.net» et un sous-domaine «www», vous utiliseriez:

  csoftadm> dns add

  domaine/sous domaine? sekhmet.net
  destination? 1.2.3.4 (entrée))
  L'hôte «sekhmet.net» a été créé avec succès.

  csoftadm> dns add www.sekhmet.net @
  L'hôte «www.sekhmet.net» a été créé avec succès.

L'adresse de destination par défaut pointe l'origine du domaine vers votre adresse virtuelle (ici 1.2.3.4). Alors dans cet exemple, «sekhmet.net» pointerait vers le répertoire ~/www/sekhmet.net et un lien symbolique, ~/www/www.sekhmet.net, serait simplement un alias pour ce répertoire.

Il est possible d'utiliser une adresse IP externe comme destination. Ici, une adresse externe est assignée à l'origine de «trektothecave.com» et un sous-domaine «www» pointe vers ce dernier.

  csoftadm> dns add trektothecave.com 10.0.0.1
  csoftadm> dns add www.trektothecave.com @

Les sous-domaines peuvent également prendre une adresse IP comme destination, ou alors « @ » (signifiant l'origine, c'est à dire le domaine parent). Si la destination est une adresse locale au serveur (ou si c'est «@» et que l'origine, lui, pointe vers une adresse locale), alors un répertoire est créé dans ~/www (à l'exception du sous-domaine «www», où un lien symbolique est créé à l'instar d'un répertoire). Il est toujours possible de manuellement créer des liens symboliques ou des répertoires avec ln(1) et mkdir(1), à partir de votre shell.

Créez un sous-domaine «nakht.sekhmet.net» par le biais de dns add. Si sekhmet.net pointe vers une adresse locale, un répertoire est créé dans ~/www/nakht.sekhmet.net.

  csoftadm> dns add nakht.sekhmet.net @

Créez un autre sous-domaine, «nebt.sekhmet.net» et attribuez lui 10.0.0.2 comme adresse:

  csoftadm> dns add nebt.sekhmet.net 10.0.0.2
3.2. La suppression de noms de domaine

Supprimez «sekhmet.net» du DNS avec dns del:

  csoftadm> dns del sekhmet.net
  L'hôte «sekhmet.net» a été supprimé avec succès.
3.3. La gestion des échangeurs de courrier (MX)

Des échangeurs de courrier (MX) spécifiques peuvent être ajoutés à chaque domaine ou sous-domaine. Les MX définissent quelles sont les adresses que les serveurs de courrier doivent tenter de contacter afin de livrer le courrier aux adresses électroniques qui utilisent ce domaine. Les MX ont chacun une priorité, où le serveur qui possède la plus basse priorité est contacté en premier. Les nouveaux MX sont ajoutés à la fin de la liste avec dns mx add.

Pour attribuer le MX «mail.nekhbet.com» au domaine «sekhmet.com», utilisez la commande dns mx add:

  csoftadm> dns mx add

  Domaine/sous domaine? sekhmet.net
  Nom d'hôte du serveur de courrier? mail23.csoft.net mail.nekhbet.com
  Le MX `mail.nekhbet.com' a été ajouté à l'hôte `sekhmet.net'.

Pour supprimer le MX:

  csoftadm> dns mx del sekhmet.net mail.nekhbet.com
3.4. La gestion des serveurs de nom (NS)

Il est possible d'ajouter des NS (serveur de nom) spécifiques à des domaines. Cette fonction est habituellement utilisée pour répertorier des serveurs de nom additionels de type esclave. Par défaut, au moins deux NS sont attribués (soit le primaire et le secondaire qu'utilise votre serveur).

Pour ajouter le NS «ns.kheperw.com» à «sekhmet.com», utilisez la commande dns ns add:

  csoftadm> dns ns add sekhmet.com ns.kheperw.com

Supprimez le NS avec dns ns del:

  csoftadm> dns ns del sekhmet.net ns.kheperw.com
3.5. La gestion du SOA (Start Of Authority)

L'adresse électronique de l'administateur, associée au record SOA, est modifiable par le biais de la commande dns soa:

  csoftadm> dns soa sekhmet.net admin@sekmnet.net
3.6. L'affichage des noms de domaine

Pour afficher la liste des domaines (sous-domaines exclus) actifs, utilisez dns list. Pour inclure les sous-domaines, les SOA, les NS ainsi que les MX, utilisez dns zone:

  csoftadm> dns list
  trektothecave.com
  vedge.org

  * Adresse IPv4: 1.2.3.4
  * DNS inverse IPv4: vedge.org

  csoftadm> dns zone trek
  trektothecave.com {
              @    soa ns261.csoft.net. vedge.trektothecave.com.
	      @     ns ns261.csoft.net.
	      @     ns ns128.csoft.net.
	      @      a 1.2.3.4
	      @     mx 10 mail231.csoft.net.
	    www  cname @
  }
  * IPv4 address: 1.2.3.4
  * IPv4 reverse DNS: vedge.org

Notez que la plupart des commandes «list» de csoftadm acceptent un ou plusieurs arguments pour la recherche (le comportement de filtrage est configurable avec pref set exact-match).

  csoftadm> dns list pattern1 pattern2
  csoftadm> dns zone mydomain

La gestion des bases de données

Cette partie de csoftadm est utilisée pour créer des bases de données relationelles, leur associer un ou plusieurs utilisateurs, attribuer des privilèges spécifiques à ces utilisateurs, ou alors changer leur mot de passe.

4.1. La création de bases MySQL

La commande db mysql add crée une nouvelle base de données relationelle MySQL. Cette commande ne crée pas d'utilisateur MySQL par défaut, vous devrez donc subséquemment attribuer les privilèges à un ou plusieurs utilisateurs avec db mysql grant.

  csoftadm> db mysql add

  nom de base de données? mydatabase
  La base de données `mydatabase' a été activée avec succès.
4.2. La suppression de bases

Pour supprimer une base de données MySQL, utilisez db mysql del. Si nécessaire, faites une sauvegarde avec la commande mysqldump(1) auparavant.

  csoftadm> db mysql del minedatabase
4.3. L'affichage des bases

La commande db mysql list affiche une liste de vos bases avec vos utilisateurs MySQL et leurs privilèges. Vous pouvez également obtenir votre liste d'utilisateurs MySQL avec la commande db mysql userlist.

  csoftadm> db mysql list
  0. mydatabase {
      alice@localhost(SELECT,INSERT,UPDATE)
      bob@foo.domain.ext(SELECT)
  }
  1. myotherdatabase {
      alice@localhost(SELECT,INSERT,LOCK_TABLES,CREATE_VIEW)
      bob@foo.domain.ext(SELECT,SHOW_VIEW)
  }
  
  csoftadm> db mysql userlist
  0. alice@localhost {
      mydatabase: SELECT,INSERT,UPDATE
      myotherdatabase: SELECT,INSERT,LOCK_TABLES,CREATE_VIEW
  }
  1. bob@foo.domain.ext {
      mydatabase: SELECT
      myotherdatabase: SELECT,SHOW_VIEW
  }
4.4. La gestion des utilisateurs MySQL

Vous créez des utilisateurs MySQL avec db mysql useradd. Pour supprimer un utilisateur, c'est db mysql userdel. Lorsque vous créez un utilisateur, vous devez donner un nom d'hôte - les connections de cet utilisateur seront alors limitées à cet hôte (la valeur par défaut «localhost» est habituellement utilisée sauf si vous voulez un accès distant direct).

  csoftadm> db mysql useradd
  database user name? myuser
  allow access from host? localhost (enter)
  password for myuser? secret
  password for myuser? (again) secret
  Created database user myuser@localhost.
  csoftadm> db mysql userdel myuser
  Deleted database user myuser.
4.5. L'attribution de privilèges aux utilisateurs MySQL

L'exemple suivant permet à l'utilisateur MySQL monutilisateur d'effectuer des requêtes de type SELECT et INSERT sur mabase. Si cet utilisateur possédait déjà d'autres privilèges sur cette base, ils doivent être respécifiés sinon ils seront révoqués.

Pour voir la liste complète des privilèges disponibles sur votre serveur, utilisez db mysql userprivs.

  csoftadm> db mysql grant

  base de données? mabase
  utilisateur de base? monutilisateur
  privilèges à attribuer? SELECT,INSERT,UPDATE,CREATE,... INSERT,SELECT
  Les privilèges INSERT,SELECT ont été attributés à monutilisateur.
4.6. Le changement de mot de passe d'utilisateur de base

Vous pouvez changer le mot de passe d'un utilisateur MySQL avec db mysql pass.


  csoftadm> db mysql pass monutilisateur
  nouveau mot de passe? monmotdepasse
  Le mot de passe de monutilisateur a été changé.

La configuration côté serveur

Cette fonction de csoftadm permet de manipuler différents paramètres de configuration.

5.1. L'affichage des paramètres de configuration

Déterminez votre champs d'action à l'aide de la commande conf list:

  csoftadm> conf list
 0.          ssl (               no ) Enable SSL with custom certificate.
 1.         logs (              yes ) Apache access log enabled.
 2.       errlog (              yes ) Apache error log enabled.
 (...)

5.2. Changer un paramètre de configuration

Cette commande change la valeur associée à un paramètre. Les valeurs admissibles dépendent du paramètre en question.

5.3. Enregistrer un certificat SSL

Si votre plan d'hébergement comprends le support SSL, utilisez le paramètre ssl afin d'activer le service HTTPS. Voyez le petit guide SSL pour plus de détails. Il peut s'écouler un délai de une heure avant l'activation.

Si le certificat ou la clef est invalide, ce paramètre sera automatiquement réinitialisé à off, et un message sera ajoutée à votre fichier journal. Le CN (Common Name) du certificat doit correspondre exactement au nom de domaine principal de votre hôte virtuel (soit la valeur du paramètre name).

  1. Mettre le certificat dans ~/ssl/cert.
  2. Mettre la clef dans ~/ssl/key.
  3. Mettre la passphrase dans ~/ssl/pp (optionnel).
  4. Attribuez au paramètre ssl une valeur de «yes».

La configuration côté client

Divers paramètres côté-client de csoftadm sont modifiables dans le fichier ~/.csoftadmrc.

6.1. L'affichage des paramètres côté-client

La commande pref show affiche les paramètres côté-client actuels.

  csoftadm> pref show
      conf-descriptions = true
        db-default-host = "localhost"
      db-default-rights = "SELECT,INSERT,UPDATE,DELETE"
         dns-default-mx = "mail23.csoft.net"
         dns-default-ns = "ns73.csoft.net"
  (...)
6.2. Les changements de paramètres côté-client

La commande pref set modifie un paramètre local au client shell de csoftadm.

  # Adresse par défaut pour nouveaux domaines.
  pref set dns-default-a 10.0.0.1
  
  # Programme utilisé pour la pagination des tables.
  pref set pager less

La gestion des comptes CVS

Les commandes cvs administrent un ensemble d'utilisateurs cvs(1), qui doivent se connecter en utilisant la méthode «ssh».

7.1. L'ajout de compte CVS

Utilisez la commande cvs add afin de créer des comptes cvs. Pour créer un nouveau compte, «mycvsuser», utilisez:

  csoftadm> cvs add

  nom du nouveau compte cvs? mycvsuser
  mot de passe initial? Vn4561
  Le compte cvs «mycvsuser» a été activé avec succès.
7.2. La suppresion de compte CVS

Avec cvs del, supprimez mycvsuser:

  csoftadm> cvs del mycvsuser
7.3. L'affichage des comptes CVS actuels

Sans argument, cvs list affiche l'ensemble des comptes cvs actuels -

  csoftadm> cvs list
  1.   anoncvs
  2.    yvonne
  3. mycvsuser
7.4. Le changement de mot de passe des comptes cvs

Utilisez la commande cvs pass pour changer le mot de passe attribué à un compte cvs:

  csoftadm> cvs pass mycvsuser

  nouveau mot de passe? Wasabi23
  Le mot de passe du compte cvs «mycvsuser» a été changé avec succès.

La gestion des clefs ssh publiques

Les commandes cvs pubkey sont utilisées pour gèrer l'ensemble de clefs publiques ssh associées à chaque compte CVS, pour permettre l'authentification sans mot de passe par clef RSA/DSA.

7.5.1. Attribution de clefs publiques ssh

Faites un copier/coller du contenu de votre fichier de clef publique ssh (par exemple ~/.ssh/id_dsa.pub) sur cvs pubkey add:

  csoftadm> cvs pubkey add mycvsuser

  clef publique à ajouter? ssh-dss AAAAB3NzaC1kc3MAAACBALhnPcOFZK ...
  La clef publique a été ajoutée au compte cvs «mycvsuser».
7.5.2. L'affichage des clefs publiques ssh attribuées à un compte

Utilisez cvs pubkey list pour afficher les clefs publiques ssh attribuées à «mycvsuser»:

  csoftadm> cvs pubkey list mycvsuser
  1. ssh-dss AAAAB3NzaC1kc3MAAACBALhnPcO9aFZKvrtXN/+cE+m ...
    
  1/32 public keys uploaded today.
7.5.3. La suppresion de clefs publiques

Pour supprimer une des clefs de «mycvsuser», utilisez:

  csoftadm> cvs pubkey del mycvsuser

  clef publique à supprimer? ssh-dss AAAAB3NzaC1kc3MAAACBALhnPcOFZK ...
  La clef publique a été supprimée du compte cvs «mycvsuser».

La gestion des comptes Subversion

Les commandes svn administrent un ensemble d'utilisateurs Subversion qui doivent se connecter en utilisant la méthode « ssh+svn ».

8.1. L'ajout de compte Subversion

Utilisez la commande svn add afin de créer des comptes Subversion. Pour créer un nouveau compte, «mysvnuser», utilisez:

  csoftadm> svn add mysvnuser

  mot de passe initial? monmotdepasse
  Le compte svn «mysvnuser» a été activé avec succès.
8.2. Supprimer un compte Subversion

Avec svn del, supprimez mysvnuser:

  csoftadm> svn del mysvnuser
8.3. L'affichage des comptes Subversion

Sans argument, svn list affiche l'ensemble des comptes Subversion actuels -

  csoftadm> svn list
  1.    yvonne
  2. mysvnuser
8.4. Changer le mot de passe d'un compte Subversion

Utilisez la commande svn pass pour changer le mot de passe attribué à un compte Subversion:

  csoftadm> svn pass mysvnuser

  nouveau mot de passe? monmotdepasse
  Le mot de passe du compte svn «mysvnuser» a été changé avec succès.

La gestion des clefs ssh publiques

Les commandes svn pubkey sont utilisées pour gèrer l'ensemble de clefs publiques ssh associées à chaque compte Subversion, pour permettre l'authentification sans mot de passe par clef RSA/DSA.

8.5.1. Attribution de clefs publiques ssh

Faites un copier/coller du contenu de votre fichier de clef publique ssh (par exemple ~/.ssh/id_dsa.pub) sur svn pubkey add:

  csoftadm> svn pubkey add mysvnuser

  clef publique à ajouter? ssh-dss AAAAB3NzaC1kc3MAAACBALhnPcOFZK ...
  La clef publique a été ajoutée au compte svn «mysvnuser».
8.5.2. L'affichage des clefs publiques ssh attribuées à un compte

Utilisez svn pubkey list pour afficher les clefs publiques ssh attribuées à «mysvnuser»:

  csoftadm> svn pubkey list mysvnuser
  1. ssh-dss AAAAB3NzaC1kc3MAAACBALhnPcO9aFZKvrtXN/+cE+m ...
    
  1/32 public keys uploaded today.
8.5.3. La suppresion de clefs publiques

Pour supprimer une des clefs de «mysvnuser», utilisez:

  csoftadm> svn pubkey del mysvnuser

  clef publique à supprimer? ssh-dss AAAAB3NzaC1kc3MAAACBALhnPcOFZK ...
  La clef publique a été supprimée du compte svn «mysvnuser».

Détails de Facturation

9.2. Afficher vos détails de facturation
 csoftadm> billing info
9.3. Afficher l'état de la facturation

La commande billing status affiche l'état de votre compte et votre niveau de service.

  csoftadm> billing status
  Account status: ACTIVE
  Service level: standard-vhost

  Contre les brevets logiciels!