TP sysres IMA5sc 2018/2019 G8 : Différence entre versions

De Wiki d'activités IMA
(Serveur DNS)
(Serveur DNS)
Ligne 302 : Ligne 302 :
 
  include /etc/bind/nyxplil.space.dnssec/nyxplil.space-ksk.key
 
  include /etc/bind/nyxplil.space.dnssec/nyxplil.space-ksk.key
 
  include /etc/bind/nyxplil.space.dnssec/nyxplil.space-zsk.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

Version du 10 décembre 2018 à 18:10

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