# Ubuntu

# Accès SSH, Webmin, serveur Web et SFTP sous Ubuntu Server 16.04

#### Installation du serveur SSH

[![image-1613315996994.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/GUCWucAdi98iSxK7-image-1613315996994.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/GUCWucAdi98iSxK7-image-1613315996994.png)

Pour accéder au serveur à distance, il est nécessaire d'installer openssh-server.

On met tout d'abord à jour le serveur Ubuntu et on installe ensuite openssh-server.

```bash
sudo apt-get update && apt-get upgrade -y
sudo apt-get install openssh-server
```

On active le service au démarrage.

```bash
sudo systemctl start ssh
sudo systemctl enable ssh
```

#### Installation de Netdata

[![image-1613316222166.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/gdivpe6PlGdXnjpp-image-1613316222166.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/gdivpe6PlGdXnjpp-image-1613316222166.png)

Netdata fournit un script bash pour l'installation de Netdata.

```bash
apt-get install curl
bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh
```

Netdata est ensuite accessible via : [http://ip\_du\_serveur:19999](http://ip_du_serveur:19999)

On a ici une vue d’ensemble du serveur : charge du processeur, réseau, écriture et lecture du disque dur, utilisation de la RAM (mémoire vive), ...

[![image-1613316297147.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/fsAKiECcpQWaSkCa-image-1613316297147.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/fsAKiECcpQWaSkCa-image-1613316297147.png)

#### Installation de LAMP (Linux Apache MySQL PHP)

[![image-1613317657880.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/7QaMrBVyRGabaJ2k-image-1613317657880.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/7QaMrBVyRGabaJ2k-image-1613317657880.png)

On va ici installer Apache2 en tant que serveur Web.

```bash
sudo apt-get install apache2
sudo apt-get install mysql-server
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql php-curl
sudo apt-get install phpmyadmin apache2-utils
```

Lors de l'installation du serveur mysql, on définit un mot de passe root.

On choisit Apache2 avec la barre espace parce qu’on a utilisé Apache2 et non lighttpd.

#### Installation de Webmin

[![image-1613317704637.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/EMw1hhzPd4kihIGv-image-1613317704637.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/EMw1hhzPd4kihIGv-image-1613317704637.png)

Webmin n’a pas besoin d’apache pour fonctionner. Webmin est fourni avec un simple serveur web nommé miniserv.py. Selon la documentation de Webmin, l’installer sous Apache impacterait les performances. Cela n’est pas recommandé.

Pour installer Webmin sur un serveur Ubuntu 16.04, on commence par installer quelques dépendances :

```bash
sudo apt-get install -y perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python libwww-perl liblwp-protocol-https-perl
```

On ajoute la clef pour vérifier l’intégrité des paquets du dépôts de Webmin:

```bash
sudo wget -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add -
```

On ajoute les dépôts à la fin du fichier sources.list :

```bash
sudo nano /etc/apt/sources.list


#Webmin
deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
```

Il ne reste plus qu’à mettre à jour la liste des paquets et à l’installer :

```bash
sudo apt-get update
sudo apt-get install webmin
```

*Webmin est ensuite disponible à l’adresse suivante :*

[https://192.168.1.31:10000/](https://192.168.1.31:10000/)

[![image-1613317898960.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/j7YQqFdsvSQks1No-image-1613317898960.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/j7YQqFdsvSQks1No-image-1613317898960.png)

#### Installation du serveur FTP sécurisé

[![image-1613317998132.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/DhwBHdZbEjDpc8C5-image-1613317998132.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/DhwBHdZbEjDpc8C5-image-1613317998132.png)

Installation du paquet :

```bash
sudo apt-get install mysecureshell

#Ajout d’un nouvel utilisateur:

sudo adduser --home /home/bonnet --shell /usr/bin/mysecureshell bonnet
```

On rentre un mot de passe pour l’utilisateur.

On se connecte via un client avec le port 22 (qui doit être ouvert en TCP au niveau du pare-feu). Par exemple : Filezilla Client, qui est gratuit et open-source.

#### Configuration du pare-feu d'Ubuntu : UFW

```bash
sudo ufw enable
sudo ufw allow « Apache Full » 
sudo ufw allow 22/tcp
sudo ufw allow 10000/tcp
sudo ufw allow 19999/tcp
ufw status
```

# Installation de Netdata

### **<span style="text-decoration: underline;">Qu’est-ce que Netdata ?</span>**

Netdata est un outil open source permettant de visualiser et de surveiller des métriques en temps réel, optimisé pour accumuler tous les types de données, telles que l'utilisation du processeur, l'activité du disque, les requêtes SQL, les visites sur un site Web, etc.

Il est disponible sur Linux, FreeBSD et macOS.

Netdata permet la supervision à distance du serveur.

### **<span style="text-decoration: underline;">Installation de Netdata</span>**

Afin d’installer Netdata, nous allons utiliser la ligne de commande mise à notre disposition par Netdata :

```shell
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
```

On aura régulièrement des messages nous demandant de confirmer l’installation de paquets. On écrit et valide « Y ».

[![image-1613412736046.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/0mRPc7mjzlnl0gYW-image-1613412736046.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/0mRPc7mjzlnl0gYW-image-1613412736046.png)

Une fois l’installation terminée, nous aurons cela à l’écran. On presse entrée.

[![image-1613412741060.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/c4kvC7lXe1BXu8Wz-image-1613412741060.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/c4kvC7lXe1BXu8Wz-image-1613412741060.png)

Netdata est désormais installé ! On peut accéder à Netdata via son ip depuis un autre poste du réseau. [http://192.168.0.200/](http://192.168.0.200/)

# Visioconférence avec Jitsimeet



# Jitsi

## <span style="text-decoration: underline;">**Introduction**</span>  
  


Jitsi est application libre multiplateforme de messagerie instantanée, voix sur IP et visioconférence. Les conférences sont sécurisées et chiffrées. Le logiciel est intégré à la liste des logiciels libres préconisés par l’État français dans le cadre de la modernisation globale de ses systèmes d’informations. Jitsi est disponible sur navigateur web, Android et iOS. On peut l’installer dans le cloud ou sur une machine comme Linux.

[![image-1616160916824.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/PsXZMB3UuWFNAyu1-image-1616160916824.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/PsXZMB3UuWFNAyu1-image-1616160916824.png)

Jitsi est très utilisé en ce moment en tant qu’alternative à Microsoft Teams ou Skype Business. Le fait que Jitsi soit gratuit et open-source est très avantageux. On peut même ajouter des plugins à Jitsi et il est customisable.

[![image-1616160932619.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/tJX7qfIjG9NyKGM6-image-1616160932619.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/tJX7qfIjG9NyKGM6-image-1616160932619.png)

## <span style="text-decoration: underline;">**Développement**</span>

Personnellement, j’ai un nom de domaine enregistré chez OVH (khroners.fr). Je vais donc utiliser ce domaine avec un sous-domaine jitsimeet.

### <span style="text-decoration: underline;">Préparation de la machine virtuelle</span>

[![image-1616160958008.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/5VoQ7wHCRuSYmOir-image-1616160958008.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/5VoQ7wHCRuSYmOir-image-1616160958008.png)

La carte réseau est en bridge.

On met ensuite le serveur à jour.

```bash
apt update && upgrade -y
```

### <span style="text-decoration: underline;">Installation du serveur web Nginx et du serveur Jitsi</span>

On installe ensuite nginx, un serveur web.

```bash
apt-get -y install nginx
```

On ajoute la clé publique de jitsi, le dépôt et on installe.

```bash
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add –
sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
sudo apt-get -y update
sudo apt-get -y install jitsi-meet
```

Arrivé à cette fenêtre, on rentre le domaine complet, dans mon cas jitsimeet.khroners.fr.

[![image-1616161833521.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/sfWHg2L0sZo20B02-image-1616161833521.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/sfWHg2L0sZo20B02-image-1616161833521.png)

[![image-1616161839687.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/QAcZtgd5sUMlQfDi-image-1616161839687.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/QAcZtgd5sUMlQfDi-image-1616161839687.png)

On choisit ici la seconde option « I want to use my own certificate ».

On presse « Entrée » pour les deux autres propositions.

On peut voir le statut de jitsi-videobridge en rentrant la commande :

```bash
service jitsi-videobridge2 status
```

[![image-1616161855633.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/MEoa1YNGsx5sq84N-image-1616161855633.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/MEoa1YNGsx5sq84N-image-1616161855633.png)

Idem pour nginx :

```bash
service nginx status
```

[![image-1616161859449.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/23uiNIqBMdXPUeB3-image-1616161859449.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/23uiNIqBMdXPUeB3-image-1616161859449.png)

Puisque le serveur Jitsi est derrière un NAT, on rajoute ces deux options dans le fichier /etc/jitsi/videobridge/sip-communicator.properties.

```bash
nano /etc/jitsi/videobridge/sip-communicator.properties
```

Puis on insère ces deux lignes :

> org.ice4j.ice.harvest.DISABLE\_AWS\_HARVESTER=true
> 
> org.ice4j.ice.harvest.STUN\_MAPPING\_HARVESTER\_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443

Ces deux lignes vont permettre à Jitsi de récupérer l’adresse IP publique.

### <span style="text-decoration: underline;">Création du certificat</span>

On installe ensuite Certbot afin d’avoir un certificat valide.

On ajoute aux dépôts, on télécharge puis on installe :

```bash
add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install letsencrypt -y
wget https://dl.eff.org/certbot-auto -P /usr/local/bin
chmod a+x /usr/local/bin/certbot-auto
export DOMAIN="jitsi.khroners.fr"
export EMAIL_ALERT=admin@khroners.fr
```

La commande chmod permet l’attribution de droits.

Pour les deux commandes export, on rentre le domaine complet et une adresse e-mail.

Pour mon domaine, je dois rentrer un enregistrement DNS, qui va pointer le FQDN « jitsee.khroners.fr » vers « khroners.fr. ».

[![image-1616161903555.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/Xw6ySEVqw2n0u42w-image-1616161903555.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/Xw6ySEVqw2n0u42w-image-1616161903555.png)

On doit également ouvrir les ports et les rediriger vers la machine virtuelle Ubuntu avec le NAT. Dans mon cas sur une Livebox Orange :

[![image-1616161907917.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/L7qYSOfK3caMTLtr-image-1616161907917.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/L7qYSOfK3caMTLtr-image-1616161907917.png)

Ici les ports 80 et 443 sont ouverts en direction de la machine virtuelle. Ces deux ports correspondent au protocole HTTP et HTTPS.

On ouvre également les ports 10000-20000 en UDP pour l’audio.

On peut ensuite rentrer cette commande qui va permettre la demande et la création du certificat TLS Let’s Encrypt.

```bash
/usr/local/bin/certbot-auto certonly --standalone -d $DOMAIN  --preferred-challenges http --agree-tos -n -m  $EMAIL_ALERT --keep-until-expiring
```

[![image-1616161933146.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/TzjWcxjJ1Z1EJapn-image-1616161933146.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/TzjWcxjJ1Z1EJapn-image-1616161933146.png)

Le certificat est créé.

 Le certificat est situé dans :

/etc/letsencrypt/live/jitsimeet.khroners.fr/fullchain.pem

La clé est située dans :

/etc/letsencrypt/live/jitsimeet.khroners.fr/privkey.pem

### <span style="text-decoration: underline;">Modification de la configuration de nginx pour appliquer le certificat</span>

On doit donc changer le chemin du certificat et de la clé dans le fichier config de nginx du site jitsi.

nano /etc/nginx/sites-available/jitsimeet.khroners.fr.conf

On modifie les lignes ssl\_certificate et ssl\_certificate\_key.

[![image-1616161949002.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/bbre52DusI75GlAq-image-1616161949002.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/bbre52DusI75GlAq-image-1616161949002.png)

On redémarre le serveur nginx.

```bash
service nginx restart
```

### <span style="text-decoration: underline;">En cas d’erreur lors du redémarrage de nginx</span>

[![image-1616162260631.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/t8CfSEAHHO7K7InX-image-1616162260631.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/t8CfSEAHHO7K7InX-image-1616162260631.png)

```bash
lsof -iTCP -sTCP:LISTEN
```

Avec cette commande, on peut voir les processus utilisants les différents ports. Cependant, ici, aucun n’utilise ce port 443.

Une erreur est connu ([https://community.jitsi.org/t/nginx-coturn-port-443/27820](https://community.jitsi.org/t/nginx-coturn-port-443/27820) , [https://community.jitsi.org/t/bind-to-0-0-0-0-443-failed/28615](https://community.jitsi.org/t/bind-to-0-0-0-0-443-failed/28615)) en ce moment depuis la dernière version stable de Jitsi. Un fichier rentre en conflit avec nginx, ne permettant pas à nginx d’écouter le port 443 (HTTPS). Il faut donc supprimer ce fichier.

On copie le fichier avant la suppression puis on le supprime.

```bash
cp /etc/nginx/modules-enabled/60-jitsi-meet.conf /home/user
rm /etc/nginx/modules-enabled/60-jitsi-meet.conf
```

On redémarre le serveur web.

```bash
service nginx restart
```

### <span style="text-decoration: underline;">Accès à Jitsi, vérification du certificat &amp; différents tests</span>

#### <u>Accès à Jitsi</u>

Jitsi est désormais accessible via l’adresse [https://jitsimeet.khroners.fr/](https://jitsimeet.khroners.fr/)

#### <u>Via le domaine en HTTP :</u>

[![image-1616162340226.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/h2MHQie65ChtYrDd-image-1616162340226.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/h2MHQie65ChtYrDd-image-1616162340226.png)

#### <u>Via l’adresse IP locale en HTTP :</u>

[![image-1616162343887.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/uRvZpMugIvGR8PMg-image-1616162343887.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/uRvZpMugIvGR8PMg-image-1616162343887.png)

#### <u>En HTTPS sur l’adresse IP locale du serveur Jitsi :</u>

[![image-1616162349919.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/QMcYVRvDVvhKU1Mu-image-1616162349919.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/QMcYVRvDVvhKU1Mu-image-1616162349919.png)

#### <u>En HTTPS sur le domaine :</u>

[![image-1616162354718.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/WjvjgcGHnXFf5NeO-image-1616162354718.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/WjvjgcGHnXFf5NeO-image-1616162354718.png)

#### <u>Vérification du certificat</u>

Le certificat valide :

[![image-1616162376770.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/68fmhwuFFf2OgQtZ-image-1616162376770.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/68fmhwuFFf2OgQtZ-image-1616162376770.png)

[![image-1616162380693.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/WQtjvNWpjYtnVoW0-image-1616162380693.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/WQtjvNWpjYtnVoW0-image-1616162380693.png)

#### <u>Tests</u>

##### <u>Voici un test entre deux utilisateurs en local :</u>

[![image-1616162390155.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/vYBdvAnTcugi8L4v-image-1616162390155.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/vYBdvAnTcugi8L4v-image-1616162390155.png)

A gauche, l’utilisateur avec l’avatar K et à droite l’utilisateur avec l’avatar A.

##### <u>Test entre deux utilisateurs mobiles en 4G :</u>

[![image-1616162396721.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/xzoDYJjJ1UhaYRr2-image-1616162396721.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/xzoDYJjJ1UhaYRr2-image-1616162396721.png)

##### <span style="text-decoration: underline;">Test entre un ordinateur et un téléphone :</span>

[![image-1616162403092.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/kwcN3gVeZWqYQoHP-image-1616162403092.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/kwcN3gVeZWqYQoHP-image-1616162403092.png)

Deuxième test entre un ordinateur et un téléphone (capture d’écran depuis l’autre utilisateur) :

[![image-1616162409375.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/IT2ufC5R19H8g6X9-image-1616162409375.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/IT2ufC5R19H8g6X9-image-1616162409375.png)

## **<span style="text-decoration: underline;">Conclusion</span>**

Jitsi est opérationnel. On peut alors faire des visioconférences à plusieurs, sécurisées via l’HTTPS et chiffrées. Cet outil étant gratuit est parfait pour les petites entreprises et disponible sur de nombreux appareils différents : Smartphones, tablettes, PC, Mac…

[![image-1616162438687.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/KM7JYNr5YHheW1oh-image-1616162438687.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/KM7JYNr5YHheW1oh-image-1616162438687.png)