Authentification SSH par clé RSA sous debian

BLOG

Mettre en place un système d’authentification par clé ssh (RSA)

Introduction

Cet article a pour but de vous montrer comment mettre en place une authentification sécurisée entre deux macheins ( un ordinateur qui doit se connecter à un serveur, ou bien deux serveurs qui doivent communiquer entre eux, pour des sauvegardes toutes les soirs par exemple).

 

Sur la machine qui doit se connecter:

Pour cela il vous suffit de lancer la commande suivante:

$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home//.ssh/id_rsa):
Created directory '/home//.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home//.ssh/id_rsa.
Your public key has been saved in /home//.ssh/id_rsa.pub.
The key fingerprint is:
04:f0:35:21:10:f3:e5:b6:54:59:25:1a:75:97:67:27 @
The key's randomart image is:

 

Si vous executez, la commande ssh-keygen -t rsa, le programme vous posera plusieurs questions:

  • Où seront enregistrées les clés sur votre système.
  • Une passphrase (Si vous voulez que les connexions soit faite automatiquement il ne faut pas mettre de passphrase, sinon vous serez obligé de la taper avant chaque connexion...)

 

A présent, nous devons copié la clé public sur la machine où l'on va se connecter. Voilà c'est fini pour la machine qui doit se connecter, passons à la machine où l'on doit se connecter.

 

Sur la machine où l'on doit se connecter:

Un fois sur la machine qui doit accepter les connexions par cette clé, il faut copier la clé public dans le fichier: ~/.ssh/authorized_keys

Et voilà le tour est joué, il ne vous reste plus qu'à tester la connexion 🙂

 

Sur la machine qui doit se connecter:

Lorsque vous faite votre connexion ssh voici la ligne qui doit apparaitre

Warning: Permanently added '' (RSA) to the list of known hosts.

Si vous voyez cette ligne et que vous vous êtes connecté sans qu'on vous demande de mot de passe, c'est normal le système a bien utilisé votre clé.

 

Conclusion

Outre le fait d'être plus partique que de taper son mot de passe à chaque fois qu'on se connecte sur une machine, cela permet d'automatiser des taches, chose impossible si on vous demande un mot de passe.

Et au niveau de la sécurité, vous pouvez alors empêcher les connexions sans clés, ce qui évite toutes les attaques brutes force contre votre serveur.

 

VOUS AVEZ UN PROJET ?

Nous sommes à votre écoute pour le mettre en place (...)

Installation de git avec apache sous debian

BLOG

Mise en place d'un serveur proposant des repositories git via HTTP

 

Pour cet article, je suppose que vous avez un serveur nommé git.dev, et qu'il est installé sous debian. Nous allons voir comment mettre en place des repositories git accéssible via http par l'adresse http://git.dev/repositories

 

Mise en place du repository git

Pour commencer, installons git et apache

$ apt-get install git apache2

 

On créé un répertoire pour stocker repositories gits, que nous rendrons accéssibles via apache (pour la démo est va les mettre dans des répertoire accéssible de base par apache:

$ mkdir /var/www/git/repositories

 

On créé un premier dépot:

$ cd /var/www/git/repositories
$ mkdir myproject.git
$ cd myproject.git
$ git --bare init
$ git update-server-info
$ cd /var/www/git/repositories
$ chown -R www-data.www-data .

 

Configuration d'apache

Ajout du module dav à apache. Le module dav prends en charge l'écrire sur le serveur de fichier via http:

$ a2enmod dav dav_fs
$ /etc/init.d/apache restart

 

Mise en place d'un vhost pour l'accès au repositories git:


        ServerName git.dev
        ServerAdmin 
        DocumentRoot /var/www/git/


        
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        

        SetEnv GIT_PROJECT_ROOT /var/www/git/
        SetEnv GIT_HTTP_EXPORT_ALL

        ScriptAlias / /usr/lib/git-core/git-http-backend/
        AliasMatch ^/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
        AliasMatch ^/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1



        ScriptAliasMatch \
        "(?x)^/(.*/(HEAD | \
        info/refs | \
        objects/(info/[^/]+ | \
        [0-9a-f]{2}/[0-9a-f]{38} | \
        pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
        git-(upload|receive)-pack))$" \
        /usr/lib/git-core/git-http-backend/$1

        
                DAV on
                Options +ExecCGI Indexes FollowSymLinks MultiViews
                Order allow,deny
                allow from all
        

 

Et  voilà votre git est accessible via: http://git.dev/repositories/myproject.git

 

Maintenant il ne vous reste plus qu'à cloner votre projet:

$ git clone http://git.dev/repositories/myproject.git

 

Et voilà vous pouvez travailler à plusieurs sans riquer de perdre des données !!!

 

VOUS AVEZ UN PROJET ?

Nous sommes à votre écoute pour le mettre en place (...)

Installation d’une kinect sous Ubuntu 13.10 et test d’OpenNI2 et Nite2

BLOG

Installation de la kinect sur ubuntu 13.10.

Important !!
Il semblerait que les kinects de séries 1473 ne fonctionnent pas "encore" avec les drivers freenect.

1- Installation des paquets et préparation de l'environnement

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install cmake git-core freeglut3-dev freeglut3 pkg-config build-essential libxmu-dev libxi-dev libusb-1.0-0-dev python doxygen graphviz openjdk-6-jdk
$ mkdir ~/kinect && cd ~/kinect

 

Vérifions que la kinect est bien reconnu par votre système. Branchez la puis lancez la commande suivante:

lsusb |grep Xbox


Bus 001 Device 058: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 001 Device 059: ID 045e:02ad Microsoft Corp. Xbox NUI Audio
Bus 001 Device 060: ID 045e:02ae Microsoft Corp. Xbox NUI Camera

 

2 - Mise en place des drivers freenect

Nous avons de besoin des drivers freenect afin de pouvoir communiquer avec la kinect.

 

2.1 - Installation en compilant les sources via GIT

$ git clone https://github.com/OpenKinect/libfreenect.git
$ cd libfreenect
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
$ sudo ldconfig /usr/local/lib64/
$ cd ..

 

Et voilà les drivers sont installer. Pour être sur que tout est bien installer on va tester la kinect

$ glview

 

2.2 - Installation via APT (dépots officiels)

$ sudo apt-get install freenect

 

Pour être bien sur que tout va bien:

$ freenect-glview

 

2.3 - Installation via APT (dépots NeuroDebian)

$ wget -O- http://neuro.debian.net/lists/$(lsb_release -cs).us-nh | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list
$ sudo apt-key adv --recv-keys --keyserver pgp.mit.edu 2649A5A9
$ sudo apt-get update

 

En suite, tout se passe comme pour l'installation des dépot officiels:

$ sudo apt-get install freenect
$ freenect-glview

 

3 - Installation d'OpenNI2

$ wget http://www.openni.org/wp-content/uploads/2013/11/OpenNI-Linux-x64-2.2.0.33.tar.zip
$ unzip OpenNI-Linux-x64-2.2.0.33.tar.zip && tar xjf OpenNI-Linux-x64-2.2.tar.bz2
$ cd OpenNI-Linux-x64-2.2
$ sudo ./install.sh
$ cat OpenNIDevEnvironment
  export OPENNI2_INCLUDE=/home//kinect/OpenNI-Linux-x64-2.2/Include
  export OPENNI2_REDIST=/home//kinect/OpenNI-Linux-x64-2.2/Redist
$ vim ~/.bashrc
  export OPENNI2_INCLUDE=/home//kinect/OpenNI-Linux-x64-2.2/Include
  export OPENNI2_REDIST=/home//kinect/OpenNI-Linux-x64-2.2/Redist

Après il faut fermer votre session puis la réouvrir. Pour savoir si tout va bien vérifions que les variables d'environnement sont bien créés:

$ env |grep OPENNI2
   OPENNI2_REDIST=/home//kinect/OpenNI-Linux-x64-2.2/Redist
   OPENNI2_INCLUDE=/home//kinect/OpenNI-Linux-x64-2.2/Include

 

4 - Installation du pont entre libfreenect et OpenNI2

$ git clone https://github.com/piedar/OpenNI2-FreenectDriver.git
$ cd OpenNI2-FreenectDriver
$ ./waf configure build
$ cd build
$ cp libFreenectDriver.so ~/kinect/OpenNI-Linux-x64-2.2/Redist/OpenNI2/Drivers/
$ cd ~/kinect/OpenNI-Linux-x64-2.2/Redist/OpenNI2/Drivers/
$ ln -s libFreenectDriver.so libFreenectDriver.so.1
$ ln -s libFreenectDriver.so libFreenectDriver.so.1.2.0

 

Si vous voulez tester l'installation en lancant les exemples du répertoire sample/bin, il vous faudra copier libFreenectDriver.so dans ~/kinect/OpenNI-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers

$ cd ~/kinect/OpenNI-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers
$ cp ~/kinect/OpenNI2-FreenectDriver/build/libFreenectDriver.so .
$ ln -s libFreenectDriver.so libFreenectDriver.so.1
$ ln -s libFreenectDriver.so libFreenectDriver.so.1.2.0
$ cd ~/kinect/OpenNI-Linux-x64-2.2/Samples/Bin
$ ./SimpleViewer

 

5 - Installation de NiTE2

$ wget http://www.openni.org/wp-content/uploads/2013/10/NiTE-Linux-x64-2.2.tar1.zip
$ unzip NiTE-Linux-x64-2.2.tar1.zip && tar xjf NiTE-Linux-x64-2.2.tar.bz2
$ cd NiTE-Linux-x64-2.2
$ sudo ./install.sh
$ cat NiTEDevEnvironment
  export NITE2_INCLUDE=/home//kinect/NiTE-Linux-x64-2.2/Include
  export NITE2_REDIST64=/home//kinect/NiTE-Linux-x64-2.2/Redist
$ vim ~/.bashrc
  export NITE2_INCLUDE=/home//kinect/NiTE-Linux-x64-2.2/Include
  export NITE2_REDIST64=/home//kinect/NiTE-Linux-x64-2.2/Redist

Après il faut fermer votre session puis la réouvrir. Pour savoir si tout va bien vérifions que les variables d'environnement sont bien créés:

$ env |grep NITE2
   NITE2_INCLUDE=/home//kinect/NiTE-Linux-x64-2.2/Include
   NITE2_REDIST64=/home//kinect/NiTE-Linux-x64-2.2/Redist

Et voilà çà devrait fonctionner normalement maintenant.

 

6 - Sources

 

6 - Quelques problèmes que vous pourriez rencontrer

Kinect camera test
Number of devices found: 1
Could not claim interface on camera: -6
Could not open device

C'est un problème de droit au niveau de l'usb, il faut ajouter des règles pour autoriser l'accès à la kinect

$ sudo vim /etc/udev/rules.d/66-kinect.rules

# ATTR{product}=="Xbox NUI Motor"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02b0", MODE="0666"
# ATTR{product}=="Xbox NUI Audio"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ad", MODE="0666"
# ATTR{product}=="Xbox NUI Camera"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ae", MODE="0666"

 

En suite on redémarre l'usb pour prendre en compte les nouvelles règles

$ sudo /etc/init.d/udev restart

 

 

Number of devices found: 1
Could not claim interface on camera: -6
Could not open device

Les Kernels moderne on déjà un driver vidéo pour Kinect, il faut donc supprimer celui qui a été ajouté par freenect

$ sudo modprobe -r gspca_kinect

 

Pour qu'il ne soit pas charger à chaque démarrage, il faut le blacklister

$ sudo vim /etc/modprobe.d/blacklist_kinect.conf

blacklist gspca_kinect

 

En suite on redémarre l'usb pour prendre en compte le blacklistage du module

$ sudo /etc/init.d/udev restart

 

Note importante!!
Je vous conseille de débrancher votre kinect à chaque fois que vous faites des modifications au niveau des règles ou des modules car la commande $ sudo /etc/init.d/udev restart ne suffit pas toujours... Après on est quand même pas sous windows pas la peine de rédémarrer votre ordinateur 🙂

VOUS AVEZ UN PROJET ?

Nous sommes à votre écoute pour le mettre en place (...)

Installation Ngnix / Ruby On Rails / PHP sous ubuntu

Installation Ngnix / Ruby On Rails / PHP sous ubuntu

Comment installer un serveur ngnix sous linux pour des sites en php et ruby

 

Introduction

Ruby On Rails est un framework de développement web basé sur le langage ruby. Voici comment installer sur un serveur web ngnix, sur serveur tournant sous ubuntu.

Il faudra déjà installer le ruby, puis le framework Ruby On Rails. Ensuite, nous mettrons en place notre serveur ngnix et pour finir nous mettrons en place le module passenger pour faire communiquer le ruby et ngnix.

Comme il se peut que vous vouliez héberger aussi des sites écrits en php, nous verrons comment ajouter la partie php en plus sur notre serveur ngnix.

 

Pré requis

Dans un premier temps, il faut mettre à jour votre liste de paquets

$ sudo apt-get update

 

Puis çà permet de rester à jour, de mettre votre distribution à jour (ceci n'est pas obligatoire, juste un petit plus pour être à jour)

$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

Bien sur, à ne pas faire directement en production, sans avoir vérifié ce qui va être mis à jour....

 

Installons à présent tout ce dont vous allez avoir besoin.

$ sudo apt-get install curl

 

Installation de ruby

Pour installer ruby la méthode la plus utilisée est celle de l'installation via rvm

$ curl -L get.rvm.io | bash -s stable
$ source ~/.rvm/scripts/rvm
$ [[ -s "~/.rvm/scripts/rvm" ]] && source "~/.rvm/scripts/rvm" # This loads RVM into a shell session.
$ rvm requirements
$ rvm install 2.1.0
$ rvm use 2.1.0 --default
$ rvm rubygems current

 

Installation de Rails

Ruby On Rails est une sorte de super gem. En installant le gem Ruby On Rails, vous allez installé d'autres gems. Ceux-ci font partie de Ruby On Rails. Par exemple, le gem rake sera installer, il permet par exemple de créer des commandes. C'est un gem à part, mais beaucoup d'action du framework dépende de ce gem.

Mais qu'est-ce qu'un gem ? Un gem est une librairie, qui permet d'ajouter des fonctionnalitées. En effet, si vous voulez utiliser bootstrap dans vos interfaces graphiques, il y a deux solutions. Vous pouvez aller sur le site bootstrap, et installer manuellement bootstrap (bien sûr il faudra le mettre à jour vous même lors des mises à jour). Ou alors, on peut installer via le gem bootstrap et vous n'aurez rien d'autre à faire. Il se mettra à jour lorsque vous mettrez vos gems à jour s'il y a eu une nouvelle version de bootstrap.

Bien sur il faut surveiller les mises à jours des gems certains sont plus suivit que d'autres. Parfois certains gem cessent d'être maintenue par leur créateur, par manque de temps ou autre. Donc prudence les gems sont à utiliser avec soins!

$ gem install rails
$ rails new demo
$ gem install minitest -v '4.7.5'
$ gem install json -v '1.8.1'

 

Installation de passenger

$ gem install passenger

 

Installation d'ngnix

$ rvmsudo passenger-install-nginx-module

 

Configuration d'ngnix

La partie passenger:

http {
      ...
      passenger_root /home/ldandoy/.rvm/gems/ruby-2.1.0/gems/passenger-4.0.37;
      passenger_ruby /home/ldandoy/.rvm/gems/ruby-2.1.0/wrappers/ruby;
      ...
  }

 

La partie nom de domaine:

server {
      listen 80;
      server_name www.yourhost.com;
      root /somewhere/public;   # <--- be sure to point to 'public'!
      passenger_enabled on;
   }

 

Installation de PHP

$ sudo apt-get install php5-cli php5-mysql php5-fpm

Il faut ensuite configurer notre serveur ngnix pour qu'il puisse utiliser le php

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
       try_files $uri =404;
       fastcgi_pass unix:/var/run/php5-fpm.sock;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
}

 

Sources

VOUS AVEZ UN PROJET ?

Nous sommes à votre écoute pour le mettre en place (...)

Installation Python et Pyame sur Ubuntu 14.04

BLOG

Qu'est-ce que pygame ?

Pygame est un ensemble de module python écrits pour créer des jeux. Pygame ajout des fonctionnalités en se basant sur la très bonne librairies SDL. Cela vous permet de créer des jeux complet et interactif en langage python. Pygame est très portable, et peu fonctionné sur presque tous les systèmes d'exploitation. Pygame est lui même téléchargé des millions de fois, et a des millions de visite sur son site web.

 

Installation

Installation des dépendances:

sudo apt-get install python3-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libsmpeg-dev python3-numpy subversion libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev libsdl2-ttf-dev libxft-dev libfreetype6-dev

 

Récupération des sources de pygame

svn co svn://seul.org/svn/pygame/trunk pygame

 

Installation de pygame:

cd pygame
python3.4 setup.py build
python3.4 setup.py install

 

Test de l'installation

python3
>>> import pygame

Normalement tout est bon 🙂

 

Sources

VOUS AVEZ UN PROJET ?

Nous sommes à votre écoute pour le mettre en place (...)