Difference between revisions of "CASIRCloud"
Line 144: | Line 144: | ||
Le but de cette séance est d'installer une plateforme de e-commerce ([[Prestashop]]) sur une machine virtuelle IaaS (AWS ou Azure), de la sécuriser et de la surveiller. |
Le but de cette séance est d'installer une plateforme de e-commerce ([[Prestashop]]) sur une machine virtuelle IaaS (AWS ou Azure), de la sécuriser et de la surveiller. |
||
− | * Créez une machine virtuelle Ubuntu 16.04 |
+ | * Créez et démarrez une machine virtuelle (Ubuntu 16.04 LTS) dans un des IaaS pour lesquels vous avez créés des comptes. Sur AWS, choisissez une machine "gratuite" type 't2.micro' (1 vCPU, 1 GB RAM, 8GB EBS). |
+ | * Notez l'adresse IP publique de la machine et initialisez la variable d'environnement PRESTASHOP_HOST |
||
+ | * Sauvegardez la clé privée SSH dans le répertoire ~/.ssh de votre machine de développement |
||
* Installez Docker CE et Docker Compose |
* Installez Docker CE et Docker Compose |
||
==Installation== |
==Installation== |
||
+ | * Loggez vous sur la machine virtuelle du IaaS par SSH |
||
− | * Clonez le dépôt Github de Prestashop |
||
+ | <pre> |
||
+ | PRESTASHOP_HOST=123.45.67.89 |
||
+ | PRESTASHOP_PRIVKEY=~/.ssh/prestashop.pem |
||
+ | chmod 400 $PRESTASHOP_PRIVKEY |
||
+ | ssh -i $PRESTASHOP_PRIVKEY ubuntu@$PRESTASHOP_HOST |
||
+ | # l'utilisateur peut être différent d'un IaaS à un autre (ubuntu sur AWS). |
||
+ | </pre> |
||
+ | |||
+ | * Clonez le dépôt Github de Prestashop (dev) |
||
<pre> |
<pre> |
||
git clone https://github.com/PrestaShop/PrestaShop.git |
git clone https://github.com/PrestaShop/PrestaShop.git |
||
</pre> |
</pre> |
||
− | Lancez les 2 services de la composition |
+ | Lancez les 2 services de la composition (Prestashop et MySQL) |
<pre> |
<pre> |
||
cd PrestaShop |
cd PrestaShop |
||
Line 171: | Line 182: | ||
Complétez la composition en ajoutant ce container de serveur SMTP (smtp.yml). |
Complétez la composition en ajoutant ce container de serveur SMTP (smtp.yml). |
||
<pre> |
<pre> |
||
+ | version: '2' |
||
− | TBC |
||
+ | services: |
||
+ | prestashop-smtp: |
||
+ | image: djfarrelly/maildev |
||
+ | ports: |
||
+ | - 1080:80 |
||
+ | - 25:25 |
||
</pre> |
</pre> |
||
Line 182: | Line 199: | ||
==Sécurisation== |
==Sécurisation== |
||
* Sécurisez les ports de votre VM via la console d'administration du IaaS. N'autorisez que les ports TCP 22, 80, 443, 8001, 3000. |
* Sécurisez les ports de votre VM via la console d'administration du IaaS. N'autorisez que les ports TCP 22, 80, 443, 8001, 3000. |
||
+ | * Ajouter un conteneur nginx pour sécuriser par SSL l'accès aux services Prestashop au moyen d'un certificat auto-signé. |
||
+ | * Visualisez le certificat du serveur |
||
+ | <pre> |
||
+ | openssl s_client -connect $PRESTASHOP_HOST:443 -showcerts |
||
+ | </pre> |
||
+ | * Vérifiez la qualité de votre configuration SSL avec https://www.ssllabs.com/ssltest/ |
||
+ | * Améliorez votre configuration SSL avec https://github.com/mozilla/cipherscan |
||
+ | * Ajouter un conteneur letencrypt pour générer automatiquement le certificat SSL du conteneur nginx |
||
+ | * Modifiez la configuration du conteneur nginx pour sécuriser également l'accès à Grafana (utiliser le port 3443). |
||
+ | * Modifiez les ports autorisés de votre VM via la console d'administration du IaaS. N'autorisez que les ports TCP 22, 80, 443, 3443. |
||
+ | * Visualisez le certificat du serveur |
||
+ | <pre> |
||
+ | openssl s_client -connect $PRESTASHOP_HOST:443 -showcerts |
||
+ | </pre> |
||
+ | * Vérifiez la qualité de votre configuration SSL avec https://www.ssllabs.com/ssltest/ |
||
+ | * Améliorez votre configuration SSL avec https://github.com/mozilla/cipherscan |
||
+ | |||
==Scripts== |
==Scripts== |
||
Line 218: | Line 252: | ||
− | Installer [[HAProxy]] pour sécuriser la connexion. |
||
− | <pre> |
||
− | sudo apt-get install -y haproxy |
||
− | </pre> |
||
− | |||
− | Générer un certificat SSL pour votre serveur HAProxy |
||
− | <pre> |
||
− | openssl genrsa -out haproxy.key 2048 |
||
− | openssl req -new -key haproxy.key \ |
||
− | -out haproxy.csr |
||
− | openssl x509 -req -days 365 -in haproxy.csr \ |
||
− | -signkey haproxy.key \ |
||
− | -out haproxy.crt |
||
− | cat haproxy.crt haproxy.key \ |
||
− | | tee haproxy.pem |
||
− | </pre> |
||
− | |||
− | Modifier le fichier de configuration de HAProxy |
||
− | <pre> |
||
− | sudo vi /etc/haproxy/haproxy.cfg |
||
− | </pre> |
||
− | avec le fichier suivant: |
||
− | <pre> |
||
− | global |
||
− | log /dev/log local0 |
||
− | log /dev/log local1 notice |
||
− | chroot /var/lib/haproxy |
||
− | stats socket /run/haproxy/admin.sock mode 660 level admin |
||
− | stats timeout 30s |
||
− | user haproxy |
||
− | group haproxy |
||
− | daemon |
||
− | |||
− | # Default SSL material locations |
||
− | ca-base /etc/ssl/certs |
||
− | crt-base /etc/ssl/private |
||
− | |||
− | # Default ciphers to use on SSL-enabled listening sockets. |
||
− | # For more information, see ciphers(1SSL). |
||
− | ssl-default-bind-options no-sslv3 no-tls-tickets force-tlsv12 |
||
− | ssl-default-bind-ciphers !EDH:!RC4:!ADH:!DSS:HIGH:+AES128:+AES256-SHA256:+AES128-SHA256:+SHA:!3DES |
||
− | tune.ssl.default-dh-param 2048 |
||
− | |||
− | defaults |
||
− | log global |
||
− | mode http |
||
− | option httplog |
||
− | option dontlognull |
||
− | timeout connect 5000 |
||
− | timeout client 50000 |
||
− | timeout server 50000 |
||
− | |||
− | # IUT UI (80,443 --> 8080) |
||
− | |||
− | frontend iut-ui-http |
||
− | mode http |
||
− | option httplog |
||
− | option forwardfor |
||
− | option http-server-close |
||
− | option httpclose |
||
− | bind *:80 |
||
− | redirect scheme https code 301 if !{ ssl_fc } |
||
− | |||
− | |||
− | frontend iut-ui-https |
||
− | option httplog |
||
− | option forwardfor |
||
− | option http-server-close |
||
− | option httpclose |
||
− | rspadd Strict-Transport-Security:\ max-age=31536000;\ includeSubDomains |
||
− | rspadd X-Frame-Option:\ DENY |
||
− | bind *:443 ssl crt /etc/ssl/haproxy/haproxy.pem ciphers !EDH:!RC4:!ADH:!DSS:HIGH:+AES128:+AES256-SHA256:+AES128-SHA256:+SHA:!3DES force-tlsv12 no-sslv3 |
||
− | default_backend iut-ui |
||
− | |||
− | backend iut-ui |
||
− | mode http |
||
− | balance roundrobin |
||
− | option forwardfor |
||
− | http-request set-header X-Forwarded-Port %[dst_port] |
||
− | http-request add-header X-Forwarded-Proto https if { ssl_fc } |
||
− | option httpchk HEAD / HTTP/1.1\r\nHost:localhost |
||
− | server web01 localhost:8080 check |
||
− | # server web01 HOST_PRIMARY_AWS:8080 check |
||
− | # server web02 HOST_BACKUP_AWS:8080 check |
||
− | |||
− | </pre> |
||
− | |||
− | Relancer HAProxy |
||
− | <pre> |
||
− | sudo mkdir -p /etc/ssl/haproxy |
||
− | sudo cp haproxy.pem /etc/ssl/haproxy/haproxy.pem |
||
− | haproxy -c -f /etc/haproxy/haproxy.cfg |
||
− | sudo service haproxy restart |
||
− | sudo service haproxy status |
||
− | </pre> |
||
− | |||
− | Depuis le navigateur de votre poste de travail, naviguer sur http://52.215.12.34 |
||
− | Depuis le navigateur de votre poste de travail, naviguer sur https://52.215.12.34 . Accepter l'exception de sécurité. |
||
− | |||
− | Supprimer le port 8080 du security group de la machine AWS depuis la console AWS. |
||
− | |||
− | Visualiser le certificat du serveur |
||
− | <pre> |
||
− | openssl s_client -connect $HOST_PRIMARY_AWS:443 -showcerts |
||
− | </pre> |
||
− | |||
− | Vérifier la qualité de votre configuration SSL avec https://www.ssllabs.com/ssltest/ |
||
− | |||
− | Améliorer votre configuration SSL avec https://github.com/mozilla/cipherscan |
||
==Ressources== |
==Ressources== |
Revision as of 08:29, 20 March 2019
Enseignant: Didier Donsez (Polytech Grenoble, UGA)
Coordinateur : Clement Raievsky (IUT de Valence, UGA)
Etudiants : UGA - IUT Valence - L3 Pro CASIR
Modalité d’évaluation : DS (30%)+ DM (70%)
Séance 0 : 21/03 Après-Midi
Auto-formation
Obligatoire
Suivre les cours suivants en vidéo :
- Les transparents
- Les vidéos
Pour Docker, suivre ce tutoriel https://www.katacoda.com/courses/docker
A VOIR : Mastering Chaos - A Netflix Guide to Microservices (slides)
Optionnel
Lire:
- https://fr.wikipedia.org/wiki/Cloud_computing
- https://www.ovh.com/fr/serveurs_dedies/comprendre-t3-t4.xml
- http://www.interoute.fr/cloud-article/what-hybrid-cloud
- https://fr.wikipedia.org/wiki/Devops
- Swagger 101
- Dette technique, Dette fonctionnelle
Vous pouvez suivre les autres présentations si vous en avez envie et le temps: http://erods.liglab.fr/icar2013/programme.html
Et notamment la présentation du datacentre d'OVH
- http://erods.liglab.fr/videos/ICAR2013/ICAR-OVH.mp4
- http://www.youtube.com/watch?v=4e97g7_qSxA (3 minutes)
Création des comptes
- Création d’un compte Pack étudiant Github https://education.github.com/pack
- Création d’un compte sur Docker Hub https://hub.docker.com/
- Création d’un compte sur le SaaS public Heroku (ne requiert pas de carte bancaire)
- Création d’un compte sur le SaaS public Azure à partir de ce github student pack OU Création d’un compte sur le SaaS public AWS à partir de ce github student pack
Remarque: il existe d'autres hébergeurs IaaS avec des offres gratuites 1 an pour de petites VMs : https://www.digitalocean.com ...
Installation des prérequis de JHipster
Avant la séance 1, vous installerez le générateur JHipster de projets web fullstack via l'installation par Docker https://www.jhipster.tech/installation/ . Le conteneur contient alors tous les requis dans les bonnes versions : java 8, npm, nodejs, yarn, yeoman, jhipster generator.
Pour cela :
- Installez Docker CE et Docker Compose
- Installez Heroku CLI
- Faites un pull de l'image Docker du générateur JHipster au moyen de la commande suivante.
docker pull jhipster/jhipster
Séances 1 & 2 : 22/03
L'application de démonstration s'appuyera sur JHipster et sur Prestashop.
Agenda
- DS QUICK (30 minutes) sur la séance 0 (15% de la note globale). !!!!! NE PAS ARRIVER EN RETARD !!!!
- Introduction aux applications distribuées (transparents)
- Génération d'une application de blogging à partir de l'exemple Blog https://github.com/jhipster/jdl-samples/blob/master/blog.jh
- Installer JHipster
- Créer une application de type Monolithic
- Générer le backend et le frontend de de l'exemple Blog
- Lancer l'application Blog en mode DEV sur votre machine de développement
- Déploiement de votre application Blog en mode PROD sur la machine virtuelle (Ubuntu 16.04 LTS) de l'IaaS. Remarque: si vous êtes sur AWS, il faudra configurer le security group de votre machine virtuelle
- Ecrire un script de démarrage
- Générer le client Bash (curl) à partir de la documentation OpenAPI (Swagger) avec l'outil en ligne Swagger Editor
- Utiliser le client Bash (curl) généré.
- Arrêt de la machine
- Script de redémarrage au "reboot" de la machine.
- Installer et configurer Monit.
- Configurer dans Monit votre adresse email pour être notifié des crashs de l'application.
- Installation de HAProxy
- Générer un certificat serveur avec l'autorité de certification gratuite https://letsencrypt.org/
- Sécurisation des ports avec les IPTables.
- Filtrer tous les ports en entrée sauf SSH, ICMP, HTTP, HTTPS et 8080.
- Filtrer tous les ports en sortie sauf SSH, ICMP et SMTPS (pour Monit).
# Term 1 docker pull jhipster/jhipster mkdir -p ~/casircloud/online-store cd ~/casircloud/online-store docker container run --name jhipster --hostname jhipster-online-store \ -v $PWD:/home/jhipster/app \ -v ~/.m2:/home/jhipster/.m2 \ -p 8080:8080 -p 9000:9000 -p 3001:3001 \ -d -t jhipster/jhipster EXEC="docker exec -it jhipster" $EXEC jhipster $EXEC wget https://raw.githubusercontent.com/mastering-microservices/tutorial/master/online-store.jh $EXEC jhipster import-jdl online-store.jh $EXEC ./mvnw # Term 2 cd ~/casircloud/online-store EXEC="docker exec -it jhipster" $EXEC yarn start # Term 3 cd ~/casircloud/online-store open http://localhost:9000 open http://localhost:8080/swagger-ui/index.html curl http://localhost:8080/v2/api-docs # Term 4 cd ~/casircloud/online-store $EXEC jhipster ci-cd # Term 5 Installez Heroku CLI https://devcenter.heroku.com/articles/heroku-cli Installez le plugin Java pour Heroku CLI https://devcenter.heroku.com/articles/deploying-executable-jar-files heroku plugins:install java cd ~/casircloud/online-store $EXEC ./mvnw package -Pprod -DskipTests heroku deploy:jar target/*.war --app onlineshop-1234 # A noter, le nom des applications est global à heroku !!!! TODO Code Quality avec SonarQube TODO Cost evaluation avec sloccount
Séance 3 & 4
Le but de cette séance est d'installer une plateforme de e-commerce (Prestashop) sur une machine virtuelle IaaS (AWS ou Azure), de la sécuriser et de la surveiller.
- Créez et démarrez une machine virtuelle (Ubuntu 16.04 LTS) dans un des IaaS pour lesquels vous avez créés des comptes. Sur AWS, choisissez une machine "gratuite" type 't2.micro' (1 vCPU, 1 GB RAM, 8GB EBS).
- Notez l'adresse IP publique de la machine et initialisez la variable d'environnement PRESTASHOP_HOST
- Sauvegardez la clé privée SSH dans le répertoire ~/.ssh de votre machine de développement
- Installez Docker CE et Docker Compose
Installation
- Loggez vous sur la machine virtuelle du IaaS par SSH
PRESTASHOP_HOST=123.45.67.89 PRESTASHOP_PRIVKEY=~/.ssh/prestashop.pem chmod 400 $PRESTASHOP_PRIVKEY ssh -i $PRESTASHOP_PRIVKEY ubuntu@$PRESTASHOP_HOST # l'utilisateur peut être différent d'un IaaS à un autre (ubuntu sur AWS).
- Clonez le dépôt Github de Prestashop (dev)
git clone https://github.com/PrestaShop/PrestaShop.git
Lancez les 2 services de la composition (Prestashop et MySQL)
cd PrestaShop docker-compose up -d docker-compose logs -f
Depuis votre machine, ouvrez les page
PRESTASHOP_HOST=123.45.67.89 open http://$PRESTASHOP_HOST:8001 open http://$PRESTASHOP_HOST:8001/admin-dev
Les crédentiels de l'admin sont demo@prestashop.com prestashop_demo
Complétez la composition en ajoutant ce container de serveur SMTP (smtp.yml).
version: '2' services: prestashop-smtp: image: djfarrelly/maildev ports: - 1080:80 - 25:25
Supervision
- Installez et Configurez InfluxDB
- Installez et Configurez Telegraf
- Installez et Configurez Grafana
- Réalisez un tableau de bord Grafana en important celui-ci https://grafana.com/dashboards/61
Sécurisation
- Sécurisez les ports de votre VM via la console d'administration du IaaS. N'autorisez que les ports TCP 22, 80, 443, 8001, 3000.
- Ajouter un conteneur nginx pour sécuriser par SSL l'accès aux services Prestashop au moyen d'un certificat auto-signé.
- Visualisez le certificat du serveur
openssl s_client -connect $PRESTASHOP_HOST:443 -showcerts
- Vérifiez la qualité de votre configuration SSL avec https://www.ssllabs.com/ssltest/
- Améliorez votre configuration SSL avec https://github.com/mozilla/cipherscan
- Ajouter un conteneur letencrypt pour générer automatiquement le certificat SSL du conteneur nginx
- Modifiez la configuration du conteneur nginx pour sécuriser également l'accès à Grafana (utiliser le port 3443).
- Modifiez les ports autorisés de votre VM via la console d'administration du IaaS. N'autorisez que les ports TCP 22, 80, 443, 3443.
- Visualisez le certificat du serveur
openssl s_client -connect $PRESTASHOP_HOST:443 -showcerts
- Vérifiez la qualité de votre configuration SSL avec https://www.ssllabs.com/ssltest/
- Améliorez votre configuration SSL avec https://github.com/mozilla/cipherscan
Scripts
mv ~/Download/iutcloud.pem ~/.ssh chmod 400 ~/.ssh/iutcloud.pem HOST_PRIMARY_AWS=52.215.12.34 ssh -i ~/.ssh/iutcloud.pem ubuntu@$HOST_PRIMARY_AWS
Sur HOST_PRIMARY_AWS
# Installer JHipster TODO # Générer l'application monolithique JHipster (bien suivre les instructions données en séance pour ce qui concerne les options à cocher) TODO # Cloner le dépôt git clone https://github.com/jhipster/jdl-samples/ # Ajouter l'application Blog # lancer l'application backend en mode DEV ./mvnw # depuis un autre terminal, lancer l'application backend en mode DEV yarn start # pour arrêter l'application ps axwww pkill java ps axwww
Depuis le navigateur de votre poste de travail, naviguer sur http://52.215.12.34:8080
Ressources
- https://www.digitalocean.com/community/tutorials/how-to-implement-ssl-termination-with-haproxy-on-ubuntu-14-04
- https://serversforhackers.com/using-ssl-certificates-with-haproxy
- https://doc.ubuntu-fr.org/iptables
- http://dev-notes.eu/2016/08/persistent-iptables-rules-in-ubuntu-16-04-xenial-xerus/
- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-iptables-on-ubuntu-14-04
Séances 3 & 4 : 29/03
- DS QUICK (30 minutes) sur la séance 0 (15% de la note globale). !!!!! NE PAS ARRIVER EN RETARD !!!!
- Création d'une seconde machine virtuelle.
- Installation de l'application Blog en mode distribuée (2 machines gratuites).
- Installation et configuration d'un load balancer HAProxy sur chaque machine dans le mode HTTPS Termination (Le certificat auto-signé est installé sur les 2 serveurs)
- Arrêter l'application Blog sur la machine 1 : Que se passe t'il ?
- Arrêter l'application Blog sur la machine 2 : Que se passe t'il ?
- Redémarrer l'application Blog sur la machine 1 : Que se passe t'il ?
- Redémarrer l'application Blog sur la machine 2 : Que se passe t'il ?
- Installation et configuration de Telegraf sur les 2 machines pour le monitoring de celles-ci.
- Installation et configuration de Chronograf, InfluxDB sur la première machine pour le monitoring de celles-ci.
- Arrêter les 2 machines virtuelles en fin de séance pour éviter d'épuiser inutilement le crédit de votre compte (Les machines virtuelles (programmes et données) sont perdues !!)
- Installation de Docker et Docker Machine
- Construire et installer l'application Blog en mode production. Il faut démarrer un serveur MySQL via Docker.
- Déployer l'application JHipster avec Docker et Docker Compose (voir le répertoire src/main/docker)
Scripts
TODO
Naviguer sur http://52.215.12.34:3000
Naviguer sur https://52.215.12.34
Ressources
- https://devops.profitbricks.com/tutorials/install-and-configure-haproxy-load-balancer-on-ubuntu-1604/
- https://www.digitalocean.com/community/tutorials/how-to-implement-ssl-termination-with-haproxy-on-ubuntu-14-04
DM individuel 2018-2019
Noté (70% de la note globale)
A RENDRE LE 9/05/2018 23H59.
EN CONSTRUCTION
ARCHIVE DM individuel 2017-2018
Noté (70% de la note globale)
A RENDRE LE 9/05/2018 (date limite étendue au 01/06/2018, 23h59, deuxième date limite au 24/06/2018 23H59).
Dépend de ce qui aura été produit durant les séances 1,2,3 & 4.
Réalisations
- Générer le rapport de qualité avec le container SonarQube et faire une copie d'écran de la page des métriques dans le rapport. Donner votre avis sur la dette du projet (en 5 lignes max)
- Estimer le code généré du projet 'blog' selon la méthode COCOMOII (par exemple en utilisant ce calculateur).
- Terminer votre cluster HA en configurant les deux containers HAProxy en mode load balancing vers les 2 processus Spring de JHipster.
- Terminer votre cluster HA en configurant les deux containers MySQL en réplication maître-esclave (https://github.com/bergerx/docker-mysql-replication).
- Tester le crash d'une machine (voir Chaos Monkey).
- Combien de temps êtes vous capables de redémarrer complêment la machine (recréer une machine, refaire toutes les installations, reconfigurer les 2 machines : la survivante et la nouvelle qui a une nouvelle adresse IP).
- Installer un container InfluxDB sur la machine virtuelle 1 de votre cluster.
- Mettre en place Telegraf sur vos 2 machines virtuelles et configurer le pour qu'ils écrivent le mesure dans la base InfluxDB.
- Visualiser les métriques collectées par les démons Telegraf avec une console Chronograf.
- Configurer une alerte de surcharge et dépasser de capacité disque avec Kapacitor
- Sécuriser SSH de vos 2 VMs avec une authentification à 2 facteurs (How To Set Up Multi-Factor Authentication for SSH on Ubuntu 16.04)
- Configurer le firewall de vos 2 machines virtuelles (soit via les IPTables, soit via UFW : Attention UFW a quelques soucis avec Docker). Pour ceux qui maîtrisent Fail2Ban, vous pouvez installer et configurer un container Fail2Ban pour prévenir des ataques "brute force" lors de l'authentification sur le microservice Spring (de JHipster).
- Tester la pénétration de vos machines depuis l'extérieur avec un outil comme Security Monkey
- (NOUVEAU) Indiquer le service cloud utilisé et joindre au rapport une copie d'écran de la console dans laquelle apparaissent les machines virtuelles créés pour les besoins de votre DM et une copie d'écran de la console de facturation montrant le crédit ou le montant consommé pour les besoins de votre DM.
- Conclusion et retour d'expérience (franc) du cours. Proposition(s) d'amélioration (J'en tiendrai compte pour l'amélioration continue de ce compte. Merci).
Rendu par mail (avec copie à Clément et dans le sujet "[CASIR DM Cloud]"):
Un rapport de 15 pages (1 page par étape)
- avec liste des commandes,
- extraits pertinents des traces ou des logs,
- et références vers les documents utilisés (lien web).
Vous pouvez ajouter des annexes à votre rapport.
Remarque: si certains ont entrepris ou réussi des mises en place des anciennes étapes concernant la haute disponibilité (HA = High Avaibility), n'hésitez pas à compléter votre rapport avec des pages supplémentaires.
Bonus track:
- https://github.com/eliasgranderubio/dagda
- http://www.sysdig.org/falco/
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-grafana-to-plot-beautiful-graphs-from-zabbix-on-centos-7
- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-16-04
- le tutoriel complet sur JHipster (lien, video)
ARCHIVE DM 2016-2017
Noté (70% de la note globale)
A RENDRE LE 9/06/2017
Dépend de ce qui aura été produit durant les séances 1,2,3 & 4.
Réalisations
- Installer un container InfluxDB sur la machine 1 de votre cluster AWS.
- Mettre en place Telegraf sur vos 2 machines AWS et configurer le pour qu'ils écrivent le mesure dans la base InfluxDB.
- Visualiser les métriques collectées par les démons Telegraf avec une console Chronograf.
- Configurer une alerte de surcharge et dépasser de capacité disque avec Kapacitor
- Sécuriser SSH de vos 2 VMs avec une authentification à 2 facteurs (How To Set Up Multi-Factor Authentication for SSH on Ubuntu 16.04)
- Configurer le firewall de vos 2 machines (soit via les IPTables, soit via UFW).
- Tester la pénétration de vos machines depuis l'extérieur avec un outil comme Security Monkey
- Conclusion et retour d'expérience (franc) du cours. Proposition(s) d'amélioration.
Rendu par mail (avec copie à Clément et dans le sujet "[CASIR DM Cloud]"):
Un rapport de 8 pages (1 page par étape)
- avec liste des commandes,
- extraits pertinents des traces ou des logs,
- et références vers les documents utilisés (lien web).
Vous pouvez ajouter des annexes à votre rapport.
Remarque: si certains ont entrepris ou réussi des mises en place des anciennes étapes concernant la haute disponibilité (HA = High Aviability), n'hésitez pas à compléter votre rapport avec des pages supplémentaires.
Bonus track:
- https://github.com/eliasgranderubio/dagda
- http://www.sysdig.org/falco/
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-grafana-to-plot-beautiful-graphs-from-zabbix-on-centos-7
- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-16-04
Un rapport de 12 pages (1 page par étape)
- avec liste des commandes,
- extraits pertinents des traces ou des logs,
- et références vers les documents utilisés (lien web).
Bonus track: