Skip to main content

Installation de Gestsup

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

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).

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.

nano /etc/php/7.3/apache2/php.ini
Max_execution_time = 480
Memory_limit = 512M
upload_max_filesize = 8M
Date.timezone = Europe/Paris

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

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.

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.

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/ (à 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

On clique sur "Suivant".

image-1614426672106.png

image-1614426726165.png

On supprime le répertoire d'installation . 

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

On se connecte.

 

image-1614427117718.png

On modifie le mot de passe par défaut.

image-1614427155249.png

image-1614427403905.png

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

image-1614427548760.png

On modifie les droits après installation.

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

Sécurisation

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

image-1614429457254.png

image-1614429498952.png 

nano /etc/apache2/apache2.conf

On supprime "Indexes".

image-1614429535426.png

On installe et configure fail2ban.

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.

systemctl restart fail2ban
fail2ban-client status

image-1614432155327.png

HTTPS

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

On attribue les droits.

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).

mkdir /etc/apache2/sites-available/gestsup.home.khroners.fr
nano /etc/apache2/sites-available/gestsup.home.khroners.fr
<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.

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)

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.

systemctl restart apache2

image-1614456744798.png