Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • vimazeno/blog.limos.fr
  • matrossevi/blog.limos.fr
  • borlonjo/blog.limos.fr
3 results
Show changes
Showing
with 1319 additions and 83 deletions
# monitoring
# my
# OpenStack
* mise à jour
* maquettes documentées / réutilisables
* étude de l'architecture
* procédure de démontage / d'amaigrissement
* rationalisation des projets en cours
* gestion de l'existant
* IaaS pour les projets à venir
* initiaition à terraform
* introduction à go
* notamment sur les providers proxmox / terraform
# Proxmox
## aka pve
## Proxmox
* 10 ans
## interfacer avec le LDAP
# https://forum.proxmox.com/threads/how-to-transfer-large-iso-to-proxmox.455/
iptables -t nat -I PREROUTING -d 37.59.57.58 -p tcp --dport 443 -j DNAT --to-destination 37.59.57.58:8006
apt install iptables-persistent
service iptables save
# https://pve.proxmox.com/wiki/HTTPS_Certificate_Configuration_(Version_4.x,_5.0_and_5.1)
# https://pve.proxmox.com/wiki/Storage:_Directory
vi /etc/pve/storage.cfg
dir: local
path /var/lib/vz
vgname pve
content iso,vztmpl,backup,rootdir,images
service pvestatd restart
# https://pve.proxmox.com/wiki/Cloud-Init_FAQ
Hardware > Add > loudInit Drive
SCSI / 0 / local
# https://pve.proxmox.com/wiki/Cloud-Init_Support
# create local-lvm (https://pve.proxmox.com/wiki/Storage)
# download the image
wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
# create a new VM
qm create 9001 --memory 2048 --net0 virtio,bridge=vmbr0
# import the downloaded disk to local-lvm storage
qm importdisk 9001 bionic-server-cloudimg-amd64.img local
# finally attach the new disk to the VM as scsi drive
qm set 9001 --scsihw virtio-scsi-pci --scsi0 local:vm-9001-disk-0
qm set 9000 --ide2 local:cloudinit
qm set 9000 --boot c --bootdisk scsi0
qm set 9000 --serial0 socket --vga serial0
qm template 9000
Deploying Cloud-Init Templates
qm clone 9000 123 --name isp
qm set 123 --sshkey /root/limosadm.pub
qm set 123 --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1
# stack
![stack](images/aws.png "aws")<!-- .element width="30%" -->
aka **B** rew **W** ired **S** tack
## soyons honnête!
Tout repose sur
* [proxmox-provisionner - pulse](https://github.com/Telmate/terraform-provider-proxmox/pulse)
* [proxmox-api - pulse](https://github.com/Telmate/proxmox-api-go/pulse)
et sur les produits [HashiCorp](https://github.com/hashicorp)
## Directory Layout
```shell
+ ansible/
+ plugins/ # utilisé pour le callback anstomlog <3
+ roles/ # roles ansible (commun)
+ bin/ # toutes les commandes de la stack
+ docs/ # documentation
+ packer/ # préparation des templates pve
+ workspaces/ # répertoire pour les workspaces
+ wk/ # répertoire du workspace wk
+ ansible/ # vars et playbooks ansible de wk
+ terraform/ # ressources terraform de wk
- config.yml # config de wk
- ssh_config # config ssh de wk
```
# GROUND0
## PRA
Après la catastrophe on a remnté
- un réseau opérationnel
- des noeuds proxomox non configurés (fresh install)
- un serveur vault restauré
- une copie du repo de la stack et des rôles minimaux nécessaires
- pve
- gitlab
- backuppc
- la sauvegarde de tous les services à restaurer avec backuppc
# INP/ISIMA / LIMOS
## Bienvenue
## DOC
* https://doc.isima.fr
* https://doc.cri.isima.fr (accès restreint aux membres du CRI)
## SUPPORT
* https://support.isima.fr
* https://dsi.uca.fr/assistance
* https://support.uca.fr
* DIL INP
### CRI
* 7 membres infra / services / support (A115/A109)
* 1 membres dédié projets recherche (F201)
* 1 membres dédié HPC
* 1 membres dédié électronique
## BATIMENTS
## AUTHENTIFICATION
* identifiants UCA
* 1 login
* 1 mot de passe
* à changer
* https://ent.uca.fr/compte/
* RH
* scola
* annuaire synchrone à l'ISIMA/LIMOS
* Active Directory (DC + rodc + OpenLdap synchronisé)
* compte uca pour TOUS les services
* comptes invités locaux
* groupes utilisateurs
* permissions sur les services
* changement de mot de passe via l'ENT UCA immédiat partout
* identifiants UCA pour tous les services UCA / ISIMA / LIMOS
## MAIL
* @isima.fr, @limos.fr
* une seule boite pour 2 alias
* webmail SOGO
* https://mail.isima.fr === https://mail.limos.fr
* agenda
* carnet d'adresse
* possibilité de forward
* @etu.uca.fr
* alias @etu.isima.fr
* @uca.fr
* mail universitaire
* boite distinct de @[isima|limos].fr
* @clermont-auvergne-inp.fr
* pour le personnel INP
* @cnrs.fr
* pour le personnel CNRS
## HOME
* dirs.local.isima.fr
* nfs + kerberos
* monter sur perso.isima.fr
* ssh ucausername@dirs.local.isima.fr
* SEUL CE QUI EST ICI EST EN LIEU SUR!
## FIXE ET LAPTOP
* gérer par le CRI et avec accès au réseau ISIMA/LIMOS
* un fix + un laptop pour les enseignants chercheurs
* un fixe ou un laptop pour les doctorant
* machines perso, téléphone, tablette
* connexion WIFI via https://eduroam.org/
* identifiant UCA
* sous windows
* P:// monte votre home de dirs
* SEUL ENDROIT SUR POUR SAUVER CES DONNEES
* TOUS LES POSTES SONT CHIFFRES
* sans aucune exception fixe et laptop
* possibilité de prêt selon les stocks
## MACHINES PEDA
* PC Triple boot
* Windows
* Kubuntu
* OS exam
* PC spécialisés
* Physique
* Robotique
* Electronique
* Tx
* GONA DIE!
* Accès libre
## ACCES SERVEURS VMS
* ssh
* guacamole
* xRDP
## SERVEURS PEDA
* serveurs UNIX
* ADA / Turing
* shared monte votre home de dirs
* SEUL ENDROIT SUR POUR SAUVER CES DONNEES
* serveurs Windows
* TSE1
* P:// monte votre home de dirs
* SEUL ENDROIT SUR POUR SAUVER CES DONNEES
* résintallables à tout moment
* résintallés le 7 juillet 2023
* AUCUN BACKUP!
## VMs PEDA
* accessible via
* ssh
* lire les messages
* guacamole
* problème de raccourcis clavier
* xRDP
## SERVEURS HPC
* Helene Toussaint
* helen.toussaint@limos.fr
* https://hpc.isima.fr
## SERVICES ISIMA/LIMOS
* https://hedgedoc.isima.fr
* https://guacamole.isima.fr
* https://my.isima.fr
* vpn
* cri (accès aux seuls membres)
* profs (enseignants / chercheurs et administration)
* étudiants
* marche / arrêt de VMs péda
* https://gitlab.isima.fr (péda)
* https://gitlab.limos.fr (recherche)
## SERVICES UCA
## SERVEURS PROJETS
## IMPRESSIONS
## RESEAU
## HYPERVISION
\ No newline at end of file
# vagrant
![vagrant](images/vagrant.png "vagrant")<!-- .element width="30%" -->
**By HashiCorp**
## vagrant
* création / configuration d'environnements virtuels
* écrit en ruby
* [<i class="fa fa-github" aria-hidden="true"></i> hashicorp/vagrant](https://github.com/hashicorp/vagrant)
* [<i class="fa fa-gavel" aria-hidden="true"></i> The MIT License](https://github.com/hashicorp/vagrant/blob/master/LICENSE)
* outil en ligne de commande
## vagrant
* il peut être considéré comme un wrapper d'hyperviseur
* VirtualBox
* libvirt
* VMware
* Amazon EC2
* supporte nativement docker depuis la 1.6
## Installation
pré-requis
VirtualBox (versions 4.0.x, 4.1.x, 4.2.x, 4.3.x, 5.0.x, 5.1.x, 5.2.x)
```
$ sudo apt install virtualbox
```
install via apt (plus distribué via RubyGem)
```
$ sudo apt install vagrant
```
afficher la version de vagrant
```
$ vagrant --version
```
## Initialisation du projet
```
$ mkdir project && cd project
$ vagrant init
```
génère un Vagrantfile
```ruby
Vagrant.configure("2") do |config|
config.vm.box = "base"
end
```
beaucoup de commentaires ... laisser vous guider
## Box
* machines virtuelles préconfigurées (templates)
* mis en cache
* nommage à la github "développeur/Box"
```
$ vagrant box add "ubuntu/xenial64"
$ vagrant box add "http://aka.ms/vagrant-win7-ie11"
$ vagrant box list
$ vagrant box remove "ubuntu/xenial64"
```
* [vagrant cloud](https://app.vagrantup.com/boxes/search)
* [vagrantbox.es](https://www.vagrantbox.es/)
## Creating Box
* [Creating a Base Box](https://www.vagrantup.com/docs/boxes/base.html)
* [<i class="fa fa-github" aria-hidden="true"></i> veewee](https://github.com/jedi4ever/veewee)
* [<i class="fa fa-github" aria-hidden="true"></i> How to Create a CentOS Vagrant Base Box](https://github.com/ckan/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box)
* [packer by HashiCorp](https://packer.io/)
* [<i class="fa fa-book"></i> Creating windows base images using Packer and Boxstarter](http://www.hurryupandwait.io/blog/creating-windows-base-images-for-virtualbox-and-hyper-v-using-packer-boxstarter-and-vagrant)
* [<i class="fa fa-github"></i> joefitzgerald/packer-windows](https://github.com/joefitzgerald/packer-windows)
## cycle de vie
```
$ vagrant init "ubuntu/bionic64"
$ vagrant up #--provider=virtualbox
$ vagrant provision
$ vagrant ssh
$ vagrant halt
$ vagrant suspend
$ vagrant reload
$ vagrant destroy #--force
```
se voit dans l'hyperviseur utilisé
## réseau
mapping de port
```ruby
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 80, host: 8004
end
```
* [private network](https://www.vagrantup.com/docs/networking/private_network.html)
* [public network](https://www.vagrantup.com/docs/networking/public_network.html)
* on devrait pouvoir accéder à nos ressources locales
* tester un configuration avec ldap/ rodc?
* [<i class="fa fa-gitlab"></i> cri/ansible-playbook-vault](https://gitlab.isima.fr/cri/ansible-playbook-vault)
## vm
```ruby
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = "4096"
end
end
```
## points de montage
montage automatique de `.` dans `/vagrant`
```
$ vagrant ssh
$ ll /vagrant
total 60
drwxr-xr-x 1 vagrant vagrant 4096 Dec 14 19:46 ./
drwxr-xr-x 24 root root 4096 Dec 14 19:47 ../
drwxr-xr-x 1 vagrant vagrant 4096 Dec 14 19:46 .vagrant/
-rw-r--r-- 1 vagrant vagrant 155 Dec 14 19:49 Vagrantfile
-rw------- 1 vagrant vagrant 44198 Dec 14 19:47 ubuntu-bionic-18.04-cloudimg-console.log
```
autre possibilité à partir de `Vagrantfile`
```ruby
Vagrant.configure("2") do |config|
...
config.vm.provision "file", source: "~/.gitconfig", destination: "~/.gitconfig"
...
end
```
## provisioning
via l'entrée standard
```ruby
config.vm.provision "shell", inline: <<-SHELL
sudo apt install -y python openssh-server
SHELL
```
via un script
```ruby
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise32"
config.vm.provision "shell", path: "script.sh"
end
```
```ruby
if ENV['VAGRANT_OS']
os = ENV['VAGRANT_OS']
else
os = "ubuntu"
end
```
```ruby
Vagrant.configure("2") do |config|
if os == "centos"
config.vm.box = "centos/7"
else
config.vm.box = "ubuntu/bionic64"
end
```
```ruby
if os == "debian"
config.vm.provision "shell", inline: <<-SHELL
sudo yum install httpd
SHELL
else
config.vm.provision "shell", inline: <<-SHELL
sudo apt install -y apache2
SHELL
end
end
```
## Vagrant VS Docker
[<i class="fa fa-gitlab"></i> vimazeno/reveal-prez](https://gitlab.isima.fr/vimazeno/reveal-prez)
[<i class="fa fa-gitlab"></i> vimazeno/affproj](https://gitlab.isima.fr/vimazeno/affproj)
## provisioning
via [ansible](ansible.html)
```ruby
Vagrant.configure("2") do |config|
config.vm.provision "ansible" do |ansible|
ansible.playbook = "playbook.yml"
ansible.host_key_checking = false
ansible.playbook = "vault.yml"
ansible.extra_vars = { is_vagrant: true }
ansible.tags = ['initialize']
ansible.skip_tags = ["vagrant_context"]
ansible.inventory_path = "./my-inventory"
ansible.raw_arguments = ["--private-key=~/.ssh/id/id_rsa"]
ansible.verbose = "vvv"
end
end
```
[Shared Ansible Options](https://www.vagrantup.com/docs/provisioning/ansible_common.html)
## conclusion
**laissez un `Vagrantfile` dans vos roles [ansible](ansible.html) est toujours une bonne idée!**
* [<i class="fa fa-gitlab"></i> cri/ansible-playbook-vault](https://gitlab.isima.fr/cri/ansible-playbook-vault)
* [<i class="fa fa-gitlab"></i> cri/ansible-playbook-vault/Vagrantfile](https://gitlab.isima.fr/cri/ansible-playbook-vault/blob/master/Vagrantfile)
# vault ## Vault en bref!
**By HashiCorp**
![vault](images/vault.png "vault")<!-- .element width="30%" --> ![vault](../cri/images/vault.png "vault")<!-- .element width="30%" -->
[https://vault.isima.fr](https://vault.isima.fr) #### Des secrets, des apps, des tokens, des équipes, un séquestre
# Secrets ## Vault
* By HashiCorp
* [écrit en go](https://github.com/hashicorp/hcl)
* cross plateform
* [hcl](https://github.com/hashicorp/hcl)
* intégration avec [consul](https://www.consul.io) & [terraform](https://www.terraform.io/)
* [auditable](https://www.vaultproject.io/docs/commands/audit/enable.html)
* [documenté](https://www.vaultproject.io/docs/)
* ... couteau suisse
## Vault
Il existe deux étages deux secrets dans la stack * Un binaire [vault](https://releases.hashicorp.com/vault/) qui fait
* serveur
* [<i class="fa fa-book" aria-hidden="true"></i> api](https://www.vaultproject.io/api/overview)
* UI web
* cli
* les **secrets locaux**: sont gérés par la commande `ansible-vault` et peuvent être lus simplement avec la commande `avq` de la stack (accessible une fois l'environnement activé). Les **secrets locaux** sont chiffrés en local, mais le fait qu'ils ne soient pas versionnés rend ce chiffrement non indispensable. ```shell
$ export $VAULT_ADDR=https://10.0.0.1
```
* les **secrets globaux**: sont gérés par la commande `vault` de HashiCorp et peuvent être lus simplement avec la commande `hvq` de la stack (accessible une fois l'environnement activé). les secrets sont disponibles selon les permissions du jeton utilisés. les **secrets globaux** sont utilisés pour construire les **secrets locaux**
## Générer un secret ## Configuration
Un secret robuste en ligne de commande se génère avec la commande `openssl` comme suit `/etc/vault/vault.hcl`
``` ```
$ openssl rand -base64 256 backend "file" {
path = "/var/lib/vault"
}
ui = true
disable_mlock = true
listener "tcp" {
address = "10.0.0.1:443"
tls_cert_file = "/etc/certs/vault.crt"
tls_key_file = "/etc/certs/vault.key"
tls_disable = 0
}
``` ```
écrire le secret dans un fichier
## initialisation SSS
### Shamir's Secret Sharing
```shell
$ vault operator init -key-shares=3 -key-threshold=2
``` ```
$ openssl rand -base64 256 > ~/.ansible_secrets/stack
```shell
Unseal Key 1: 6gAO3lmAhIaHzDAdkK256g2B2Dpeqy+z4jqQCJBID3d8
Unseal Key 2: TO7DDRQXSPC3IQylPEBPjPGAGAGMzjEkjT/FL62m7UUd
Unseal Key 3: CYfEbt83jYsQFcSErHT4Y5NCsrEtfFUE6tjQZKfP632K
Initial Root Token: s.78MykQO2b5qcy03rtoNwmhr1
Vault initialized with 3 key shares and a key threshold of 2. Please securely
distribute the key shares printed above. When the Vault is re-sealed,
restarted, or stopped, you must supply at least 2 of these keys to unseal it
before it can start servicing requests.
Vault does not store the generated master key. Without at least 2 key to
reconstruct the master key, Vault will remain permanently sealed!
``` ```
Stocker le secret directement dans hashicorp vault
## Authentification
!["authentification"](../cri/images/vault-auth.png "authentification")
## Authentification
par token
```shell
$ vault login token=<root-or-app-token>
``` ```
$ openssl rand -base64 256 @TODO
equivalent à
```shell
$ export VAULT_TOKEN token=<root-or-app-token>
``` ```
## Vault par ldap
```shell
$ vault login -method=ldap username=mazenovi
``` ```
vault login -method=ldap username=vimazeno # vault login token=<token>
vault kv put cri/clusters/ovh/duncan/proxmoxapi password=itsasecret stocke le token dans `~/.vault-token` et `$VAULT_TOKEN`
vault read cri/clusters/ovh/duncan/proxmoxapi
vault read cri/clusters/ovh/duncan/proxmoxapi -format=json
vault read cri/clusters/ovh/duncan/proxmoxapi -format=json | jq .data ## Policy (ACL)
vault read cri/clusters/ovh/duncan/proxmoxapi -format=json | jq .data.password
vault delete cri/clusters/ovh/duncan/proxmoxapi ```
path "cri/*" {
capabilities = ["create", "read", "update", "delete", "list"]
}
``` ```
l'authentification ldap créée un fichier dans ~/.vault-token contenant votre token utilisateur avec vos permissions associées écriture
```shell
$ vault policy write cri `/etc/vault/cri.hcl`
``` ```
vault kv patch cri/clusters/ovh/duncan/proxmoxapi password="$(openssl rand -base64 25)" application à un groupe ldap
```shell
$ vault write auth/ldap/groups/cri policies=cri
``` ```
**N.B.** patch met à jour l'entrée avec KV2 et écrase les autres avec KV1 (on a activé KV2) création de token à partir de la policy
```shell
$ vault token create -policy=cri
```
## [<i class="fa fa-book" aria-hidden="true"></i> Secrets engines](https://www.vaultproject.io/docs/secrets/)
!["secrets engines"](../cri/images/vault-secrets-engines.png "secrets engines")
## workflow
```shell
$ vault secrets list
$ vault kv list cri/
$ vault kv get cri/test
$ vault kv get -format=json cri/test
$ vault kv get -format=json cri/test | jq .data
$ vault kv get -format=json cri/test | jq .data.data.root
$ vault kv put cri/test password2=$(date | sha256sum)
$ vault kv patch cri/test password1=$(date | sha256sum)
$ vault delete cri/test
```
## avec ansible
* lookup natif [hashi_vault](https://docs.ansible.com/ansible/latest/plugins/lookup/hashi_vault.html)
* lecture uniquement
* pas de support natif pour kv2 à ce jour
* module "community" [hashivault](https://github.com/TerryHowe/ansible-modules-hashivault)
* Reading and Writing
* supporte kv2
* Initialization, Seal, and Unseal
* Policy
* User Management
## Stocker un secret
Ce secret devrait être stocké dans https://vault.isima.fr ## UI
Avec la commande `vault` [@TODO vault install] dans le path adéquat. !["UI"](../privacy/images/vault/web.png "UI")
Interroger la structure du vault avec la command `vault-tree` avant de choisir le path du secret semble une bonne idée [vault-tree]().
Ces consignes sont valables pour tous le secrets de ce tutoriel !["carnets mots de passe"](../privacy/images/vault/password_management.jpg "carnets mots de passe")<!-- .element width="80%" -->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>my</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/my.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>openstack</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/openstack.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>pve</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/pve.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<body> <body>
<div class="reveal"> <div class="reveal">
<div class="slides"> <div class="slides">
<section data-markdown="md/aws.md" <section data-markdown="md/stack.md"
data-separator="^\n\n\n" data-separator="^\n\n\n"
data-separator-vertical="^\n\n" data-separator-vertical="^\n\n"
data-separator-notes="^Note:" data-separator-notes="^Note:"
......
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>users</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/users.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>vagrant</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/vagrant.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<h3>1337</h3> <h3>projets</h3>
<ul>
<li>
<a href="projets/profan-rgpd.html">Profan RGPD</a>
</li>
</ul>
<h3>privacy</h3>
<ul>
<li>
<a href="privacy/jnarac.html">je n'ai rien &agrave; cacher</a>
<ul>
<li><a href="1337/http.html">http</a></li>
<li><a href="privacy/sovereignty.html">souverainet&eacute;</a></li>
<li><a href="privacy/tracking.html">tracking</a></li>
<li><a href="privacy/passwords.html">mots de passes</a></li>
<li><a href="privacy/crypto.html">crypto</a></li>
<li><a href="privacy/tls.html">tls</a> / <a href="privacy/tls.html#/0/52">https</a></li>
<li><a href="privacy/pgp.html">pgp</a></li>
<li><a href="privacy/TLSvsPGP.html">tls vs PGP</a></li>
<li><a href="privacy/tor.html">tor</a></li>
<li><a href="privacy/tails.html">tails</a></li>
<li><a href="privacy/vault.html">vault</a></li>
<li><a href="privacy/bitcoin.html">bitcoin</a></li>
</ul>
</li>
<li><a href="privacy/surfer_couvert.html">surfer couvert (en bref)</a></li>
<li><a href="privacy/browser.html">s&eacute;curit&eacute; et navigateur</a></li>
</ul>
<h3>1337</h3>
<ul>
<li><a href="1337/sidoine.html">S&eacute;curit&eacute; des applications web</a></li>
</ul>
<ul> <ul>
<li> <li>
Architecture Architecture
<ul> <ul>
<li><a href="1337/http.html">http</a> / <a href="privacy/tls.html#/0/52">https</a></li> <li><a href="1337/http.html">http</a> / <a href="privacy/tls.html#/0/52">https</a></li>
<li><a href="1337/js.html">JS</a></li>
</ul> </ul>
</li> </li>
<li> <li>
Pentesting Pentesting
<ul> <ul>
<li><a href="1337/gathering.html">Collecter</a></li> <li><a href="1337/gathering.html">Collecter</a></li>
<li><a href="1337/detect.html">D&eacute;tecter</a></li>
<li> <li>
Exploit <a href="1337/detecting.html">D&eacute;tecter</a>
<ul> <ul>
<li><a href="1337/heartbleed.html">Heartbleed</a></li> <li><a href="1337/heartbleed.html">Heartbleed</a></li>
</ul> </ul>
...@@ -25,29 +58,19 @@ ...@@ -25,29 +58,19 @@
Vuln&eacute;rabilit&eacute;s communes Vuln&eacute;rabilit&eacute;s communes
<ul> <ul>
<li> <li>
<a href="1337/command_execution.html">Ex&eacute;cution arbitraire de commandes</a> <a href="1337/cmdi.html">Command execution</a>
<ul> <ul>
<li> <li><a href="1337/shellshock.html">Shellshock</a></li>
Exploit
<ul>
<li><a href="1337/shellshock.html">Shellshock</a></li>
</ul>
</li>
</ul> </ul>
</li> </li>
<li><a href="1337/upload.html">Upload</a></li> <li><a href="1337/upload.html">Upload</a></li>
<li><a href="1337/lfi_rfi.html">LFI_RFI</a></li> <li><a href="1337/fi.html">File inclusion</a></li>
<li><a href="1337/xss.html">XSS</a></li> <li><a href="1337/xss.html">XSS</a></li>
<li><a href="1337/csrf.html">CSRF</a></li> <li><a href="1337/csrf.html">CSRF</a></li>
<li> <li>
<a href="1337/sqli.html">SQLi</a> <a href="1337/sqli.html">SQLi</a>
<ul> <ul>
<li> <li><a href="1337/drupalgeddon.html">Drupalgeddon</a></li>
Exploit
<ul>
<li><a href="1337/drupalgeddon.html">Drupalgeddon</a></li>
</ul>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
...@@ -55,44 +78,25 @@ ...@@ -55,44 +78,25 @@
<li> <li>
Se prot&eacute;ger Se prot&eacute;ger
<ul> <ul>
<li> <li><a href="1337/top10.html">Top10</a></li>
<li><a href="1337/top10.html">Top10</a></li> <li><a href="1337/anticiper.html">Anticiper</a></li>
<li><a href="1337/anticiper.html">Anticiper</a></li> <li><a href="1337/reagir.html">R&eacute;agir</a></li>
<li><a href="1337/anticiper.html">R&eacute;agir</a></li>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h3>cri</h3> <h3>cri</h3>
<li><a href="cri/criprod.html">criprod</a></li>
<li><a href="cri/vault.html">vault</a></li>
<li><a href="cri/ansible.html">ansible</a></li>
<li><a href="cri/terraform.html">terraform</a></li>
<li><a href="cri/aws.html">aws</a></li>
<h3>privacy</h3>
<ul> <ul>
<li><a href="cri/devops.html">devops</a></li>
<li> <li><a href="cri/vagrant.html">vagrant</a></li>
<a href="privacy/jnarac.html">je n'ai rien &agrave; cacher</a> <li><a href="cri/ansible.html">ansible</a></li>
<ul> <li><a href="cri/vault.html">vault</a></li>
<li><a href="1337/http.html">http</a></li> <li><a href="cri/ansible-role.html">ansible role</a></li>
<li><a href="privacy/sovereignty.html">souverainet&eacute;</a></li> <li><a href="cri/pve.html">pve</a></li>
<li><a href="privacy/tracking.html">tracking</a></li> <li><a href="cri/terraform.html">terraform</a></li>
<li><a href="privacy/passwords.html">mots de passes</a></li> <li><a href="cri/stack.html">stack</a></li>
<li><a href="privacy/tor.html">tor</a></li> <li><a href="cri/gitlab.html">gitlab</a></li>
<li><a href="privacy/tails.html">tails</a></li> <li><a href="cri/my.html">my</a></li>
<li><a href="privacy/crypto.html">crypto</a></li> <li><a href="cri/openstack.html">openstack</a></li>
<li><a href="privacy/pgp.html">pgp</a></li> <li><a href="cri/criprod.html">criprod</a></li>
<li><a href="privacy/tls.html">tls</a> / <a href="privacy/tls.html#/0/52">https</a></li>
<li><a href="privacy/TLSvsPGP.html">tls vs PGP</a></li>
<li><a href="privacy/bitcoin.html">bitcoin</a></li>
</ul>
</li>
<li><a href="privacy/surfer_couvert.html">surfer couvert (en bref)</a></li>
</ul> </ul>
...@@ -24,3 +24,63 @@ ...@@ -24,3 +24,63 @@
padding: 0.2em 0.5em 0.2em 0.5em; padding: 0.2em 0.5em 0.2em 0.5em;
border-bottom: 1px solid; border-bottom: 1px solid;
} }
reveal code {
background-color: gray;
}
.fa-circle-check {
color: green;
}
.fa-circle-xmark {
color: red;
}
.fa-bomb {
color: grey;
}
.fa-lightbulb {
color: yellow;
}
.fa-trophy {
color: yellow;
}
.fa-medkit {
color: pink;
}
.fa-triangle-exclamation {
color: orange;
}
.fa-cogs {
color:steelblue;
}
.fa-ice-cream {
color:tomato;
}
.fa-firefox-browser {
color: orange;
}
.fa-bullseye {
color:orangered
}
.fa-book-skull, .fa-screwdriver-wrench {
color: grey;
}
code:not([class]) {
background-color: darkgrey;
border-radius: 5px;
padding: 5px;
font-size: 80%;
color: white;
}
\ No newline at end of file
"use strict";
Reveal.addEventListener( "ready", (event) => {
let user = ''
if(document.location.href.indexOf("?") != -1) {
user = document.location.href.substring(
document.location.href.indexOf("?")+1,
document.location.href.indexOf("#")
);
}
console.log(user);
let as = document.getElementsByTagName("a");
for (let a of as) {
let link = a.href;
if(
a.classList == ''
&& a.href != ''
&& !a.href.includes('javascript:')
) {
//console.log(link);
let url = new URL(link);
if (
url.origin == "http://dv.wa"
&& user != ""
) {
a.href = "http://vm-" + user + ".local.isima.fr" + url.pathname + url.search;
a.innerHTML = "http://vm-" + user + ".local.isima.fr" + url.pathname + url.search;
a.target = "_blank";
}
}
}
for (let code of document.getElementsByTagName("code")) {
if (user != "") {
code.innerHTML = code.innerHTML.replaceAll("dv.wa", "vm-" + user + ".local.isima.fr");
}
}
});
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Sécurité / Navigateurs</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/browser.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>une contre histoire de l'utopie numérique - connaître le passé pour comprendre le présent</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<!-- link rel="stylesheet" href="../main.css" -->
<style>
.reveal section img, .reveal section table, .reveal section tr, .reveal section td, .reveal section th {
border: none;
}
.reveal section img {
box-shadow: none;
}
.reveal section.trsp {
background: rgba(0, 0, 0, 0.7);
}
.reveal section.bottom {
bottom: 0;
}
.reveal section.trsp > h1,
.reveal section.trsp > h2,
.reveal section.trsp > h3,
.reveal section.trsp > h4 {
color: white;
}
</style>
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/chun/index.md"
data-separator="^---$"
data-separator-vertical="^----$"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
content/slides/privacy/images/browsers/ad.png

86.7 KiB