diu-eil:se_-_commandes_de_base_debian

Voir cette page sous forme de diaporama.

Debian - Administration de base

  • :!: 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 (sauf la commande ip)
  • les paramètres système sont stockés dans des fichiers texte faciles à éditer avec un éditeur de texte (nano, vim, emacs, …)
  • pour qu'une modification soit opérante, il faudra relancer le démon/service pour la prendre en compte (opération restart)
  • les 3 fichiers de paramétrage réseau d'une machine Unix/Linux :
    • /etc/hosts
    • /etc/resolv.conf
    • les interfaces
      • /etc/network/interfaces (Debian/Ubuntu)
  • afficher un fichier : cat nomfichier
  • afficher un fichier page par page : more nomfichier , <Espace> : Pg-suiv, <q> : Quitter
  • éditer un fichier : nano fichier ou bien vim, …
  • permet la résolution locale
  • doit contenir les noms courts et les noms longs (FQDN: Fully Qualified Domain Name - Nom complètement qualifié)
127.0.0.1       localhost
127.0.0.1       localhost ip6-localhost ip6-loopback
127.0.1.1       debian.example.com debian
  • :!: tout nom de machine réfé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)
  • :!: l'adresse IP de la machine doit être identique à celle définie dans le fichier d'interface (interfaces) ou bien à 127.0.0.1 ou à 127.0.1.1
  • permet la résolution de nom distante avec des serveurs de nom DNS (c.a.d. trouver l'adresse IP correspondant à un nom)
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
  • comporte la définition des interfaces réseau
# Interface de bouclage
auto lo  #activée au demarrage
iface lo inet loopback

# premiere interface - adr. statique
auto eth0
iface eth0 inet static
      address 172.16.0.34/16  # adresse / masque
      gateway 172.16.0.21  # passerelle - facult.

# deuxieme interface - adr. dynamique (DHCP)
auto eth1
iface eth1 inet dhcp

les interfaces

  • s'appelaient habituellement eth0, eth1
  • depuis quelque temps, le schéma de nommage à changé

ip addr permet d'obtenir la liste des interfaces

root@debian:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0f:b0:7d:8f:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.12/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::20f:b0ff:fe7d:8ffb/64 scope link 
       valid_lft forever preferred_lft forever
  • obtenir un nouveau bail DHCP : dhclient

Afficher la configuration des interfaces : ifconfig

root@debian:~#  ifconfig
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)
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 
  • relancer la couche réseau
    • sur Redhat/Fedora/Centos : systemctl restart network
    • sur Debian/Ubuntu : systemctl networking restart
  • vérifier les ports en écoute : ss ou netstat (option -l : listen, -t : tcp, -n : pas de résolution de noms
netstat -ln | more 
ss -ltn  # pour Tcp
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      5            127.0.0.1:631              *:*                  
LISTEN     0      128          :::22                      :::*                  
LISTEN     0      5            ::1:631                    :::*    
ss -ltu  # pour Udp
  • 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 nomsvérifier /etc/hosts
  • une passerelle non opérationnelle ou injoignable peut également avoir une influence désastreuse sur les temps de réponse
  • 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 table de routage - ip route

root@debian:~#  ip route
default via 10.121.32.126 dev eth0 onlink 
10.121.32.0/25 dev eth0 proto kernel scope link src 10.121.32.40

Vérifier la connectivité

La commande ping permet pde 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 connectivité physique

La commande mii-tool permet de vériifer la connectivité physique :

root@debian:~# mii-tool
eth0: negotiated 100baseTx-FD flow-control, link ok
eth1: negotiated 100baseTx-FD, link ok

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)

On peut également utiliser nslookup www.lemonde.fr

Routes et passerelle

  • ajouter une route ou passerelle par défaut
root@debian:~# route add default gw adresseIP  # ou bien encore
root@debian:~# ip route add default via adresseIP
  • ajouter une route vers un réseau
route@debin:~# route add -net reseau/CIDR gw adresseIP
route@debin:~# ip route add reseau/CIDR via adresseIP
  • supprimer une route ou passerelle par défaut :
root@debian:~# route del default
root@debain:~# ip route del default
  • :!: Attention aux multiples routes par défaut ⇒ comportement imprévisible

Gérer les services - 1

Les services habituels se lancent par au moyen du service système systemd. On peut en obtenir la liste par systemctl.

Liste des services usuels sur une Debian Buster

  • apache2 : serveur web Apache2
  • vsftpd : serveur FTP vsftp (en voie d'obsolescence)
  • ssh : serveur ssh
  • bind9 : serveur DNS bind
  • isc-dhcp-server : serveur DHCP ISC
  • mysql: SGBD MySql

Gérer les services - 2

Démarrer un service

root@debian:~# systemctl start nomservice  

Arrêter un service

root@debian:~# systemctl stop nomservice

Redémarrer un service

root@debian:~# systemctl restart nomservice

Préliminaire

Avant d'installer un paquet, il est nécessaire de mettre à jour la liste des paquetages par : apt update

On peut alors décider de mettre à jour les paquetages dont une nouvelle version est disponible : apt upgrade

  • installer : apt install paquet
  • rechercher : apt search nom
    • ou apt list '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
  • contient les adresses des dépots contenant les paquetages adaptés
  • chemin : /etc/apt/sources.list
  • nécessaire pour installer des applications
  • :!: tout changement dans le sources.list doit être suivi d'un apt update pour prendre en compte les nouvelles listes de paquetage
  • exemple de fichier sources.list pour une distribution Debian Buster
deb http://deb.debian.org/debian/ buster main non-free contrib
deb http://security.debian.org/debian-security buster/updates main contrib non-free
  • on peut éditer le sources.list avec apt edit-sources
  • 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 1.2.3.4:8080) dans /etc/apt/apt.conf
    • de la couche réseau (passerelle, DNS, …)

Arrêter une machine

root@debian:~# sudo poweroff

:!: Sur Debian Jessie, Stretch, Buster ou toute machine utilisant systemd, il faut taper halt -p ou poweroff

Redémarrer une machine

root@debian:~# sudo reboot
  • lancer
  sed -i 's/ancien/nouveau/g' /etc/host{s,name}
  • puis redémarrer
  • :!: opération sensible en matière de sécurité
  echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
  systemctl restart ssh
  • diu-eil/se_-_commandes_de_base_debian.txt
  • Dernière modification : 2021/06/10 23:14
  • de 127.0.0.1