Sécurisé son site avec Apache2 / SSL (Auto-signé)

0

Nous allons voir dans cet article comment sécurisé son site avec apache2 via SSL

Pré-requis :

Vous devez bien entendu avoir un LAMP déjà configuré.

Methode 1 que j'avais utilisée sur Ubuntu Jaunty & Ubuntu Hardy

Dans un premier temps ajouter le module ssl :


sudo a2enmod ssl

Ensuite on va éditer le script make-ssl-cert pour mettre la durée que nous voulons :


sudo nano /usr/sbin/make-ssl-cert

Vers la fin du fichier deux lignes nous intéresserons :


if [ "$1" != "generate-default-snakeoil" ]; then
    openssl req -config $TMPFILE -new -x509 -nodes -out $output -keyout $output > /dev/null 2>&1

[...]

else
   openssl req -config $TMPFILE -new -x509 -nodes \

On va rajouter une durée de 10ans (-days 3650) [par défaut le certificat à une durée de 1mois] :


if [ "$1" != "generate-default-snakeoil" ]; then
    openssl req -config $TMPFILE -new -x509 -days 3650 -nodes -out $output -keyout $output > /dev/null 2>&1

[...]

else
   openssl req -config $TMPFILE -new -x509 -days 3650 -nodes \

Puis nous pouvons regarder le fichier ssleay.cnf, suivant les distributions son contenu peut être différent


sudo nano /usr/share/ssl-cert/ssleay.cnf

Ici nous avons...


RANDFILE = $ENV::HOME/.rnd

[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
prompt = no

[ req_distinguished_name ]
countryName = @CountryName@
stateOrProvinceName = @StateName@
localityName = @LocalityName@
organizationName = @OrganisationName@
organizationalUnitName = @OUName@
commonName = @HostName@
emailAddress = @Email@


... ce que je trouve très bien.

Créons le certificat :


sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/mon_site.pem
 
Maintenant, nous pouvons éditer un hôte virtuel :


sudo nano /etc/apache2/sites-available/mon_site.com
 
Voici un exemple :


NameVirtualHost *:443

<VirtualHost *:443>
     SSLEngine On
     SSLCertificateFile /etc/ssl/private/mon_site.pem
     SSLCertificateKeyFile /etc/ssl/private/mon_site.pem

     ServerAdmin postmaster@mon_site.com
     DocumentRoot /chemin_vers_mon_site/www/

     ServerName mon_site.com

     ScriptAlias /cgi-bin/ "/chemin_vers_mon_site/cgi-bin/"

     CustomLog /var/log/apache2/mon_site_access.log combined
     ErrorLog /var/log/apache2/mon_site_error.log

     <Directory "/chemin_vers_mon_site/www/">
            Options -Indexes Includes FollowSymLinks
            AllowOverride all
            Order allow,deny
            Allow from all
     </Directory>

     <Directory "/chemin_vers_mon_site/cgi-bin/">
            AllowOverride all
            Order allow,deny
            Allow from all
            #Options +ExecCGI
     </Directory>

     ServerSignature Off

</VirtualHost>

Pour finir nous créons un lien :


sudo a2ensite mon_site.com

Il reste plus qu'à redémarrer apache :)

 
Methode 2 que j'avais utilisé sur Archlinux

Créons le certificat :


cd /etc/httpd/conf
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Maintenant, nous pouvons éditer un hôte virtuel :


NameVirtualHost *:443

<VirtualHost *:443>
     SSLEngine on
     SSLCertificateFile /etc/httpd/conf/server.crt
     SSLCertificateKeyFile /etc/httpd/conf/server.key

     ServerAdmin postmaster@mon_site.com
     DocumentRoot /chemin_vers_mon_site/www/

     ServerName mon_site.com

     ScriptAlias /cgi-bin/ "/chemin_vers_mon_site/cgi-bin/"

     CustomLog /var/log/httpd/mon_site_access.log combined
     ErrorLog /var/log/httpd/mon_site_error.log

     <Directory "/chemin_vers_mon_site/www/">
         Options -Indexes Includes FollowSymLinks
         AllowOverride all
         Order allow,deny
         Allow from all
     </Directory>

     <Directory "/chemin_vers_mon_site/cgi-bin/">
         AllowOverride all
         Order allow,deny
         Allow from all
         Options +ExecCGI
     </Directory>

     ServerSignature Off

</VirtualHost>

Il reste plus qu'à redémarrer apache :)
 




Sources:

Creating a self signed SSL certificate for apache2 on Debian Lenny
Sécuriser Apache2 avec SSL
Serveur Web Apache - SSL - PHP
How to create a self-signed SSL Certificate

Rédigé par EauLand le 18 juin 2010

 

Traduction audacity 1.3.7 pour Jaunty

0

Traduction Audacity 1.3.7 pour Jaunty

Sur Ubuntu Jaunty la traduction d'audacity est incomplète pour remédier à cela il suffit de taper une commande dans le terminal:


sudo wget http://www.eauland.com/data/documents/audacity-1.3.7.mo \
-O /usr/share/locale/fr/LC_MESSAGES/audacity.mo

Rédigé par EauLand le 10 mai 2010

 

Désactiver compiz pour lancer un jeu vidéo voir une vidéo

1

Les pilotes poulsbo sont très mal pris en charge sur linux voir pas pris en charge pour les dernières versions de Xorg.
Il est comme même possible d'utiliser les effets 3D du bureau avec compiz néanmoins la lecture d'une vidéo voir certains "petits" jeux (et programmes comme Google Earth) peut se révéler chaotique. Il est possible d'utiliser une parade qui consiste à désactiver les effets du bureau au lancement des applications problématiques, bien sûr on pourrait utiliser fusion-icon et faire ça manuellement mais cela n'est vraiment pas pratique et encombre la zone de notification pour pas grand chose. L'astuce est la suivante:

En me basant sur le script Compiz fusion et les jeux 3D qui notons si on lance 2 fois une application réactive compiz..., mon script ne permet pas se genre de légèreté, même si c'est un peu barbare...

Installation manuelle
Créons un fichier dans /usr/bin


sudo nano /usr/bin/cponoff
 
Et copions le contenu de ce script:


#!/bin/bash
#Vérifié pour une utilisation avec les applications: vlc, totem ou un jeu.
#Vérifié pour une utilisation avec des fichiers: audios ou vidéos.

#set -xv

titre="Cponoff"
texte_off="Cponoff a désactivé compiz pour lire votre vidéo..."
texte_on="Cponoff a réactivé compiz..."
erreur="Une instance est déjà ouverte.\nFermez les applications utilisant cponoff et recommencez."

application=$1
fichier=$2
nom=${fichier%.*}
ext=${fichier#$nom}
ext=`echo $ext | sed 's/\.//g'`
compiz=`ps -ef | grep 'compiz' | grep -v grep`

cponoff_()
{
  if [ "$compiz" != "" ]; then
    composite=`cat $HOME/.gconf/apps/metacity/general/%gconf.xml | \
               grep compositing_manager | \
               sed "s#^.*value=\"\(.*\)\"/>#\1#"`
    if [ "$composite" == "true" ]; then
      comp_act=on
      gconftool-2 --type=Boolean --set /apps/metacity/general/compositing_manager false
    else
      comp_act=off
    fi
    metacity --replace&
    sleep 5
    if [ "$icone" ]; then
      notify-send -t 20000 -i "$icone" "$titre" "$texte_off"
    fi
    if [ "$fichier" ]; then
      $application "$fichier"
    else
      $application
    fi
    if [ "$application" = "" ]; then
      sleep 1
    else
      compiz --replace&
      if [ "$comp_act" == "on" ]; then
        gconftool-2 --type=Boolean --set /apps/metacity/general/compositing_manager true
      fi
      sleep 10
      if [ "$icone" ]; then
        notify-send -t 20000 -i "$icone" "$titre" "$texte_on"
      fi
    fi
  else
    if [ "$fichier" ]; then
      $application "$fichier"
    else
      $application
    fi
    compiz --replace&
    if [ "$comp_act" == "on" ]; then
      gconftool-2 --type=Boolean --set /apps/metacity/general/compositing_manager true
    fi
  fi
}

if [ "$2" ]; then

## lancement d'une musique (ou ajout à la playlist)
  if [ "$ext" == "raw" ] || [ "$ext" == "wav" ] || [ "$ext" == "bwf" ]  \
  || [ "$ext" == "aiff" ] || [ "$ext" == "caf" ] || [ "$ext" == "cda" ] \
  || [ "$ext" == "atrac" ] || [ "$ext" == "flac" ] || [ "$ext" == "mp3" ] \
  || [ "$ext" == "ogg" ] || [ "$ext" == "wma" ] || [ "$ext" == "au" ] \
  || [ "$ext" == "asf" ] || [ "$ext" == "aa" ] || [ "$ext" == "aac" ] \
  || [ "$ext" == "midi" ]
  then
    if [ "$application" == "totem" ]; then
      $application --enqueue "$fichier"
    else
      $application "$fichier"
    fi

  elif [ "$compiz" != "" ]; then

## lancement d'une vidéo
    if [ "$ext" == "avi" ] || [ "$ext" == "flv" ] || [ "$ext" == "mov" ] \
    || [ "$ext" == "moov" ] || [ "$ext" == "mpg" ] || [ "$ext" == "mpeg" ] \
    || [ "$ext" == "vob" ] || [ "$ext" == "wmv" ]
    then
      nom_theme=`grep icon_theme $HOME/.gconf/desktop/gnome/interface/%gconf.xml -A1 | \
             tail -n1 | \
             sed "s#^.*\(.*\)#\1#"`
             # note: le grep -A1 affiche une ligne de plus, le tail -n1 affiche 1 ligne à partir de la fin
      
      if [ -d $HOME/.icons/$nom_theme ]; then
        theme=$HOME/.icons/$nom_theme
      else
        theme=/usr/share/icons/$nom_theme
      fi
      
      chemin_icone=$theme/`cat $theme/index.theme | grep apps] | sed "s#^.*\[\(.*\)\]#\1#"`
      
      if [ -f "$chemin_icone/$application.png" ]; then
           icone="$chemin_icone/$application.png"
      elif [ -f "$chemin_icone/$application.svg" ]; then
           icone="$chemin_icone/$application.svg"
      elif [ -f "$chemin_icone/$application.xpm" ]; then
           icone="$chemin_icone/$application.xpm"
      elif [ -f "/usr/share/pixmaps/$application.png" ]; then
           icone="/usr/share/pixmaps/$application.png"
      elif [ -f "/usr/share/pixmaps/$application.svg" ]; then
           icone="/usr/share/pixmaps/$application.svg"
      elif [ -f "/usr/share/pixmaps/$application.xpm" ]; then
           icone="/usr/share/pixmaps/$application.xpm"
      else
           icone=""
      fi
      
      cponoff_ $application "$fichier" $icone
    else
      cponoff_ $application "$fichier"
    fi
  else
    zenity --error --title="$titre" --text="$erreur"
  fi

## lancement d'une application (en général un jeu)
else
  if [ "$compiz" != "" ]; then
    cponoff_ $application
  else
    zenity --error --title="$titre" --text="$erreur"
  fi
fi
 
Comment ça marche ?

Éditer vos lanceurs du menu avec alacarte et remplacer pour totem la commande par:


cponoff totem %U
 
ou pour vlc:


cponoff vlc %U
 
Si vous lancez un jeu ou une application:


cponoff mon_application
 

Notons que si avec totem ou vlc vous lancez des mp3 via nautilus compiz ne se désactivera pas, par contre si vous lancer vlc ou totem tout seul compiz se désactivera afin de prévenir tous problèmes si vous allez ouvrir une vidéo.

Pour finir pas besoin de mettre l'argument "--enqueue" à totem si vous lisez des mp3 il s’ajouteront automatiquement à votre playlist.

Rédigé par EauLand le 10 mai 2010

 

Convertir une image en Ascii

0

Après la lecture de ce post je me suis dis qu'il pouvait être sympa de convertir une image en Ascii néanmoins les multiples arguments empêchent de se mémoriser de la commande, c'est pourquoi j'ai décidé de rajouter une fonction dans mon ~/.bashrc


imgAscii(){
  #set -xv
  
  if [ $# -lt 3 ]; then
    
    # récupération du nom complet de l'image (et son chemin si il existe) et de l'option (si elle existe)
if [ "$2" ]; then if [ "$1" == --text ] || [ "$1" == --html ]; then param="$1" img="$2" elif [ "$2" == --text ] || [ "$2" == --html ]; then param="$2" img="$1" else
param=? fi else param=0 img="$1" fi # vérification de la présence de l'image et de la bonne option
if [ $param == ? ]; then echo "Paramètre de commande inconnu, vous pouvez utiliser (--text ou --html)" elif [ ! -f "$img" ]; then echo "L'image demandée pour la conversion est introuvable" else # récupération de l'extension nom=${img#$PWD} nom=${nom%.*} ext=${img#$nom} # conversion de l'image si elle n'est pas en jpg if [ $ext != .jpg ]; then conversion=true convert "$img" $PWD/"$nom".jpg img="$nom".jpg else conversion=false fi # conversions en ascii suivant les paramètres if [ $param == --text ]; then jp2a "$img" > "$nom".txt elif [ $param == --html ]; then jp2a "$img" --colors --chars=oO.: --html --fill --background=light > "$nom".html else jp2a --color "$img" fi # efface l'image convertie en jpg (si elle existe) if [ $conversion == true ]; then rm $img fi fi else echo "Il y a trop d'arguments..." echo " - Si votre image comporte des espaces veuillez" echo " englober son chemin par des guillemets" echo " - Vérifier vos paramètres (--html ou --text)" fi }

Rédigé par EauLand le 03 mai 2010

 

Créer son écran de veille avec son logo flottant

1

Pour créer son écran de veille avec son logo flottant rien de plus simple, il suffit simplement de créer un lanceur:


sudo nano /usr/share/applications/screensavers/mon_ecran_de_veille.desktop

Puis d'insérer les lignes suivantes (à adapter)


#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Name=mon_logo flottant
Comment=mon_logo flottant autour de l'écran
Exec=floaters /usr/share/pixmaps/mon_logo_screensaver.png
TryExec=floaters
StartupNotify=false
Terminal=false
Type=Application
Categories=GNOME;Screensaver
OnlyShowIn=GNOME

Il nous reste plus qu'à créer notre logo (c'est peut-être le plus compliqué)

Puis le déplacer dans le bon endroit:


sudo mv mon_logo_screensaver.png /usr/share/pixmaps/

Et mettre les bons droits sur l'image:


sudo chmod 644 /usr/share/pixmaps/mon_logo_screensaver.png

Rédigé par EauLand le 17 avril 2010