# Installation de Gestsup

On met d'abord l'OS à jour puis on télécharge LAMP.

```bash
apt update && apt upgrade -y && apt dist-upgrade -y
apt install apache2 mariadb-server php7.3 php7.3-mysql php7.3-xml php7.3-curl php7.3-imap php7.3-ldap php7.3-zip php7.3-mbstring php7.3-gd unzip ntp -y 
```

On crée l'utilisateur gestsup et on lui donne les droits. (on peut attribuer les droits uniquement à la BDD de gestsup).

```SQL
mariadb -u root
CREATE USER 'gestsup'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'gestsup'@'localhost';
FLUSH PRIVILEGES;
exit
```

On modifie la configuration de PHP.

```bash
nano /etc/php/7.3/apache2/php.ini
```

```PHP
Max_execution_time = 480
Memory_limit = 512M
upload_max_filesize = 8M
Date.timezone = Europe/Paris
```

On télécharge Gestsup puis on l'extrait.

```bash
wget -P /var/www/html https://gestsup.fr/downloads/versions/current/version/gestsup_3.2.5.zip
unzip /var/www/html/gestsup_3.2.5.zip -d /var/www/html
```

On supprime l'archive et le fichier index.html.

```bash
rm /var/www/html/gestsup_3.2.5.zip
rm /var/www/html/index.html
```

On crée l'utilisateur gestsup et on modifie les permissions.

```bash
adduser gestsup --ingroup www-data
chown -R gestsup:www-data /var/www/html/
find /var/www/html/ -type d -exec chmod 750 {} \;
find /var/www/html/ -type f -exec chmod 640 {} \;
chmod 770 -R /var/www/html/upload
chmod 770 -R /var/www/html/images/model
chmod 770 -R /var/www/html/backup
chmod 770 -R /var/www/html/_SQL
chmod 660 /var/www/html/connect.php
```

On redémarre le serveur.

On se rend à l'adresse suivante dans un navigateur web : [http://192.168.199.105/install/](http://192.168.199.105/install/) (à remplacer par l'adresse IP du serveur ou le nom DNS).

On utilise l'utilisateur créé précédemment dans la base de données.

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

On clique sur "Suivant".

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

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

On supprime le répertoire d'installation .

```bash
rm -rf /var/www/html/install/
```

On se connecte.

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

On modifie le mot de passe par défaut.

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

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

On clique sur cette icône à droit du nom d'utilisateur.

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

On modifie les droits après installation.

```bash
chmod 640 /var/www/html/connect.php
```

Sécurisation

```bash
nano /etc/apache2/conf-available/security.conf
```

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

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

```bash
nano /etc/apache2/apache2.conf
```

On supprime "Indexes".

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

On installe et configure fail2ban.

```shell
apt install fail2ban -y
systemctl enable fail2ban
nano /etc/fail2ban/jail.local
```

```
[apache-auth]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

[apache-badbots]
enabled = true
port    = http,https
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1

[apache-noscript]
enabled = true
port    = http,https
logpath = %(apache_error_log)s
```

On redémarre ensuite fail2ban puis on vérifie le bon fonctionnement.

```bash
systemctl restart fail2ban
fail2ban-client status
```

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

HTTPS

On déplace gestsup (/var/www/html) dans /var/www/gestsup.home.khroners.fr

On attribue les droits.

```bash
chown -R gestsup:www-data /var/www/gestsup.home.khroners.fr/
chmod 770 -R /var/www/gestsup.home.khroners.fr/upload/
chmod 770 -R /var/www/gestsup.home.khroners.fr/images/model/
chmod 770 -R /var/www/gestsup.home.khroners.fr/backup/
chmod 770 -R /var/www/gestsup
```

On crée ensuite le fichier de configuration (vhost).

```bash
mkdir /etc/apache2/sites-available/gestsup.home.khroners.fr
nano /etc/apache2/sites-available/gestsup.home.khroners.fr
```

```shell
<VirtualHost *:80>
	ServerName gestsup.home.khroners.fr
	ServerAlias www.gestsup.home.khroners.fr
	ServerAdmin alexisbonnet@khroners.fr
	DocumentRoot /var/www/gestsup.home.khroners.fr
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:443>
	ServerName gestsup.home.khroners.fr
	ServerAlias www.gestsup.home.khroners.fr
	ServerAdmin alexisbonnet@khroners.fr
	DocumentRoot /var/www/gestsup.home.khroners.fr
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	SSLCertificateFile "/etc/apache2/ssl/fullchain.pem"
	SSLCertificateKeyFile "/etc/apache2/ssl/private/privkey.pem"
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

```

On active la configuration.

```bash
a2ensite gestsup.home.khroners.fr
systemctl reload apache2
a2dissite 000-default.conf
systemctl reload apache2
```

On crée les répertoires pour le certificat pour importer notre propre certificat pré-généré via Certbot (Let's Encrypt)

```bash
mkdir /etc/apache2/ssl
mkdir /etc/apache2/ssl/private
chmod 755 /etc/apache2/ssl
chmod 700 /etc/apache2/ssl/private
chmod 644 /etc/apache2/ssl/*.pem
chmod 640 /etc/apache2/ssl/private/*.pem
a2enmod ssl
```

On ajoute notre certificat Let's Encrypt. (fullchain.pem dans apache2/ssl et privkey.pem dans private)

On redémarre le serveur et on teste.

```bash
systemctl restart apache2
```

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