- Modifié
Ce topic est réservé aux débutants sous linux voulant administrer un serveur Debian. Pour ce faire, il faut connaitre les bases de ce système d'exploitation que l'on utilisera en ligne de commande. En effet, pour l'administration d'un serveur, nous utiliserons un terminal. Par conséquent, il n'y aura pas d'interface graphique. Sur Mac OS X ainsi que sur linux le terminal est directement intégré à l'OS.. Il vous suffira de le trouver dans votre dossier application. Sur windows, rien de difficile non plus, rendez-vous sur cette page, téléchargez et installez le logiciel.
Qu'est ce que Debian? Pourquoi l'utilise-t-on?
Debian est un système d'exploitation comme windows et Mac OS. Un système d'exploitation correspond à l'ensemble des programmes et utilitaires de base qui permettent de faire fonctionner votre ordinateur.Le système d'exploitation est lui même composé d'un noyau. Celui-ci gère les ressources nécessaire au bon fonctionnement de votre ordinateur et vous permet de lancer vos logiciels. Debian utilise un noyau Linux.
La majorité des serveurs web sont sous Linux ou windows. Nous utilisons Debian car il est totalement libre et ne contient aucun logiciel propriétaire par défaut. Les versions stables de Debian sortent quand elles sont prêtes, ce qui vous assure la stabilité de votre serveur. Enfin, Debian est moins gourmand en ressources par rapport à Ubuntu par exemple. Il existe bien évidemment d'autres systèmes d'exploitations qui sont extrêmement performant comme Fedora ou CentOS mais les tutos que vous trouverez ici ne sont pas adaptés.
Qu'est ce que Linux?
Linux est un logiciel initié par Linus Torvalds. L'open source et donc le développement du logiciel libre ont été mis au coeur du projet. De ce fait, le logiciel peut-être développé et distribué par n'importe quel programmeur. Peut-être vous qui sait? Mais Linux s'est généralisé, désormais, on appelle linux tout système d'exploitation libre fonctionnant avec le noyau linux. Ce qui est un erreur puisque dans notre cas, le système d'exploitation correspond à Debian avec un noyau Linux.
Sous windows l'extension de fichier pour un logiciel correspond au .exe, mais sous Debian on utilise quoi?
Chaque système d'exploitation utilise des extensions de fichiers différentes. Sous Debian les logiciels sont au format .deb. Communément, on utilisera le nom de "paquet" pour évoquer un logiciel.
Comment partitionner correctement mon serveur?
Lorsque vous allez installer Debian sur votre serveur, votre hébergeur va mettre à votre disposition un utilitaire de partitionnement. il est préférable d'avoir un /home à part. Il existe plusieurs types de partitions (Primaire, étendue et logique).Voici comment partitionner correctement votre serveur.
Type de partition Type Point de montage Taille
Primaire Ext4 /boot 200 MO
Primaire SWAP 1024 MO
Primaire EXT4 / 15360 MO
Primaire EXT4 /home Tout le reste
comment se connecter au serveur?
Rien de plus simple, ouvrez le terminal et tapez ceci:
ssh root@Ip du serveur ou nom de domaine
Si vous avez changé le port du serveur
ssh -p <port> root@Ip du serveur ou nom de domaine
Si vous voulez vous connecter avec votre utilisateur remplacez root par votre utilisateur.
Si j'ai une erreur de SSH comment là résoudre?
Si vous avez une erreur de ce type:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
.....
.....
Host key verification failed.
tapez dans votre terminal:
ssh-keygen -R <IP du serveur>
Si vous avez un conflit de clés SSH Tapez ceci:
Sous Linux:
ssh-keygen -f "/home/<user>/.ssh/known_hosts" -R <IP_Serveur>
Sur Mac:
ssh-keygen -f "/Users/<user>/.ssh/known_hosts" -R <ip_serveur>
- Sous Windows avec Putty:
On ouvre avec "Exécuter" :
regedit
Et on va chercher l'ip du serveur dans:
\HKEY_CURRENT_USER\Software\SimonTatham\Putty\sshHostKeys
Clic droit dessus et supprimer.
Merci Ex_rat pour ces commandes.
Si avec ceci, vous n'y arrivez toujours pas alors il faut suivre le tuto de Ex_rat.
Qu'est ce que le root?
Le root correspond au compte administrateur. L'utilisateur root accède à la totalité du système d'exploitation, par conséquent, il dispose de toutes les permissions sur le sysème. Il pourra créer/modifier un fichier, le renommer le supprimer etc.. Tout ce qu'un utilisateur lambda ne pourra pas faire.
Pour accéder au root il faut taper la commande suivante dans un terminal.
su root
ou lancer sudo devant une commande
Exemple:
sudo apt-get upgrade
pour mettre à jour le serveur.
Quelles sont les commandes nécessaires pour administrer mon serveur?
Se connecter en root:
su root
Mettre à jour les dépots:
apt-get update
Mettre à jour le serveur:
apt-get upgrade
Installer un paquet:
apt-get install <nom du paquet>
Supprimer un paquet:
apt-get remove <nom du paquet>
Suppression du paquet et de ses paramètres:
apt-get purge <nom du paquet>
ou
sudo apt-get autoremove --purge <nom du paquet>
Suppression de paquets d'installation:
apt-get clean
ou
apt-get autoclean
Les commandes de l'éditeur de texte intégré au terminal:
Pour modifier un fichier il faut utiliser la commande nano.
nano /chemin/du/fichier
dans l'éditeur de fichier:
pour se déplacer dans l'éditeur de texte, utilisez les touches directionnelles de votre clavier
ctrl+w permet de faire une recherche
ctrl+c permet d'annuler
ctrl+o permet d'enregistrer le fichier
ctrl+x permet de fermer l'éditeur de texte
Pour installer un paquet, parfois il faut ajouter des dépots. Pour ce faire:
nano /etc/apt/sources.list
et ajoutez vos lignes a la fin du fichier. Il faut toujours faire une mise a jour des dépots via la commande ci-dessus après les avoir modifié.
Création de dossier:
mkdir /chemin/du/dossier/<nom du dossier>
Création de fichier:
touch /chemin/du/dossier/<nom du fichier.extension
pour créer une page index.html dans /var/www/site/ cela donne
touch /var/www/site/index.html
Suppression de dossier:
rmdir /chemin/du/dossier/
ou
rm -r /chemin/du/dossier
Suppression de fichier:
rm /chemin/du/fichier
Les commandes de suppression en général:
rm -R /chemin/du/fichier (suppression récursive)
rm -i /chemin/du/fichier (suppression avec confirmation)
rm -f /chemin/du/fichier (suppression forcé)
rm -rf /chemin/du/fichier suppression du dossier et tout son contenu
Se placer dans un dossier:
cd /chemin/du/dossier
Télécharger un fichier compressé après s'être placé dans le bon répertoire:
wget url du fichier
Décompression fichier.tar.gz:
tar xzvf chemin/du/fichier/<fichier.tar.gz>
Compression d'un zip:
zip /chemin/du/fichier/
Décompression d'un zip:
unzip /chemin/du/dossier
renommer un fichier:
mv /chemin/du/fichier/<fichier>
Pour déplacer un fichier/dossier:
mv /chemin/du/fichier /chemin/du/nouveau/fichier
Copie d'un fichier:
cp /chemin/du/fichier /chemin/de/copie
afficher le contenu d'un fichier:
cat /chemin/du/fichier/
assembler plusieurs fichier:
cat fichier1 fichier2 > fichier final
afficher le contenu d'un dossier:
dir /chemin/du/fichier
Monter un système de fichiers:
mount /chemin/du/fichier/
Démonter un système de fichiers:
umount /chemin/du/dossier
Modifier le mot de passe d'un utilisateur:
passwd <utlisateur>
suppression d'un utilisateur et de son /home:
deluser –remove-home <utilisateur>
Forcer l'arrêt d'un processus:
killall <processus>
Afficher la quantité d'espace disque utilisé par les systèmes de fichiers:
df-h
Modifier les permissions de fichier:
chmod <numéro de permission> /chemin/du/fichier/
Modifier les permissions de dossier:
On ajoute un -R
chmod -R <numéro de permission> /chemin/du/dossier/
Veuillez noter que vous pouvez assembler des commandes avec &&. Par exemple on veut mettre à jour les dépots et mettre à jour le système:
apt-get update && apt-get upgrade
Pour plus d'options ou pour d'autre commande veuillez vous rendre ici ou ici.
Qu'est ce que le fichier temporaire?
Le fichier temporaire est un fichier qui supprimera automatiquement son contenu au redémarrage du serveur. Voilà pourquoi nous nous plaçons dans ce repertoire (/tmp) lors de nos tutos. Après un reboot, il n'y aura plus de traces de votre installation ce qui est beaucoup plus propre.
Qu'est ce que le FTP et le SFTP?
Le FTP (File Transfer Protocol) est un protocole de communication qui va vous permettre de rapatrier vos fichiers à la maison, ou supprimer/renommer directement un fichier sur votre serveur. le port par défaut correspond au port 21. On l'utilise via un logiciel comme FileZilla qui est libre et gratuit.
Le SFTP (SSH File Transfer Protocol) permet de faire la même chose, on l'utilise également via le Logiciel FileZilla. Cependant ce protocole de communication est basé sur le SSH. Il devient alors entièrement sécurisé. Le port par défaut correspond au port 22.
Comment connaitre l'ip de son serveur?
ifconfig eth0 | grep inet | awk '{ print $2 }'
Qu'est ce que les permissions de fichiers?
Debian ainsi que les OS Linux permettent de définir la gestion de droits d'accès aux divers fichiers de votre système d'exploitation.
De ce fait, il existe différents droits celui de lecture (r), d'écriture (w) et d'exécution (x).
On peut attribuer ces droits au propriétaire, à un groupe et aux autres utilisateurs [user (o), group (g) et other (o)].
Ces droits sont représentés de façon binaire. On peut donc en faire un tableau:
Numéro de permission Binaire Lecture Fonction
0 000 --- Pas d'accès
1 001 --x Executer
2 010 -w- Écrire
3 011 -wx Écrire et executer
4 100 r-- Lire
5 101 r-x Lire et executer
6 110 rw- Lire et écrire
7 111 rwx Lire, écrire et executer
Maintenant, il faut attribuer ces droits au propriétaire, groupe et aux autres utilisateurs:
Permissions valeur Fonction
propriétaire,groupe,utilisateurs
rwx --- --- 700 Lecture,écriture,execution pour le propriétaire
rwx rwx rwx 777 Lecture,écriture et execution pour tout le monde
rw- rwx --- 670 Lecture,écriture propriétaire et lecture,écriture,execution groupe
rwx rwx --- 770 Lecture,écriture et exécution pour le propriétaire et le groupe
rw- rw- --- 660 Lire et écrire pour le propriétaire et le groupe
r-- r-- r-- 444 Lire pour groupe, propriétaire et autres utilisateurs
Il y a de nombreuses combinaisons possibles. A vous de jouer.
Pour attribuer un tous les droits à un fichier:
chmod <valeur> /chemin/du/fichier
Je veux une partition par utilisateur comment faire?
Commencez par installer Debian avec le partitionnement ci-dessus.
Puis une fois l'installation terminé faites comme suit:
Connectez vous sur votre serveur en root:
su root
Puis installez Parted:
apt-get install parted
Repérez votre partition /home.
Pour cet exemple, ma partition /home sera sur /dev/sda4. Nous allons créer deux utilisateurs sur /dev/sda5 et /dev/sda6/
umount /dev/sda4
Puis tapez:
cfdisk
Un utilitaire de partition apparait.
Positionnez vous sur /dev/sda4 et détruisez en positionnant votre curseur sur détruire
Puis créer un nouvelle partition pour votre utilisateur1 en positionnant votre curseur sur nouvelle.
Sélectionnez Logique et entrez le nombre de Mo que vous voulez pour celui-ci.
Rappel : 1 gigas = 1024 mo donc pour 500 gigas par exemple 1024500 = 15360. utilisez la virgule pour les nombres décimaux.
Ensuite sélectionnez début pour créer /dev/sda5 ou fin pour /dev/sda6.
Puis retournez sur l'espace disponible et recommencez l'opération pour l'utilisateur2. etc.
Une fois vos partitions créées. sélectionnez écrire puis tapez oui. Enfin, quittez cfdisk.
vous revenez sur le terminal et tapez:
partprobe
Puis dans mon cas:
mkfs.ext4 -m 0 /dev/sda5
mkfs.ext4 -m 0 /dev/sda6
Il va falloir modifier l'emplacement des partitions:
nano /etc/fstab
Vous devez avoir quelque chose comme ceci :
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=aae3c454-cb61-40f9-80b9-8af653246a5f / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=9ce45988-6c6f-4a6b-b359-1a93d987efcd /boot ext4 defaults 0 2
# /home was on /dev/sda4 during installation
UUID=1ee02366-50d8-4078-bdb2-a2cabe77c430 /home ext4 defaults 0 2
# swap was on /dev/sda3 during installation
UUID=23b524f1-b038-4558-a1a0-10422ed661f6 none swap sw 0 0
On va supprimer les lignes qui concerne le /home. Dans mon cas:
# /home was on /dev/sda4 during installation
UUID=1ee02366-50d8-4078-bdb2-a2cabe77c430 /home ext4 defaults 0 2
Et ajouter les partitions précédemment créées:
# Partitions /home de <utilisateur1>
/dev/sda5 /home/<utilisateur1> ext4 defaults 0 2
#Partition /home de <utilisateur2>
/dev/sda6 /home/<utilisateur2> ext4 defaults 0 2
Logiquement vous devez avoir quelques chose comme ça au final.
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=aae3c454-cb61-40f9-80b9-8af653246a5f / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=9ce45988-6c6f-4a6b-b359-1a93d987efcd /boot ext4 defaults 0 2
# swap was on /dev/sda3 during installation
UUID=23b524f1-b038-4558-a1a0-10422ed661f6 none swap sw 0 0
# Partitions /home de <utilisateur1>
/dev/sda5 /home/<utilisateur1> ext4 defaults 0 2
#Partition /home de <utilisateur2>
/dev/sda6 /home/<utilisateur2> ext4 defaults 0 2
Nous allons maintenant créer le fichier /home pour chaque utilisateur:
mkdir /home/utilisateur1
mkdir /home/utilisateur2
Nous allons maintenant monter le répertoire /home de chaque utilisateur:
mount /home/utilisateur1
mount /home/utilisateur2
et enfin on va redémarrer le serveur:
reboot
Si tout se passe correctement, votre serveur redemmare, sinon vous êtes bon pour une réinstallation ou un mode rescue.
Le sujet est terminé, merci de m'avoir lu. Un merci fait toujours plaisir.
Enjoy =D