Formation UNIX Serveur
Yoann Ono Dit Biot
CTO & Co-Founder SYNHACK
ET SI ON PARLAIT DE VOTRE SÉCURITÉ ?
SYNHACK est une startup Normande spécialisée dans la sécurité numérique.
Basée à Seine Innopolis (Petit-Quevilly),
notre société est composée d'experts pluridisciplinaires dans les domaines
de la sécurité numérique.
VÉRIFIONS VOTRE NIVEAU DE SÉCURITÉ
NOS AUDITS DE SÉCURITÉ :
- Tests d'intrusion
- Audits de configuration
- Audits de vulnérabilités
- Audits d'infrastructures
NOS CERTIFICATIONS :
- EC-Council CEH
- Cisco CCNP Security
FORMER VOS SALARIES C'EST VOUS PROTÉGER
PARCOURS DE FORMATION :
- Formation et sensibilisation des
collaborateurs de l'entreprise
- Formation et accompagnement
de l'équipe IT de l'entreprise
Centre de formation agréé par
la DIRECCTE de Haute-Normandie.
LAISSEZ NOS EXPERTS VOUS AIDER
NOS OFFRES :
- Diagnostic Interne : Un expert se déplace au sein de votre entreprise afin de comprendre vos enjeux métiers et d'évaluer l'état de votre sécurité.
- SYNHACK @ Work : Un expert vous accompagne régulièrement à raison de 3 jours de prestation par mois.
Rappel
Commandes système basique
Gestion des droits utilisateur
Gestion des partitions
Tâches CRON
Commande: cd
Description
Cette commande permet de changer de dossier courant.
cd = current directory
Utilisation
cd /tmp
cd ../scripts cd ~/downloads
Commande: ls
Description
Cette commande permet de lister le contenu d'un dossier
ls = list
Utilisation
ls /tmp ls ../scripts ls -al ../scripts
Commande: cat
Description
Cette commande permet d'afficher le contenu d'un fichier
Utilisation
cat /etc/passwd cat example.doc
Commande: rm
Description
Cette commande permet d'effacer un fichier ou un dossier.
rm = remove
Utilisation
rm example.doc rm -rf /home/y0no/example_directory
Commande: nano
Description
Cette commande permet de modifier le contenu d'un fichier.
Utilisation
nano example.txt nano /etc/passwd
Commande: su
Description
Cette commande permet de changer d'utilisateur.
su = switch user
Utilisation
su root su y0no
Commande: sudo
Description
Cette commande permet d'executer une commande en tant qu'un autre utilisateur
sudo = switch user do
Utilisation
sudo apt-get install php5 sudo -u y0no nano test.php
Commande: chmod
Description
Cette commande permet de modifier les droits d'un fichier ou d'un dossier.
Utilisation
chmod 755 example.doc chmod -r 755 ~/ chmod u+x example.doc
chmod ug+rwx example.doc
Commande: chown
Description
Cette commande permet de modifier le propriétaire d'un fichier ou d'un dossier.
Utilisation
chown y0no example.doc chown -r y0no ~/ chown y0no:users example.doc
Commande: mkfs
Description
Cette commande permet de formater une partition
Utilisation
mkfs.ext4 /dev/sda1 mkfs.ntfs /dev/sda2
Commande: mkswap
Description
Cette commande permet de formater une partition en tant que swap.
Utilisation
mkswap /dev/sda1 swapon /dev/sda1
PLAN
SSH
WEB
FTP
DHCP
DNS
Syslog
SAMBA
IPTables
NFS
VNC
Topologie
Serveur SSH
Secure SHell
SSH est un protocole de communication sécurisé comparable à telnet développé en 1995.
Il intègre un chiffrement natif faisant de lui une réference dans les outils d'administration à distance.
Fonctionnement
Fonctionnement
Fonctionnement
Installation
- apt-get install openssh-server
- yum install sshd
Démo
TP
Configuration basique de SSH
- Installer un serveur SSH sur les deux serveurs Debian
- Interdire à un utilisateur de se loguer en tant que "root"
- Tenter de se connecter via SSH avec putty et/ou le client ssh linux
Authentification par clé
- Générer une clé asymétrique sur la machine cliente.
- Déposer la clé publique sur les serveurs.
- Tenter de se loguer avec la clé privée sur les serveurs.
Serveur WEB
Principe
Un serveur WEB permet de proposer à un utilisateur du contenu sur le réseau via le protocole HTTP.
Implémentations
- Apache2
- Nginx
- Lighttpd
Fonctionnement
Installation
- apt-get install apache2
- yum install httpd
TP
Installation stack LAMP
- Installer Apache2, PHP5, et MySQL sur VM1
- Installer le système wordpress sur le serveur web
- Vérifier en se connectant au serveur à partir du client windows
- Installer PHPMyAdmin sur le serveur web
- Vérifier en se connectant au serveur à partir du client windows
Installation de HTTPS
- Génerer un certificats auto signé pour VM1
- Installer le certificat sur le serveur
- Configurer apache2 afin d'utiliser le certificat pour HTTPS
- Tester la configuration en se connectant en HTTPS au serveur
Serveur FTP
File Transfer Protocol
Protocole permettant l'échange de fichiers sur le réseau.
Commencé en 1971 (RFC114), finalisé en 1985 (RFC959)
Fonctionnement
- Modèle Client/Serveur
- Fonctionne sur deux ports
- Propose deux modes
Fonctionnement
Fonctionnement
Implementation Serveur
- Filezilla Server (windows)
- vsftpd (Unix)
- proftpd (Unix)
- pureftpd (Unix)
Implementation Client
- Filezilla (windows, Unix)
- ftp (CLI Unix)
- gFTP (Unix)
- Gestionnaire de fichiers (Windows, Unix)
Démo
TP
Installation de vsftpd et utilisation du Client FTP
- Installer vsftpd sur la VM1 Debian
- Utiliser la commande 'ftp' pour se loguer avec un user à partir de VM2
- Uploader un fichier dans le dossier d'un user
- Lister les fichiers du dossier
- Créer sur le serveur via SSH un fichier
- Tenter de le récupérer via ftp
Utilisation de l'utilisateur anonyme
- Se connecter en tant qu'anonyme
- Essayer de créer un fichier, que se passe t'il ?
- Autoriser l'utilisateur anonyme à écrire sur le FTP
- Essayer de créer un fichier, que se passe t'il ?
- Interdire l'utilisation de l'utilisateur anonyme
- Tenter de se loguer en anonyme, que se passe t'il ?
Création d'un dossier commun à tout les users
- Créer un utilisateur 'commun' sur le système.
- Modifier les droits de sa 'home' pour que tout le monde y est accès.
- Créer un dossier 'commun' dans la home de chaque user.
- Lier le repertoire de 'commun' avec les répertoires 'commun' de chaque user grâce à fstab.
Création de user n'appartenant pas au système
- Permettre à des users ne faisant pas partie du système de se loguer.
Serveur DHCP
Dynamic Host Configuration Protocol
Configuration d'hôte automatique via le réseau.
Fonctionnalités
-
Distribue des IPs
-
Distribue la passerelle
-
Distribue des serveurs DNS
-
Distribue des serveurs NTP
Fonctionnement
Fonctionnement
Installation
- apt-get install isc-dhcp-server
- yum install dhcpd
Configuration
/etc/dhcp/dhcpd.conf:
option domain-name ...
option domain-name-servers ...
log-facility ...
Configuration
/etc/dhcp/dhcpd.conf:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.150;
option routers 192.168.1.1;
}
Configuration
/etc/dhcp/dhcpd.conf:
host tyrion {
hardware ethernet 02:34:37:24:c0:a5;
fixed-address 192.168.1.110;
}
host printer01 {
hardware ethernet 02:34:37:30:c6:c4;
fixed-address 192.168.1.115;
}
TP
Installer un serveur DHCP Basique
- Installer un serveur DHCP sur la VM2
- Distribuer des adresses pour le réseau 192.168.1.0/24
- La plage d'adresse doit distribuer maximum 30 addresses
- Distribuer les serveurs DNS de google (8.8.8.8, 8.8.4.4)
- Distribuer l'adresse de la passerelle par défaut
- Demander à la VM1 et au client windows de récupérer des IP via DHCP.
Distribuer deux pools d'adresses
- Mettre deux interfaces sur la machine virtuelle
- Configurer le serveur pour distribuer différentes adresses aux différents réseaux
Ajouter des IPs statiques
- Ajouter l'adresse MAC de la VM1 à une adresse IP reservé en dehors du range desservie
Distribution de routes et changement du leasing time
- Configurer le serveur pour qu'il distribue des routes
- Mettre le temps de leasing à 2 minutes
Serveur DNS
Domain Name System
Permet la résolution nom de domaine vers adresse IP et vice/versa.
Conçu à l'origine en 1983 à l'iniative de la DARPA
On dit bien "system" et non pas "service"!
Fonctionnalités
-
Création couple nom de domaine/IP
-
Création d'alias
-
Configuration mail
-
Configuration hiérarchique
Fonctionnement
Fonctionnement
Les types d'entrées
- A: Résolution vers une adresse IPv4
- AAAA: Résolution vers une adresse IPv6
- CNAME: Alias vers un domaine
- MX: Défini les serveurs mails
- PTR: Résolution inverse (IP vers DNS)
- NS: Défini l'adresse du serveur DNS du domaine
- SRV: Version avancée des enregistrements MX
- TXT: Ajoute du texte à une zone (utilisé par SDF)
- SOA: Donne des informations sur la zone actuelle
Type: A
Exemple:
test.cesi.fr. IN A 91.198.174.232
machin.truc.bidule.fr. IN A 10.109.173.197
dns.google.fr IN A 8.8.8.8
Type: AAAA
Exemple:
test.cesi.fr. IN AAAA 8f0:10:907a:8c5::
machin.truc.bidule.fr. IN AAAA 2fd0:1380:40e7:85::104
dns.google.fr IN AAAA 2a00:1450:4007:805::1017
Type: CNAME
Exemple:
test.cesi.fr. IN CNAME cesi.fr.
machin.truc.bidule.fr. IN CNAME yahoo.com.
Type: MX
Exemple:
synhack.fr. IN MX 5 mx2.ovh.net.
synhack.fr. IN MX 1 mx1.ovh.net.
synhack.fr. IN MX 100 mxb.ovh.net.
Type: PTR
Exemple:
232.174.198.91.in-addr.arpa. IN PTR test.cesi.fr
197.173.109.10.in-addr.arpa. IN PTR machin.truc.bidule.fr.
8.8.8.8.in-addr.arpa. IN PTR dns.google.fr
Type: NS
Exemple:
synhack.fr. IN NS olga.ns.cloudflare.com.
synhack.fr. IN NS jim.ns.cloudflare.com.
Type: TXT
Exemple:
synhack.fr. IN TXT "v=spf1 include:mx.ovh.com ~all"
TP
Installation et configuration de bind9
- Installer bind9 sur VM2
- Configurer le DNS pour qu'il gère la zone cesi.local
- Ajouter deux entrées DNS correspondants aux autres machines du réseau
- Tester la configuration grâce à nslookup ou dig
Serveur SAMBA
Samba
Partage de fichier entre UNIX et Windows.
Implémentation opensource de SMB/CIFS.
C'est un logiciel libre, codé par reverse engineering.
Comme FTP, il s'agit d'une relation client/serveur.
SMB est un équivalent propriétaire de FTP.
Il ajoute quelques fonctionnalités
Installation
- apt-get install samba
- yum install samba
Configuration
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
[Anonymous]
path = /opt/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no
TP
Installation et Configuration de samba
- Installez un serveur samba sur VM1
- Testez la configuration précedente en tentant de se loguer
- Ajoutez un partage pour les utilisateurs du groupe stagiaire, puis un pour ceux du groupe admin
SYSLOG
Présentation
Syslog est un protocole ET un format de log créé en 1980.
Il permet de gérer, filtrer et classer des évenements systèmes.
Implémentations
- syslogd
- syslog-ng
- rsyslog
Severities (Criticités)
Facilities
Règles
Présentation:
Les règles permettent de filtrer les logs afin de leur appliquer un traitement différent.
Les filtres:
- Selecteur
- Property based
- Regex
- Blocs (type BSD)
Filtres regex
HUM...non
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
Filtres blocs
Présentation
Syntaxe reprise des filtres utilisés par syslogd sous BSD.
Exemples:
if $programname == 'prog1' then {
action(type="omfile" file="/var/log/prog1.log")
if $msg contains 'test' then
action(type="omfile" file="/var/log/prog1test.log")
else
action(type="omfile" file="/var/log/prog1notest.log")
}
Filtres blocs
Exemples:
if $fromhost == 'host1' then {
mail.* action(type="omfile" file="/var/log/host1/mail.log")
*.err /var/log/host1/errlog
} else {
mail.* action(type="omfile" file="/var/log/mail.log")
*.err /var/log/errlog
}
Format
<date> <nom de l'hôte> <tag> <message>
Exemple:
Feb 19 16:04:46 babar su[3895]: pam_unix(su:session): session opened for ...
TP
TP
- Installer RSyslog en tant que serveur sur VM2
- Récupérer les logs de VM1 sur VM2
- Pour chaque type de filtre:
- Filtrer les logs en fonction des machines
- Filtrer les logs en fonction de leur criticité
IPTables
Présentation Netfilter
NetFilter est un module du kernel Linux, disponible depuis 2.4.
Il permet de gérer les paquets IP transitant sur une machine Linux
Présentation IPTables
IPTables est un logiciel permettant de communiquer avec NetFilter.
Il s'agit donc d'une interface en ligne de commande (CLI) pour NF.
Il est le remplaçant de IPChains.
FOnctionnement
Dans IPTables, il y a des tables, elles segmentent le logiciel en fonctionnalités.
Ces tables sont composées de chaines qui définissent des moments auquel on applique le traitement.
Ces chaines sont composées de targets qui définissent l'action qu'on applique à cette chaine.
Les tables
Filter: S'occupe du filtrage des paquets (entrée, sortie, forward)
NAT: S'occupe de la translation d'adresse ou de port
Mangle: S'occupe de la modification de paquet
Raw: S'occupe de configurer les paquets (eg: ne pas tracker le paquet)
Security: Utilisé par SELINUX (?)
La table Filter
Les chaines
Input: s'applique aux paquets qui entre sur une interface
Output: s'applique aux paquets qui sorte d'une interface
Forward: s'applique aux paquets entre deux interfaces
Les cibles
Accept: Accepte le paquet
Reject: Refuse le paquet (et averti l'envoyeur)
Drop: Refuse le paquet
Log: Log le paquet puis continue le processing normalement
La table NAT
Les chaines
Prerouting: s'applique aux paquets avant routage
Postrouting: s'applique aux paquets après routage
Les cibles
SNAT: Modifie l'adresse source
DNAT: Modifie l'adresse de destination
Masquerade: Modifie l'adresse source par celle du routeur
Résumé
Installation
Prérequis:
Noyau Linux 2.4 minimum
Debian/Ubuntu: apt-get install iptables
Debian 8: apt install iptables
Centos/Fedora/RHEL: yum install iptables
Fedora (new): dnf install iptables
Démo
TP
Filtrage basique
- Modifier la police par défaut des chaînes INPUT et OUTPUT afin de bloquer tout trafic sur VM1
- Effectuer un ping ver 8.8.8.8, cela fonctionne il ? pourquoi ?
- Autoriser le ping en entrée / sortie
- Effectuer un ping ver 8.8.8.8, cela fonctionne il ?
- Effectuer un ping vers www.google.fr, cela fonctionne il ? pourquoi ?
- Autoriser le DNS en entrée / sortie puis essayer un ping vers www.google.fr, cela fonctionne il ? pourquoi ?
- Autoriser l'interface locale en entrée / sortie puis essayer un ping vers www.google.fr, cela fonctionne il ?
- Accéder au serveur web (via HTTP) à partir d’une autre machine, que ce passe il ? pourquoi ?
Différence entre Reject et Drop
- Modifier la police par défaut des chaînes INPUT et OUTPUT afin d’accepter tout trafic.
- Rajouter une règle sur la chaîne INPUT interdisant le trafic web avec la cible DROP
- Analyser le trafic avec Whireshark afin de voir ce qui est échangé entre les deux machines. Que constatez-vous ?
- Analyser les ports ouverts de la machine avec Nmap. Dans quel état est indiqué le port 80 ?
- Supprimer la règle précédemment ajoutée.
- Rajouter une règle sur la chaîne INPUT interdisant le trafic web avec la cible REJECT.
- Analyser le trafic avec Whireshark afin de voir ce qui est échangé entre les deux machines. Que constatez-vous ?
- Analyser les ports ouverts de la machine avec Nmap. Dans quel état est indiqué le port 80 ?
Sauvegarde des règles
- Sauvegardez ses règles.
- Supprimer les règles de toutes les chaînes.
- Restaurer les règles précédemment supprimées.
- Appliquer les règles automatiquement à chaque redémarrage de la machine.
Journalisation des paquets
- Ajouter une règle permettant de consigner le passage de paquets à destination de votre site web dans les logs.
- Se connecter au serveur web à partir d’une autre machine.
- Vérifier le contenu de votre fichier de log.
- Ajouter une règle permettant d'ajouter dans les logs la phrase (en prefix) "phpmyadmin access: " quand un visiteur visite la page /phpmyadmin sur le site web.
- Se connecter au serveur web à partir d’une autre machine sur la page /phpmyadmin.
- Vérifier le contenu de votre fichier de log.
Redirection
- Configurer apache pour écouter sur le port 8000 au lieu de 80
- Ajouter une règle de redirection de port, pour rediriger le port 80 vers le port 8000.
- Se connecter au serveur web sur le port 80 à partir d’une autre machine afin de vérifier que cela fonctionne.
PArtage NFS
Network File System
Développé par SUN (devenu Oracle) en 1984.
Il s'agit d'un système de fichier accessible via le réseau
Il existe 4 version du protocole:
- Version 1 et 2 non sécurisées fonctionnant sur UDP.
- Version 3 fonctionnant sur TCP.
- Version 4 est un reboot complet du protocole, inspiré par AFS.
Installation
- apt-get install nfs-kernel-server
- yum install nfs-utils
TP
Installation et configuration de NFS
- Installez un serveur NFS sur VM1
- Partager un dossier "/opt/nfsshare" via NFS
- Essayer d'y accéder grâce à un client NFS
OpenLDAP
OPENLDAP
OpenLDAP est une implémentation libre du protocole LDAP.
Ce protocole sert à créer un annuaire informatique fonctionnant sous forme de client/serveur
C'est sur ce protocole qu'est basé Active Directory
LDAP = Lightweight Directory Access Protocol
Fonctionnement
L'annuaire repose sur un modèle hierarchique
Il se représente comme un arbre (racine, branche, feuille)
Il est commun d'utiliser le modèle DNS pour la racine (dc)
dc=cesi,dc=fr
Les branches représentent ensuite des unités d'organisation (ou)
ou=computers,ou=network
Ou bien des personnes (cn)
cn=dupond,cn=paul
Fonctionnement
Le chemin complet vers une "feuille" est donc de la forme suivante:
cn=paul,ou=employés,dc=cesi,dc=local
Fonctionnement
Chaque feuille contient ensuite des attributs.
Pour un employé, il peut s'agir des éléments suivants:
- Numéro de téléphone
- Pôle d'activité
Installation
Installation du démon LDAP
- apt-get install slapd
- dpkg-reconfigure slapd
Installation de l'interface d'administration web LDAP
- apt-get install phpldapadmin
PHPLdapAdmin
TP
Login avec OpenLDAP
- Permettre de se loguer avec les utilisateurs présent dans l'annuaire
- Installer OpenLDAP
- Créer des utilisateurs dans l'annuaire
- Configurer PAM pour LDAP
Docker
Docker
Docker est un système permettant la virtualisation d'application
Il se base sur les Linux Containers (LXC)
Ce système peut être comparé à OpenVZ.
Le même noyau est partagé entre les containers
Pourquoi Docker ?
Pourquoi Docker ?
Le but est de fournir au développeur un environnement de développement production-ready léger.
Il permet de suivre et enregistrer les changements dans la VM
Il permet aussi de créer des images permettant au sysadmin un déploiement rapide
Enfin il offre une architecture simple et scalable
Installation
La procédure d'installation changeant régulièrement:
- https://docs.docker.com/engine/installation/debian/
Utilisation
- Lister les containers: docker ps
- Lister les images: docker images
- Chercher une image: docker search <recherche>
- Télécharger une image: docker pull <nom_image>
- Lancer un container: docker run <nom_image> <commande>
- Exécuter dans un container: docker exec <nom_container ou id> <cmd>
- Arrêter un container: docker stop <nom_container ou id>
- Supprimer un container: docker rm <nom_container ou id>
- Supprimer une image: docker rmi <nom_image>
- Pousser une image: docker push <nom_image>
Les volumes
Les volumes permettent de créer un dossier partagé entre l'hôte et la machine virtuelle.
Un container s'autodétruit lorsqu'il s'éteint (ses données aussi)
Les volume ne sont pas détruit à la fermeture ou l'effacement d'un container
Ils peuvent donc servir de point de sauvegarde
Les volumes
Utilisation:
- docker run -v <dossier_local>:<dossier_vm> <nom_image>
Exemple:
- docker run -ti -v /home/user/y0no/:/root ubuntu /bin/bash
Les commits
Le but d'une commit est de sauvegarder l'état d'un container sous forme d'image.
Utilisation:
- docker commit -m <msg> <nom ou id du container> <nom destination>
Exemple:
- docker commit -m "Apache2 OK" 001ab320 y0no/apache2
Les Ports
De base, un container a sa propre adresse IP
Mais il est aussi possible de lier un port de la VM avec un port de l'hôte
Syntaxe:
docker run -p <port_vm>:<port_hote> <nom_image> <cmd>
Exemple:
docker run -p 80:80 nginx <cmd>
Les Variables
Les containers docker permettent l'utilisation de variable pour la configuration de l'instance.
Il est par exemple possible de passer en argument les informations de connexion d'un container wordpress à sa base de données.
Les variables sont passé au système virtualisé en tant que variable d'environnement.
Les Variables
Syntaxe:
docker run -e <variable>=<valeur> -e <variable2>=<valeur2> <image> <cmd>
Exemple:
docker run -e bddhost=192.17.10.2 mon_image /bin/bash
Les LINKS
Il est possible de lier plusieurs container entre eux.
Les variables de chacun des containers sont partagés entre les VM.
Par exemple pour faire fonctionner un wordpress et son mysql:
docker run --name wp --link mysql:mysql wordpress
Configuration
La configuration des images peut se faire par l'intermediaire d'un fichier
Le fichier doit être nommé Dockerfile et contient la "recette" de l'image
La recette est l'ensemble des instructions permettant de construire l'image
Configuration
FROM ubuntu:latest
RUN apt-get update && apt-get upgrade -y
RUN apt-get install apache2 mysql-server php5
Configuration
Il suffit ensuite de construire l'image: docker build -t mon_image .
TP
Dockeriser une application
- Créer un container proposant un wordpress avec SSL actif
- Le container doit être basé sur debian jessie
- La base de données doit être dans un autre container
- La base de données doit être persistante
Enregistrer son image dans le cloud
- S'inscrire sur le hub docker
- Pousser son image sur le hub docker
- Récupérer l'image d'un autre étudiant sur sa machine
Vagrant
Vagrant
Vagrant est un logiciel permettant de créer et provisionner rapidement des machines virtuelles.
Il gère par défaut plusieurs "providers":
- Virtualbox
- Vmware
- HyperV
- Docker
Vagrant
Le but est de monter une ou plusieurs VM avec l'aide d'un simple script.
Celui-ci donne les instructions de configuration à l'instar d'un Dockerfile puis donne ensuite à l'utilisateur la main sur la machine.
Utilisation
Exemple:
vagrant init hashicorp/precise32
vagrant up
vagrant ssh
Commandes
vagrant init: Crée un fichier de configuration dans le dossier courant
vagrant status: Récupère le status de la VM
vagrant up: Démarre la VM
vagrant ssh: Se connecte en SSH à la VM
vagrant reload: Recharge le Vagrantfile (configuration)
vagrant provision: Configure la VM
vagrant suspend: Met en pause la VM
vagrant resume: Retire la pause de la VM
vagrant halt: Arrête la VM
vagrant destroy: Détruit la VM
Configuration
Vagrant offre à l'instar de docker plusieurs fichiers de configuration prépackagé permettant de rapidement monter une VM.
Il est néanmoins possible de créer ses propres VM avec l'aide d'un fichier de configuration nommé Vagrantfile.
Celui-ci peut être généré par la commande "vagrant init" qui créera un squelette de configuration dans le dossier courant.
Configuration
La syntaxe de configuration change régulièrement et ajoute de nouvelles fonctionnalités. Voici donc le lien vers la documentation:
Plugins
Des plugins sont disponible afin d'étendre les fonctionnalités de Vagrant. Il est par exemple possible d'ajouter une extension permettant la configuration du fichier "/etc/hosts" de la VM via le Vagrantfile.
La commande d'installation est la suivante:
vagrant plugin install <nom plugin>
TP
Vagrantiser une Infra
- Créer un script Vagrant permettant de déployer une infrastructure
- L'infrastructure doit proposé:
- Une machine avec MySQL installé
- Une machine avec wordpress installé et configuré
- Le MySQL utilisé doit être celui de la première VM
- Une machine servant de serveur Syslog
- Cette machine doit centralisé les logs des deux autres VM
Puppet
Serveur VNC
Formation UNIX Serveur
By Yoann Ono
Formation UNIX Serveur
- 2,919