====== Debian - Administration de base ======
==== Avant toute chose ====
* :!: **Unix/Linux** est un système d'exploitation dont les commandes sont **sensibles à la casse** : ces dernières devront être saisies en respectant scrupuleusement la casse sous peine de ne pas fonctionner.
* :!: toutes les commandes d'administration nécessitent de disposer des droits **root** pour fonctionner
====== Les fondamentaux ======
* les 3 fichiers fondamentaux d'une machine Unix
* **/etc/hosts**
* **/etc/resolv.conf**
* les interfaces
* **/etc/network/interfaces** (Debian/Ubuntu)
* **/etc/sysconfig/network-scripts/ifcfg-ethx** (Redhat/Mandriva)
===== /etc/hosts =====
* permet la **résolution locale**
* doit contenir les noms **courts** et les noms **longs** (**FQDN**)
127.0.0.1 localhost.localdomain localhost
192.168.1.1 machine.domaine.lan machine
* :!: tout nom de machine reférencé dans ce fichier doit être //"pinguable"// par son nom
* :!: le nom court de la machine doit être **identique** à celui rendu par la commande **hostname** (dans fichier **/etc/hostname** pour **Debian** ou **/etc/sysconfig/network** pour **Redhat**)
* :!: l'**adresse IP** de la machine doit être **identique** à celle définie dans le fichier d'interface (**interfaces** ou **ifcfg-eth0**)
===== /etc/resolv.conf =====
* permet la **résolution de nom distante** avec des **serveurs de nom DNS**
search domaine.lan # on concatene quand on à affaire à un nom court
nameserver 192.168.1.1 # premier serveur
nameserver 192.168.1.2 # second serveur
* les serveurs de noms doivent être **joignables** et **fonctionnels**
* on pourra tester avec **host**, **nslookup** ou **dig**
* exemple :
host monserver
host monserver.domain.lan
host le monde.fr # pour tester resolution externe
===== /etc/network/interfaces (Debian) =====
* comporte la définition des **interfaces réseau**
# Interface de bouclage
auto lo #activée au demarrage
iface lo inet loopback
# premiere interface
auto eth0
iface eth0 inet static
address 172.16.0.34 # adresse
netmask 255.255.0.0 # masque
network 172.16.0.0 # reseau - facult.
broadcast 172.16.255.255 # facult.
gateway 172.16.0.21 # passerelle - facult.
# deuxieme interface
auto eth1
iface eth1 inet dhcp
===== /etc/sysconfig/networg/ifcfg-eth0 (Redhat) =====
* **adressage fixe**
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.1.0
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no
* **DHCP**
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
====== les interfaces ======
* **ifup eth0** pour activer
* **ifdown eth0** pour désactiver
* **ifconfig eth0 192.168.1.1 up**
* **ifconfig eth0 192.168.1.1 netmask 255.255.0.0 up**
* **ifconfig eth0 192.168.1.1/16 up**
===== les services réseau =====
* relancer la couche réseau
* sur Redhat/Mandriva : **service network restart**
* sur Debian/Ubuntu : **/etc/init.d/networking restart**
* vérifier les ports en écoute
netstat -ln | more
===== Routes et passerelle =====
* **affichier la table de routage** :
route -n
* **ajouter une route ou passerelle par défaut**
route add default gw adresseIP
* **supprimer une route ou passerelle par défaut** :
route del default
:!: **Attention aux multiples routes par défaut** => comportement imprévisible
===== En cas de problème =====
* commencer par vérifier la connectivité avec **mii-tool** et **ping**
* si les **temps de réponse** sont très **longs**, le problème est probablement lié à un **problème de résolution de noms** => **vérifier /etc/hosts**
* une passerelle non opérationnelle ou injoignable peut également avoir une influence désastreuse sur les temps de réponse
===== Gérer la couche réseau =====
* **eth0** est la première interface, **eth1** la seconde, **lo** est l'interface de bouclage (**loopback**)
=== Afficher la table de routage ===
root@debian:~# route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
10.121.32.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0
0.0.0.0 10.121.32.126 0.0.0.0 UG 100 0 0 eth0
=== Afficher la configuration des interfaces ===
root@debian:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:12:3f:83:d2:5f
inet adr:10.121.32.70 Bcast:10.121.32.127 Masque:255.255.255.128
adr inet6: fe80::212:3fff:fe83:d25f/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reçus:3099921 erreurs:0 :0 overruns:0 frame:0
TX packets:3056518 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:1438610418 (1.4 GB) Octets transmis:1980674821 (1.9 GB)
Interruption:16
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
Packets reçus:94 erreurs:0 :0 overruns:0 frame:0
TX packets:94 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
Octets reçus:9819 (9.8 KB) Octets transmis:9819 (9.8 KB)
=== Vérifier la connectivité ===
La commande **ping** permet de vériifer la connectivité :
root@debian:~# ping 10.121.32.22
PING 10.121.32.22 (10.121.32.22) 56(84) bytes of data.
64 bytes from 10.121.32.22: icmp_req=1 ttl=63 time=774 ms
64 bytes from 10.121.32.22: icmp_req=2 ttl=63 time=0.149 ms
64 bytes from 10.121.32.22: icmp_req=3 ttl=63 time=0.110 ms
64 bytes from 10.121.32.22: icmp_req=4 ttl=63 time=0.139 ms
^C
--- 10.121.32.22 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 4998ms
rtt min/avg/max/mdev = 0.105/129.171/774.386/288.548 ms
La commande **ping** peut se faire avec l'adresse IP ou le nom. Le fait que ping fonctionne avec l'adresse IP mais pas avec le nom est révélateur d'un problème de résolution de nom (DNS)
=== Vérifier la résolution de noms ===
La résolution de noms est impérative pour l'utilisation du réseau.
pour tester la **résolution locale** :
root@debian:~# host pipo
pipo.ldij-lecastel.lan has address 10.121.32.2
On obtient bien l'adresse du serveur pipo (**10.121.32.2**)
pour tester la **résolution externe (internet)** :
root@debian:~# host lemonde.fr
www.lemonde.fr is an alias for www.lemonde.fr.2-01-271d-000d.cdx.cedexis.net.
www.lemonde.fr.2-01-271d-000d.cdx.cedexis.net is an alias for wac.3604.edgecastcdn.net.
wac.3604.edgecastcdn.net is an alias for gp1.wac.edgecastcdn.net.
gp1.wac.edgecastcdn.net has address 93.184.220.20
On obtient bien l'adresse du serveur www.lemonde.fr (**93.184.220.20**)
====== Routes et passerelle ======
* **ajouter une route ou passerelle par défaut**
root@debian:~# route add default gw adresseIP
* **supprimer une route ou passerelle par défaut** :
root@debian:~# route del default
* :!: **Attention aux multiples routes par défaut** => comportement imprévisible
====== Gérer les services ======
Les services habituels se lancent par des script situés dans le répertoire **/etc/init.d**. On peut en obtenr la liste par la commande : **ls /etc/init.d**
=== Liste des services usuels ===
* **apache2** : serveur web Apache2
* **vsftpd** : serveur FTP vsftp
* **ssh** : serveur ssh
* **bind9** : serveur DNS bind
* **mysql**: SGBD MySql
* **postgresql** : SGBD PostGresql
=== Démarrer un service ===
root@debian:~# service nomservice start
=== Arrêter un service ===
root@debian:~# service nomservice stop
=== Redémarrer un service ===
root@debian:~# service nomservice restart
===== Gestion des applications et des paquetages =====
=== Préliminaire ===
Avant d'installer un paquet, il est nécessaire de mettre à jour la liste des paquetages par : **aptitude update**
On peut alors décider de mettre à jour les paquetages dont une nouvelle version est disponible : **aptitude upgrade**
=== Les commandes usuelles de gestion des paquets ===
* installer : **aptitude install paquet**
* rechercher : **aptitude search nom**
* rechercher si un paquetage est installé : **dpkg -l "chaine*"**
* liste des paquetage installés : **dpkg --list**
* afficher la liste des fichiers contenus dans un paquetage : **dpkg -L paquet**
* supprimer un paquet : **apt-get remove --purge paquet**
* reconfigurer un paquetage : **dpkg-reconfigure paquet**
=== le fichier sources.list ===
* contient les adresses des dépots contenant les paquetages adaptés
* chemin : **/etc/apt/sources.list**
* nécessaire pour installer des applications
* il peut être nécessaire de commenter les références au lecteur de CD-ROM
* :!: tout changement dans le sources.list doit être suivi d'un **aptitude update** pour prendre en compte les nouvelles listes de paquetage
* exemple de fichier **sources.list** pour un distribution **Debian Squeeze**
deb http://ftp.debian.org/debian squeeze main contrib
deb http://security.debian.org squeeze/updates main contrib
=== En cas de problème ===
* si l'installation de paquetages ne fonctionne pas, l'origine du problème provient probablement :
* du fichier **sources.list** ou
* de l'utilisation éventuelle d'un **proxy** (gw:8080 ou 10.121.32.69:8080)
* de la couche réseau (passerelle, DNS, ...)
===== Arrêter/redémarrer une machine =====
=== Arrêter une machine ===
root@debian:~# halt
=== Redémarrer une machine ===
root@debian:~# reboot