TP sysres IMA5sc 2018/2019 G8
TP GIS
Conteneurs à la main
Création des espaces disques
dd if=/dev/zero of=diskTPconteneur bs=1024k count=10240 mkfs diskTPconteneur
mkdir /tmp/fs1 mkdir /tmp/fs2 mkdir /tmp/fs3
mount -o loop diskTPconteneur /tmp/fs1 debootstrap --include apache2,nano stable /tmp/fs1 echo "proc /proc proc defaults 0 0" >> /tmp/fs1/etc/fstab
umount /tmp/fs1 cp diskTPconteneur ./diskTPconteneur2 cp diskTPconteneur ./diskTPconteneur3 mv diskTPconteneur ./diskTPconteneur1
mount -o loop diskTPconteneur1 /tmp/fs1 mount -o loop diskTPconteneur2 /tmp/fs2 mount -o loop diskTPconteneur3 /tmp/fs3 df -h
Dans 3 terminaux différents:
unshare -p -f -m -n -u chroot /tmp/fs1/ /bin/sh -c "mount /proc ; /bin/bash" unshare -p -f -m -n -u chroot /tmp/fs2/ /bin/sh -c "mount /proc ; /bin/bash" unshare -p -f -m -n -u chroot /tmp/fs3/ /bin/sh -c "mount /proc ; /bin/bash"
Création du commutateur
ip link add commTPconteneur type bridge
ip link add vif1 type veth peer name eth0@vif1 ip link add vif2 type veth peer name eth0@vif2 ip link add vif3 type veth peer name eth0@vif3 ip link add vif4 type veth peer name eth1@vif4
ps aux | grep unshare ip link set eth0@vif1 netns /proc/13812/ns/net name eth0 ip link set eth0@vif2 netns /proc/13860/ns/net name eth0 ip link set eth0@vif3 netns /proc/13883/ns/net name eth0 ip link set eth1@vif4 netns /proc/13812/ns/net name eth1
ip link set vif1 master commTPconteneur ip link set vif2 master commTPconteneur ip link set vif3 master commTPconteneur ip link set vif4 master bridge brctl show
nsenter -t 13812 -n ip address add dev eth0 192.168.0.101/24 nsenter -t 13860 -n ip address add dev eth0 192.168.0.102/24 nsenter -t 13883 -n ip address add dev eth0 192.168.0.103/24 nsenter -t 13812 -n ip address add dev eth1 172.26.145.100/24
Pour le mandataire inverse
ip route add default via 172.26.145.254
ip link set vif1 up ip link set vif2 up ip link set vif3 up ip link set vif4 up ip link set commTPconteneur up
Dans chaque terminal faisant tourner un conteneur:
ip link set eth0 up
Création des DNS sur Gandi
name:grandPote | type: A | adresse: 172.26.145.100
name: ptitPote1 | type: CNAME | hostname: grandPote name: ptitPote2 | type: CNAME | hostname: grandPote
a2enmod proxy proxy_http apache2 restart
Modification de /etc/apache2/site-enabled
<VirtualHost *:80> ServerName ptitPote1.plil.space ServerAdmin webmaster@localhost ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass / http://192.168.0.102/ ProxyPassReverse / http://192.168.0.102/ ProxyRequests Off </VirtualHost>
<VirtualHost *:80> ServerName ptitPote2.plil.space ServerAdmin webmaster@localhost ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass / http://192.168.0.103/ ProxyPassReverse / http://192.168.0.103/ ProxyRequests Off </VirtualHost>
Modification des fichiers /var/www/html/index.html dans les conteneurs
/var/www/html# echo "Serveur ptitPote1" > index.html /var/www/html# echo "Serveur ptitPote2" > index.html
10h11 => Serveurs Web OK avec unshare
Conteneurs avec Docker
docker run -i -t debian /bin/bash export http_proxy="http://proxy.polytech-lille.fr:3128/" apt-get update apt-get nano apt-get apache2 docker commit fae2449c3b9a docker network create octopus
docker run -i --net=octopus -t ba94e9aada65 docker run -i --net=octopus -t ba94e9aada65 service apache2 stop docker run -i --net=octopus -p 80:80 -t ba94e9aada65
name:Alibaba | type: A | adresse: 172.26.145.35 name: Voleur1 | type: CNAME | hostname: grandPote name: Voleur2 | type: CNAME | hostname: grandPote
Modification de /etc/apache2/site-enabled
<VirtualHost *:80> ServerName Voleur1.plil.space ServerAdmin webmaster@localhost ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass / http://172.20.0.2/ ProxyPassReverse / http://172.20.0.2/ ProxyRequests Off </VirtualHost>
<VirtualHost *:80> ServerName Voleur2.plil.space ServerAdmin webmaster@localhost ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass / http://172.20.0.3/ ProxyPassReverse / http://172.20.0.3/ ProxyRequests Off </VirtualHost>
10h20 Serveurs Web (docker) OK
TP PrA
Déménagement des serveurs Chassiron et Cordouan
Deux rails sont à disposition:
- 1* Dell ReadyRail, taille 2U, type B4, mode Static
- 1* Dell ReadyRail, taille 2U, type B6, mode Sliding
D'après la documentation fournie par Dell, les serveurs PowerEdge R520 (modèle des serveurs Chassiron et Cordouan) sont compatibles avec les rails de type B4, B6 et B13.
Les serveurs seront fixés à mi-hauteur de la baie afin de pouvoir placer un PC dessus.
Pour Chassiron:
- rail de type B4 occupant 1'unité, fixé à l'unité 22
- le serveur occupera donc les unités 21 et 22
Pour Cordouan:
- rail de type B6 occupant 2 unités, fixé aux unités 19 et 20
- le serveur occupera donc les unités 19 et 20
Pour l'alimentation:
- fixation à l'unité 1 afin d'être sécurisé en cas d'inondation
- fixation à l'arrière de la baie afin de faciliter l'alimentation du PC
Partie commune: installation d'une machine virtuelle sur Cordouan
Création
Connexion en ssh sur Cordouan
ssh root@cordouan.insecserv.deule.net
Création de la machine virtuelle à l'aide de xen en utilisant l'adresse IP qui nous a été attribuée. La gateway est fournie dans le sujet du TP
xen-create-image --hostname=nyx --ip=193.48.57.184 --netmask=255.255.255.240 --gateway=193.48.57.160 --dir=/usr/local/xen
Mot de passe root: zhWEcNfwANbzCr5fk2mJHg6
Modification du fichier /etc/xen/nyx.cfg pour permettre à la machine virtuelle de se lancer correctement
#Networking vif + bridge=StudentsInfo
Accès à la console:
xl console nyx
Sortie de la console:
ctrl + alt gr + ]
Extinction de la machine:
xl shutdown nyx
Configuration
Nous allons créer des partitions sur l'hôte pour héberger /home et /var
lvcreate -L10G -n nyx-home virtual lvcreate -L10G -n nyx-var virtual
Modification du fichier /etc/xen/nyx.cfg pour ajouter les disques
(+) disk = [ 'phy:/dev/virtual/nyx-home,xvda3,w', 'phy:/dev/virtual/nyx-var,xvda4,w', ]
Après redémarrage de la VM, nous créeons les systèmes de fichiers sur les volumes:
mkfs -t ext4 /dev/xvda3 mkfs -t ext4 /dev/xvda4
Utiliser la commande fdisk -l nous a permi de constater que les volumes étaient bien montés
Home
Afin de s'assurer que la partition home soit montée au démarrage de la VM, nous modifions le fichier /etc/fstab de celle-ci:
(+) /dev/xvda3 /home ext4 defaults 0 2
Nous pouvons ensuite simplement monter la partition
mount -a
Var
La partition var est d'abord montée dans un répertoire temporaire /mnt:
mount /dev/xvda4 /mnt mv /var/* /mnt
La partition est ensuite rajoutée dans le fichier /etc/fstab:
/dev/xvda4 /var ext4 defaults 0 2
Serveur SSH
Nous installons le client ssh puis modifions le fichier /etc/ssh/ssh_conf afin de pouvoir se connecter en root
Serveur DNS
apt-get install apache2 bind9
Nous réservons notre nom de domaine sur Gandi: www.nyxplil.space
Nous commençons par créer le dossier pour la page web:
mkdir /var/www/www.nyxplil.space
Nous créons ensuite le fichier dns.nyxplil.space avec le contenu suivant:
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA dns.nyxplil.space. root.nyxplil.space ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS dns.nyxplil.space. ns IN A 193.48.57.184 www IN A 193.48.57.184 ;
Nous configurons ensuite le fichier named.conf.local afin d'autoriser le transfert de paquet vers le DNS esclave
zone "nyxplil.space" { type master; file "/etc/bind/dns.nyxplil.space"; allow-transfer {217.70.177.40;}; };
service bind9 restart
Enfin, il nous reste quelques réglages à faire depuis Gandi. Pour les "glue records":
nom du serveur : dns.nyxplil.space ip : 193.48.57.184
Pour les DNS:
'DNS1' : dns.nyxplil.space 'DNS2' : ns6.gandi.net
mkdir nyxplil.space.dnssec cd nyxplil.space.dnssec
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -r /dev/urandom -n ZONE nyxplil.space dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE nyxplil.space
include /etc/bind/nyxplil.space.dnssec/nyxplil.space-ksk.key include /etc/bind/nyxplil.space.dnssec/nyxplil.space-zsk.key
root@nyx_rsa:/etc/bind/nyxplil.space.dnssec# dnssec-signzone -o nyxplil.space -k nyxplil.space-ksk ../dns.nyxplil.space nyxplil.space-zsk
Verifying the zone using the following algorithms: RSASHA1. Zone fully signed: Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked
ZSKs: 1 active, 0 stand-by, 0 revoked
../dns.nyxplil.space.signed