Articles associés au tag ‘o’

28 Oct
2016

Diverses commandes linux

Voici un petit memo personnel de quelques commandes en vrac à ajouter à votre boite à outils : 

 

-DEBIAN like : Suppression d’un packet mal installé qui nécessite une réinstallation : 

sudo dpkg --force-remove-reinstreq --remove $NomDuPacket

-LINUX : Compter le nombre de fichiers contenu dans un répertoire : 

ls -1A |wc -l

-LINUX : Rechercher occurence toto dans tous les fichiers du répertoire courant : 

find . -name ‘*’ -exec grep -Hsl ‘toto’ {} ;

-LINUX : activer un script dans init.d au boot du système : 

update-rc.d $NomDuScrupt defaults

-LINUX : désactiver le démarage d’un script init.d au boot du système : 

update-rc.d -f $NomDuScript remove

 

-La CheatOgraphie : 

###Bash Commands
uname -a 
#Show system and kernel
head -n1 /etc/issue 
#Show distribution
mount 
#Show mounted filesystems
date 
#Show system date
uptime 
#Show uptime
whoami 
#Show your username
man command 
#Show manual for command
###Bash Shortcuts
CTRL-c 
#Stop current command
CTRL-z 
#Sleep program
CTRL-a 
#Go to start of line
CTRL-e 
#Go to end of line
CTRL-u 
#Cut from start of line
CTRL-k 
#Cut to end of line
CTRL-r 
#Search history
!! 
#Repeat last command
!abc 
#Run last command starting with abc
!abc:p 
#Print last command starting with abc
!$ 
#Last argument of previous command
ALT-. 
#Last argument of previous command
!* 
#All arguments of previous command
^abc^123 
#Run previous command, replacing abc with 123
###Bash Variables
env 
#Show environment variables
echo $NAME 
#Output value of $NAME variable
export NAME=value 
#Set $NAME to value
$PATH 
#Executable search path
$HOME 
#Home directory
$SHELL 
#Current shell
###IO Redirection
cmd < file
#Input of cmd from file
cmd1 <(cmd2)
#Output of cmd2 as file input tocmd1
cmd > file
#Standard output (stdout) of cmd to file
cmd > /dev/null
#Discard stdout of cmd
cmd >> file
#Append stdout to file
cmd 2> file
#Error output (stderr) of cmd to file
cmd 1>&2
#stdout to same place as stderr
cmd 2>&1
#stderr to same place as stdout
cmd &> file
#Every output of cmd to file
###Pipes
cmd1 | cmd2
#stdout of cmd1 to cmd2
cmd1 |& cmd2
#stderr of cmd1 to cmd2
###Command Lists
cmd1 ; cmd2
#Run cmd1 then cmd2
cmd1 && cmd2
#Run cmd2 if cmd1 is successful
cmd1 || cmd2
#Run cmd2 if cmd1 is not successful
cmd &
#Run cmd in a subshell
###Directory Operations
pwd 
#Show current directory
mkdir dir 
#Make directory dir
cd dir 
#Change directory to dir
cd .. 
#Go up a directory
ls 
#List files
###ls Options
-a Show all (including hidden)
-R Recursive list
-r Reverse order
-t Sort by last modified
-S Sort by file size
-l Long listing format
-1 One file per line
-m Comma-separated output
-Q Quoted output
###Search Files
grep pattern 
#files Search for pattern in files
grep -i 
#Case insensitive search
grep -r 
#Recursive search
grep -v 
#Inverted search
grep -o 
#Show matched part of
file only
find /dir/ -name name* 
#Find files starting with name in dir
find /dir/ -user name 
#Find files owned by name in dir
find /dir/ -mmin num 
#Find files modifed less than num minutes ago in dir
whereis command 
#Find binary / source / manual for command
locate file 
#Find file (quick search of system index)
###File Operations
touch file1
#Create file1
cat file1 file2
#Concatenate files and output
less file1
#View and paginate file1
file file1
#Get type of file1
cp file1 file2
#Copy file1 to file2
mv file1 file2
#Move file1 to file2
rm file1
#Delete file1
head file1
#Show first 10 lines of file1
tail file1
#Show last 10 lines offile1
tail -F file1
#Output last lines offile1 as it changes
###Watch a Command
watch -n 5 'ntpq -p'
#Issue the 'ntpq -p' command every 5 seconds and display output
###Process Management
ps 
#Show snapshot of processes
top 
#Show real time processes
kill pid 
#Kill process with id pid
pkill name 
#Kill process with name name
killall name 
#Kill all processes with names
beginning name
###Nano Shortcuts
##Files
Ctrl-R 
#Read file
Ctrl-O 
#Save file
Ctrl-X 
#Close file
##Cut and Paste
ALT-A 
#Start marking text
CTRL-K 
#Cut marked text or line
CTRL-U 
#Paste text
##Navigate File
ALT-/ 
#End of file
CTRL-A 
#Beginning of line
CTRL-E 
#End of line
CTRL-C 
#Show line number
CTRL-_ 
#Go to line number
##Search File
CTRL-W 
#Find
ALT-W 
#Find next
CTRL- 
#Search and replace
###Screen Shortcuts
screen
#Start a screen session.
screen -r
#Resume a screen session.
screen -list
#Show your current screen sessions.

###Screen Shortcuts (cont)
CTRL-A
#Activate commands for screen.
CTRL-A c
#Create a new instance of terminal.
CTRL-A n
#Go to the next instance of terminal.
CTRL-A p
#Go to the previous instance of terminal.
CTRL-A "
#Show current instances of terminals.
CTRL-A A
#Rename the current instance.
###File Permissions
chmod 775 file
#Change mode of file to 775
chmod -R 600 folder
#Recursively chmod folder to 600
chown user:group file
#Change file owner to user and group to group

###File Permission Numbers
#First digit is owner permission, second is group and third is everyone.
#Calculate permission digits by adding numbers below.
#4 read (r)
#2 write (w)
#1 execute (x)

 

Si vous en avez d’autres que vous considérez utiles, n’hésitez pas à me les envoyer en commentaire.

 

 

26 Oct
2016

Raspberry Pi 2 ou 3 et Raspbian Jessie – VLC 2.4 et accélération matériel (hardware acceleration)

Aujourd’hui je vais à nouveau publier une mise à jour de l’article : Raspberry Pi 2 – VLC et accélération matériel (hardware acceleration)

En effet, ce tuto à été fait à l’époque sur une Raspbian Wheezy avec un Raspberry PI 2.

Depuis la sortie du Raspberry Pi 3 et de Raspbian Jessie, je me devais de faire une mise à jour de ce tuto :

Vous pouvez également suivre le tutoriel en vidéo :

Donc allez chercher la version de Raspbian suivante : 2016-09-23-raspbian-jessie.img

Installez la sur votre carte SD (il y a assez de tuto sur le net pour ça)

Démarrez votre Raspberry, et un écran de setup devrait apparaitre.

Paramétrer votre interfaces réseau, vos paramètres de locales, clavier, password… blabla …

Et connectez vous en SSH à votre Raspberry (Là le travail commence vraiment)

faites :

sudo apt-get update

Pour mettre à jour vos dépots, nous allons ensuite installer tous les packet nécessaire à la compilation de VLC ainsi que ses dépendances :

sudo apt-get install build-essential autoconf pkg-config zlib1g-dev libtool autopoint gettext liba52-0.7.4-dev libaa1-dev libasound2-dev libass-dev libavahi-client-dev libavc1394-dev libavcodec-dev libavformat-dev libbluray-dev libcaca-dev libcddb2-dev libcdio-dev libchromaprint-dev libdbus-1-dev libdc1394-22-dev libdca-dev libdirectfb-dev libdvbpsi-dev libdvdnav-dev libdvdread-dev libegl1-mesa-dev libfaad-dev libflac-dev libfluidsynth-dev libfreerdp-dev libfreetype6-dev libfribidi-dev libgl1-mesa-dev libgles1-mesa-dev libgles2-mesa-dev libgnutls28-dev libgtk2.0-dev libidn11-dev libiso9660-dev libjack-jackd2-dev libkate-dev liblircclient-dev liblivemedia-dev liblua5.2-dev libmad0-dev libmatroska-dev libmodplug-dev libmpcdec-dev libmpeg2-4-dev libmtp-dev libncursesw5-dev libnotify-dev libogg-dev libomxil-bellagio-dev libopus-dev libpng12-dev libpulse-dev libqt4-dev libraw1394-dev libresid-builder-dev librsvg2-dev libsamplerate0-dev libschroedinger-dev libsdl-image1.2-dev libsdl1.2-dev libshine-dev libshout3-dev libsidplay2-dev libsmbclient-dev libspeex-dev libspeexdsp-dev libssh2-1-dev libswscale-dev libtag1-dev libtheora-dev libtwolame-dev libudev-dev libupnp-dev libv4l-dev libva-dev libvcdinfo-dev libvdpau-dev libvncserver-dev libvorbis-dev libx11-dev libx264-dev libxcb-composite0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xv0-dev libxcb1-dev libxext-dev libxinerama-dev libxml2-dev libxpm-dev libzvbi-dev lua5.2 oss4-dev

Nous allons ensuite télécharger les sources de VLC 2.4 via wget :

wget http://download.videolan.org/vlc/2.2.4/vlc-2.2.4.tar.xz

Puis les décompresser pour ensuite les compiler :

tar Jxvf vlc-2.2.4.tar.xz
cd vlc-2.2.4/
./bootstrap
CFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -I/opt/vc/include/GLES2 -mfloat-abi=hard -mcpu=cortex-a7 -mfpu=neon-vfpv4" CXXFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -mfloat-abi=hard -I/opt/vc/include/GLES2 -mcpu=cortex-a7 -mfpu=neon-vfpv4" LDFLAGS="-L/opt/vc/lib" ./configure --prefix=/usr --enable-omxil --enable-omxil-vout --enable-rpi-omxil --disable-mmal-codec --disable-mmal-vout --enable-gles2 --enable-gles1
make -j3
sudo make install

Une fois installé, lancez vlc puis cliquez sur « Menu » puis le sous-menu « Son et vidéo »

Dans VLC, cliquez ensuite sur « Outils » puis « Préférences »

Sur le menu du haut, cliquez sur « Audio« , puis dans « Module de sortie« , sélectionnez « Sortie audio ALSA« .

Dans « Périphérique« , sélectionnez « bcm2835 ALSA, bcm2835 ALSA Default Audio Device » voir screenshot :

Sur le menu du haut, cliquez ensuite sur « Vidéo« , puis dans « Sortie » sélectionnez « Sortie vidéo « OpenMAX IL » » voir screenshot :

Retournez dans le menu « Audio« , puis en bas à gauche de la fenêtre, cliquez sur « Tous » (Permet d’afficher plus de paramètres)

Dans l’onglet « Audio« , sur le champ « Ré-échantillonnage audio« , sélectionnez « Désactiver » voir screenshot :

Vous pouvez maintenant profiter de votre player préféré !

Si vous avez des questions, n’hésitez pas !

25 Oct
2016

Debian – Contrôlez votre bureau graphique à distance …

Bonjour à tous,

Aujourd’hui je vais vous expliquer comment prendre le contrôle à distance du bureau de votre Debian sans ouvrir une nouvelle session graphique : Ceux qui ont testé des tutoriels avec Tightvnc par ex savent de quoi je parle.

En général, la plupart des tutoriels permettant de prendre le contrôle à distance du bureau ouvrent une nouvelle session graphique …

Vous vous retrouvez avec votre bureau mais si vous ouvrez un document, vous allez vous rendre compte que ce n’est pas le meme bureau que celui affiché sur la sortie de la carte graphique de votre machine.

Dans notre cas, nous voulons contrôler la meme interface graphique que celle présente sur notre Debian : Nous allons utiliser le bon vieux x11vnc.

Commençons par l’installer :

sudo apt-get install x11vnc

Nous allons ensuite définir un mot de passe de connexion à la session VNC :

x11vnc -storepasswd $MonMotDePass  /etc/x11vnc.pass

Puis demander à GDM (Pour ceux qui utilisent Gnome) de nous le lancer au démarrage :

sudo nano /etc/gdm3/Init/Default

Avant la dernière ligne exit 0; ajoutez :

/usr/bin/x11vnc -rfbauth /etc/x11vnc.pass -o /tmp/x11vnc.log -forever -bg -rfbport 5900

 

Puis redémarez votre Debian pour tester le tout :

sudo reboot

Lancez votre client vnc préféré (Par exemple realvnc)

Tapez l’adresse de votre debian suivis de : et du numéro de port (par défaut 5900) ex : 192.168.1.254:5900

Et vous pouvez lancer la connexion !

Si vous avez des soucis / des questions, n’hésitez pas ;)

JJ

24 Oct
2016

Raspberry Pi – Horloge matériel et serveur NTP

Bonjour à tous,

Pour un besoin très particulier (donner l’heure à des dongles OTT dans un réseau multicast sans accès à un quelconque autre réseau), j’ai eut besoin d’un serveur NTP dans mon réseau interne.

2016-10-24-15-27-06Je me suis naturellement tourné vers un Raspberry, malheureusement j’avais un peu oublié le fait que le raspberry était dépourvu de hardware clock, mais pas de soucis, j’en avais un ou deux en rab pour mes projets Arduino.

J’avais donc en stock un DS3231 mais ce tuto est le meme pour le module DS1307 (suffit juste de changer le nom aux bons endroits).

Si vous voulez directement commander le meme, voici ou vous pourrez le trouver :

Aliexpress pour 60 centimes environs (Si vous n’etes pas pressé, ça prends entre deux semaines et deux mois)

Amazon pour un peu moins de 6 euros (Mais avec la livraison en un jour ouvré)

 

-Première étape, installation et paramétrage du module RTC.

 

La première étape consiste donc à connecter le module RTC à notre Raspberry grace aux GPIO.

Nous allons donc connecter GND et 5v pour l’alimentation du module et les pates SDA et SCL pour la communication i2c entre le RPI et le module RTC

Voici ce que donne le schémas de câblage à partir d’un Raspberry Rev 2 (Pour le plus vieux, les pins SDA et SCL diffèrent, reportez vous au schémas des pins GPIO de votre modèle de RPI pour être sur du câblage):

RPI Pin RTC Pin
Pin 4 (5V) VCC
Pin 6 (GND) GND
Pin 3 (SDA) SDA
Pin 5 (SCL) SCL

Et voici le schémas des GPIO du Raspberry B :

gpio-raspberry-b

 

Une fois le module correctement cablé, nous allons passer au paramétrage du système  :

Dans Raspbian, l’i2c est désactivé par défaut, nous allons donc l’activer via un terminal :

sudo raspi-config

Via le menu qui s’affiche, sélectionnez Advanced Options puis I2C.

Choisissez Yes, votre interface i2c est maintenant activé.

Nous allons vérifier maintenant que l’ensemble communique bien, pour ce faire, il va falloir installer les packets suivants :

sudo apt-get install python-smbus
sudo apt-get install i2c-tools

Grace à ces outils, nous allons lancer un scan i2c nous permettant de voir que notre module est bien reconnu :

sudo i2cdetect -y 1

Vous devriez voir ceci :

Si vous avez un vieux Raspberry, faites à la place :

sudo i2cdetect -y 0

 

Notre module RTC est bien présent à l’adresse 68.

 

Si cela ne fonctionne pas, vous pouvez essayer de charger les modules i2c-dev et i2c-bcm2708 à la main :

sudo modprobe i2c-dev
sudo modprobe i2c-bcm2708

Si cela fonctionne, vous pourrez alors ajouter ces modules dans /etc/modules en exécutant la commande suivante :

sudo nano /etc/modules

Et ajoutez à la fin du fichier les deux lignes suivantes :

i2c-dev
i2c-bcm2708

Au prochain redémarrage, les modules seront automatiquement chargés, et il ne sera pas nécessaire de faire un modprobe.

 

Nous avons maintenant une Horloge matériel correctement relié à notre Raspberry et bien reconnu.

Nous allons maintenant la déclarer à l’OS pour pouvoir ensuite l’utiliser :

echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device

Comme je l’ai précisé plus haut, si vous avez un module DS1307, vous devrez taper ds1307 à la place de ds3231.

Nous pouvons maintenant afficher l’heure enrengistré dans le module RTC :

sudo hwclock

Si c’est la première fois que vous utilisez le module, vous devriez avoir une date au 1er janvier 2000.

Nous allons maintenant définir la date et l’heure au module RTC :

 

-Définir la date et l’heure du système depuis internet et l’enregistrer dans le module RTC:

Paramétrons les bons fuseaux horaires de l’OS soit par le menu raspi-config soit par :

sudo dpkg-reconfigure tzdata

Choisissez bien le bon continent et la bonne zone.

Vous pouvez maintenant vérifier la date et l’heure du système en tapant dans un terminal :

date

Si vous etes à la bonne date/heure, nous allons maintenant l’écrire dans le module RTC :

sudo hwclock -w

 

 

-Définir la date et l’heure du système manuellement et l’enregistrer dans le module RTC:

Si votre Raspberry pi n’a pas accès à internet pour se synchroniser à une horloge précise, vous pouvez toujours utiliser la commande suivante pour définir une date arbitraire (ici le 24 Octobre 2016, à 16h15:00s) :

sudo date -s "Sep 24 2016 16:15:00"

Une fois l’horloge système réglé manuellement, nous allons l’écrire dans le module RTC (l’horloge matériel) :

sudo hwclock -w

 

-Configuration du système pour utiliser automatiquement le module RTC

Nous avons donc pu définir la date et l’heure de l’horloge matériel, voyons maintenant comment configurer le RPI pour qu’il utilise ce module à chaque démarrage:

Editez le fichier /etc/rc.local via la commande :

sudo nano /etc/rc.local

Et ajoutez les deux lignes suivantes avant la ligne exit 0  :

echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sleep 2
hwclock -s
/etc/init.d/ntp start

Nous pouvons maintenant désactiver le service fake-hwclock qui tente de reproduire le fonctionnement d’une horloge temps réel quand on en dispose pas:

sudo update-rc.d fake-hwclock disable

Nous pouvons également désactiver le service NTP qui n’es pas nécessaire :

sudo update-rc.d ntp disable

 

 

Si par la suite on souhaite synchroniser la date et l’heure du système avec celle de serveurs de temp, on pourra utiliser la commande suivante :

sudo ntpd -qg

Sans oublier d’écrire ensuite l’heure dans le module RTC :

sudo hwclock -w

 

Nous avons maintenant un Raspberry Pi avec une Horloge matériel, si la pile bouton que vous avez inséré dans votre module RTC fonctionne, vous pouvez débrancher et rebrancher votre Raspberry, meme sans connexion internet il devrait rester à l’heure !!

 

 

-Seconde étape, installation et paramétrage du serveur NTP.

Commençons par installer les paquets nécessaire :

sudo apt-get install ntp ntpdate

On édite ensuite le fichier /etc/ntp.conf:

sudo nano /etc/ntp.conf

Ajoutez au serveur NTP l’accès a l’horloge RTC:

server  127.127.1.0 # local clock
fudge   127.127.1.0 stratum 10

Commentez la ligne :

restrict 127.0.0.1

Et ajoutez pour accepter toutes les requêtes NTP : (Si vous voulez vous limiter au réseau ex : 192.168.1.0/24 : restrict 192.168.1.0 mask 255.255.255.0)

restrict 0.0.0.0 mask 0.0.0.0

OPTIONNEL : Si vous voulez diffuser l’heure sur votre adresse réseau de broadcast :

broadcast 192.168.1.255

Vous pouvez maintenant redémarrer votre serveur NTP :

sudo /etc/init.d/ntp restart

 

Bon courage pour la suite …

11 Mar
2016

Raspberry Pi 2 ou 3 et Raspbian Jessie – VLC 2.2 et accélération matériel (hardware acceleration)

UPDATE : Raspberry Pi 2 ou 3 et Raspbian Pixel – VLC 2.4 et accélération matériel (hardware acceleration)

Aujourd’hui je vais enfin publier une mise à jour de l’article : Raspberry Pi 2 – VLC et accélération matériel (hardware acceleration)

RPI3

En effet, ce tuto à été fait à l’époque sur une Raspbian Wheezy avec un Raspberry PI 2.

Depuis la sortie du Raspberry Pi 3 et de Raspbian Jessie, je me devais de faire une ise à jour de ce tuto :

Donc allez chercher la version de Raspbian suivante : 2016-02-26-raspbian-jessie.img

Installez la sur votre carte SD (il y a assez de tuto sur le net pour ça)

Démarrez votre Raspberry, et un écran de setup devrait apparaitre.

Paramétrer votre interfaces réseau, password… blabla …

Activer le … (Je m’ennuis)

Et connectez vous en SSH à votre Raspberry (Là le travail commence vraiment)

faites :

sudo apt-get update

Pour mettre à jour vos dépots, nous allons ensuite installer tous les packet nécessaire à la compilation de VLC :

sudo apt-get install vlc browser-plugin-vlc git libtool build-essential pkg-config autoconf liba52-0.7.4-dev libdvdread-dev libkate-dev libass-dev libbluray-dev lua5.2 libcddb2-dev libdca-dev libfaad-dev libflac-dev libmad0-dev libmodplug-dev libmpcdec-dev libmpeg2-4-dev libogg-dev libopencv-dev libpostproc-dev libshout3-dev libspeex-dev libspeexdsp-dev libssh2-1-dev liblua5.1-0-dev libopus-dev libschroedinger-dev libsmbclient-dev libtwolame-dev libx264-dev libxcb-composite0-dev libxcb-randr0-dev libxcb-xv0-dev libzvbi-dev libxcb-keysyms1-dev libsdl-image1.2-dev librsvg2-dev libsamplerate0-dev libudev-dev libmtp-dev libupnp6-dev libnotify-dev libdvbpsi-dev libgme-dev libebml-dev libgnomevfs2-dev libsidplay2-dev libva-dev libjack-jackd2-dev libchromaprint-dev libxpm-dev libncurses5-dev libsidplay1-dev libtar-dev libqt4-dev libncursesw5-dev libprotoc9 protobuf-compiler

Nous allons ensuite télécharger les sources de VLC via git :

git clone git://git.videolan.org/vlc.git

Pour enfin entrer dans le vif du sujet, la préparation et la compilation de VLC :

cd vlc
export ACLOCAL_ARGS="-I /usr/share/aclocal"
./bootstrap
./configure --prefix=/usr --enable-rpi-omxil --disable-ogg --disable-mux_ogg
make
sudo make install

Une fois installé, lancez vlc en cliquant sur « Menu » puis le sous-menu « Son et vidéo »

Dans VLC, cliquez ensuite sur « Outils » puis « Préférences »

Sur le menu du haut, cliquez sur « Audio« , puis dans « Module de sortie« , selectionnez « Sortie audio ALSA« .

Dans « Périphérique« , selectionnez « bcm2835 ALSA, bcm2835 ALSA Default Audio Device » voir screenshot :

Sur le menu du haut, cliquez ensuite sur « Vidéo« , puis dans « Sortie » sélectionnez « Sortie vidéo « OpenMAX IL » » voir screenshot :

Retournez dans le menu « Audio« , puis en bas à gauche de la fenêtre, cliquez sur « Tous » (Permet d’afficher plus de paramètres)

Dans l’onglet « Audio« , sur le champ « Ré-échantillonnage audio« , selectionnez « Désactiver » voir screenshot :

 

Vous pouvez maintenant profiter de votre player préféré !

Si vous avez des questions, n’hésitez pas !

 

9 Mar
2016

Raspberry PI – Raspbian et reverse proxy Nginx

Bonjour,

Si comme moi, vous commencez à avoir pas mal de services dispatché sur quelques serveurs et que vous en avez marre de router des ports vers ces différents services, voici la solution : le reverse proxy.

Je vais donc vous présenter comment installer et configurer Nginx en tant que reverse proxy.

Ce tuto est orienté Raspberry et Raspbian mais il fonctionnera également pour toutes les distributions à base de Debian (Ubuntu et consorts). Pour les autres distributions, vous n’aurez pas de mal à trouver comment installer Nginx (Par ex yum install nginx pour tous les système à base de RedHat/CentOs …)

Sans compter de l’avantage indéniable de ne plus router pleins de ports « non standard » pour accéder à tous vos services, vous augmenterez la sécurité :

-Non seulement vos différents services ne seront plus en frontaux sur le web

-Mais en plus si l’un de vos services ne supporte pas le SSL, votre reverse proxy lui supporte très bien le SSL et peut meme rediriger automatiquement toutes les requêtes http en https.

Le tunnel ssl ne sera pas du client vers le service mais du client vers le reverse proxy, la connexion entre le reverse proxy et le service qui ne gère pas le ssl sera en http.

Nous avons donc deux types de liaisons :

|client|<==HTTPS==>|REVERSE_PROXY|<==HTTPS==>|serveur|
|client|<==HTTPS==>|REVERSE_PROXY|<==HTTP==>|serveur|

Voici un shémas représentant un client voulant accéder au service01http.

Il ouvre donc son navigateur et tape : http://service01http.mondomaine.com

Mais une redirection s’effectue par le reverse proxy et dans son navigateur apparait l’adresse : https://service01http.mondomaine.com

Shemas Reverse Proxy NGINX

Passons maintenant au vif du sujet.

 

Installation de Nginx :

Ouvrez

apt-get install nginx

Génération d’un certificat SSL autosigné (ceci va permettre de ne pas avoir de connexion en clair,cela évite de pouvoir récupérer les identifiants/password en clair sur votre réseau) :

sudo openssl genrsa -out /etc/nginx/nginx.key 2048
sudo openssl req -new -key nginx.key -out /etc/nginx/nginx.csr
sudo openssl x509 -req -days 3650 -in /etc/nginx/nginx.csr -signkey /etc/nginx/nginx.key -out /etc/nginx/nginx.crt

 

Les hôtes virtuels :

Imaginons que nous avons 4 services web sur 3 serveurs :

-Serveur_01 : Service_01_HTTP

-Serveur_02 : Service_02_HTTPS

-Serveur_03 : Service_03_HTTP + Service_04_HTTPS

Nous allons donc créer 4 entrées DNS sur notre nom de domaine :

service01http.mondomaine.com

service02https.mondomaine.com

service03http.mondomaine.com

service04https.mondomaine.com

Imaginons maintenant que pour le service02https nous voulons y accéder par deux adresses différentes :

service02https.mondomaine.com
service02httpsbis.mondomaine.com

Le but est donc d’accéder à ces 4 services en HTTPS (peu importe que le service supporte ou non le SSL)

 

Configuration des hosts :

Nous allons donc commencer par configurer Nginx :

sudo nano /etc/nginx/sites-available/reverse

Collez ensuite ceci :

# Certificats SSL
ssl_certificate /etc/nginx/nginx.crt;
ssl_certificate_key /etc/nginx/nginx.key;

server {
        # Redirection des requetes en HTTP vers HTTPS
        # Port en entree
        listen 80;
        # Redirection vers
        return 301 https://$host$request_uri;
}

server {
        # service01http
        listen 443;
        # J'active SSL
        ssl on;

        server_name service01http.mondomaine.com; # entree DNS
        location / { # pour le dossier racine (/), on active le mode proxy vers l'adresse spécifiée, sur le port spécifié
                proxy_pass http://192.168.1.2:80/;
        }
}

server {
        # service02https et service02httpsbis
        listen 443;
        ssl on;

        # On peut spécifier 2 noms de domaine différents qui auront le même comportement
        server_name service02https.mondomaine.com;
        server_name service02httpsbis.mondomaine.com;
        location / {
                proxy_pass https://192.168.1.3:443/;
        }
}

server {
        # service03http
        listen 443;
        # J'active SSL
        ssl on;

        server_name service03http.mondomaine.com; # entree DNS
        location / { # pour le dossier racine (/), on active le mode proxy vers l'adresse spécifiée, sur le port spécifié
                proxy_pass http://192.168.1.4:80/;
        }
}

server {
        # service04https
        listen 443;
        # J'active SSL
        ssl on;

        server_name service04https.mondomaine.com; # entree DNS
        location / { # pour le dossier racine (/), on active le mode proxy vers l'adresse spécifiée, sur le port spécifié
                proxy_pass https://192.168.1.4:443/;
        }
}

 

Maintenant un petit restart et votre reverse proxy est maintenant en ligne !

sudo /etc/init.d/nginx restart

 

Petit ajout, si Nginx n’arrive pas a redémarrer, c’est peut être à cause de la longueur de votre entrée DNS (server_name)

Pour y remédier faites :

sudo nano /etc/nginx/nginx.conf

Puis cherchez la ligne :

         #server_names_hash_bucket_size 64;

Décommentez là en enlevant le # :

         server_names_hash_bucket_size 64;

Et vous pouvez maintenant redémarrer Nginx :

sudo /etc/init.d/nginx restart

 

 

 

Si vous avez des soucis ou des questions, n’hésitez pas les commentaires sont fait pour ça :)

 

Raspberry Pi 2 ou 3 et Raspbian Jessie - VLC 2.4 et accélération matériel (hardware acceleration)

Raspberry Pi 2 ou 3 et Raspbian Jessie – VLC 2.4 et accélération matériel (hardware acceleration)

Aujourd’hui je vais à nouveau publier une mise à jour de l’article : Raspberry Pi 2 – VLC et accélération matériel (hardware [&hellip

Raspberry Pi 2 ou 3 et Raspbian Jessie - VLC 2.2 et accélération matériel (hardware acceleration)

Raspberry Pi 2 ou 3 et Raspbian Jessie – VLC 2.2 et accélération matériel (hardware acceleration)

UPDATE : Raspberry Pi 2 ou 3 et Raspbian Pixel – VLC 2.4 et accélération matériel (hardware acceleration) Aujourd’hui je vais [&hellip

Compilation de la derniere version de FFMPEG

Compilation de la derniere version de FFMPEG

Bonjour à tous, Aujourd’hui un petit tuto pour avoir la dernière version de ffmpeg, ce tutoriel à été utilisé maintes [&hellip

Raspberry Pi 2 - VLC et accélération matériel (hardware acceleration)

Raspberry Pi 2 – VLC et accélération matériel (hardware acceleration)

UPDATE : Raspberry Pi 3 et Raspbian Pixel – VLC 2.4 et accélération matériel (hardware acceleration) Ayant un petit projet de [&hellip

FFMPEG - Diffuser un flux ip multicast en adaptative smooth streaming

FFMPEG – Diffuser un flux ip multicast en adaptative smooth streaming

Un petit script bien utile pour délivrer un flux video multicast en adaptative smooth streaming

Installation de Transform Manager

Installation de Transform Manager

Prérequis – résumé : Télécharger Transform Manager Télécharger IIS Media Services 4.1 Télécharger IIS Managment console Télécharger .NET Framework 3.5 [&hellip

Suivez moi !

Follow Me! Follow Me! Follow Me! Follow Me!

Une ptite donation

Si vous voulez contribuer à faire vivre ce site :

Chercher