GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer Apache Subversion avec Lets encrypt SSL sur Ubuntu 18.04

Apache Subversion ou SVN est un système de contrôle de version et de révision de logiciel open source développé par Apache Software Foundation. Il est utilisé pour maintenir les versions actuelles et historiques du code source, des documents et des pages Web.

Subversion ou svn largement utilisé pour les grands projets et la communauté open source tels que Apache Software Foundation, FreeBSD, GCC, SourceForge etc.

Dans cet article, je vais vous montrer comment configurer Apache Subversion à l'aide du serveur Ubuntu 18.04 LTS. Nous allons installer et configurer le logiciel svn avec Apache comme serveur Web, activer l'« authentification de base » pour les utilisateurs et sécuriser l'accès en utilisant Letsencrypt SSL pour l'accès au référentiel.

Et pour ceux qui préfèrent GIT, le tutoriel Ubuntu 18.04 GIT est ici.

Prérequis

  • Ubuntu 18.04
  • Privilèges root

Ce que nous allons faire

  1. Installer le serveur Web Apache2 sur Ubuntu 18.04
  2. Installer Apache Subversion (SVN)
  3. Configurer le référentiel Subversion
  4. Générer SSL Letsencrypt pour Ubuntu Apache2
  5. Configurer l'hôte virtuel Subversion sur Apache2
  6. Test

Étape 1 - Installer le serveur Web Apache2 sur Ubuntu 18.04 LTS

Dans cette première étape, nous allons installer le serveur Web Apache2 et ajouter de nouveaux services ssh et HTTP à la configuration du pare-feu ufw.

Installez le serveur Web Apache2 à l'aide de la commande apt ci-dessous.

sudo apt install apache2 apache2-utils -y

Une fois l'installation terminée, ajoutez les services SSH et HTTP à la configuration du pare-feu ufw.

Exécutez les commandes ufw ci-dessous.

ufw allow ssh
ufw allow http

Activez le pare-feu.

ufw enable

Démarrez maintenant le service Apache2 et activez-le pour qu'il se lance à chaque démarrage du système.

systemctl start apache2
systemctl enable apache2

Le serveur Web Apache2 est opérationnel et les services SSH et HTTP ont été ajoutés à la liste des services de pare-feu.

Étape 2 - Installer Apache Subversion (SVN)

Dans ce didacticiel, nous allons installer les packages subversion et svn libapache à partir du référentiel officiel Ubuntu.

Installez Subversion à l'aide de la commande apt ci-dessous.

sudo apt install subversion subversion-tools libapache2-mod-svn -y

Vérifiez maintenant la commande svn.

svn --version

Apache Subversion (SVN) a été installé sur le serveur Ubuntu 18.04.

Étape 3 - Configurer un référentiel Subversion

Après l'installation de subversion, nous allons configurer le répertoire maître du dépôt subversion. Nous allons créer un nouveau répertoire 'svn' qui sera utilisé pour stocker tout le code source et les dépôts.

Créez un nouveau répertoire maître '/svn'.

mkdir /svn

Et créez un nouvel exemple de référentiel nommé 'hakase-project' à l'aide de la commande svnadmin ci-dessous.

svnadmin create /svn/hakase-project

Changez maintenant le propriétaire du répertoire '/svn/hakase-project' en utilisateur et groupe 'apache'.

sudo chown -R apache:apache /svn/hakase-project

Et le dépôt svn a été créé.

Étape 4 - Générer un certificat SSL Letsencrypt

Dans ce tutoriel, nous allons configurer le serveur svn pour utiliser la connexion HTTPS avec un domaine nommé 'svn.hakase-labs.io'. Nous utiliserons le SSL Letsencrypt gratuit, et il peut être généré à l'aide de l'outil certbot.

Installez certbot sur le serveur Ubuntu à l'aide de la commande yum ci-dessous.

sudo apt install certbot -y

Une fois l'installation terminée, nous devons ajouter le service HTTPS aux listes de services de pare-feu ufw.

Exécutez les commandes ufw ci-dessous.

ufw allow https
ufw reload

Maintenant, arrêtez le service httpd, afin que nous puissions générer le SSL Letsencrypt en utilisant le serveur Web temporaire "autonome".

systemctl stop apache2

Générez le SSL Letsencrypt pour le nom de domaine 'svn.hakase-labs.io' en utilisant la commande certbot ci-dessous.

certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d svn.hakase-labs.io

Et une fois terminé, vous obtiendrez les fichiers de certificat dans le répertoire '/etc/letsencrypt/live'.

Étape 5 - Configurer l'hôte virtuel Subversion sur Apache2

Dans cette étape, nous allons créer une nouvelle configuration Apache httpd pour l'accès svn. Nous allons configurer le référentiel svn en utilisant un nom de domaine 'svn.hakase-labs.io', et il ne sera accessible qu'aux utilisateurs enregistrés utilisant l'authentification de base HTTP.

Allez dans le répertoire de configuration '/etc/apache2'.

cd /etc/apache2/

Créez une nouvelle configuration d'hôte virtuel subversion 'svn.conf' dans le répertoire 'sites-available'.

cd sites-available/
vim svn.conf

Collez la configuration ci-dessous.

<VirtualHost svn.hakase-labs.io:80>

ServerName svn.hakase-labs.io
DocumentRoot /var/www/html
Redirect permanent / https://svn.hakase-labs.io

</VirtualHost>

<VirtualHost svn.hakase-labs.io:443>

DocumentRoot /var/www/html
ServerName svn.hakase-labs.io

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/letsencrypt/live/svn.hakase-labs.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/svn.hakase-labs.io/privkey.pem

ErrorLog /var/log/apache2/svn_error_log
TransferLog /var/log/apache2/svn_access_log
LogLevel warn

<location /repo>
DAV svn
SVNParentPath /svn/
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/svn.users
Require valid-user
</location>

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog /var/log/apache2/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

Enregistrez et quittez.

Ensuite, nous devons créer une nouvelle liste d'utilisateurs qui pourront afficher et valider des fichiers dans le référentiel.

Créez un nouvel utilisateur nommé 'hakase' à l'aide de la commande htpasswd.

sudo htpasswd -cm /etc/subversion/svn.users hakase

Activez le module SSL sur apache et activez l'hôte virtuel svn en exécutant les commandes ci-dessous.

sudo a2enmod ssl
sudo a2ensite svn

Redémarrez le service Apache2.

systemctl restart apache2

La configuration de l'hôte virtuel pour subversion a été créée et l'utilisateur 'hakase' a maintenant un accès pour afficher et valider le code source dans le référentiel 'hakase-project'.

Étape 6 - Tester

Afficher le référentiel

Ouvrez votre navigateur Web et tapez l'URL du serveur, la mienne est celle ci-dessous).

https://svn.hakase-labs.io/repo/hakase-project/

Et vous verrez l'authentification utilisateur de base.

Connectez-vous avec l'utilisateur et le mot de passe 'hakase', et vous obtiendrez le référentiel de page vierge comme ci-dessous.

Importer le projet dans le référentiel SVN

Nous allons maintenant importer les exemples de modèles de projet svn dans le référentiel 'hakase-project'.

Créez un nouveau répertoire de projet svn-templates.

mkdir -p ~/svn-templates/{trunk,branches,tags}

Ajoutez le répertoire de modèles au référentiel 'hakase-project' à l'aide de la commande svn ci-dessous.

svn import -m 'Initial import' ~/svn-templates/ https://svn.hakase-labs.io/repo/hakase-project/ --username hakase

On vous posera des questions sur certaines choses, agissez de la manière suivante.

  • Tapez 'p' pour ajouter définitivement le certificat Letsencrypt.
  • Tapez l'utilisateur et le mot de passe 'hakase'.
  • Et tapez "oui" pour confirmer l'enregistrement du mot de passe non chiffré.

Vérifiez le 'hakase-project' à partir du navigateur Web, et vous obtiendrez tous les répertoires de modèles dessus.

Cloner le référentiel

Après avoir créé et téléchargé le répertoire de modèles svn, nous essaierons de cloner le référentiel dans l'environnement local.

Connectez-vous à l'utilisateur non root/normal.

useradd -m -s /bin/bash misaka
su - misaka

Clonez dans le référentiel 'hakase-project' le répertoire local nommé 'myproject' en tant qu'utilisateur 'hakase'.

svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase

Vérifiez le nouveau répertoire 'myproject' et vous obtiendrez tous les modèles svn.

tree ~/myproject

Valider le code source

Allez dans le répertoire 'monprojet'.

cd myproject/

Créez des fichiers dans le répertoire 'trunk'.

echo 'this is my repo' > trunk/test-hakase.txt
echo 'this is my repo01' > trunk/test-hakase01.txt
echo 'this is my repo02' > trunk/test-hakase02.txt

Ajouter et valider

svn add trunk/* --username hakase
svn commit -m 'new file added' --username hakase

Vérifiez le référentiel à partir du navigateur Web et vous obtiendrez tous les fichiers ajoutés au référentiel.

L'installation et la configuration d'Apache Subversion sur le serveur Ubuntu 18.04 LTS ont été effectuées avec succès.


Ubuntu
  1. Comment sécuriser Nginx avec Lets Encrypt sur Ubuntu 20.04 / 18.04

  2. Sécurisez Apache avec Lets Encrypt sur Ubuntu 18.04

  3. Sécurisez Apache avec Lets Encrypt sur Ubuntu 20.04

  4. Comment installer Nextcloud avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

  5. Comment sécuriser Apache avec Lets Encrypt sur Ubuntu 18.04

Comment installer Apache SVN sur Ubuntu 18.04

Comment configurer WordPress sur Ubuntu Server avec Apache

Comment configurer Let's Encrypt SSL avec Apache sur Fedora

Comment installer et configurer Apache avec Let's Encrypt TLS/SSL sur Ubuntu 20.04

Comment installer Let's Encrypt SSL sur Ubuntu avec Apache

Comment installer Apache avec Let's Encrypt SSL sur Ubuntu 20.04 LTS