Samedies

Femmes et logiciels libres


Accueil du site > Notes > installation d’un LAMP

26 mai 2007

installation d’un LAMP

Installation d’un LAMP sur notre serveur Fathia

Notes du Samedi 26 mai 2007


JPEG - 29.8 ko

LAMP

Un LAMP c’est l’ensemble des logiciels suivants :
Linux, système d’exploitation
Apache, serveur web
MySQL, gestionnaire de base de données
et
Php , langage de script.

Petit détour avant de commencer... c’est embêtant, personne ne se rappelle du mot de passe root de notre installation ’Fathia’ ! Il faut alors effacer et remplacer ce mot de passe. Juliane nous révèle comment faire :

On démarre la machine sur un CD live.
Dans le terminal, on se met en root
su
On change le clavier en azerty
loadkeys azerty
Pour voir tout les disque durs, mêmes ceux qui ne sont pas montés :
fdisk -l
créer un dossier
mkdir /mnt/toto
Monter le disque dur qui contient l’installation ’Fathia’ dans notre nouveau _ dossier
mount dev/sda1 /mnt/toto/
on s’y rend
cd /mnt/toto
ouvrir et éditer le fichier qui contient notre mot de passe
vi /etc/passwd
il faut effacer le x dans la ligne commençant par root. C’est l’indication du mot de passe administrateur.
Ce x indique qu’il existe un mot de passe et qu’il est dans le fichier /etc/shadow, sous forme encryptée. (Le fichier shadow (ombre en anglais) n’est lisible en plus que par l’administrateur, par mesure de sécurité). Si on supprime le x, on supprime en quelque sorte le "chemin", et root n’a plus de mot de passe.

JPEG - 35.3 ko
passwd

Actuellement notre installation n’a plus de mot de passe root !!

On redémarre Fathia (sans CD live) et un nouveau mot de passe nous est demandé.

De la théorie

Avant de poursuivre avec notre installation LAMP, un peu de théorie.

1) Quel est le rôle d’Apache ?
Apache est un serveur http. Quand nous envoyons une requête avec soit une adresse ip, soit une URL (une adresse web genre www.samedi.collectif.net) à un serveur Apache, il nous renvoie une page html.

Pour du simple html, aucun module supplémentaire est nécessaire. Aucune sécurisation est nécessaire pour ce service, car le serveur ne fait que sortir des données.

2) Le Php
Pour une page dynamique, le Php doit être ajouté à notre serveur. Demandons nous une page php à notre serveur, il transmet la tache à l’interpréteur Php, qui génère du code html à partir de la demande. Si par exemple on veut la date actuelle affichée dans notre page, Php crée la page html en tenant compte des donnés actuelles. Ainsi le serveur nous renvoie une page html qui a été générée dynamiquement.
Il y a une bonne explication visuelle ici.

Avec l’installation du Php il faut commencer à sécuriser son serveur, car des requêtes demandant des données "sensibles" peuvent entrer maintenant.

3) MySQL
Si nous voulons nous servir d’une base de données, nous devons ajouter MySQL à notre serveur.
SQL est le langage standard d’interrogation de base de données. SQL est un logiciel propriétaire développé au départ par IBM. SQL n’est pas accessible librement, il doit être acheté auprès de ISO ou ANSI (organismes de standardisation). MySQL à été créé comme alternative libre.

Demandons nous à notre serveur des informations qui se trouvent dans une base de données, Php transmet notre requête à MySQL, en reçoit les données demandées et traduit le tout en page html, qui nous sera envoyée par le serveur.

Les bases de donnés de MySQL contiennent des données sensibles (données personnelles des clients etc). La sécurisation du serveur doit alors pouvoir les protéger.

Par défaut toutes ces requêtes entrent en notre serveur par le port 80.

Si nous ajoutons des services comme SSH ou FTP il faut ouvrir en plus le port 21. Attention, tout le monde pourrait maintenant entrer dans notre serveur via cette porte. Donc il faut le cadenasser, via login et mot de passe !

SSH, secure shell est un protocole de communication sécurisé. Il permet de commander un shell dans notre serveur à distance. Toutes les informations envoyées sont chiffrées.
(Bon à savoir : Telnet est un protocole réseau non crypté. Protéger son serveur et ensuite l’accéder non chiffré ne sert strictement à rien !!)
FTP, le File Transfer Protocol est nécessaire pour télécharger des fichiers sur notre serveur.

En général : dès qu’une personne a accès de l’extérieur à un serveur cela signifie qu’en principe une personne mal intentionnée pourrait y accéder également.

Installer LAMP

Deux petites lignes de commandes sont suffisantes pour installer la réunion de ces logiciels :
apt-get update
apt-get install phpmyadmin

En installant phpmyadmin les dependances font que le LAMP complet sera installé : phpMyAdmin nécessite MySQL et PHP, ces deux là nécessitent Apache.

Mais apt-get update nous montre qu’avant l’installation nous devons adapter notre liste de source d’installation, le CD d’installation ne doit pas y figurer.
vi /etc/apt/sources.list on ouvre le fichier dans l’éditeur
On y met le CD en commentaire. Et on change la source ’sarge’ en ’stable’.

Maintenant on lance l’installation du LAMP
Avant de confirmer le pas d’installation on jette un coup d’oeil sur la liste des dépendances :

JPEG - 105.3 ko
apt-get install phpmyadmin

Tout a l’air d’être là.. on confirme, taper ’enter’.

L’installation est terminée. On teste notre serveur à partir d’une autre machine. Dans un navigateur on entre l’adresse ip de Fathia. La page par defaut d’Apache nous est renvoyée. ça marche !

JPEG - 14.6 ko
itWorks !

Installer SSH

agt-get install openssh-serveur Voila, c’est fait.
A partir d’une autre machine on teste si on peut accéder à Fathia :
Dans une des machines Windows on installe Putty, un émulateur de Shell sous Windows. Ce logiciel nous permet de gérér notre serveur à distance.
Dans Putty
login : root
mot de passe : ***
mais, ça nous donne : accès denied _ :-( SSH empêche qu’on se connecte en tant que root. On regarde dans le fichier de configuration de SSH (qui se trouve /etc/ssh/sshd.conf).
vi sshd_config nous apprend que ’permitRootLogin=yes’, le root devrait en principe pouvoir accéder à distance.

On réessaye, et ça marche maintenant, on s’est trompé de mot de passe tout simplement.

Mais concernant la configuration du SSH : il est fortement déconseillé de mettre ’permitRootLogin’ sur yes ! Tout le monde pourrais ainsi en principe se connecter en tant que root. C’est à éviter bien sur. Alors pour bien protéger notre serveur on configure notre SSH comme suivant :
* ’permitRootLogin=no’.
* changer le port, ne pas laisser 22 qui est le port par défaut. On a mis 422.
* valid user ; uniquement les utilisateurs inscrits peuvent ainsi se loguer.

Question : si on supprime l’accès ssh pour root, comment administre-t-on le serveur à distance ? - il va pas un peu loin Christian ?
Réponse : on supprime uniquement l’accés au root pour une raison évidente : La première chose que le serveur va demander c’est le login - Si on laisse le root - il ne reste plus qu’a essayer des mots de passe - donc on l’enlève - cela ne veut pas dire que l’on ne peut lancer la commande su ou sudo ;-) - mais normalement le user (non root) se connecte a son compte et administre les pages webs sur sa home (dans le dossier HTML_PUBLIC)

Q : Il existe des méthodes de sécurisation de ssh avec clef publique/privée, restriction d’ip ???
R : Oui tout à fait - si on administre le site depuis le même PC cela va mais si on veut pouvoir le faire depuis n’importe où ... alors... Donc en résumé : on pourrait autoriser root uniquement avec clef publique/privée, ce qui permettrait facilement les connexions à partir de son ordi de travail. On se connecte en tant qu’utilisateurice ordinaire à partir d’autres ordi, et on fait un su pour travailler en root pour l’administration serveur.

Les utilisateurices qui ont un site le gèrent dans leur répertoire assigné, et se connectent sous leur identifiant ordinaire, pas besoin d’être root.

L’administration du serveur consiste en beaucoup d’autres tâches : mettre à jour les paquets, vérifier l’intégrité des données, les formulaires en php, contrôler l’espace disque, nettoyer les logs, observer les attaques, ....histoire à suivre, c’est ce que nous apprenons.

Tester phpMyAdmin

On essaye d’aller sur phpmyadmin : http://192.168.2.199/phpmyadmin L’interface de gestion de phpmyadmin nous est affichée. On entre notre login root et mot de passe, mais malheureusement un message d’erreur nous est renvoyé : serveur not responding.
Le logiciel est soit mal configuré, soit la bonne version n’est pas installée.
Sur Fathia apt-get install php5-mysql nous donne l’information que ’est déjà installé ... ce n’est pas ça le problème alors.
On redémarre Apache, mais ça ne marche toujours pas ...

Zut, time is up, on doit s’arrêter là ... c’est pour la prochaine fois ...



Logo ada | RSS 2.0 | SPIP | Squelettes | Espace privé | Plan du site