TP sysres SE2a5 2022/2023 G5 : Différence entre versions

De Wiki d'activités IMA
(SSH)
(Serveur web https)
Ligne 148 : Ligne 148 :
 
<pre>PermitRootLogin yes</pre>
 
<pre>PermitRootLogin yes</pre>
  
=== HTTPS ===
+
=== Serveur Web ===
 +
 
 +
* Installation du paquet <code>openssl</code> :
 +
 
 +
<pre>apt install openssl</pre>
 +
* Création d’un certificat TSL :
 +
 
 +
<pre>openssl req -nodes -newkey rsa:2048 -sha256 -keyout miserable.site.key -out miserable.site.csr</pre>
 +
Attention à bien renseigner <code>miserable.site</code> comme CN (Common Name) pour la création du certificat.
 +
 
 +
<pre>mv miserable.site.key /etc/ssl/private
 +
mv miserable.site.csr /etc/ssl/certs</pre>
 +
Il est nécessaire de faire signer le certificat <code>.csr</code> par un registrar tel que [https://letsencrypt.org/fr/ Let’s Encrypt] ou [https://docs.gandi.net/fr/ssl/creation/installation_certif_manuelle.html Gandi] afin d’en obtenir le nouveau certificat signé <code>.crt</code>.<br />
 +
Puisque le registrar Gandi a été utilisé pour réserver le nom de domaine <code>miserable.site</code>, il est alors possible d’utiliser à nouveau ce service pour signer gratuitement le certificat <code>miserable.site.csr</code>.
 +
 
 +
Pour cela, il faut “acheter” un certificat SSL pour un hôte “ailleurs” et coller le contenu du fichier <code>.csr</code>. Une fois le CN entré et reconnu, l’achat devient gratuit et peut être effectué.<br />
 +
Après quelques minutes, il est désormais possible de télécharger le certificat signé <code>.crt</code> ainsi que le certificat nommé <code>GandiStandardSSLCA2.pem</code>.
 +
 
 +
Ces deux certificats sont à copier dans le répertoire <code>/etc/ssl/certs</code> de la VM.
 +
 
 +
* Copier les certificats sur la VM :
 +
 
 +
<pre>scp -r -p miserable.site.crt root@193.48.57.164:/etc/ssl/certs
 +
scp -r -p GandiStandardSSLCA2.pem root@193.48.57.164:/etc/ssl/certs</pre>
 +
* Installation du paquet <code>apache2</code> :
 +
 
 +
<pre>apt install apache2</pre>
 +
* Activation du module SSL :
 +
 
 +
<pre>a2enmod ssl</pre>
 +
* Modification du fichier <code>/etc/apache2/ports.conf</code> :
 +
 
 +
<pre>Listen 80
 +
 
 +
&lt;IfModule mod_ssl.c&gt;
 +
  Listen 443
 +
&lt;/IfModule&gt;
 +
&lt;IfModule mod_gnutls.c&gt;
 +
  Listen 443
 +
&lt;/IfModule&gt;</pre>
 +
* Ajout du fichier <code>/etc/apache2/sites-available/000-miserable.site-ssl.conf</code> :
 +
 
 +
<pre>&lt;IfModule mod_ssl.c&gt;
 +
        &lt;VirtualHost 193.48.57.164:443&gt;
 +
                ServerName miserable.site
 +
                ServerAlias ns.miserable.site www.miserable.site
 +
                DocumentRoot /var/www/miserable.site/
 +
                CustomLog /var/log/apache2/secure_access.log combined
 +
                SSLEngine on
 +
                SSLCertificateFile /etc/ssl/certs/miserable.site.crt
 +
                SSLCertificateKeyFile /etc/ssl/private/miserable.site.key
 +
                SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem
 +
                SSLVerifyClient None
 +
        &lt;/VirtualHost&gt;
 +
&lt;/IfModule&gt;</pre>
 +
* Activation du site <code>miserable.site</code> :
 +
 
 +
<pre>a2ensite 000-miserable.site-ssl</pre>
 +
* Modification du fichier <code>nano /etc/apache2/apache2.conf</code> :
 +
 
 +
<pre>ServerName miserable.site</pre>
 +
* Modification du fichier <code>nano /etc/apache2/sites-available/000-default.conf</code> :
 +
 
 +
<pre>Redirect permanent / https://www.miserable.site/</pre>
 +
* Redémarrage du service <code>apache2</code> :
 +
 
 +
<pre>service apache2 restart</pre>
 +
 
 
=== DNS ===
 
=== DNS ===
 
=== DNSSEC ===
 
=== DNSSEC ===
 
=== Serveur Mincraft ===
 
=== Serveur Mincraft ===
 
=== Fail2Ban ===
 
=== Fail2Ban ===

Version du 28 novembre 2022 à 11:50

TP Réseaux SE2A5 - Alexandre TRUPIN | Alex VERCAMPT

Groupe Domaine Nom VM IPv4 virtuelle IPv4 routée VLAN privé Réseau local IPv4 Cisco 6509-E Cisco 9200 ISR4331 Réseau IPv6 SSID n°1 SSID n°2
Groupe 5 miserable.site VMalex2 10.24.0.250 193.48.57.167/28 24 10.24.0.0/16 10.24.0.251 10.24.0.252 10.24.0.253 2001:660:4401:60A0:216:3eff:fe92:8ec5

Configuration Réseau

Machine virtuelle

  • Connexion au serveur Capbreton :
ssh capbreton.plil.info
  • Créer la variable d’environnement http_proxy :
export http_proxy=http://proxy.plil.fr:3128

En configurant correctement le proxy de la plateforme, il est désormais possible d’accéder aux images et aux paquets Debian pour créer la VM.

  • Création d’une image pour la VM :
xen-create-image --hostname=VMalex2 --ip=10.60.100.164 --gateway=10.60.100.254 --netmask=255.255.255.0 --dir=/usr/local/xen --password=glopglop --dist=buster

    → Dossier de stockage des données de la VM : /usr/local/xen/domains/VMalex2
    → Fichier de configuration de la VM : /etc/xen/VMalex2.cfg

  • Création des partitions virtuelles :
vgcreate virtual /dev/sda7
lvcreate -L10G -n VMalex2-home virtual
lvcreate -L10G -n VMalex2-var virtual
  • Vérification des partitions :
lvdisplay
lsblk
  • Formatage de la partition virtuelle :
mkfs.ext4 /dev/virtual/VMalex2-home
mkfs.ext4 /dev/virtual/VMalex2-var
  • Modification de /etc/xen/VMalex2.cfg :

    → Ajout des partitions virtuelles dans la variable disk :

'phy:/dev/virtual/VMalex2-home,xvda3,w',
'phy:/dev/virtual/VMalex2-var,xvda4,w'

    → Ajout du pont dans dans la variable vif :

vif = [ 'mac=00:16:3E:D8:97:68, bridge=IMA2a5' ]

Le fichier de configuration obtenu est le suivant :

#
# Configuration file for the Xen instance VMalex2, created
# by xen-tools 4.8 on Fri Nov 12 08:53:11 2021.
#

#
#  Kernel + memory size
#
kernel      = '/boot/vmlinuz-4.19.0-9-amd64'
extra       = 'elevator=noop'
ramdisk     = '/boot/initrd.img-4.19.0-9-amd64'

vcpus       = '1'
memory      = '256'


#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                  'file:/usr/local/xen/domains/VMalex2/disk.img,xvda2,w',
                  'file:/usr/local/xen/domains/VMalex2/swap.img,xvda1,w',
                  'phy:/dev/virtual/VMalex2-home,xvda3,w',
                  'phy:/dev/virtual/VMalex2-var,xvda4,w'
              ]


#
#  Physical volumes
#


#
#  Hostname
#
name        = 'VMalex2'

#
#  Networking
#
vif         = [ 'mac=00:16:3E:BE:BF:2D, bridge=IMA2a5' ]

#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'
  • Création de la VM :
xl create /etc/xen/VMalex2.cfg
  • Affichage de l’état des VM :
xl list
  • Affichage du mot de passe de la VM :
tail -f /var/log/xen-tools/VMalex2.log
  • Démarrage d’un shell sur la VM :
xen console VMalex2
  • Changement du mot de passe :
passwd root
  • Mise à jour de la liste des paquets :
apt update
  • Montage des partitions virtuelles :
mount /dev/xvda4 /mnt
  • Copie des données des répertoires /home et /var :
mv /var/* /mnt
  • Démontage des partitions virtuelles :
umount /mnt
  • Ajout des partitions au fichier /etc/fstab :
/dev/xvda3 /home ext4 defaults 0 2
/dev/xvda4 /var ext4 defaults 0 2

Services

SSH

Modification dans le fichier /etc/ssh/sshd_config :

PermitRootLogin yes

Serveur Web

  • Installation du paquet openssl :
apt install openssl
  • Création d’un certificat TSL :
openssl req -nodes -newkey rsa:2048 -sha256 -keyout miserable.site.key -out miserable.site.csr

Attention à bien renseigner miserable.site comme CN (Common Name) pour la création du certificat.

mv miserable.site.key /etc/ssl/private
mv miserable.site.csr /etc/ssl/certs

Il est nécessaire de faire signer le certificat .csr par un registrar tel que Let’s Encrypt ou Gandi afin d’en obtenir le nouveau certificat signé .crt.
Puisque le registrar Gandi a été utilisé pour réserver le nom de domaine miserable.site, il est alors possible d’utiliser à nouveau ce service pour signer gratuitement le certificat miserable.site.csr.

Pour cela, il faut “acheter” un certificat SSL pour un hôte “ailleurs” et coller le contenu du fichier .csr. Une fois le CN entré et reconnu, l’achat devient gratuit et peut être effectué.
Après quelques minutes, il est désormais possible de télécharger le certificat signé .crt ainsi que le certificat nommé GandiStandardSSLCA2.pem.

Ces deux certificats sont à copier dans le répertoire /etc/ssl/certs de la VM.

  • Copier les certificats sur la VM :
scp -r -p miserable.site.crt root@193.48.57.164:/etc/ssl/certs
scp -r -p GandiStandardSSLCA2.pem root@193.48.57.164:/etc/ssl/certs
  • Installation du paquet apache2 :
apt install apache2
  • Activation du module SSL :
a2enmod ssl
  • Modification du fichier /etc/apache2/ports.conf :
Listen 80

<IfModule mod_ssl.c>
   Listen 443
</IfModule>
<IfModule mod_gnutls.c>
   Listen 443
</IfModule>
  • Ajout du fichier /etc/apache2/sites-available/000-miserable.site-ssl.conf :
<IfModule mod_ssl.c>
        <VirtualHost 193.48.57.164:443>
                ServerName miserable.site
                ServerAlias ns.miserable.site www.miserable.site
                DocumentRoot /var/www/miserable.site/
                CustomLog /var/log/apache2/secure_access.log combined
                SSLEngine on
                SSLCertificateFile /etc/ssl/certs/miserable.site.crt
                SSLCertificateKeyFile /etc/ssl/private/miserable.site.key
                SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem
                SSLVerifyClient None
        </VirtualHost>
</IfModule>
  • Activation du site miserable.site :
a2ensite 000-miserable.site-ssl
  • Modification du fichier nano /etc/apache2/apache2.conf :
ServerName miserable.site
  • Modification du fichier nano /etc/apache2/sites-available/000-default.conf :
Redirect permanent / https://www.miserable.site/
  • Redémarrage du service apache2 :
service apache2 restart

DNS

DNSSEC

Serveur Mincraft

Fail2Ban