Vous êtes sur la page 1sur 27

Vi

Contenu
1. Changer l’utilisateur : ...................................................................................................................... 2
2. Généralités : .................................................................................................................................... 2
3. Changer le nom de la machine Fedora : .......................................................................................... 2
4. Configuration d’adresse IP statique : .............................................................................................. 2
Le périphérique a une adresse différente de celle attendue opération ignorée. ... Error! Bookmark not
defined.
5. Installation de packages : ................................................................................................................ 3
6. Démarrage/arrêt automatique de services : ................................................................................... 4
7. DNS: ................................................................................................................................................. 5
8. DHCP sur FEDORA :........................................................................................................................ 10
9. Configurer le serveur DHCP pour faire les mises à jour dynamiques de DNS : ............................. 11
10. Ajouter une carte réseau à une machine Fedora sur Vmware : ............................................... 12
11. Routage sur Fedora : ................................................................................................................. 12
12. Telnet sous Fedora : .................................................................................................................. 13
13. rsh sous Fedora : ....................................................................................................................... 13
14. Ssh sous Fedora : ....................................................................................................................... 15
15. NFS : partage de données entre machines linux ....................................................................... 18
16. Samba sous Fedora :.................................................................................................................. 21
17. Ftp sous Fedora : rpm –ivh vsftpd-2.0.3-1.i386.rpm ................................................................. 24
18. HTTP sous Fedora : .................................................................................................................... 25
1. Changer l’utilisateur :
La commande "su" (Switch User, appelée plus communément "Super Utilisateur") permet
d'ouvrir une session avec l'ID (IDentifiant) d'un autre utilisateur, ou de démarrer un nouveau
shell de connexion.
su toto :
Après avoir entré votre mot de passe, vous êtes connecté en tant qu'utilisateur "toto", vous
êtes toujours dans le même répertoire de travail que précédemment et vous bénéficiez des
réglages par défaut de l'utilisateur précédent (shell de connexion, variables d'environnement,
permissions diverses...)
su – toto :
La présence du tiret "-" force le démarrage d'un nouveau shell de connexion, avec ajustement
des variables d'environnement et de tous les réglages par défaut selon les préférences de
l'utilisateur.
C'est pour ces raisons évidentes qu'il est conseillé lorsque vous vous connectez en tant que
super utilisateur "root", d'utiliser la commande : su - plutôt que su

Pour revenir au shell précédent, taper la commande "exit" ou la combinaison de touches "Ctrl-
d" pour fermer le shell courant et revenir au précédent.

2. Généralités :
1. Pare-feu : system-config-securitylevel
2. Afficher la liste des partitions disponibles avec la commande : cat /proc/partitions
3. Passerelle par défaut : route add default gw 192.168.0.1 dev eth0
4. ajouter des chemins à PATH : Modifier le fichier ~/.bash_profile puis exécuter la
commande source ~/.bash_profile
5. Afficher le nom de l’ordinateur : hostname
6. Afficher les informations sur les cartes réseaux de l’ordinateur : ifconfig
7. Afficher les informations sur la carte réseau eth0: ifconfig eth0
8. un service : service nom_service start
9. Redémarrer un service : service nom_service restart
10. Arrêter un service : service nom_service stop
11. Afficher l’état d’un service : service nom_service status (ex : iptables, network)
12. Démarrer une interface réseau (ex:eth0): ifup eth0 ou ifconfig eth0 up
13. Arrêter une interface réseau (ex:eth0): ifdown eth0 ou ifconfig eth0 down
14. visualiser les fichiers journaux : cat /var/log/messages

3. Changer le nom de la machine Fedora :


Modifier HOSTNAME dans le fichier /etc/sysconf/network et mettre le même nom dans le
fichier /etc/hosts.

4. Configuration d’adresse IP statique :

2
Configuration à la volée :

Ifconfig eth0 adresse-IP netmask le-masque up

Exemple : Ifconfig eth0 192.168.100.1 netmask 255.255.255.0 up

Pour vérifier :

Ifconfig eth0

Configuration permanente:

Modifier le fichier de configuration réseau /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static
IPADDR=
NETMASK=
GATEWAY=
NETWORK=
DNS1=
DNS2=

puis redémarrer le service réseau: service network restart ou « ifdown eth0 puis ifup eth0 »

5. Installation de packages :
1. Installer sur fedora :
a. yum install dhcp/bind-.. (nécessite l’accès à internet) ou
b. rpm –ivh dhcp..(avec les fichiers rpm)

Exemple :

 su –
 cd /home/ista/Desktop/RPMS
 rpm –ivh dhcp-3…rpm
2. Tester l’installation d’un demon : rpm –q dhcp
3. Mettre à jour un package : rpm -Uvh mon_package.rpm
4. Supprimer un package : rpm -e mon_package ou rpm -e mon_package-version
5. Affiche la liste de tous les paquetages déjà installés : rpm -qa
6. Trouver un paquet déjà installé et dont on ne se souvient que d'une partie du nom :
rpm -qa | grep mon_package (ex :bind)
7. Trouver la liste des fichiers contenus dans un paquetage mon_package qui est déjà
installé : rpm -ql mon_package (ex :bind)
8. Obtenir des informations relatives à un paquetage : rpm -qi mon_package (ex :bind)
9. Retrouver le paquetage d'origine d'un fichier : rpm -qf chemin_absolu/mon_fichier

3
10. Obtenir des informations relatives à un paquetage, une brève description de ce que fait
le paquetage, des dépendances qui doivent être satisfaites : rpm -qpi mon_package
(ex : dhcp-…rpm)
11. Obtenir des informations relatives à un paquetage qui n’est pas installé, une brève
description de ce que fait le paquetage, des dépendances qui doivent être
satisfaites : rpm -qpl mon_package (ex : dhcp-…rpm)
12. rpm -i --test mon_package:Effectue simplement une vérification sans installer le
paquetage mon_package. Permet essentiellement de vérifier si l'installation pourrait se
dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire
avorter l'installation.

6. Démarrage/arrêt automatique de services :


1. Vérifier le lancement automatique d’un programme ou d’un service (ex telnet) :
chkconfig --list telnet
2. Pour lancer l’exécution automatique d’un service lors du démarrage de la machine
(dans tous les niveaux fonctionnels) : chkconfig service on
3. Pour arrêter l’exécution automatique d’un service lors du démarrage de la machine
(dans tous les niveaux fonctionnels) : chkconfig service off
4. Pour lancer l’exécution automatique d’un service lors du démarrage de la machine
dans un niveau fonctionnel n : chkconfig –level n service on
5. Pour lancer l’exécution automatique d’un service lors du démarrage de la machine
dans les niveaux fonctionnels n et m: chkconfig –level nm service on
6. Pour arrêter l’exécution automatique d’un service lors du démarrage de la machine
dans les niveaux fonctionnels n et m: chkconfig –level nm service off

Niveaux d’exécution:

Le fonctionnement d’un système Linux est régi par des niveaux d’exécution. Un système
Linux est toujours dans un niveau d’exécution quel que soit son activité.

Le niveau d’exécution est un niveau fonctionnel dans lequel on aura déterminé la liste des
services à arrêter ou à démarrer.

Quand un système rentre dans un niveau d’exécution, il regarde s’il doit arrêter ou démarrer
des services

Niveaux d’exécution possibles :

Niveau0 : le système est arrêté (on configure les services à arrêter quand on arrête
physiquement une machine)

Niveau1 : réservé aux opérations de maintenance et ne permet qu’une seule connexion, celle
de root. Dans ce niveau, la plupart des services sont arrêtés

Niveau2 : sur la plupart des systèmes, ce niveau n’est pas utilisé. Il est laissé à la disposition
de l’administrateur qui pourra établir à partir de ce niveau un mode de fonctionnement
particulier avec seulement certains services démarrés.

4
Niveau3 : sur la plupart des systèmes, ce niveau est fonctionnel, c’est-à-dire que tous les
services sont démarrés mais l’interface graphique n’est pas disponible.

Niveau4 : sur la plupart des systèmes, ce niveau n’est pas utilisé. Il est laissé à la disposition
de l’administrateur qui pourra établir à partir de ce niveau un mode de fonctionnement
particulier avec seulement certains services démarrés.

Niveau5 : sur la plupart des systèmes, ce niveau est fonctionnel, c’est-à-dire que tous les
services sont démarrés et l’interface graphique est disponible.

Niveau6 : temporaire par définition, le niveau 6 est celui d’un système en train de redémarrer.

Pour afficher le niveau fonctionnel : runlevel

Pour changer le niveau fonctionnel d’exécution : telinit niveau (ex : telinit 3)

7. DNS:
 Fichier de configuration du service dns : /etc/named.conf
 Our vérifier l’absence des erreurs (oublie de ; ...) : named-checkconf
 Pour créer une zone principale directe :

zone "nom-zone" in {
type master ;
file "nom-zone.zone" ;
};

exemple :

zone "test.ma" in {
type master ;
file "test.ma.zone" ;
};

 Répertoire contenant les fichiers de configuration des zones dns : /var/named


cd /var/named
cat localhost..zone > ofppt.ma.zone
vi ofppt.ma.zone
 Après avoir terminé la création de notre zone, nous pouvons vérifier notre
configuration de zone en utilisant :

named-checkzone « nom de zone » « chemin de fichier de zone »

5
exemple : named-checkzone test.ma /var/named/test.ma.zone

 exemple d’une zone principale inverse :

zone "1.168.192.in-addr.arpa" in {

type master ;

file "test.ma.rev" ;

};

 Exemple de fichier de zone /var/named/test.ma.zone

$TTL 604800
@ IN SOA pr.test.ma. root.test.ma. (
2003040102 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; TTL
@ IN NS pr.test.ma.
pr IN A 192.168.90.100
c1 IN A 192.168.90.110

 Exemple de fichier de zone /vara/named/test.ma.rev

$TTL 604800
@ IN SOA pr.test.ma. root.test.ma. (
2003040102 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; TTL
@ IN NS pr.test.ma.
100 IN PTR pr.test.ma.
110 IN PTR c1.test.ma.

1. Configuration d’un client DNS :

La configuration des clients du réseau, peut se faire par deux moyens différents: statiquement
ou dynamiquement.

Configuration statique d’un client DNS :

Le fichier /etc/nsswitch.conf indique à une machine linux l’ordre à suivre pour faire une réso-
lution de nom de domaine.

La ligne : hosts files dns (ceci est la ligne standard vous pouvez changer l’ordre) indique au
client DNS que la résolution du nom sera réalisée à partir du fichier /etc/hosts de l’ordinateur

6
local, s’il n’existe pas de résultat, il interroge alors un serveur de nom (Name Server) qui est
indiqué dans le fichier /etc/resolv.conf.

Le fichier /etc/hosts contient une correspondance entre des ip et leurs noms de domaine.

/etc/resolv.conf
search Nom_domaine1 Nom_domaine2
nameserver 192.168.14.21
namserver « ip du deuxieme DNS »

Les options figurant au début du fichier de zone (serial, refresh...) servent pour le DNS
secondaire. Détaillons ces options :

serial
C'est le numéro (un nombre entier) de version du fichier d'information de zones. Ce
numéro est utilisé par les DNS secondaires pour savoir si le fichier d'informations de
zone du DNS primaire a été changé. Il doit être augmenté de 1 à chaque modification
du fichier.
refresh
Intervalle de temps en secondes durant lequel le DNS secondaire attend avant de
vérifier (et éventuellement mettre à jour) l'enregistrement SOA du DNS primaire. Ces
enregistrements ne changent pas souvent en général, une journée (86400 secondes)
peut largement suffire.
retry
Intervalle de temps en secondes durant lequel le DNS secondaire attend avant de
réessayer une requête vers le DNS primaire si celui ci n'est pas accessible. Cette valeur
devrait être de quelque minutes.
expire
Intervalle de temps en secondes durant lequel le DNS secondaire attend avant de
rejeter les informations de zones s’il n'a pas pu contacter le DNS primaire. Cette
valeur devrait être de plusieurs jours (voir plusieurs mois).

2. Maintenir le contenu de /etc/resolv.conf

PEERDNS=no dans /etc/sysconfig/network-scripts/ifcfg-eth0

search isp.com
nameserver 202.54.1.110
nameserver 202.54.1.112
nameserver 202.54.1.115

Note Max. three nameserver can be used/defined at a time.

3. DNS: transfert des fichiers de zones sous fedora

Le transfert doit être effectué vers le rep /var/named/slaves

7
ou

changer les droits de /var/named (chmod g+w /var/named)

 exemple d’une zone principale directe :

zone "test.ma" in {

type master ;

file "test.ma.zone" ;

allow-transfer { @IP_serveur_secondaire ;} ;

};

 Exemple de fichier de zone /var/named/test.ma.zone

$TTL 604800
@ IN SOA pr.test.ma. root.test.ma. (
2003040102 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
6048

00 ) ; TTL
@ IN NS pr
IN NS sec
pr IN A 192.168.90.100
sec IN A 192.168.90.101
c1 IN A 192.168.90.110

 exemple d’une zone secondaire directe :

zone "test.ma" in {

type slave ;

file "slaves/test.ma.zone" ;

masters { @IP_serveur_primaire ;} ;

};

4. Zones stub :
exemple d’une zone stub directe :

zone "test.ma" in {

8
type stub ;

file "slaves/test.ma.zone" ;

ma

sters { @IP_serveur_primaire ;} ;

};

5. Redirecteurs conditionnels:
zone "wanadoo.fr"
{
type forward;
forwarders { @IP_serveur; };
};

6. Redirecteurs :
Dans /etc/named.conf
Options {
Forwarders { @IP_serveur ; } ;
};

7. Délégation d’une zone :


Exemple de fichier de zone /var/named/test.ma.zone

$TTL 604800
@ IN SOA pr.test.ma. root.test.ma. (
2003040102 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; TTL
@ IN NS pr
Ss1.test.ma. IN NS sec
pr IN A 192.168.90.100
sec IN A 192.168.90.101
c1 IN A 192.168.90.110

9
puis dans la machine dont l’@IP est 192.168.90.101 définir la zone ss1.test.ma.

8. Mise à jour automatiques des enregistrements DNS:


zone "test.ma" in {
type master ;
file "test.ma.zone" ;
allow-update { @IP_machines_autorisées ;} ;
};

exemple des @IP_machines_autorisées: 172.16.1.2 ; 172.171.170/24.

Sur la machine cliente : ipconfig /registerdns

 Chmod 777 /var/named


 Redémarrer named
 Modifier l’@IP du client
 Vérifier la création de fichiers .jnl, redémarrer named et vérifier que le client a
été bien ajouté dans les fichiers de zone directe et inverse (l’ajout dans les
fichiers de zones peut prendre quelques minutes).

8. DHCP sur FEDORA :


- On ne trouve pas le fichier /etc/dhcpd.conf après l’installation. Pour cela, on copie le
fichier d’exemple /usr/share/doc/dhcp-3../dhcpd.conf.sample puis on le modifie ;
cp /usr/share/doc/dhcp-3.0.2/dhcpd.conf.sample /etc/dhcpd.conf

option broadcast-address 192.168.1.255 ;


option routers @gateway ;
option subnet-mask 255.255.255.0;
option domain-name nom_domaine;
option domain-name-servers @dns1, @dns2 ;
range dynamic-bootp 1.2.3.60 1.2.3.99 ;
default-lease-time 3600;
max-lease-time 14400;
host x {
Hardware Ethernet 11:55:55:55:88:44;
Fixed-address 1.2.3.55;
}

- Pour ajouter un dns secondaire dans dhcpd.conf pour un serveur dhcp, on le met à la
suite sur la ligne option domain-name-servers.
Exemple :option domain-name-servers 10.0.1.2, 10.0.1.3;

10
- Pour les clients linux, on doit modifier le fichier /etc/scripts/network-scripts/ifcfg-eth0
et taper la commande dhclient. ( dhclient –r puis dhclient)
Ou ifdown eth0 puis ifup eth0 puis service network restart

pour verifier syntax d'erreur de dhcp


dhcpd -t /etc/dhcpd.conf

dhclient en linux= ipconfig /renew

- /var/lib/dhcp/dhcpd.leases, sert à l'inscription des clients. Chaque client DHCP,


génère l'écriture d'un enregistrement dans ce fichier. Cela permet le suivi, les
statistiques de l'activité du serveur.
- Les machines linux n’envoient pas leur nom de machine par défaut. Pour résoudre ce
problème il faut créer un fichier appelé dhclient.conf ou si le problème persiste
dhclient-<num d’interface>.conf le fichier doit être dans le répertoire /etc. Ce fichier
contiendra au moins cette ligne : send host-name “nom_machine” ;

9. Configurer le serveur DHCP pour faire les mises à jour dynamiques de


DNS :
 Pour le fichier /etc/named.conf :
zone "ista-bz.ma" in {
type master ;
file "ista-bz.ma.zone" ;
allow-update { @IP_serveur_DHCP;} ;
}

 Chmod 777 /var/named

 Pour le fichier /etc/dhcpd.conf :


ddns-update-style interim;
ignore client-updates;
ddns-updates on;
update-static-leases on;

 Redémarrer named
 Redémarrer dhcpd
 Attribuer une @IP dynamique à un client
 Vérifier la création de fichiers .jnl, redémarrer named et vérifier que le client a
été bien ajouté dans les fichiers de zone directe et inverse.

N.B : Pour les clients windows, on a un problème sur VMware. Solution : désactiver le DHCP
du VMware (services.msc puis arrêter le service vmware dhcp).

11
10.Ajouter une carte réseau à une machine Fedora sur Vmware :
- Machine virtuellesettingsaddnetwork adapterok.
- Redémarrer la machine.
- Environnement de bureauparamètres systèmeréseau
- Vérifier que la carte ajoutée se trouve dans l’onglet Matériel. Si c’est le cas, dans
l’onglet Périphériques, cliquer sur NouveauConnexion
Ethernetsuivantsélectionner la carte ajoutéesuivantconfigurer l’adresse IP.

11.Routage sur Fedora :


Pour activer le routage sur Fedora : echo 1 > /proc/sys/net/ipv4/ip_forward
Pour maintenir le contenu du fichier à 1 : modifier le fichier /etc/sysctl.conf en
affectant à la variable net.ipv4.ip_forward la valeur 1 puis taper la commande
sysctl –p

Routage statique :
Ajouter une route statique :
route add –net @Ip_reseau netmask @mask gw @IP_gw
supprimer une route statique :
route del –net @Ip_reseau netmask @mask gw @IP_gw

Pour changer la passerelle globale :


route add default gw ip_passerelle
ex: route add default gw 192.168.1.1

Après tu peux changer la passerelle par destination :


route add default -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2

pour supprimer une passerelle :


route del default gw 192.168.1.2
ou par destination :
route del default -net 10.0.0.0 netmask 25.0.0.0 gw 192.168.1.2

Routage dynamique :
- Installer le package quagga-0.98.3-2.i386.rpm
- Configurer le fichier de config /etc/quagga/zebra.conf (ajouter la ligne password
mot-de-passe)
- Démarrer le service zebra: service zebra start

Routage rip:
Créer le fichier /etc/quagga/ripd.conf (ajouter les lignes hostname nom et password
mot-de-passe)

12
Démarrer le service ripd: service ripd start
Routage ospf:
Créer le fichier /etc/zebra/ospfd.conf ou /etc/quagga/ospfd.conf (ajouter les lignes
hostname nom et password mot-de-passe)
Démarrer le service ospfd: service ospfd start

Pour configurer zebra ou un protocole en particulier:

 zebra: telnet 127.0.0.1 2601


 rip: telnet 127.0.0.1 2602
 ospf: telnet 127.0.0.1 2604

Les ports ouverts selon votre configuration seront :


zebra 2601/tcp
ripd 2602/tcp
ripng 2603/tcp
ospfd 2604/tcp
bgpd 2605/tcp
ospfd 2606/tcp

Enable
Configure terminal
Router rip
Version 2
Network …
Write
End
C1opy r s

12.Telnet sous Fedora :


- Installer xinetd : rpm –ivh xinetd-2.3.13-6.i386.rpm
- Installer telnet-server : rpm –ivh telnet-server-0.17-35.i386.rpm
- Modifier le fichier /etc/xinetd.d/telnet (on ajoute une ligne – « port=23 »-- et
on modifie le paramètre disable : on met no
- Ajouter un user et un password (userdadd tel_cl et passwd tel_cl)
- Redémarrer le service xinetd
- Tester l’accès depuis une machine cliente ( telnet ; open ; @serveur ;..
- Remarque : le serveur dns doit être démarré
- Fermer la session : exit

13.rsh sous Fedora :

13
- installer le package rsh-server : rpm –ivh rsh-server…rpm
- configurer les fichiers rsh et rlogin dans /etc/xinetd.d (disable= no)
- démarrer le service xinetd

rlogin, rsh : sur la machine cliente

rsh –l user remote_host exemple: rsh –l u10 20.21.22.1

rlogin –l user remote_host

Si on veut se passer du mot de passe à chaque connexion depuis la machine cliente au


serveur :

sur le serveur

- ajouter la ligne rsh dans le fichier /etc/securetty


- sur le serveur, créer le fichier ~/.rhosts dans le répertoire personnel de l’utilisateur
(avec la session de cet utilisateur) qui va se connecter à distance où on met dans
chaque ligne :

@machine_cliente nom_utilisateur (où machine_cliente est la machine


autorisée à se connecter au serveur)

- chmod 600 .rhosts

Exemple : le serveur S1=20.21.22.1, le client S2=20.21.22.2. S1 et S2 contiennent un


utilisateur u00.

CAS1 :

Sur S1 : Dans le répertoire personnel de u00, on crée le fichier .rhosts et on met le


contenu (20.21.22.2)

Sur S2 : root@S2 ]# rsh –l u00 20.21.22.1 ls

ne marchera pas car root n’est pas autorisé par contre

u00@S2 ]$ rsh 20.21.22.1 ls donnera le résultat de la commande

CAS2 :

Sur S1 : Dans le répertoire personnel de u00, on crée le fichier .rhosts et on met le


contenu (20.21.22.2 root)

Sur S2 : root@S2 ]# rsh –l u00 20.21.22.1 ls

donnera le résultat de la commande car root est autorisé par contre

u00@S2 ]$ rsh 20.21.22.1 ls ne marchera pas

14
Pour que u00 puisse se connecter depuis la machine cliente au serveur sans avoir à
entrer le mot de passe alors que l’utilisateur connecté est u00, u1 ou root, le fichier .rhosts doit
contenir 3 lignes :

20.21.22.2

20.21.22.2 u1

20.21.22.2 root

sur la machine cliente : il n’est plus nécessaire de se connecter à chaque fois

- rsh –l user remote_host command


- rcp user@remote_host:source destination copie les fichiers depuis machine
distante vers la machine locale
- rcp –r user@remote_host:source destination copie les répertoires depuis machine
distante vers la machine locale

rsh –l user otherhost cat remotefile >> localfile

appends the remote file remotefile to the local file localfile, while

rsh –l user otherhost cat remotefile \>\> other_remotefile

appends remotefile to other_remotefile.

rcp uses the colon (:) to separate the host name and path name which can create
problems when you want to specify local file names which contain a colon
following a drive letter. As a result, when a file argument on the command line is of
the x:path (that is, a single letter followed by a colon and a path name), rcp treats the
argument as path on drive x of the local system as opposed to path on a host named
x. As an alternative, you can specify local file names on a rcp command line, by
using an equal sign (=) in place of the colon and prefixing the name with a slash.
For example, you could specify the local file c:/testfile as /c=/testfile.

14.Ssh sous Fedora :


- Installer ssh : rpm –ivh openssh-server..rpm
- Modifier le fichier /etc/ssh/sshd_config :

port 22
protocol 2
permitrootlogin yes/no
listenAddress (ListenAddress indique sur quelles adresses IPs ton
serveur sshd doit écouter. Par exemple si ta machine a plusieurs cartes réseaux,

15
et plusieurs IPs sur des réseaux différents, tu peux vouloir que ton sshd
n'écoute que sur l'une des IPs ...)

- Redémarrer le service sshd (service sshd restart)


- Client windows : on utilise un logiciel ex :putty
- Client Fedora ; on intalle le ssh client ( rpm –ivh openssh-client…rpm), on
modifie le fichier /etc/ssh/ssh_config (non pas sshd_config) et on le lance :
ssh user@ip_serv_ssh

Authentification avec les clés : se connecter sans avoir à entrer le mot de passe

http://www.linux-france.org/prj/edu/archinet/systeme/ch13s03.html

 Sur la machine cliente : Création des clés : sur votre machine personnelle (client),
constituez-vous une paire de clés (privée et publique) de type dsa protégée par une phrase
d’authentification en tapant la commande ssh-keygen -t dsa.
 Sur le serveur : Mise en place de la clé publique sur le serveur de connexions: copiez la
clé publique .ssh/id_dsa.pub se trouvant sur votre machine personnelle à la fin du fichier
~/.ssh/authorized_keys se trouvant sur le serveur de connexion. Pour cela, 3 étapes:

1. Transfert du fichier id_dsa.pub sur le serveur de connexion: scp .ssh/id_dsa.pub


utilisateur@serveur:.
2. Sur le serveur de connexion, copie du fichier id_dsa.pub, transféré précédemment, à la
fin du fichier .ssh/authorized_keys: ssh utilisateur@serveur cat id_dsa.pub \>\>
.ssh/authorized_keys (attention : le rep .ssh doit exister).
3. Sur le serveur de connexion, suppression du fichier id_dsa.pub transféré
précédemment: ssh utilisateur@serveur rm id_dsa.pub

Ou ssh-copy-id -i id_rsa.pub login@ip_server

 Sur le serveur : chmd 700 ~/home/utilisateur/.ssh


chmd 600~/home/utilisateur/.ssh/authorized_keys

 Modifier le fichier de configuration sshd_config :


PubKeyAuthenticatin yes
PasswordAuthentication no

 Puis redémarrer le service sshd

Sur la machine cliente : on se connecte avec l’utilisateur qui veut se connecter à distance
au serveur, puis on tape la commande : ssh @IP-serveur

Utiliser un agent ssh

L'utilisation d'un agent, évite d'avoir à retaper la "passphrase" à chaque fois que l'on sollicite
l'utilisation de la clé privée. Un agent stocke en mémoire les clés privées. Voici comment
activer un agent : eval `ssh-agent`

16
On va maintenant exporter les clés. Cela consiste à les mettre dans le cache de l'agent avec la
commande ssh-add. La commande demandera la "passphrase" : ssh-add

Nous n'avons plus besoin de taper le mot de passe, ni la "passphrase"

- Pour supprimer une clé (ici DSA) de l'agent, utilisez l'option "-d"

ssh-add -d ~/.ssh/id_dsa

- Utilisez l'option -D pour supprimer toutes les clés de l'agent.


- Utilisez l'option -l pour savoir quelles clés sont chargées par l'agent.
- Pour modifier votre "passphrase" sur une clé privée DSA, utilisez la commande :

ssh-keygen -p -f ~/.ssh/id_dsa

SSH private-keys are usually stored encrypted on the computers they are stored on. A
pass-phrase is used to decrypt them when they are to be used. Since most people use
SSH public-private key-pairs to get around typing in passwords all the time, the ssh-
agent daemon exists to store decrypted private-keys you plan on using in a given
session. The thing most people get tripped up on when using ssh-agent is that what the
program outputs, some borne or csh shell commands, needs to be run. It may look like
ssh-agent has set some variables for you, but it has in fact done no such thing. If you
call ssh-add without processing ssh-agent’s output, it will complain it is unable to
open a connection to your authentication agent. The most straightforward way to run
ssh-agent on the command line is as follows: eval `ssh-agent`. After doing this, calls
to ssh-add should succeed without error.

Faire des tunnels SSH

- Faire un tunnel SSH est un moyen simple de chiffrer n'importe quelle


communication TCP entre votre machine et une machine sur laquelle vous avez un
accès SSH.
- Par exemple, pour établir un tunnel SSH pour une connexion HTTP vers la machine
serveur.exemple.org :
ssh -L 2012:serveur.exemple.org:80 toto@serveur.exemple.org
- où 2012 est le port sur la machine cliente à partir duquel la connexion entre dans le
tunnel SSH (le port doit être supérieur à 1024 si on ne veut pas avoir à lancer le
tunnel en tant que root, et le pare-feu ne doit pas bloquer ce port).

Transfert de fichiers par SSH

Le transfert de fichiers par SSH est possible d'au moins trois façons :

 avec scp (comme Ssh CoPy), qui s'utilise la même manière que la commande cp ;

17
 avec sftp, logiciel très basique qui s'utilise comme ftp. (sftp user@ip)
 avec lftp, pour les transferts de fichiers par FTP.

SCP :

Pour illustrer la syntaxe, je vais vous donner quelques exemples :

 pour transférer le fichier test1.txt situé dans le répertoire courant vers le home du
compte toto de la machine ordi1 sur laquelle tourne un serveur SSH :

scp test1.txt toto@ordi1:

 pour récupérer le fichier test2.txt situé le home de l'utilisateur toto de la machine


ordi2.exemple.org et l'écrire dans le répertoire courant :

scp ordi2:test2.txt .

 pour récupérer tous les fichiers ayant l'extension .txt situés dans le répertoire /usr/local
de la machine ordi2 et l'écrire dans le sous-répertoire test-scp du répertoire courant :

scp toto@ordi2:'/usr/local/*.txt' test-scp

 pour transférer l'intégralité du sous-répertoire test-scp du répertoire courant vers le


sous répertoire incoming du home de l'utilisateur toto de la machine
ordi1.exemple.org :

- Authentification avec les clés : on doit se connecter avec l’utilisateur toto puis
taper la commande : scp -r test-scp ordi1.exemple.org:incoming
- Authentification avec mot de passe :

scp -r test-scp toto@ordi1:incoming

 Vous pouvez très bien copier un fichier d'un ordinateur vers un autre tout en étant sur
un troisième ordinateur :

scp nom@ordi1:chemin/fichier nom@ordi2:chemin/fichier

15.NFS : partage de données entre machines linux


NFS côté serveur : Partager le répertoire /home/test :

Créer le rep /home/test : mkdir /home/test

18
Changer les droits du rep: chmod 777 /home/test

Editez le fichier /etc/exports et rajoutez la ligne suivante pour partager le répertoire


/home/test/ à la machine ordi2.exemple.org :
/home/test ordi2.exemple.org(rw,root_squash)
L’option rw permet d’exporter en lecture-écriture (utiliser ro pour exporter en lecture
seule). L’option root_squash spécifie que le root de la machine ordi2.exemple.org
n’a pas les droits de root sur le répertoire partagé (l’option no_root_squash spécifie
que le root de la machine sur laquelle le répertoire est monté a les droits de root sur le
répertoire). L’option root_squash est l’option par défaut.

Puis taper la commande exportfs –a --permet de lire le fichier /etc/exports

Puis service /etc/init.d/nfs restart

NFS côté client :


Pour monter le répertoire /home/ftp/ partagé par la machine dont le nom DNS est
ordi1.exemple.org dans le répertoire /mnt/test déjà crée, utilisez la commande
mount: mount -t nfs ordi1.exemple.org:/home/ftp /media/test

Démonter un système de fichiers: umount –l rep_montage

Afficher la liste des volumes montés :

- mount
- cat /etc/mtab

Afficher les partages d’un serveur : [root@..]# showmount –e @ip_serveur

/etc/fstab : Permet de monter les systèmes de fichiers au démarrage de la machine

Les options du fichier /etc/fstab :

ro / rw Montage en lecture seulement/lecture-écriture

suid /
Autorise ou interdit les opérations sur les bits suid et sgid
nosuid

dev / Interprète/n'interprète pas les périphériques caractères ou les périphérique blocs


nodev spéciaux sur le système de fichiers

exec /
Autorise ou interdit l’exécution de fichiers binaires sur ce système de fichiers
noexec

auto / Le système de fichiers est (c’est l’option par défaut) / n'est pas monté
noauto automatiquement

user / Permet à tout utilisateur / seulement à root (C’est le paramétrage par défaut) de

19
nouser monter le système de fichiers correspondant

sync / Selon cette valeur, toutes les entrées/sorties se feront en mode synchrone ou
async asynchrone

Utilise le paramétrage par défaut (c’est équivalent à rw, suid, dev, exec, auto,
defaults
nouser, async)

Exemple : 1.2.3.4:/home/test /mnt/l nfs user,auto,rw 0 0

Montage automatique: autofs

AutoFS contrôle les opérations des démons d'automount. Les démons d'automount montent
automatiquement des systèmes de fichiers quand ils sont employés et les démontent après une
période d'inactivité.

Configuration

La configuration se fait à l'aide de 2 types de fichiers. Le fichier auto.master, qui contient les
points de montage, et un fichier par point de montage qui est en fait une nouvelle mappe,
détaillant les options systèmes de ce point de montage.

Le fichier /etc/auto.master

Pour chaque type de montage via AutoFS, éditez le fichier (avec les droits d'administration)
/etc/auto.master pour y ajouter une ligne concernant le type de système de fichier :

/<point_de_montage_parent> /etc/auto.<type>

Exemple : /mnt/nfs /etc/auto.nfs

Chmod 777 /mnt/nfs

Il est possible de passer des options générales à l'automonteur dans le fichier


/etc/auto.master, en particulier le temps d'expiration:

/misc /etc/auto.misc --timeout 3600

Avec cette ligne le temps d'expiration est d'une heure (3600 secondes).

Ensuite, il faut ensuite créer les partages pour chaque type de système fichier éditez le fichier
(avec les droits d'administration) /etc/auto.<type>

<monpartage> -fstype=<type>,rw,options <ip_srv>:/<doss_partage_sur_le_srv>

Exemple : vi /etc/auto.nfs
D1 -fstype=nfs,rw 20.21.22.1:/home/ista/part

20
Puis démarrer le service: service autofs start

16.Samba sous Fedora :


Permet le partage de données entre les machines linux et les machines Windows

 Se connecter à partir de Windows au partage Linux :

1. Installer le package samba: rpm –ivh samba-3.0.14a-2.i386.rpm


2. Créer un utilisateur : useradd user
3. Créer un utilisateur samba : smbpasswd –a user
4. Configurer le fichier /etc/samba/smb.conf (ajouter les partages)

Sections Paramètre Exemple Description


Nom du groupe de travail windows ou du nom de
workgroup WORKGROUP
domaine
netbios
SERVEUR Nom netbios du serveur
name
server Nom apparaissant dans le voisinage réseaux
Serveur
string windows
GLOBAL Définit le niveau de sécurité.
Ici share veut dire partager, on ne demande pas de
security Share mot de passe l'identification se fait suivant
différents paramètres c'est le niveau de sécurité le
plus faible
Spécifie le compte UNIX que samba doit utiliser
guest
Nobody pour les connections en mode invité. Il est à noté
account
que le compte doit exister sur la station UNIX
Path /home/partage chemin du dossier partagé
Mon dossier
comment Commentaire de la ressource
partagé
si "no" = on autorise l'écriture dans ce dossier
PARTAGE read only No
si "yes" = on ne peut que lire
browseable Yes si "yes" = la ressource apparaît dans l'explorateur
Les comptes invité peuvent accéder à cette
guest ok Yes
ressource

Configurer le groupe de travail et le nom du serveur SAMBA (le serveur et


les clients doivent être dans le même groupe de travail).
security:
Choix du mode de sécurité que vous voulez utiliser. Si on utilise
security=user ça oblige que chaque utilisateur ait un compte sur le serveur

21
GNU/Linux.
Si vous voulez lancer un samba qui ne gère pas les utilisateurs et qui ne partage
que des ressources identiques pour tout le monde, vous pourrez utiliser
security=share.

Exemple de partage :
[cdrom]
Comment=partage du lecteur CD
Path=/media/cdrecorder
Writable=yes Écriture autorisée
Browsable=yes partage visibles

Path=/home/user/p1
Chmod 777 /home/user/p1

# Dans quel cas mapper une connexion vers un compte anonyme ?


map to guest = bad user
Si le mot de passe est erroné la connexion est refusée sauf si le compte
utilisé n'existe pas, alors la connexion est autorisée via le compte
"invité" (nobody par défaut), modifiable avec la directive "guest account"

# Partage accessible à tout le monde


[tmp]
path = /tmp
guest ok = yes
writeable = yes
browseable = yes

Petites précisions sur cette configuration :

 map to guest : Directive indiquant si la connexion sera anonyme et dans quel cas. Les
valeur possibles sont never (défaut), bad user, bad password, bad uid;
 guest ok : Permet de définir si le compte invité peut être utilisé pour accéder au
partage. Les valeurs sont yes ou no;
 writeable : Permet d'autoriser ou refuser l'écriture sur le partage. Les valeurs sont yes
ou no;
 browseable : Permet de rendre visible ou non le partage (équivaut au "$" sous
Windows). es valeurs sont yes ou no.

5. Vérifier si le fichier smb.conf est bien configuré :


testparm /etc/samba/smb.conf
6. Démarrer le service samba : service smb start

Pour lister les différents ordinateurs visibles depuis le réseau : findsmb

22
Sur le client Windows : \\@IP_serveurSAMBA pour accéder aux partages avec les droits
définis

Associer le partage au lecteur W : net use w: \\smbserv\tmp


C:\Documents and Settings\biband>w: On accède au lecteur nouvellement mappé

Sur les machines Windows : pour se déconnecter pour pouvoir se connecter sous un
autre nom, il faut supprimer la connexion en cours

 Pour voir les connexions en cours : net use


 pour supprimer une connexion : net use \\<machine>\IPC$ /delete

Partage avec authentification :


Seuls les membres du groupe "sambausers" auront accès au partage. La configuration du
partage :
# Partage accessible uniquement au groupe "sambausers"
[donnees]
path = /samba_share/donnees
comment = Partage de données
writeable = yes
browseable = yes
guest ok = no
valid users = @sambausers //la directive "valid users" liste les comptes\groupes autorisés

Lister les comptes Samba :


 pdbedit -L
 pdbedit -v julien
La commande pdbedit permet aussi d'ajouter, supprimer et modifier les comptes Samba.

 Le résultat de connexion des utilisateurs est visible dans le log


/var/log/samba/[nom_machine_winodws].log

Si malgré la directive "writeable = yes", la création de fichier dans le partage est refusée :
Extrait du log :
[2010/02/06 16:21:35, 2] smbd/open.c:open_directory(2165)
open_directory: unable to create Nouveau dossier (2). Error was
NT_STATUS_ACCESS_DENIED
C'est normal, les droits Unix du répertoire partagé ne permettent pas aux membres du
groupe "sambausers" la création de fichiers, modifions cela : chmod 777 directory

Directives niveau partage :

 read only : Lecture seule (valeurs, yes ou no);


 valid users : Liste les utilisateurs et groupes autorisés à se connecter au partage;
 force user, force group : Force la connexion avec "en tant que" l'utilisateur ou le
groupe spécifié;

23
 read list, write list : Liste les utilisateurs et groupes autorisés en lecture ou en
écriture;
 guest ok : Autorise ou refuse l'accès au compte "guest" (valeurs, yes ou no);
 guest account : Spécifie quel compte sera utilisé comme compte guest (valeur, un
nom de compte);
 map to guest : Spécifie dans quel cas utiliser le compte guest.

 Se connecter à partir de linux au partage Windows :


1. Partager un dossier sur Windows

 Monter un partage Windows du voisinage réseau :


mount.cifs //ip_windowds/rep_partage pt_montage –o user=nom_user
Ex : mount.cifs //192.168.10.122/smb_rep /mnt/tt –o user=u1

ou
mount -t smbfs -o username=utilisateur,password=mdp //nom_netbios/partage
point_montage
ex : mount -t smbfs -o username=u1,password=ok //10.0.0.1:/partage /mnt

17.Ftp sous Fedora : rpm –ivh vsftpd-2.0.3-1.i386.rpm

1. Rpm –q vsftpd
2. Rpm –ivh vsftpd-2.0.3-1.i386.rpm
3. Fichier de configuration: /etc/vsftpd/vsftpd.conf
Anonymous_enable=yes/no (autoriser les clients anonymes)
Write_enable=yes/no (droit d’écriture)
Ftpd_banner=bienvenue
4. Service vsftpd start

Client Windows:

 Exécuter\\@serveur_FTP
 Cmdftp @serveur

– help : affiche la liste des commandes disponibles,


– help commande : affiche l’aide de la commande,
– ls : liste le contenu du répertoire distant,
– ls -la : liste le contenu du répertoire distant avec les fichiers cachés et les
permissions,
– cd répertoire : change de répertoire distant,
– lcd répertoire : change de répertoire local,
– get fichier : télécharge le fichier,

24
– put fichier : dépose le fichier,
– mget fichier : télécharge plusieurs fichiers : mget a*
– mput fichier : dépose plusieurs fichiers : mput a*
– quit : met fin à la connexion.

Client Linux:

 ftp @serveur
 On peut utiliser sftp

Pour se connecter en utilisateur toto sur le serveur ftp.exemple.org : sftp


toto@ftp.exemple.org. Une fois connecté, un nouveau prompt apparaît : sftp >

18.HTTP sous Fedora :


1. Installer httpd et ses dépendances :
 rpm –ivh apr-0…rpm
 rpm –ivh apr-util…rpm
 rpm –ivh httpd…rpm
2. Configurer le fichier de configuration /etc/httpd/conf/httpd.conf.

Pour ne pas afficher la page d’accueil par défaut : désactiver le contenu de


/etc/httpd/conf.d/welcome.conf (vider le contenu de ce fichier ou le renommer).

Pour héberger un site web, on met le contenu de ce site web dans le répertoire de
base /var/www/html.
Le nom de la page d’accueil doit être obligatoirement "index.html".

Servir différents sites sur différents ports : (supprimer la ligne Listen 80 au début
du fichier de config) à la fin du fichier ajouter les lignes suivantes :
Listen 80
Listen 8080

NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080

<VirtualHost 172.20.30.40:80>
ServerName www.example.com
DocumentRoot /www/domain-80
</VirtualHost>

<VirtualHost 172.20.30.40:8080>
ServerName www.example.com

25
DocumentRoot /www/domain-8080
</VirtualHost>

Pour héberger plusieurs sites web, on utilise les virtual hosts dans le fichier de
configuration :

NameVirtualHost @IP-interface NameVirtualHost *


<VirtualHost @IP-interface > <VirtualHost * >
ServerName site1.domaine.ma ServerName site1.domaine.ma
DocumentRoot /home/user/site1 DocumentRoot /home/user/site1
</VirtualHost> </VirtualHost>

<VirtualHost @IP-interface ou * > <VirtualHost * >


ServerName site2.domaine.ma ServerName site2.domaine2.ma
DocumentRoot /home/user/site2 DocumentRoot /home/user/site2
</VirtualHost> </VirtualHost>

 ServerName : c'est l'adresse que l'on va saisir dans notre navigateur.


 DocumentRoot : c'est le répertoire racine qui sera consulté au moment où un client
entre l'url ServerName dans son navigateur.

DNS doit être configuré (site1.domaine.ma et site2.domaine2.ma existent le fichier


de configuration de zone)

Exemple :

NameVirtualHost 20.21.22.1
<VirtualHost 20.21.22.1>
ServerName www.tri.ma
DocumentRoot /home/ista/Desktop/tri
</VirtualHost>

<VirtualHost 20.21.22.1>
ServerName aaa.ofppt.fr
DocumentRoot /home/ista/Desktop/ofppt
</VirtualHost>

Le dossier /home/ista/Desktop/tri contient le siteweb tri et la page d’accueil doit


obligatoirement etre nommé index.html dont le contenu est le suivant :

<html>

<head><title>tri2013</title></head>

<body>premier site web</body>

26
</html>

Le dossier /home/ista/Desktop/ofppt contient le siteweb tri et la page d’accueil doit


obligatoirement etre nommé index.html dont le contenu est le suivant :

<html>

<head><title>ofppt</title></head>

<body>deuxième site web</body>

</html>

Le serveur doit contenir les zones tri.ma (cette zone contient l’enregistrement www) et
ofppt.fr (cette zone contient l’enregistrement aaa).

NB: L’utilisation des virtual hosts masquent le répertoire de base /var/www/html.

Un serveur peut être accessible par plus d'un nom. Il suffit de placer la directive ServerAlias
dans une section <VirtualHost>.

Par exemple, dans la première section <VirtualHost> ci-dessous, la directive ServerAlias


indique aux utilisateurs les autres noms permis pour accéder au même site Web :

<VirtualHost *:80>
ServerName www.example.com
ServerAlias aaa.example.com
DocumentRoot /www/domain
</VirtualHost>

3. Démarrer le service hhtp : service httpd start

27