Outils pour utilisateurs

Outils du site


wiki:linux:gitea_tp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
wiki:linux:gitea_tp [2022/11/07 18:24] – créée DEROUET Valentinwiki:linux:gitea_tp [2022/11/15 19:00] (Version actuelle) DEROUET Valentin
Ligne 3: Ligne 3:
  
  
-{{ :wiki:windows:logo-active-directory.png?400 |}}+{{ :wiki:linux:gitea-self-hosted-github-alternative.png?400 |}}
 Dans cette documentation nous installerons une solution GITEA avec une liaison LDAP et un certificat SSL. Dans cette documentation nous installerons une solution GITEA avec une liaison LDAP et un certificat SSL.
  
Ligne 14: Ligne 14:
  
 Nous considérons que vous êtes équipé de cette manière : Nous considérons que vous êtes équipé de cette manière :
-- Une VM sous Windows Serveur 2k16 **[AD]** + - Une VM sous Windows Serveur 2k16 **[AD]** 
-- Une VM sous Debian 11 vierge **[GITEA]**+ - Une VM sous Debian 11 vierge **[GITEA]**
  
 Les allocations de matériel (CPU/RAM...) sont à allouer selon vos envies, attention à respecter la configuration minimale. C'est à dire : Les allocations de matériel (CPU/RAM...) sont à allouer selon vos envies, attention à respecter la configuration minimale. C'est à dire :
Ligne 26: Ligne 26:
  
 Nos IP pour notre infrastructure seront : Nos IP pour notre infrastructure seront :
-- [AD] : **10.192.43.10** + - [AD] : **10.192.43.10** 
-- [GITEA] : **10.192.43.14**+ - [GITEA] : **10.192.43.14**
  
 Mot de passe par défaut sur toutes les sessions : **Not24get** Mot de passe par défaut sur toutes les sessions : **Not24get**
  
 Rappel des deux commandes essentiels : Rappel des deux commandes essentiels :
-- ''ip a'' (connaitre son adresse IP) + - ''ip a'' (connaitre son adresse IP)  
-- ''nano /etc/network/interfaces'' (configuration de l'interface réseau)+ - ''nano /etc/network/interfaces'' (configuration de l'interface réseau)
  
 **Conseil :** Ajouter les deux machines dans un logiciel tel que mRemoteNG pour faciliter l'administration. **Conseil :** Ajouter les deux machines dans un logiciel tel que mRemoteNG pour faciliter l'administration.
  
 +# Installation de Gitea par le binary
  
-Premier démarrage du Debian +## Téléchargement du binary 
-## Configuration de l'adresse IP du serveur +
-### Ping AD pour essais +
-### Ping Google pour essais+
  
 +<code>
 +wget -O gitea https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-amd64
 +chmod +x gitea
 +</code>
  
-# Installation de Gitea par le binary 
-## Téléchargement du binary  
 ### Vérification GPG ### Vérification GPG
 +
 +<code>
 +apt install gpg
 +gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
 +gpg --verify gitea-1.17.3-linux-amd64.asc gitea-1.17.3-linux-amd64
 +</code>
 +
 ## Installation des dépendances ## Installation des dépendances
 +
 ### GIT ### GIT
 +
 +<code>apt install git</code>
 +
 +Vérifier avec :
 +
 +<code>git --version</code>
 +
 ### MariaDB ### MariaDB
 +
 +<code>apt install mariadb-server</code>
 +<code>mysql_secure_installation</code>
 +
 +Suivez la procédure d'installation de MariaDB.
 +
 +Vérifier la bonne exécution avec :
 +
 +<code>systemctl status mariadb</code> 
 +
 +### apache2
 +
 +<code>apt-get install apache2</code>
 +
 ## Création utilisateur ## Création utilisateur
 +
 ### Dans le système ### Dans le système
 +
 +```sh
 +adduser \
 +   --system \
 +   --shell /bin/bash \
 +   --gecos 'Git Version Control' \
 +   --group \
 +   --disabled-password \
 +   --home /home/git \
 +   gitea
 +```
 +
 ### Dans le SGBD ### Dans le SGBD
 +
 +<code>mysql -uroot -p</code>
 +
 +```sql
 +CREATE USER giteaDBuser IDENTIFIED BY 'Not24get';
 +CREATE DATABASE giteaDB DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
 +GRANT ALL PRIVILEGES ON giteaDB.* TO giteaDBuser;
 +FLUSH PRIVILEGES;
 +```
 +
 +* Tester la connexion :
 +
 +<code>mysql -u giteaDBuser -p -e "SHOW DATABASES;"</code>
 +
 ## Création structure de dossier ## Création structure de dossier
-### Dossier Gitea conf+ 
 +### Dossiers Gitea conf 
 + 
 +<code> 
 +mkdir -p /var/lib/giteadir/{custom,data,log} 
 +chown -R gitea:gitea /var/lib/giteadir/ 
 +chmod -R 750 /var/lib/giteadir/ 
 +mkdir /var/lib/giteadir/custom/conf 
 +ln -s /var/lib/giteadir/custom/conf /etc/gitea 
 +chown root:gitea /etc/gitea 
 +chmod 770 /etc/gitea 
 +</code> 
 ### Permissions dossiers ### Permissions dossiers
 +
 +<code>
 +chmod 750 /etc/gitea
 +chmod 640 /etc/gitea/app.ini
 +</code>
 +
 +### Définition des variables
 +
 +```sh
 +export GITEA_WORK_DIR=/var/lib/giteadir/
 +```
 +
 +### Copie de Gitea
 +
 +```sh
 +cp gitea /usr/local/bin/gitea
 +```
 +
 ## Essai de Gitea (exécution du binary) ## Essai de Gitea (exécution du binary)
 +
 +- Changer d'utilisateur :
 +
 +<code>su gitea</code>
 +
 +- Exécuter Gitea 
 +
 +<code>GITEA_WORK_DIR=/var/lib/giteadir/ /usr/local/bin/gitea web -c /etc/gitea/app.ini</code>
 +
 +
 +### Reset mot de passe compte administrateur ''gitea''
 +
 +En cas de perte du mot de passe voici la commande à utiliser :
 +
 +<code>gitea -c /etc/gitea/app.ini admin user change-password -u gitea -p "motdepasse"</code>
  
 # Création d'un service systemd # Création d'un service systemd
 +
 +- Copier dans ''/etc/systemd/system/gitea.service'' :
 +
 +```sh
 +[Unit]
 +Description=Gitea (Git with a cup of tea)
 +After=syslog.target
 +After=network.target
 +Wants=mariadb.service
 +After=mariadb.service
 +
 +[Service]
 +RestartSec=2s
 +Type=simple
 +User=gitea
 +Group=
 +WorkingDirectory=/var/lib/giteadir/
 +ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
 +Restart=always
 +Environment=USER=gitea HOME=/home/git GITEA_WORK_DIR=/var/lib/giteadir
 +
 +[Install]
 +WantedBy=multi-user.target
 +```
 +
 +- Activer le service et démarrer le avec :
 +
 +```
 +systemctl enable gitea
 +systemctl start gitea
 +systemctl status gitea
 +```
 +
 +## Configuration du serveur SQL sur Gitea
 +
 +- Type : ''mysql''
 +- Hôte : ''127.0.0.1:3306''
 +- Nom : ''giteaDB''
 +- Nom d'utilisateur : ''giteaDBuser''
 +
 +{{ :wiki:linux:firefox_3dyoohykiq.png?400 |}}
  
 # Ajout authentification LDAP # Ajout authentification LDAP
 +
 +Type d'authentification LDAP (via BindDN)
 +
 +- Hôte : 10.192.43.10
 +- Port : 389
 +- Bind DN : ''CN=srv-gitea,OU=LDAP,OU=Utilisateurs,DC=dom,DC=vade,DC=fr''
 +- Bind mot de passe : ''password''
 +- Utilisateur Search Base : ''DC=dom,DC=vade,DC=fr''
 +- Filtre utilisateur : ''(&(memberof:1.2.840.113556.1.4.1941:=cn=GG-Git-Users,ou=GG,ou=Groupes,dc=dom,dc=vade,dc=fr)(|(userPrincipalName=%[1]s)(sAMAccountName=%[1]s)))''
 +- Filtre administrateur : ''(memberof=cn=GG-Git-Admins,ou=GG,ou=Groupes,dc=dom,dc=vade,dc=fr)''
 +- Attribut nom d'utilisateur : ''sAMAccountName''
 +- Attribut prénom : ''givenName''
 +- Attribut nom de famille : ''sn''
 +- Attribut e-mail : ''userPrincipalName''
 +
 +Une fois les champs remplis, mettre à jour manuellement la BDD en allant :
 +
 +{{ :wiki:linux:firefox_bqjmjrydfu.png?600 |}}
 +
 +Voici les utilisateurs une fois synchronisés :
 +
 + {{ :wiki:linux:firefox_lwsxevb4eu.png?600 |}}
  
 # Reverse proxy avec apache et ajout d'un certificat SSL # Reverse proxy avec apache et ajout d'un certificat SSL
 +
 +{{ :wiki:linux:656px-apache-load-balancer-mod-proxy-http.png?400 |}}
 +
 +## Modification configuration root_url (pour passer en https)
 +
 +- Avant de lancer l'installation :
 +
 +{{ :wiki:linux:firefox_hw9cke6kdw.png?400 |}}
 +
 +- Après avoir lancé l'installation :
 +
 +<code>nano /etc/gitea/app.ini</code>
 +
 +{{ :wiki:linux:mremoteng_qxcfia5iic.png?400 |}}
 +
 ## Création de la config apache2 ## Création de la config apache2
 +
 +- Activer l'option reverse_proxy :
 +
 +```
 +a2enmod proxy proxy_http
 +service apache2 restart
 +```
 +
 +- Créer la configuration dans les *sites-available* :
 +
 +<code>nano /etc/apache2/sites-available/git.dom.vade.fr.conf</code>
 +
 +```sh
 +<VirtualHost *:80>
 +    ServerName git.dom.vade.fr
 +    Redirect permanent / https://git.dom.vade.fr/
 +</VirtualHost>
 +<VirtualHost *:443>
 +    ServerName git.dom.vade.fr
 +    ServerAdmin [email protected]
 + 
 +    ProxyPass / http://127.0.0.1:3000/
 +    ProxyPassReverse / http://127.0.0.1:3000/
 +    ProxyRequests Off
 +</VirtualHost>
 +```
 +
 +- Activer la configuration :
 +
 +<code>
 +a2ensite git.dom.vade.fr.conf
 +systemctl apache2 reload
 +</code>
 +
 +- Puis vérifier :
 +
 +<code>systemctl status apache2</code>
 +
 +## Ajout de la règle CNAME dans le DNS
 +
 +- Créer la règle DNS en recherche direct dans le serveur DNS :
 +
 +{{ :wiki:linux:mremoteng_l00fk7ez83.png?600 |}}
 +
 +
 ## Création certificat auto-signé sur git.dom.vade.fr ## Création certificat auto-signé sur git.dom.vade.fr
 +
 +<code>apt-get install openssl</code>
 +
 +<code>openssl req -x509 -nodes -days 365 -newkey rsa:2048 -sha256 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key</code>
 +
 +Suivre la procédure pour générer le certificat, mettre en FQDN : ''git.dom.vade.fr''.
 +
 +- Ajout dans le ''virtual-host:443'' le certificat :
 +
 +<code>nano /etc/apache2/sites-available/git.dom.vade.fr.conf</code>
 +
 +```
 +SSLEngine on
 +SSLCertificateFile /etc/apache2/server.crt
 +SSLCertificateKeyFile /etc/apache2/server.key
 +```
 +
 +- Activer le SSL :
 +
 +<code>a2enmod ssl</code>
 +
 +Puis redémarrer le service :
 +
 +<code>systemctl restart apache2</code>
 +
 ## Déploiement GPO du certificat ## Déploiement GPO du certificat
-## Ajout de la règle CNAME dans le DNS + 
-## Déploiement GPO du certificat+<WRAP center round tip 60%> 
 +Rappel, utilitaire de certificat sur windows : ''certmgr.msc'' 
 +</WRAP> 
 + 
 +- Création de la GPO : 
 + 
 +{{ :wiki:linux:mremoteng_3kx5aywkdg.png?400 |}} 
 + 
 +- Mettre le certificat dans le NETLOGON du serveur : 
 + 
 +{{ :wiki:linux:mremoteng_54hybmuaaq.png?400 |}} 
 + 
 +- Ajout du certificat dans l'importation : 
 + 
 +{{ :wiki:linux:mremoteng_17hhvmkccm.png?600 |}} 
 + 
 +- Test du déploiement du certificat  
 + - Redémarrer le poste 
 + - Ouvrir la console MMC de gestion de certificat sur l’ordinateur local et aller sur Autorité de certification racines de confiance et vérifier la présence du certificat. 
 + 
 +{{ :wiki:linux:firefox_pwk9upxdu6-min.png?700 |}} 
 + 
 +Le certificat est présent sur le client. 
 ## Essai HTTPS client windows ## Essai HTTPS client windows
-avec screen du certificat 
  
-# Essais finaux et conclusion+Les navigateurs moderne notifie l'utilisateur en cas d'utilisation d'un certificat auto-signé.
  
-## Mes sources+{{ :wiki:linux:chrome_vbdqysjdlo.png:?700 |}}
  
-1. Tous les screens en raw : [http://files.stoneset.fr/stoneset/images/doc_ad/?C=M;O=D](http://files.stoneset.fr/stoneset/images/doc_ad/?C=M;O=D) +## Mes sources
-2. [https://docs.gitea.io/en-us/install-from-binary/](https://docs.gitea.io/en-us/install-from-binary/)+
  
 +1. [https://docs.gitea.io/en-us/install-from-binary/](https://docs.gitea.io/en-us/install-from-binary/)
 +2. [https://rdr-it.com/gpo-deployer-un-certificat/](https://rdr-it.com/gpo-deployer-un-certificat/)
  
wiki/linux/gitea_tp.1667841879.txt.gz · Dernière modification : 2022/11/07 18:24 de DEROUET Valentin