Skip to content

Instantly share code, notes, and snippets.

@GarreauArthur
Last active January 23, 2018 22:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save GarreauArthur/ca6e9e3afa258bd784f75bd0990e14a0 to your computer and use it in GitHub Desktop.
Save GarreauArthur/ca6e9e3afa258bd784f75bd0990e14a0 to your computer and use it in GitHub Desktop.

cours administration linux

  • ext4 : système de fichier de linux
  • tous les systm de fichier doivent être intégrés dans l'UNIQUE arborescence lo gique /
  • le montage (mount) est le moyen de faire correspondre une partie de l'arbor escence et une partition physique du disque

les utilisateurs

fichier /etc/passwd contient :

login:password:UID:GID:commentaires:Repertoire_perso:shell

Le password est dans tout les cas un x. Le mot de passe est stocké dans le fichier /etc/shadow avec des ingos sur l'âge du password, la durée de vie (min, max, reste).

Les groupes sont définis dans /etc/group :

nomgroupe:password:GID:user1, user2, ...

fichiers de logs

Les processus sous linux peuvent envoyer des infos grâce au process syslog. Les logs sont dans /var/log/syslog.

Pour suivre le fonctionnement d'un processus :

tail -f /var/logs/syslog | grep <process>

les services

  • Runlevel : lancement des services en fonction du runlevel définit dans /etc/inittab
  • chaque service est contrôlé par un script présent dans le rép /etc/init.d ou /etc/init/
  • un lien symbo dans le runlevel souhaité /etc/rc2.d
  • une commande pour gérer l'activation/désactivation update-rc.d

TP Les services

openssh

installation

apt-get update # mise à jour paquets
apt-cache search openssh # recherche des paquets openssh
apt-get install openssh-server #installation

/etc/ssh/sshd_config fichier de config.

service ssh stop # arrêt
service ssh start # démarrage

communication réseau entre l'hôte et la VM

Il faut récupérer l'adresse UP de la VM

ifconfig eth0 ou eth1

vérifier que l'on peut pinger

Il faut que la deuxième carte réseau (réseau privé hôte) soit active. De plus il faut que le serveur DHCP soit activé sur le ce réseau (vboxnet0)

interfaces : configuration du réseau

Une interface va consister en :

  • une adresse IP (via laquelle les machines pourront la joindre)
  • un masque de sous-réseau (indiquant la taille du réseau)
  • une adresse de diffusion/broadcast
  • une adresse de réseau

Ces infos vont être à spécifier par l'utilisateur ou détectées automatiquement On peut aussi déclarer d'autres infos dans une interface.

Le fichier de configuration /etc/network/interfaces sert à paramétrer l'accès de la machine à un réseau. On peut le configurer manuellement de façon simple et basique, pour que l'ordi se connecte à internet, que ce soit en filaire ou en sans fil, par l'intermédiaire d'un routeur.

Lorsque nous avons plusieurs cartes réseau sur le même PC, nous pouvons aussi gérer le numéro attribué à chacune d'elle. Cela se fait au travers du fichier /etc/udev/rules.d/70-persistent-net.rules. Voir : /etc/udev

Pour lister les interfaces réseau dispo :

ifconfig -a

Les interfaces :

  • lo est l'interface loopback, elle permet au système de discuter avec lui-même et est absolument indispensable (127.0.0.1)
  • ethX où X est un entier est associées aux cartes réseau (filaire)
  • athX ou wlanX où X est un entier, sont associées aux cartes WiFi
  • tunX ou tapX sont souvent associées à des VPN
  • pppX pour les modems
  • usbX sont liées aux connexions réseau via USB, comme avec les smartphones
  • brX correspondent à des bridges, c-à-d la fusion de plusieurs interfaces en une seule

Pour lister les interfaces réseau allumées

ifconfig

Pour lister les routes actives

route -n

la route par défait est celle menant au routeur et dirigeant les paquets vers internet.

Pour lister les résolveurs DNS actifs

cat /etc/resolv.conf

Les lignes commençant par nameserver désignent les serveurs DNS

Edition du fichier interfaces

Il est recommandé avant toute modif de faire une copie du fichier de config :

cp /etc/network/interfaces /etc/network/interfaces-old

Pour Arrêter le réseau

service networking stop

Ensuite on édite :

vim /etc/network/interfaces

Après édition; on démarre le réseau

service networking start

Pour plus d'info sur le fichier /etc/network/interfaces :

man interfaces

Configuration automatique via DHCP

Si l'interface est branchée sur un routeur, un téléphone, ou n'importe quel machin fournissant une adresse auto via DHCP, le cade à ajouter pour config l'interface est le suivant (ex interface eth0)

allow-hotplug eth0
iface eth0 inet dhcp
  1. La première ligne indique que le câble réseau peut être branché n'importe quand
  2. La seconde indique qu'il faut alors lancer ldes requêtes DHCP pour interroger un serveur et se configurer automatiquement

On relance alors l'interface :

ifdown eth0 # arrêt
ifup eth0 # démarrage

On vérifie la connexion :

ifconfig eth0

Config manuelle

Si on ne dispose pas de serveur DHCP ou si on veut imposer manuellement une adresse IP, il nous est possible d'attribuer à notre interface une adresse statique (static).

Par ex :

allow-hotplug eth0
iface eth0 inet static
	address 192.168.1.50
	broadcast 192.168.0.255
	netmask 255.255.255.0
	gateway 192.168.1.1

On doit bien mettre static, renseigner, address, broadcast et netmask. Pour accéder à internet, il faut indiquer l'adresse IP du routeur : gateway.

On relance alors l'interface :

ifdown eth0 # arrêt
ifup eth0 # démarrage

On vérifie la connexion :

ifconfig eth0

Il nous reste à apprendre à la machine à résoudre les noms de domaine. Il faut configurer le fichier de résultion DNS. On peut le faire à la main en éditant resolv.conf, pour le faire automatiquement, on peut installer le paquet :

apt-get install resolvconf

Et ajouter à l'interface eth0 la directive :

dns-nameservers IP.serveur.dns

ex :

dns-nameservers 208.67.222.222

On peut tester que tout fonctionne avec

ping -c 4 exemple.net

Le cas du wifi

Pour config le wifi, on a besoin d'options supplémentaires

Options supplémentaire

Si on ne met rien avec iface ..., rien ne se passe au boot, l'interface ne démarre qu'avec ifup eth0.

Pour démarrer automatiquement au démarrage, il faut ajouter :

auto eth0

L'insertion de la carte ou de la fiche RJ45 à chaud ne produit rien, sauf si on redémarre l'interface avec :

service networking restart

serveur web Apache

installation

apt-get install apache2

les fichiers de conf se trouvent dans /etc/apache2/ Les fichiers de logs sont dans /var/logs/apache2/

Arrêt et démarrage d'Apache2

service apache2 start
service apache2 stop

Examiner les processus en exécution en mémoire grâce aux commandes

ps aux | grep apache2

Accès à la page d'accueil par défaut : http://<votre ip> (ip réseau privé hôte de la VM à partir du navigateur web de l'hôte)

Installer la documentation locale

apt-get install apache2-doc

Tentez de la consulter la page fraîchement installée à partir du lien.

http://<votre IP>/manual/

Vous trouverez ici l'ensemble des aides à la configuration d'Apache2.

Connaître version

apache2 -v

ou

apache2ctl status

Pour contrôler la syntace de la config :

apache2ctl configtest

Dans le cas présent, la commande nous indique qu'il ne connait le Fully Qualified Domain Name (FQDN), c'est à dire le nom complet de la machine.

Pour corriger ce warning il suffit de compléter le fichier /etc/hosts en ajoutant le nom avec domaine de notre machine.

127.0.1.1 vm-etudiant.eseo.fr vm-etudiant

mysql and php

install

apt-get install mysql-server

L'installation pré-configure certains param tels que

  • le base système mysql dans /var/lib/mysql
  • un compte administrateur root@localhost
  • la configuration initiale dans /etc/mysql/my.cnf

Pour arrêter ou démarrer la base de données :

/etc/init.d/mysql stop ou start

accès local

Invoquer l'exe du client mysql :

mysql -p

option -p pour fournir un mot de passe

ex de commande

mysql>show databases;
mysql>use mysql;
mysql>select user, host, password from user;
mysql>quit

accès réseau

Pour des raisons de sécu, MySQL n'autorise l'accès que localement

mysql -p -h <IP>

Pour autoriser l'accès à une autre machine, il suffit de commenter la ligne bind-address = 127.0.0.1 dans /etc/mysql/my.cnf puis redémarrer le serveur /etc/init.d/mysql restart.

version

mysqld -V

config

Examen du fic de conf qui se trouve dans /etc/mysql/my.cnf

Dès le début de son fonctionnement le moteur a installé 2 bases

  • la base de données mysql : base interne du serveur, elle est destinée à gérer mes utilisateurs et leurs droits d'accès
  • une autre pour les tests

Chaque bdd occupe un sous-rép de /var/lib/mysql/ portant le nom de la base

Un autre moyen de connaître les bases s'obtient avec la commande mysqlshow -p

les logs

se trouve dans /var/log/syslog

sécuriser le compte admin

Chaque login est féini avec un @localhost ou @%

  • localhost correspond à une connexion locale uniquement
  • % correspond à une connexion depuis n'importe qu'elle machine

donc

mysqladmin -p -u root@localhost password motdepasse

Le mdp est maintenant motdepasse

Un peu de SQL

créer bdd

CREATE DATABASE nomdbb;

création des comptes d'accès

ex accorder à admin tous les privilèges de la base essai avec droit d'accès local (@localhost) sur toutes (*) les tables de la base essai.

mysql> GRANT ALL PRIVILEGES ON essai.*
TO admin@localhost
IDENTIFIED BY 'network';

création d'une table

mysql> CREATE TABLE nomTable(
nomchamp type[NOT NULL auto_increment,
primary KEY(nomchamp]
);

insertion

INSERT INTO nomtable(nomchamp,champ2)
VALUES (val1,val2),
       (val1_sec,val2_sec);

suppression table

DROP TABLES nomtable;

suppression bdd

DROP DATABASE nombdd;

Sauvegarder les bases

utilitaire mysqldumb

mysqldumb génère le source écrit en commandes SQL, la restauration consite alors à exécuter ce fichier de commandes

cet utilitaire possède de nombreuses options (cf man mysqldumb)

Pour sauvegarder le contenu de la base essai dans essai.sql on fait

mysqldumb -p essai > esssai.sql

Pour restaurer la base essai, si nécessaire procéder d'abord à sa re-création puis importer le fichier sauvegardé précédemment :

mysql -p essai < essai.sql

random

paquet = ip segment = tcp trame = ethernet

arp poisoning

TTY = TeleType (terminal) VTTY = TTY virtuel, sur un routeur par exemple, on ne peut pas brancher un écran, on doit passer par une liaison série, d'où le virtuel).

obtenir de l'aide dans un terminal : ?

masque

ex : 192.168.0.10/24

/24 veut dire qu'on ajoute un masque de 1 sur les 24 premiers bits de poids forts

masque : 11000000010000000000000000001010 : ip 11111111111111111111111100000000 : masque 11000000010000000000000000000000 : résultat

On applique à notre adresse, on obtient : 192.168.0.0

Un masque va nous permettre de définir la partie réseau, et la partie adresse. adresse_réseau/masque

/8 => 255.0.0.0 /16 => 255.255.0.0

Deux adresses sont réservées :

La première (généralement xxx.xxx.xxx.0) : adresse réseau La dernière (généralement xxx.xxx.xxx.255) : adresse broadcast

Une adresse de réseau doit avoir tous ses bits après le masque à 0. Une adresse de diffusion doit avoir tous ses bits après le masque à 1.

ex : 172.10.16.0/22 10101100.00001010.000100|00.00000000 : adresse réseau 10101100.00001010.000100|11.11111111 : adresse de diffusion 11111111.11111111.111111|00.00000000 : masque

configurer switch

étape 1 : passer en mode d'execution privilégié

Switch> enable
Switch#

afficher config actuelle

Switch# show running-config

créer une configuration de switch de base

### étape 1 : attribuer un nom au commutateur

Switch# configure terminal
Switch(config)# hostname S1
S1(config)# exit
S1#

### étape 2 : sécuriser l'accès à la ligne de console

On doit acceder au mode config-line et choisir un mdp (letmein)

S1# configure terminal
Enter configuration commands, one per line. Terminez par CNTL/Z
S1(config)# line console 0
S1(config-line)# password letmein //permet de se connecter au port console
S1(config-line)# login
S1(config-line)# exit
S1(config)# exit
%SYS-5-CONFIG_I: Configured from console by console
S1#

étape 3 : vérifier que l'accès à la console est sécurisé

quitter le mode privilégié pour vérifier que le mot de passe de port de console est actif

S1# exit
Switch con0 is now available
Press RETURN to get Started
User Acess Verification
Password:
S1>

étape 4 sécurisez l'accès au mode privilégié

on va choisir le mdp d'activation (enable)

S1> enable
S1# configure terminal
S1(config)# enable password monmdp
S1(config)# exit
%SYS-5-CONFIG_I: Configured from console by console
S1#

étpae 5 vérifier que l'accès au mode privilégié est sécurisé

S1#exit
Appuyer sur entrer
User Access Verification
Password: //mdp console
enable
//mdp enable
Vérifier la config
S1# show running-configuration

Les mdps de console et d'activation (enable) sont tous les deux en clair.

étape 6 configurer un mdp chiffré pour sécuriser l'accès au mode privilégié

S1# config t
S1(config)# enable secret mdpchiffré
S1(config)# exit

étape 7 : vérifier mdp chiffré enable

show running-config

ou 'abbrévation show run

étape 8 : chiffrez les mdp enable et de console

configuration routeur

accédez au mode privilégié et examinez la configuration actuelle

Router> enable
Router#

Afficher config

Routeur# show running-config 

Examiner le contenu actuel de la mémoire vive non volatile (NVRAM)

show startup-config

Configurer les interfaces du routeur

étape 1 : configurer l'interface GigabitEthernet 0/0 sur R1

Exécutez les commandes suivantes pour préparer l'adressage et activer l'interface GigabitEthernet 0/0 sur R1 :

R1(config)# interface gigabitethernet 0/0
R1(config-if)# ip address 192.168.10.1 255.255.255.0
R1(config-if)# no shutdown
%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up

b.

Il est conseillé de configurer une description de chaque interface afin de mieux documenter les informations du réseau. Configurez une description d'interface indiquant à quel périphérique elle est connectée.

R1(config-if)# description LAN connection to S1 

c. R1 should now be able to ping PC1.

R1(config-if)# end
%SYS-5-CONFIG_I: Configured from console by console
R1# ping 192.168.10.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.10, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 0/2/8 ms

Étape 3 : Sauvegardez les configurations dans la NVRAM.

Enregistrez les fichiers de configuration des deux routeurs dans la mémoire NVRAM. Quelle commande avez-vous utilisée ?

REMARQUE

L'adresse ip de l'interface du routeur n'est pas l'adresse réseau Chaque interface du routeur a une adresse IP qui appartient au réseau auquel cette interface est connectée.

## ROUTES

Sur le routeur on tape: show ip route C : connected : il y a une route qui existe et est connecté au routeur L : Adresse IP du routeur sur le réseau mentionné dans la ligne du C

Les routes récursives permettent de faire passer des informations d'un réseau à un autre. On parle de routes statiques quand les routes ne changent pas (wow)

On va lire deux fois la table de routage : La première fois pour voir La deuxième pour lire la sortie (ex : serial 0/0/0) Je suis dans R1, je veux aller dans S2 (172.31.0.0/24), pour cela on passe par R2 (172.31.1.193). :

enable	
config t
ip route 172.31.0.0 255.255.255.0 172.31.1.193

route récapitulative

Imaginons si on a un réseau R1 --- R2 ---172.22.1.128/27 --- R3 ---172.22.1.160/27 --- S 172.22.1.1000000 172.22.1.1010000 On voit que les deux adresses de réseau partagent 26 bits La route récapitulative sur R1 jusqu'aux LAN de R3 On peut configurer les deux routes en même temps mais j'ai pas fait attention comment hahah

ip route 

calcul des routes récapitulatives

1.Indiquez les réséaux 172.22.1.128/27 172.22.1.160/27 2.et au format binaire 172.22.1.1000000 172.22.1.1010000 3.Compter le nombre de bits identiques depuis la gauches pour déterminer le masque de la route récapitulative Ici ils possèdent 26 bits en commun 4. copier les bits correspondants et compléter les bits restants avec des 0 pour déterminer l'adresse réseau récapitulée. 172.22.1.10000000/26 Adresse de la route récapitulative est : 172.22.1.128/26

//---------------------------------------------------

Afficher les stats de toutes les interfaces

show interfaces

affiche uniquement les informations relatives à l'interface Serial 0/0/0

show interfaces Serial 0/0/0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment