Aller au contenu
Vie du geek le forum entre geek

Inscrivez-vous maintenant pour accéder à toutes nos fonctionnalités. Une fois inscrit et connecté, vous pourrez créer des sujets, publier des réponses aux discussions existantes, donner de la réputation à vos collègues, obtenir votre propre messager privé, publier des mises à jour de statut, gérer votre profil et bien plus encore. Si vous avez déjà un compte, connectez-vous ICI autrement Inscription un compte gratuit aujourd'hui!

dokkun

Geek
  • Compteur de contenus

    84
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

Messages posté(e)s par dokkun


  1. Introduction

     

    Ce tutoriel explique pas à pas comment installer un serveur sftp sur debian wheezy avec les droits d'accès qui vont bien sur les répertoires.

    Installation de base

    SFTP se base sur ssh. Il faut installer quelques packages :

    # basic ssh packages

    apt-get install ssh openssh-server

    Création du groupe unix sftp_chroot

    Ce groupe contiendra la liste des users qui peuvent se connecter en sftp

    addgroup sftp_chroot
    Configuration sshd_config

    Evolutions à faire dans /etc/ssh/sshd_config

    # Vérifier qu'on a bien :

    Subsystem sftp /usr/lib/openssh/sftp-server

    # ajouter à la fin du fichier :

    Match Group sftp_chroot

    ChrootDirectory /home/%u

    ForceCommand internal-sftp

    AllowTcpForwarding no

    # pensez à relancer le serveur ssh : /etc/init.d/ssh restart

    Créer un compte sftp
    Créer un user unix

    Créer un user unix classique

    useradd testuser --gid sftp_chroot --groups sftp_chroot -m --shell /bin/false
    droits d'accès sur le home directory

    Pour empêcher le sftp de remonter dans l'arborescence, on peut jouer avec les droits d'accès

    # base directory given to root only

    chown root /home/testuser

    chmod go-w /home/testuser

    # create a writable directory

    mkdir /home/testuser/writeable

    chown testuser:sftp_chroot /home/testuser/writeable

    chmod ug+rwX /home/testuser/writeable

    Le script qui fait tout pour vous

    Voilà un petit script bash qui fait tout pour vous.

    N'utilisez le qu'une fois que vous avez compris ce que vous faites. Et si ça casse tout chez vous, je plaide non coupable :-).

    #/bin/bash

    # author : Philippe Le Van, twitter: @plv

    USER_NAME=$1

    SFTP_GROUP_NAME=sftp_chroot

    if [ "x$USER_NAME" == "x" ]; then

    echo "you have to provide a user name"

    exit;

    fi

    getent group $SFTP_GROUP_NAME > /dev/null 2&>1

    if [ $? -ne 0 ]; then

    echo "group $SFTP_GROUP_NAME does not exist.";

    echo "see this (french) tutorial : http://www.kitpages.fr/fr/cms/193/installer-un-sftp-chroote-sur-debian";

    exit;

    fi

    getent passwd $USER_NAME > /dev/null 2&>1

    if [ $? -eq 0 ]; then

    echo "user already exists";

    exit;

    fi

    useradd $USER_NAME --gid $SFTP_GROUP_NAME --groups $SFTP_GROUP_NAME -m --shell /bin/false

    echo "user created";

    # base directory given to root only

    chown root /home/$USER_NAME

    chmod go-w /home/$USER_NAME

    # create a writable directory

    mkdir /home/$USER_NAME/writeable

    chown $USER_NAME:$SFTP_GROUP_NAME /home/$USER_NAME/writeable

    chmod ug+rwx /home/$USER_NAME/writeable

    echo "access right ok";

    echo "change password";

    passwd $USER_NAME


  2. Premièrement, un petit schema.

    archi_web_scaling_virtualized_v1.png 

    Merci a Michael BIDEAU pour son talent graphique :) 

    Les points forts de l'infra

    Cette infrastructure permet une haute disponibilite, par la redondance de tous les services, mais aussi une évolutivité importante grâce à la virtualisation. La mise en place de cette solution n'est donc pas des plus simple. Cependant, elle permet d'évoluer, en termes de visites / charge d'une façilité par la séparation initiale de tous les services.

    Les points faibles (oui il y en as, malheureusement)

    Vu le niveau technique de cette infra, et surtout due à la séparation des services, il est indispensable d'avoir un code propre et étudié pour fonctionner sur cette infra.

    Listes des serveurs virtuels, avec les applicatifs qui vont tourner dessus : Les routeurs

    Ils gèrent le routage entre les différentes classe IPs de l'infra structure, avec notemment les possibilites d'extension sur deux sites physiques. 

    Liste des services :

    • Postfix pour l'envoi de mails système
    • Rsync, pour assurer le backup du service
    • KeepAlived Pour assurer la redondance de la route par defaut pour les IPs internes
    • Quagga, pour assurer un routage BGP entre plusieurs sites / prestataires réseau
    • Bind - Afin d'assurer une résolution de nom pour les domaines hébergés
    • OpenSSH
    Les load Balanceurs

    Ils assurent la répartition de la charge pour les différents services qui le nécessitent. Pour rappel :

    • Le WEB Statique
    • Le WEB Dynamique
    • Le SQL Lecture
    • La réception des mails
    • Les protocoles de lecture de mails (POP(s) / IMAP(s))

    Liste des services :

    • Postfix pour l'envoi de mails système
    • Rsync, pour assurer le backup du service
    • KeepAlived Pour assurer la redondance et le load balancing
    • OpenSSH
    Serveur WEB Dynamique

    Ces deux serveurs seront utilisé simultanément, afin de répartir la charge sur les deux. L'arrêt d'un des serveurs entraine une exclusion de celui-ci du pool WEB. 

    Liste des services :

    • Apache avec le module PHP pour interpreter le code source
    • Eventuellement un accelerateur PHP, eaccelerator, APC ...
    • Postfix pour l'envoi de mails via PHP & mails système
    • Rsync, pour assurer le backup du service
    • Un client NFS, pour acceder aux données
    • OpenSSH
    Serveur Web Statique

    Ces serveurs seront eux aussi utilisés de manière simultanée. A l'inverse de leurs homologues dit dynamiques, ils ne serviront que du contenu statique. 

    Liste des services :

    • Nginx ou Lighttpd, avec possiblement une surcouche de cache via un proxy squid
    • Postfix pour l'envoi de mails système
    • Rsync, pour assurer le backup du service
    • Un client NFS, pour acceder aux données
    • OpenSSH
    Serveurs SQL

    Afin d'éviter des problèmes de duplication de clef primaire, il est nécéssaire d'écrire les données SQL sur un seul serveur, le serveur maitre. De ce fait, nous aurons un service SQL écriture en simple tolérance à la panne. 

    Par ailleurs, afin d'éxploiter au maximum la puissance de calcul disponible, il est intéressant de répartir les lectures sur les n serveurs SQL. Les lectures SQL seront donc sur load balancées. 

    Liste des services :

    • MySQL
    • Postfix pour l'envoi de mails système
    • Rsync, pour assurer le backup du service
    • KeepAlived pour assurer la redondance du service "écriture"
    • OpenSSH
    Serveur de mails entrant

    Vu que les mails sont aussi importants que le service WEB, ils sont eux aussi redondés. 

    Liste des services :

    • Postfix
    • Courier pour les couches IMAP / POP
    • Rsync, pour assurer le backup du service
    • OpenSSH
    • Bind - Afin d'assurer une résolution de nom pour les domaines hébergés
    • MySQL - Afin de gérer les boites mails et les alias en BDD
    Les serveurs de backup

    Et oui, il faut bien sauvegarder les données. Le principe est simple, le serveur de backup sur un serveur hôte sauvegarde les serveurs qui sont sur le second serveur hôte. 

    Liste des services :

    • Postfix pour l'envoi de mails système
    • Rsync, pour assurer le backup du service / pour backuper
    • OpenSSH
    • Un démon NFS pour permettre la copie de DUMPS SQL / tar des sites si besoin
    Les machines de monitoring / graphs

    Afin d'assurer un suivi strict et régulier de l'infra, il est vital de la monitorer, pour déceller les défaillance d'une node, et intéréssant de grapher les serveurs et leurs ressources. 

    Le serveur primaire assure donc le monitoring via Nagios, et le serveur secondaire assure le monitoring de backup et les graphs (via Cacti). 

    Liste des services :

    • Postfix pour l'envoi de mails système
    • Rsync, pour assurer le backup du service / pour backuper
    • OpenSSH
    • Nagios
    • Cacti
    • KeepAlived
    Les Filers (Dynamique / statique / mails)

    Nous allons maintenant voir la couche données avec nos trois serveurs de fichiers. Pour chacun des couples de filer, les technologies utilisées seront très similaires. 

    Liste des services :

    • Postfix pour l'envoi de mails système
    • Rsync, pour assurer le backup du service / pour backuper
    • OpenSSH
    • Un démon NFS
    • Une surcouche de données DRBD pour assurer la réplication sur le second filer
    • KeepAlived pour assurer la tolérence a la panne
    Réseau

    Afin de dissocier (encore) les trafics réseau, j'utilise des vlans. Ainsi, dans cette version théorique, chaque type de trafic interne (NFS WEB ou mail / SQL / Backup) sera associé a un vlan distinct, chacun dans sa classe IP. Cela aura pour effet de permettre une évolutivité réseau importante. En effet, même si je rajoute des hôtes, et que mon hébergeur ne peut me fournir des IPs dans la même classe, je peux gérer les accé aux ressources par classe IP interne. 

    Nous aurons donc comme IPs : 

    Publique :

    • Une /29 associé afin de fournir des IPs à chacune des machines le nécessitant. (sera doublé lors de la mise en place de la redondance intersite) Trafic routé par nos deux routeurs
    • Une /29 ou 2 /30 pour les interconnexion BGP avec notre hébergeur(sera doublé lors de la mise en place de la redondance intersite)
    • Une /29 ou /30 pour assurer la redondace inter site (qui ne sera pas mise en place dans un premier temps

    Privé :

    • Une /24 pour les connexions SSH
    • Une /24 pour le service WEB statique
    • Une /24 pour le service WEB dynamique
    • Une /24 pour le NFS Web
    • Une /24 pour le NFS Mail
    • Une /24 pour le NFS pour les Dumps (export régulier de dumps sur les serveurs de backup)
    • Une /24 pour le SQL
    • Une /24 pour le backup

    Pour rappel, voici le nombre d'IP dans chacune des tailles de classes IP

    • /30 : 4 IPs  , 2 utilisables
    • /29 : 8 IPs  , 6 utilisables
    • /28 : 16 IPs , 14 utilisables
    • /27 : 32 IPs , 30 utilisables
    • /26 : 64 IPs , 62 utilisables
    • /25 : 128 IPs, 126 utilisables
    • /24 : 256 IPs, 254 utilisables

    Comme vous le voyez, j'assure une énorme évolitivité dans mon plan d'adressage privé

    Ou puis-je trouver et faire entretenir une telle infra structure?

    Cette infra, ou toute autre infra structure plus adaptée à vos besoin peut être mise en place par moi même (je suis en cours de re-création d'entreprise), ou par WDMEDIA

    SIVIT, depuis peu racheté par NERIM, mon ancien employeur, m'ayant banni de leur salon IRC, ne mérite plus, selon moi, que je leur fasse de la publicité. D'autant plus qu'il y a eu un turn-over très important dans l'équipe hébergement, ayant a mon sens fait baissé leur qualité. 

    Leur réseau est aussi, pour le moment, très instable, j'ai pu constater des latences de 800 ms entre le serveur hébergeant ce site et le routeur. 


  3. Le tuto (aussi détaillé soit-il) ne dispense pas

    de la lecture des infos/questions affichées à l'écran

     

    Insérer le cd "net install" dans le lecteur et booter dessus (appuyez sur "entrée")

    1ère étape: choix de langue des menus de l'installation

    -> french - français

    2ème étape: choix du pays

    -> france

    3ème étape: Carte de Clavier à utiliser (langue du clavier)

    -> français (fr-latin9)

    // Chargement des librairies pour l'install

    // Examen du cd

    // Détection du matériel

    // Configuration automatique du réseau par dhcp

    en cas d'echec de la configuration automatique du réseau par dhcp

    -> Continuer

    -> Configurer vous-même le réseau

    -> Adresse IP : choisissez une adresse ip de la forme

    192,168,1,x ou 192,168,0,x selon votre réseau (cf passerelle)

    -> Valeur du masque réseau : en général laissez par defaut

    -> Passerelle : entrez l'ip de la passerelle

    -> Adresse des serveurs de nom : en général identique à la passerelle

    éventuellement ajouter après un "espace" le serveur DNS de votre FAI

    4ème étape: choix du nom de la machine

    -> choix du nom de la machine : entrer ce que vous voulez

    5ème étape: choix du nom de domaine

    -> choix du nom de domaine : en général on ne met rien

    // Détection des disques et autres périphériques

    6ème étape: partitionnement des disques

    -> le partitionnement idéal diffère selon l'utilisation de la machine

    liste des partitions selon l'utilisation: (on considère que le disque est > 20 Go)

    - pour la bureautique :

    "/" (racine) d'environ 5 Go ou plus pour être tranquil

    "/home" (rep perso) sur une partition a part et de grande taille

    "swap" (fichier d'échange) en général RAM+swap = 1 Go (min 500Mo)

    conseil : séparer le swap sur plusieurs disques si possibles

    type des partitions:

    "/" : ext3 en général ou ReiserFS (cf ci-dessous)

    "/home" : idem

    "swap" : c'est déjà un type

    - pour les serveurs :

    "/" d'environ 5 Go ou plus pour être tranquil

    "/boot" (fichiers de boot + noyau) 100 à 150 Mo pas plus

    "/var" (les logs systeme + fichiers volatiles) de 600 Mo à 6 Go

    "/tmp" (fichiers temporaires) 2 à 3 Go en moyenne

    "swap" peut de reboot => swap grand > 500 Mo

    conseil : séparer le swap sur plusieurs disques si possibles

    "/home" (contiendra le web, ftp, BD, etc) reste du disque (très grand)

    "/usr" (facultatif) (les applications et librairies utilisateur) de 3 à 4 Go

    type des partitions:

    "/" : ext3 en général ou ReiserFS (cf ci-dessous)

    "/boot" : historiquement en ext3

    "/var" : surtout du ReiserFS (petit fichier de log)

    "/tmp" : idem que "/var"

    "swap" : c'est déjà un type

    "/home" : ext3 ou ReiserFS selon l'utilisation

    "/usr" : plutôt du ReiserFS

    nb: on peut mettre toutes les partitions en LVM (logical volume manager)

    afin de pouvoir changer leur taille plus facilement sauf "/boot" et "swap".

    Caractéristiques des types de partition: (source Wikipédia)

    - ext3:

    journalisé

    robuste (récupération après crash)

    vieillissant (a une dizaine d'année)

    compatible avec presque toute les applis

    - ReiserFS:

    journalisé

    plus rapide que ext3 si énormément de (petits) fichiers

    supporte le redimmensionnement à chaud avec LVM

    incompatible avec dump (sauvegarde)

    // Formatage des partitions

    7ème étape: Créer les utilisateurs et choisir les mots de passe

    -> Mot de passe du super utilisateur (root) : choisissez un passe

    -> Nom du nouvelle utilisateur : choisissez un nom

    -> Identifiant compte utilisateur : choisissez votre pseudo

    -> Mot de passe de l'utilisateur : choisissez un passe

    // Configuration de l'horloge

    // Installation du système de base (5 à 20 min selon la machine)

    8ème étape: configuration de l'outil de gestion des paquets

    -> faut-il utiliser un miroir sur le réseau ? Oui 

    -> pays du miroir de l'archive Debian : france 

    -> miroir de l'archive Debian ?

    - si vous êtes chez free : ftp.fr.debian.org 

    - si chez orange : ftp2.fr.debian.org 

    - sinon un des deux ;-)

    -> mandataire http (proxy)

    si vous utilisez un proxy il faut l'indiquer ici de la facon suivante:

    http://user:password@serveur_proxy:port

    // Configuration (automatique) de l'outil de gestion des paquets (apt)

    // en fait il réceptionne la liste des paquets disponibles sur l'archive Debian

    9ème étape : Configuration de popularity-contest

    -> souhaitez-vous participer à l'étude statistique sur l'utilisation des paquets ?

    à vous de choisir, cela n'aura aucune incidence sur la suite de l'installation

    10ème étape : sélection des logiciels Debian

    -> ne rien choisir : on installera plus tard ceux dont on a besoin à la main

    11ème étape: installer le programme de démarrage "Grub" sur un disque dur

    -> installer sur le secteur d'amorçage ? Oui

    // Installation du programme de démarrage "Grub"

    // Fin de l'installation -> éjection automatique du cd

    // Redémarrage

    Se logger en tant que root

    12ème étape: Suppression du cd en tant que source de depots

    -> editer le fichier /etc/apt/sources.list

    vi /etc/apt/sources.list 

    supprimer toutes les lignes de la forme : deb cdrom:// ...

    nb: pour supprimer une ligne appuyez sur "dd"

    pour insérer du texte activez l'insertion en appuyant sur "i"

    pour sauvegarder et quitter faire "echap" ":wq"

    quittez

    Mettez à jour la liste des paquets (logiciels) disponibles avec apt

    apt-get update

    Mettez à jour la distribution compète avec apt

    apt-get dist-upgrade 

    si vous avez une fenetre pour la configuration de la console data

    acceptez les choix par defaut

    Activer la complétion automatique

    C'est le système qui termine vos commandes lorsque vous appuyez sur "tab"

    Pour l'activer il faut éditer le fichier "/etc/bash.bashrc"

    vi /etc/bash.bashrc 

    Recherchez la ligne contenant "bash completion":

    appuyez sur "échap" puis "/" et saisissez "bash completion" (sans les guillemets)

    Ensuite supprimez les "#" au debut des 3 lignes suivantes afin d'obtenir:

    if [ -f /etc/bash_completion ]; then 

    . /etc/bash_completion 

    fi 

    Appuyez sur "echap" puis ":wq" pour sauvegarder et quitter

     


  4. SSH est un protocole de prise de commande a distance de maniere securisee.

    Il fonctionne en mode client/serveur.

    OpenSSH est un des nombreux projet de l'equipe OpenBSD

    Le tuto (aussi détaillé soit-il) ne dispense pas

    de la lecture des infos/questions affichées à l'écran

    Partie Client

    Permet la prise de controle d'une machine distante ayant un serveur SSH. 

    Installation du client openSSH (debian)

    -> Mettez à jour la liste des paquets disponibles

    apt-get update 

    -> Installez openSSH client

    apt-get install openssh-client 

    Le systeme indique qu'il dépend d'autres paquets / librairies, notamment de:

    libedit2 --

    Librairie permettant de gerer un historique

    et certaines fonction d'edition.

    libkrb53 --

    Librairie pour le protocole Kerberos

    Kerberos est un systeme d'autentification des

    utilisateurs/services d'une machine ou d'un reseau, de

    maniere securisee. (Ce n'est ni le systeme ni

    l'utilisateur qui valide, mais une troisieme entitee,

    le serveur kerberos). Ce paquet contiens aussi le client

    kerberos.

    Le système suggère aussi l'installation d'autres paquets tels que:

    krb5-doc --

    documentation / implementations pour le protocole kerberos5

    krb5-user --

    Contiens les outils basiques pour communiquer avec un

    serveur kerberos, qui permettent notemment de changer

    de mot de passe etc...

    ssh-askpass --

    /! Il s'agit d'une application graphique

    Permet de demander a un utilisateur une "passphrase"

    lors de l'utilisation de "ssh-add".

    ssh-add ajoute une clef (systeme de base pour

    l'autentification par openssh) a u utilisateur donne.

    xbase-clients --

    /! Il s'agit d'une application graphique

    Il s'agit d'uneinterface entre le serveur graphique

    et les applications tierces.

    Il ne me parait pas nécessaire d'installer les paquets suggérés car

    les mécanisme d'autentifications kerberos me parraissent trop lourd

    pour un usage personnel et/ou un petit serveur. De plus, selon moi,

    l'autentification doit se faire du cote du serveur ssh et non du client.

    -> Indiquez que vous confirmez l'installation :

    Souhaitez vous continuer [O/n] ? 

    Il s'effectue donc l'installation proprement dite de tous les paquets.

    Il n'y as pas de configuration post-installation.

    Partie Serveur

    Le serveur permet d'accepter les connection de type SSH depuis des machines

    distantes. Cela permet donc de laisser une machine munie d'un serveur ssh dans

    un coin, et de la controler à distance, sans pour autant s'allourdir d'un

    écran et d'un clavier pour la dite machine.

    Les cas ou cette utilisation peut etre utile :

    * Un serveur web perso

    * Un serveur de donnee pour la maison / le bureau

    * Une passerelle internet

    * Un serveur mail

     

    Installation du serveur openSSH (debian)

    -> Mettez à jour la liste des paquets disponibles

    apt-get update 

    -> Installez openSSH server

    apt-get install openssh-server 

    Le système suggère aussi l'installation d'autres paquets tels que:

    ssh-askpass --

    /! Il s'agit d'une application graphique

    Permet de demander a un utilisateur une "passphrase"

    lors de l'utilisation de "ssh-add".

    ssh-add ajoute une clef (systeme de base pour

    l'autentification par openssh) à un utilisateur donné.

    xbase-clients --

    /! Il s'agit d'une application graphique

    Il s'agit d'une interface entre le serveur graphique

    et les applications tierces.

    rssh --

    Shell alternatif a BASH par exemple mais qui fonctionne en

    mode restreint. En effet, seules les commandes scp (copie

    au travers d'un tunnel ssh) sftp (ftp par un tunnel ssh)

    les commandes relatives aux cvs, ou encore pour rsync

    sont autorisées.

    Ce shell permet aussi de vérouiller les utilisateurs dans

    leur répertoire personnels.

    Il n'y as pas d'action de validation de l'installation du fait qu'il n'y

    as pas de paquets nécessaire au fonctionnement de openssh-server à installer

    (probablement les mêmes que pour openssh-client).

    L'installation proprement dite commence alors...

    /! cette étape est longue du fait de la génération des clefs de cryptage

    servant à authentifier le serveur. (A priori unique car aléatoire, cette

    clef est échangée a la connexion du client. Celui-ci doit accepter la clef

    lors de la premiere connexion, et refuse de se reconnecter sur le serveur

    ayant le meme nom si cette clef change, ceci afin d'eviter les usurpation de

    serveur.)

    Conseil : Interdire aux gens de se connecter en root directement

    quand ils passent par ssh. Indépendamment de la "force" des mot de passe,

    cela oblige un intrus eventuel à connaitre le login d'un autre compte avant

    de pouvoir passer root sur la machine.

    Pour se faire tapez les commandes : 

    vi /etc/ssh/sshd_config -> édite le fichier de conf du serveur

    apputez sur "echap" puissaisissez "/PermitRootLogin" -> recherche la ligne à changer

    se placer sur le "y" de "yes"

    tapez "cw" (change word => changer un mot)

    tapez "no"

    appuyez sur "echap" puis saisissez ":wq" (sauvegarder et quitter)

    Enfin relancez le serveur ssh avec la nouvelle configuration:

    /etc/init.d/ssh restart

    Les clefs SSH

    OpenSSH permet une authentification par clef. Cela est très intéressant notamment 

    pour utiliser des copies par dessus SSH, et ce sans mot de passe.

    Sur le serveur qui va initier la connexion, il faut générer la clef SSH. 

    Nous allons donc gén&eacure;rer une clef de 2048 bits, ce qui est suffisant

    pour la pluspart des utilisations. 

    ssh-keygen -t rsa -B 2048 

    Ensuite, appuyez sur entrée à chaque questions. 

    • La première vous demande ou savegarder la clef SSH;
    • La seconde vous demande le mot de passe de la clef (utile si c'est pour uniformiser votre mot de passe sur toutes vos machines)
    • La troisième vous demande de confirmer votre mot de passe de la clef.

    Dans le cas d'une tâche cron, il est intéréssant de ne pas mettre de mot de passe. 

    Ensuite, il faut copier la clef ainsi générée : 

    cat ~/.ssh/id_rsa.pub 

    Et de le copier dans le fichier authorized_keys du serveur. 

    Editez donc ~/.ssh/authorized_keys et ajoutez y la clef copiée.


  5. sudo est une application permettant d'exécuter une commande sous une

    autre identitée sans se reloguer et sans connaitre le mot de passe

    de l'autre compte.

    Exemple :

    * pour redemarrer la machine en mode console, un simple

    "sudo reboot" sufit la ou precedemment il fallait passer en root,

    puis faire un reboot.

    * Pour mettre a jour la liste des paquets disponibles :

    "sudo apt-get update"

    * pour mettre a jour le systeme :

    "sudo apt-get upgrade" ou "sudo apt-get dist-upgrade"

    Afin de réaliser un tuto de la meilleurs qualité qu'ils soit

    Nous nous sommes inspirés d'un autre tuto déjà bien complet

    Le tuto (aussi détaillé soit-il) ne dispense pas

    de la lecture des infos/questions affichées à l'écran

    On considere les droits root aquis pour la suite du tuto.

    Installation de sudo (debian)

    -> Mettez à jour la liste des paquets disponibles

    apt-get update 

    -> Installez sudo

    apt-get install sudo 

    Pas de validation (sudo fonctionne tout seul, sans être dépendant d'autres

    librairies / applications).

    Configuration de sudo

    -> Tout se passe dans le fichier /etc/sudoers.

    -> Ce fichier se decompose en 4 parties :

    A/ Host alias specification

    Utile uniquement pour des parcs de serveurs ou le fichier sudoers sera repliqué

    (avec des droits spécifiques selon la machine)

    L'hôte se définit par le nom de serveur, l'adresse IP, une plage d'IP.

    MACHINE_PERSO=serveur,192.168.1.3,192.168.0.0/255.255.255.0 

    B/ User alias specification

    Cette section permet de définir des groupes d'utilisateurs afin de ne pas

    créer une règle par utilisateur.

    Par exemple, un groupe "PROF" qui contiens les profs et un groupe "ELEVE",

    chacun de ces deux groupes ayant plus ou moins de droits root.

    Pour ce faire, c'est les lignes :

    User_Alias PROF=prof1,prof2 

    User_Alias ELEVE=eleve1,eleve2 

    C/ Cmnd alias specification

    Dans le meme genre que la section précèdente, ce bloc permet de faire des

    groupes de commandes. Par exemple, le groupe POWER qui contient halt et reboot.

    Cmnd_Alias POWER=/sbin/halt,/sbin/reboot 

    D/ User previlege specification

    Ceci est la section qui contrôle réellement les droits.

    Syntaxe : 

    user host=(new_user) [NOPASSWD:]cmd

    user = Utilisateur (ou groupe)

    host = Machine (ou groupe)

    new_user = Utilisateur à remplacer -- facultatif car par defaut root.

    NOPASSWD : ne demande pas le mot de passe pour cette commande.

    cmd = commande (ou groupe)

    Il y as une ligne déjà présente, 

    root ALL=(ALL) ALL 

    donc cela donne :

    l'utilisateur "root" sur la machine "ALL" donc sur toutes les machines

    a le droit d'éxécuter en tant que ALL donc n'importe qui la commande ALL

    donc toutes les commandes.

    Pour avoir les droits de rebooter les machines pour les profs, la ligne

    serait donc :

    PROF ALL=POWER (commande root) 

    Pour que l'utilisateur michael ait les droit de l'utilisateur richard, la

    commande serait :

    michael MACHINE_PERSO=(richard) ALL 

    Autorisez aux élèves la commande permettant de relancer le serveur Web

    sans mot de passe serais :

    ELEVE ALL=NOPASSWD:/etc/init.d/apache2 restart 

×
×
  • Créer...