38
Atelier linux III • ssh • cvs • Serveur http • nfs http://www.ift.ulaval.ca/~alikacem/

Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

Embed Size (px)

Citation preview

Page 1: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

Atelier linux

III

• ssh

• cvs

• Serveur http

• nfs

http://www.ift.ulaval.ca/~alikacem/ateliers/linux.html

Page 2: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

Open ssh propose une implémentation gratuite et open source de ssh.

La distribution de ssh comprend

Côté client Côté serveur

ssh sshd

scp sftp-server

sftp

www.openssh.com

Page 3: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

•A quoi ça sert ?

•ssh permet d’obtenir une session de shell sur une machine distante.

•Il permet d’exécuter des commandes sur la machine distante et de transférer des fichiers par le réseau.

•Il est sécuritaire, contrairement à telnet, rlogin, ftp, etc. Toutes les communications sont encryptées.

ssh

Page 4: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

ssh côté serveur – configurer sshd

Le fichier /etc/sshd_config permet de configurer sshd.Les options sont très nombreuses mais «man sshd» les détaille très bien.

Page 5: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sshcôté serveur : activer le service manuellement

Le répertoire /etc/rc.d/init.d contient tous les services disponibles sur une machine linux. Tous ces scripts répondent à la même syntaxe.

Page 6: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sshcôté serveur : activer le service au démarrage

Pour activer un service au démarrage, il faut d’abord connaître le niveau de démarrage de linux. Celui-ci est réglé dans /etc/inittab

Niveau :

S- root seulement3-console5-graphique

(man init.d)

Page 7: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

côté serveur : activer le service au démarragessh

En se placant dans le répertoire /etc/rc.d/init.d/rcX.d, on peut faire des liens vers les scripts de services pourqu’ils soient démarrés au boot

rcX.d où X correspond au runlevel de inittab

<S | K> pour démarrer/arrêter le service

<#> ordre de démarrage/d’arrêt

Page 8: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sshcôté serveur :vérifier les logs

sshd loge ses messages dans syslog. Vous pouvez donc les lire avec une commande comme tail –n400 /var/log/message | grep sshd

Page 9: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sshcôté client

Cette commande vous permet d’utiliser votre compte utilisateur sur une machine distante. Le compte doit être créé au préalable.

commande ssh

Nom d’usager sur la machine distante

Nom ou adresse IP de la machine distante.

Syntaxe : ssh userID@hostID

Page 10: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

côté client – créer un jeu de clef pour ssh

ssh

Clef publiqueClef privée

Demande de connexion

On peut se connecter sans taper de mot de passe,l’authentification et l’identification reposent alors

sur un jeu de clefs publiques et de clefs privées.

Page 11: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sshcôté client – créer un jeu de clef pour ssh

•Étape à suivre pour se connecter avec authentification par clef dsa :

•Générer une paire de clef dsa

•Mettre la clef privée dans ~/.ssh/id_dsa

•Mettre la clef publique sur l’ordinateur distant dans ~/.ssh/authorized_keys2

En appliquant cette recette une fois, on aura plus besoin de taper demot de passe pour se connecter en ssh,sftp,scp sur la machine distante

Page 12: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

ssh

N’entrez pas de passphrase pour générer vos clef, c’est moins sécure, mais plus pratique.

côté client –générer une clef pour ssh

Page 13: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

Mettre la clef privée dans ~/.ssh/id_dsa

La clef privée va dans le bon fichier par défaut. Elle doit être accessible seulement pour vous.

sshcôté client –Conserver la clef privée

Page 14: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sshcôté client – donner la clef publique au serveur

Mettre la clef publique dans ~/.ssh/authorised_keys2 sur la machine distante

Page 15: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sshExercice pour s’entraîner

-bloquer l’accès root sur le serveur ssh- modifier le port du serveur pour le port 2000.

Page 16: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

http://httpd.apache.org/

Apache est un serveur web gratuit soumis à la licence de la fondation apache.

Ce serveur est le plus performant actuellement (loin devant IIS) et est extrêmement bien documenté.

Apache représente actuellement 40-50% des serveurs web d’Internet.

Apache est extensible : tomcat, perl, etc…

La version 2.0 de Apache permettra de gérer les nouveaux services web avec soap, xml, xslt, etc.

Page 17: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

apacheInstaller apache

>Télécharger apache

>tar zxf apache-….

>cd apache

>./configure --prefix=/usr/local/apache

>make all install

Apache s’installe comme tout logiciel open source et se compile en moins d’une minute.

Page 18: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

apacheLancement d’apache en mode autonome

L’exécutable apachectrl permet de contrôler le serveur.Pour démarrer apache au boot, faîtes un lien symbolique dans

/etc/rc.d/init.d/rcX.d

Page 19: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

apacheLancement d’apache en mode inetd

Inetd est un démon qui écoute les connexions sur différents ports et peut lancer d’autres programmes pour y répondre. Il permet de réduire

la charge du système mais dégrade les performances d’apache.

Pour lancer apache en mode inetd, il faut d’abord configurer inetd pour qu’il lance apache sur le port 80:

-Son fichier /etc/services doit contenir la ligne : http 80/tcp

-Et son fichier /etc/inetd.conf : http stream tcp nowait nobody /usr/local/apache/bin/httpd httpd -f /usr/local/apache/conf/httpd.conf

Ensuite, il faut changer le ServerType pour inetd dans httpd.conf

Page 20: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

apacheConfiguration 101

Le fichier de configuration de apache se trouve dans apache/conf/httpd.conf. La syntaxe du fichier est claire. Pour trouver

plus d’informations sur la configuration : http://httpd.apache.org/docs/

Page 21: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

apacheConfiguration 101

Principales options du fichier de configuration :

Port : le port du serveur (par défaut 80)

DocumentRoot : le répertoire partagé pour le web.

UserDir : répertoire web personnel de tous les usagers.

DirectoryIndex : nom du fichier html par défaut pour un répertoire.

ScriptAlias : emplacement pour le répertoire des scripts CGI.

La norme CGI permet de faire appel à n’importe quel programme depuis le serveur web. L’entrée et la sortie standard sont utilisées pour

interagir avec le serveur web.

Page 22: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

apacheSécurité 101

Pour sécuriser une partie de site, il faut tout d’abord créer une base de données des utilisateurs avec la commande htpasswd

Fichier de pwd utilisateur

Page 23: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

apache

Ensuite, il faut modifier le fichier de configuration d’apache pour indiquer quelle est la zone à protéger.

Sécurité 102

Page 24: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

http://www.cvshome.org

CVS est un logiciel qui permet à plusieurs programmeur/SEs de travailler sur un même projet en partageant les fichiers du projet.

Il permet de contrôler et de gérer les différentes versions des fichiers.

CVS est un logiciel très complet avec des centaines de fonctionnalités très avancés. C’est l’outil de dévellopement collaboratif par excellence.

La distribution de cvs contient un serveur et un logiciel client.

Page 25: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

cvsCôté serveur – installer CVS

>Télécharger cvs

>tar zxf cvs-….

>cd cvs

>./configure --prefix=/usr/local/cvs

>make all install

>export CVSROOT=<chemin du repository racine>

>cvs init

CVS s’installe comme tout logiciel open source et se compile en moins de 2 minutes.

Page 26: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

cvs

checkout

Accès web

checkout

Accès web

commit

commit

commit

checkout

CVS permet à plusieurs utilisateurs d’avoir accès en lecture ou en écriture aux fichiers d’un même projet.

Page 27: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

cvsCôté serveur – Configurations

Traditionnellement, cvs est installé de 2 façons sur un serveur CVS :

-en mode pserver anonyme : ce mode autorise un compte anonyme à télécharger le code du repository mais ne permet aucune écriture dans le repository.

-en mode ssh : ce mode permet un accès sécurisé au cvs. On donne généralement un compte cvs+ssh à tous les dévelopeur/SEs d’un projet. Ce code permet les opérations d’écriture dans le repository.

Page 28: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

cvs

Obtenir un mot de passe crypté Unix :>passwd nobody (mot de passe vide)>copier le mot de passe crypté depuis /etc/shadow

Créer un compte anonyme :Ajouter une entrée dans $CVSROOT/CVSROOT/passwd:cvs:<passwd crypté>:nobody(compte cvs:passwd:compte système)

Ajouter l’usager à la liste des readers cvs $CVSROOT/CVSROOT/readerscvs

Côté serveur – créer un compte anonyme en lecture seule

Page 29: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

cvsCôté serveur – créer un pserver non sécurisé

Modifier inetd.conf pour inclure le pserver(sur une ligne)

Redémarrer inetd

Page 30: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

cvsCôté client – Utiliser le compte anonyme

Les comptes pserver doivent se logger :cvs -d :pserver:cvs@<serveur CVS>:$CVSROOT login

Ensuite ils peuvent pratiquer une opération de lecture :cvs –d :pserver:cvs@<serveur CVS>:$CVSROOT co toto

Page 31: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

cvsCôté client – Utiliser un compte ssh pour l’écriture

Pour utiliser un compte sécurisé pour l’écriture,il suffit d’utiliser un vrai compte ssh sur la machine serveur CVS :

Page 32: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

Côté client – Cervisia

Cervisia permet d’accéder graphiquement au code partagé. Il est souvent nécessaire de bien configurer CVS_RSH pour lancer cervisia. On

recommnade également de déposer la clef publique ssh sur la machine serveur pour faciliter l’utilisation de cervisia (sinon, vous devrez entrer

votre mot de passe à chaque accès au cvs…:( )

cvs

Page 33: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

cvsCôté client – Cervisia

Cervisia permet de manipuler graphiquement les fichiers partagés et simplifie énormément l’utilisation de CVS.

Page 34: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

Samba permet à des stations Unix d’intégrer de manière transparente un réseau windows. Il permet d’accéder ou de partager des imprimantes, des systèmes de fichiers.

Les machines samba sont représentées sur le réseau comme si elles étaient des machines windows standard.

Samba transfert les fichiers plus rapidement que Microsoft..

Malgré tout, samba n’est pas très facile à configurer.Mais cette complexité ne vient pas de samba même…

http://ca.samba.org/samba/samba.html

Page 35: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sambaInstaller samba

>Télécharger samba

>tar zxf samba-…

>cd samba/ource

>./configure --prefix=/usr/local/samba

>make all install

Samba s’installe comme tout logiciel open source et se compile en moins de 5 minutes.

Page 36: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sambaConfigurer samba

Le fichier de configuration de samba se trouve /usr/local/sambalib/smb.conf par défaut. Ce fichier n’existe pas mais on peut utiliser le fichier examples/smb.conf.default :> cp examples/smb.conf.default /usr/local/samba/lib/smb.conf

Ensuite on doit changer les paramètres du fichier de config :-workgroup-netbios name-interfaces

Décommenter la section [public] et créer un répertoire accessible à touTEs pour le partage.

Les configurations de base dans Samba sont rapides à faire, mais le modèle des réseaux windows est TRES complexe…

Page 37: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html

sambaLancer samba

Pour lancer samba, il faut lancer 2 démons :

/usr/local/samba/sbin/nmbd -D/usr/local/samba/sbin/smbd –D

Ces deux démons vont permettre une connexion rapide au réseau windows.

Pour accéder à un serveur samba depuis une autre machine, on peut utiliser l’explorer de windows (depuis windows) ou bien la commande /usr/local/samba/bin/smbclient (sous linux).

Le démarrage de samba est également très simple. Samba peut également être lancé par inetd mais c’est assez inhabituel.

Page 38: Atelier linux III ssh cvs Serveur http nfs alikacem/alikacem/ateliers/linux.html