Ce tutoriel a pour but de vous permettre d’installer un serveur git sur centos/ubuntu puis d’utiliser le logiciel SourceTree depuis votre serveur.

 

Installation de GIT sur CentOS/Ubuntu :

 

Centos :
# yum install git-core
Ubuntu :
# aptget install gitcore

Ajout de comptes utilisateurs pour authentification – nom utilisateur + mot de passe. Chaque utilisateur aura ainsi la possibilité d’accéder au repos crée :

# useradd <nomIdentifiant>
# passwd <nomIdentifiant>

Référence des identifiants entreprise/administrateur apparaissant lors des commits:

# git config --global user.name <nomAdministrateur>
# git config --global user.email <emailAdministrateur>

Vérification de bonne configuration :

# git config --list

Création d’un repo si non présent :

# mkdir -p /opt/git/project.git/
# cd /opt/git/project.git
# git init --bare


 Le dossier git étant le dossier comprenant tout les repos qui seront crées 
par la suite. La racine de l'emplacement pouvant être modifié, 
par exemple dans /home.

 

Configuration de votre dépôt GIT sur SourceTree :

 

Sélectionnez Nouveau dépôt -> Cloner depuis une URL
sourcetree1

Entrez votre accès en SSH de type :

ssh://<identifiant>@<adresseIP/nomDomaine>/<cheminVersProjet>

5 Vous voila connecté sur le repository project.git dans notre cas.
Vous avez maintenant la possibilité de naviguer, observer les modifications faite aux fichiers codes.

Pour un repository vide, glissez vos fichiers dans le répertoire assigné à votre repository sur votre ordinateur (ex: /Users/toto/project)
capture-decran-2016-10-10-a-15-52-02-2

Voici l’exemple d’une insertion de fichiers Android dans SourceTree, certains fichiers se générant automatiquement, il est possible de ne pas les autoriser lors de commit. Pour cela ajouter un fichier .gitignore (ex : touch .gitignore)

Ajoutez maintenant un commit, vous pourrez observer les différentes modifications/commit dans l’onglet historique.

Vous pouvez maintenant envoyer vers le serveur distant votre commit/modifications, en sélectionnant les branches à envoyer.

aa

 

En cas d’erreur sur le push, notamment de permission :

   Création d'un groupe auquel on attribuera les différents droits pour l'attribuer aux utilisateurs.

# groupadd nomGroupe
# usermod -a -G nomGroupe nomUtilisateur


Test d'affiliation au groupe crée.

# groups nomUtilisateur

  Se positionner dans le repository.

# cd repo.git
# sudo chmod -R g+ws *
# sudo chgrp -R nomGroupe *
# git config core.sharedRepository true

Vous pouvez maintenant push /pull .. vos commit/projets.

Pensez à formater vos branches en utilisant l’outils git Flow : repository > git Flow > initialise repository
et tout les outils associés au git Flow.

Les outils de Pull (permettant de mettre à niveau votre code selon les modification push par d’autres utilisateurs, et le Fetch permettant de simplement les afficher pour analyse.

Vous connaissez à présent les bases d’utilisations et la mise en place de git sur votre propre serveur / utilisation de SourceTree.

Le noyau Linux peut devenir un formidable routeur. Il suffit d’installer et de configurer les paquets Quagga.

Qu’est-ce que Quagga ?
Quagga est constitué de plusieurs outils comme Zebra.

INSTALLATION DES PAQUETS

1- Utiliser yum
# yum install quagga

2- Editer /etc/sysctl.conf, activer l’ip forwarding, autoriser le BGP multihomed et désactiver les filtres « rp filter »
net.ipv4.ip_forward=1
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0

3- Démarrage de Zebra au boot
# chkconfig zebra on

4- Quagga propritétaire de ses fichiers de conf
# chown quagga /etc/quagga/*

5- Iptraf : outils de supervision du trafic
# yum install iptraf

6- Ethtool : gestion des interfaces réseau
# yum install ethtool

Ce tutoriel a pour but de vous permettre d’installer rapidement un serveur SMTP par authentification se basant sur l’outil Postfix en configuration pour une distribution centos 6.

Installation de Postfix et de SASL sur CentOS :

# yum install postfix
# yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5

Occupons nous de la configuration, Ci dessous une configuration du modèle par default pour
/etc/postfix/main.cf :

# cat /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name

myhostname = example.tld
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = example.tld
mydestination = example.tld, localhost.localdomain, localhost
transport_maps =
relayhost =
mynetworks = 127.0.0.1/32
#mynetworks = hash:/etc/postfix/networks

smtpd_sasl_path = sasl2/smtpd.conf
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = example.tld
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

recipient_delimiter = +
inet_interfaces = all

smtpd_recipient_restrictions = permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_destination,
        reject_rbl_client opm.blitzed.org,
        reject_rbl_client list.dsbl.org,
        reject_rbl_client sbl.spamhaus.org,
        reject_rbl_client cbl.abuseat.org,
        reject_rbl_client dul.dnsbl.sorbs.net

Utilisez smtpd_recipient_restrictions pour vous assurer que votre serveur ne soit pas en Open Relay n’acceptant pas ainsi les spams généraux. Cela permettra d’accepter les connexion sans authentification uniquement que depuis le localhost. En dehors de ce réseau, toutes les connexions se feront par authentification.

Nous allons maintenant relier le processus ( daemon ) Postfix avec celui de Sasl
Dans /etc/postfix/master.cf :

# cat /etc/postfix/master.cf
submission inet n       -       n       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=example.tld
  -o header_checks=
  -o body_checks=
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination
  -o smtpd_sasl_security_options=noanonymous,noplaintext
  -o smtpd_sasl_tls_security_options=noanonymous

Maintenant, nous allons ajouter un utilisateur à la base de donnée Sasl

# saslpasswd2 -c -u $hostname $user

Pour éviter tout problème, nous allons modifier les permissions de la base de donnée Sasl, autorisant ainsi Postfix à lire et écrire dans cette dernière.

# chown postfix:postfix /etc/sasldb2
# chmod 660 /etc/sasldb2

Configuration du daemon Sasl

 

# cat /usr/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
# cat /usr/lib/sasl/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5

Il ne nous reste plus qu’à redémarrer les processus Sasl et Postfix.

# /etc/init.d/sasld restart
# /etc/init.d/postfix restart

Prêt à être utilisé !

 

Afin de valider le fonctionnement, utilisez les comptes crées dans la base de donnée Sasl, en vérifiant les logs présents dans : /var/log/mailog.

Afin de le faire fonctionner sous Centos 7:

– le fichier SMTPD.CONF doit être crée dans “/etc/sasl2”.

– SYSTEMCTL doit utlisé pour gérer le service SASL : saslauthd.

 

Le but de ce serveur est de monter un tunnel L2TP avec le LAC (L2TP  Access Concentrator), puis de monter un tunnel PPP par modem à travers le tunnel L2TP.
Pour la vérification des authentifications il sollicite le serveur radius.

Configuration du loopback :

# nano /etc/sysconfig/network-script/ifcfg-lo

DEVICE=lo
IPADDR=xx.xx.xx.xx
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback

Autorisation du « forward » entre le réseau et les tunnels

# AUTORISER LE FORWARD

# nano /etc/sysctl.conf

mettre net.ipv4.ip_forward = 1

aussi en temporaire avant le redémarrage
# echo 1 > /proc/sys/net/ipv4/ip_forward

Installation Libcli sur x86

Téléchargement de la libcli

wget http://downloads.sourceforge.net/project/libcli/libcli/1.9.3/libcli-1.9.3.tar.gz?r=http://sourceforge.net/projects/Flibcli/&ts=1287128221&use_mirror=freefr

Décompression
# tar xzvf libcli-*.tar.gz

Entrer dans le répertoire
# cd libcli-*

Compilation
# make

Installer
# make install PREFIX=/usr

Ou installation Libcli sur x86_64

Téléchargement de la libcli
# wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/libcli-1.8.6-2.el6.rf.x86_64.rpmInstallation du rpm
# rpm -Uvf libcli-1.8.6-2.el6.rf.x86_64.rpm 

Télécharger le fichier

# wget http://downloads.sourceforge.net/project/l2tpns/l2tpns/2.1.21/l2tpns-2.1.21.tar.gz?r=http://sourceforge.net/projects/l2tpns/&ts=1287128144&use_mirror=freefr

Décompresser le fichier :
# tar xzvf l2tpns-*

Entrer dans le dossier
# cd l2tpns-*

Recompiler
# make

Installer
# make install

Configuration du serveur L2TPNS

Le serveur L2TPNS se lance avec la configuration du fichier /etc/l2tpns/ startup-config. La mise en place du pool d’adresse IP des modems clients permet de créer les routes vers les tunnels au démarrage du serveur L2TPNS. Ces IP peuvent êtes récupérées de façon dynamiques ou statique (à préciser dans la configuration du routeur)

Fichier de configuration du serveur /etc/l2tpns/

# Debugging level
set debug 3# Log file: comment out to use stderr, use « syslog:facility » for syslogset log_file « /var/log/l2tpns »

# Write pid to this file
set pid_file « /var/run/l2tpns.pid »
# Shared secret with LAC
set l2tp_secret « xxxxxxxxx »
# MTU of interface for L2TP traffic
set l2tp_mtu 2000
# PPP counter and timer values
set ppp_restart_time 3
set ppp_max_configure 10
set ppp_max_failure 5
# Only 2 DNS server entries are allowed
set primary_dns xx.xx.xx.xx
# Can have multiple radius server entries, but ony one radius secret
set primary_radius xx.xx.xx.xx
set primary_radius_port 1812
set radius_secret « xxxxx »
# Acceptable authentication types (pap, chap) in order of preference
set radius_authtypes « pap »
# Allow multiple logins for the same username
set allow_duplicate_users no
# Write usage accounting files into specified directory
set accounting_dir « /var/run/l2tpns/acct »
# Listen address for L2TP
set bind_address xx.xx.xx.xx
# Gateway address given to clients
set peer_address xx.xx.xx.xx
# Maximum number of downstream packets per 0.1s to handle for each
# session (0 = ulimited)
set packet_limit 0

Dans le fichier /etc/l2tpns/ip_pool

10.0.0.1/27
10.10.45.0/24
xx.xx.xx.xx/xx

Lancement du service

Démarrer le serveur en mode console :
# l2tpns

Démarrer le serveur en démon :
# l2tpns –d