lo-ol

"La douleur est temporaire. L'abandon est éternel"

Linux

ShellShock et Synology

Rédigé par lolo • 26 septembre 2014 • Aucun commentaire

Pour ceux qui n'auraient pas suivi l'actualité de ces derniers jours, une gigantesque faille nommée ShellShock a été découverte dans le célébrissime interpréteur de commande "Bash" sous Linux (et également sous Mac Os). Je ne vais pas revenir sur celle-ci, de nombreux sites l'ont déjà fait (par exemple https://shellshocker.net/).

Apparement, cette vulnérabilité existe depuis une vingtaine d'années mais maintenant qu'elle est connue, c'est le branle-bas de combat entre les pirates en herbes qui vont s'en donner à coeur-joie et les sys-admin qui vont devoir payer les pôts cassés. En tout cas, après la désormais célèbre faille "HeartBleed", voilà qui ne va pas redorer le blason du monde du libre...

Bref, maintenant que le problème est connu, la question est de savoir s'il nous impacte en tant que possesseur de nas Synology.

Pour cela, il suffit de se connecter à son nas depuis un terminal et de lancer la commande suivante pour connaitre le shell utilisé :

$ echo $SHELL

Si vous n'avez pas installé de paquets alternatifs via ipkg, vous devriez avoir comme résultat :

/bin/ash

Il s'agit du shell utilisé par défaut par le nas. Il n'est pas impacté par la vulnérabilité. Pour s'en assurer, vous pouvez tester les commandes ci-dessous :

Exploit 1 (CVE-2014-6271)

env x='() { :;}; echo vulnerable' /bin/ash -c "echo this is a test"

Exploit 2 (CVE-2014-7169)

env X='() { (a)=>\' /bin/ash -c "echo date"; cat echo ; rm -f echo

Ouf, c'est rassurant smiley.

En revanche, si vous avez installé bash depuis le gestionnaire de paquets ipkg, vous êtes concerné par la faille et je vous conseille de l'enlever au plus vite :

$ /opt/bin/ipkg remove bash

Si vous souhaiter garder un shell un peu plus évolué que celui installé par défaut, vous pouvez vous tourner vers zsh qui est au moins aussi bien que bash, la vulnérabilité en moins.

Gérer ses dépôts Git sur son serveur Synology

Rédigé par lolo • 01 février 2014 • 489 commentaires

Après avoir utilisé le site collaboratif Github pour héberger mes dépôts git, j'ai décidé de mettre en place une solution équivalente sur mon propre serveur Synology.

Je ne vais pas revenir sur les raisons qui m'ont poussé à auto-héberger mes dépôts, d'autres l'ont déjà bien expliqué avant moi (voir par exemple l'article de Sheevaboite).

Côté interface web, j'ai choisi d'installer Gitlist, un simple visualisateur de dépôt git écrit en PHP.

Etant donné que j'ai quand même un peu galérer pour mettre la chose en place, je vais décrire la procédure que j'ai suivi sur mon nas Synology pour l'installer.

Configuration du serveur Git depuis le DSM :

La première étape consiste à récupérer et installer le paquet "Git server" fourni par Synology. Ensuite, on crée un nouvel utilisateur "git" spécifique en faisant attention à lui donner les droits d'accès qui conviennent. Dans mon cas, j'ai affecté l'utilisateur "git" au groupe web du syno car c'est là que je vais placer mes dossier git.

Création des répertoires git et initialisation d'un premier dépôt depuis le serveur :

On se connecte en ssh au serveur pour crée un dossier qui va contenir les projets git (ici dans le répertoire web) :

mkdir /volume1/web/git

Pour l'exemple, nous créons un projet "test" et on l'initialise puis on donne les droits à l'utilisateur git et au groupe web apache pour le tout ("http" pour la version DSM 5.0) :

cd /volume1/web/git
mkdir test
cd test
git --bare init
chown -R git:http /volume1/web/git

Premier commit depuis l'ordinateur local vers le serveur :

Nous avons désormais un premier dépôt prêt à être utilisé sur le serveur. Il ne reste plus qu'à le remplir. Pour cela, on se connecte sur son ordi local et on va envoyer le contenu de notre dossier "test" vers le serveur :

# sur l'ordi de l'utilisateur
cd test
git init
git add .
git commit -m 'initial commit'
git remote add origin git@server:/volume1/web/git/test
git push origin master

Si tout s'est bien passé, les sources sont désormais sur le serveur et un utilisateur peut les récupérer via :

git clone git@server:/volume1/web/git/test

Et pour mettre à jour son répertoire local :

git pull origin master

Installation et configuration de Gitlist :

Pour installer Gitlist, pas de difficulté particulières. Cela se fait de manière classique et on trouve de nombreux tutos sur le net comme ici.

Pour ce qui est de la configuration, il faut définir le chemin d'accès vers le dépôt git. Dans mon cas, mes dossiers git et gitlist étant tous les deux à la racine du dossier web (/volume1/web). J'ai dû modifié le fichier conf.ini dans gitlist  de la manière suivante :

[git]
client = '/usr/bin/git' ; Your git executable path
default_branch = 'master' ; Default branch when HEAD is detached
repositories[] = '../git/' ; Path to your repositories
...

Et voilà, un serveur git perso avec une jolie interface web KISS ! Un pas de plus vers l'indépendance.

Github -> Git server + Gitlist