Mettre à jour Debian 8 Jessie vers Debian 9 Stretch

Article publiée le 19 Juin 2017

Pour ceux qui l’ignore encore, une nouvelle version de debian est disponible en version final depuis le 17 Juin 2017.

Ci-dessous la liste des nouveautés (Sources : https://www.debian.org):

 

  • Apache 2.4.25
  • Asterisk 13.14.1
  • Chromium 59.0.3071.86
  • Firefox 45.9 (in the firefox-esr package)
  • GIMP 2.8.18
  • an updated version of the GNOME desktop environment 3.22
  • GNU Compiler Collection 6.3
  • GnuPG 2.1
  • Golang 1.7
  • KDE Frameworks 5.28, KDE Plasma 5.8, and KDE Applications 16.08 and 16.04 for PIM components
  • LibreOffice 5.2
  • Linux 4.9
  • MariaDB 10.1
  • MATE 1.16
  • OpenJDK 8
  • Perl 5.24
  • PHP 7.0
  • PostgreSQL 9.6
  • Python 2.7.13 and 3.5.3
  • Ruby 2.3
  • Samba 4.5
  • systemd 232
  • Thunderbird 45.8
  • Tomcat 8.5
  • Xen Hypervisor
  • the Xfce 4.12 desktop environment

 

Ci-dessous la procédure pour mettre à jour votre Debian Jessie:

  • Vérifiez que votre OS est à jour

apt-get update && apt-get upgrade

  • On remplace les dépôts Jessie par les dépôts Stretch

sed -i ‘s|jessie|stretch|’ /etc/apt/sources.list && apt-get update

  • Si vous avez message d’avertissement concernant une clé:

  • Installez le paquet suivant:

apt install debian-archive-keyring

  • Enfin  vous pouvez lancez la mise à niveau

apt-get dist-upgrade

  • Une fois la mise à niveau terminée, redémarrez votre machine puis vérifiez que tout c’est bien passé:

Enjoy!

 

 




Tuto | Installer et configurer un serveur WildFly

Article publiée le 7 Juin 2017

WildFly est un fork opensource de Jboss. Ce serveur d’application Java EE représente une alternative à crédible par rapport aux autres serveurs d’application JAVA type weblogic, websphère (tutoriel d’installation disponible ici), Jboss, etc…

Ce tutoriel explique comment installer et configurer rapidement un serveur WildFly afin qu’il soit opérationnel. Nous ne rentrerons pas dans les fonctionnalités avancées du produit.

1) Installation

Avant toute chose, Wildfly doit être exécuté via un user système dédié (surtout pas en root!).

Le choix de la distribution importera peu (Debian/Ubuntu ou Centos/RedHat feront très bien l’affaire). Assurez que JAVA soit installé sur votre serveur.

  • Authentifiez vous ensuite en tant que user wildfly (ou celui que vous avez créé)

su – wildfly

  • Téléchargez ensuite la dernière version de WildFly sur le site officiel (au moment ou ce tutoriel a été rédigé, la version 10.1.0 été en version stable.): http://wildfly.org/downloads/
  • Éditez le fichier .bashrc afin de mettre à jour les variables d’environnement $JAVA_HOME et $PATH.

export JAVA_HOME=<chemin d’installation de JAVA>
export PATH=$JAVA_HOME/bin:$PATH

  • Sans oublier de sourcer votre .bashrc

source .bash_rc

 

Décompressez ensuite l’archive précédemment téléchargée. Vous devriez avoir le contenu suivant:

 

2) Configuration

Le fichier de configuration qui va nous intéresser se situe dans le répertoire <votre répertoire d’installation>/wildfly/standalone/configuration/standalone.xml.

Les élément qui nous intéresse se situe à la fin du fichier:

<socket-binding-group name= »standard-sockets » default-interface= »public » port-offset= »${jboss.socket.binding.port-offset:0} »>
<socket-binding name= »management-http » interface= »management » port= »${jboss.management.http.port:9990} »/>
<socket-binding name= »management-https » interface= »management » port= »${jboss.management.https.port:9993} »/>
<socket-binding name= »ajp » port= »${jboss.ajp.port:8009} »/>
<socket-binding name= »http » port= »${jboss.http.port:8080} »/>
<socket-binding name= »https » port= »${jboss.https.port:8443} »/>
<socket-binding name= »txn-recovery-environment » port= »4712″/>
<socket-binding name= »txn-status-manager » port= »4713″/>
<outbound-socket-binding name= »mail-smtp »>
<remote-destination host= »localhost » port= »25″/>
</outbound-socket-binding>
</socket-binding-group>

Les lignes ci-dessus permette de paramétrer les ports d’écoutes (port d’écoute HTTP par défaut: 8080).

 

3) Démarrage/Arrêt

Vous trouverez ci-dessous le contenu d’un shell permettant de gérer l’arret/démarrage de votre serveur WildFly

#!/usr/bin/env bash

# LANG must be explicitly set in startup script (it is not set by monit)
export LANG= »en_US.utf8″

 

# Adapt  JBOSS_HOME with your current installation wildfly PATH
export JAVA_HOME= »${JAVA_HOME} »
export JBOSS_HOME=/srv/wildfly/apps/wildfly
export JBOSS_PIDFILE=$JBOSS_HOME/standalone/tmp/wildfly.pid
export JBOSS_SCRIPT=$JBOSS_HOME/bin/standalone.sh
export JBOSS_CONFIG=standalone.xml
export JBOSS_CONSOLE_LOG=/srv/wildfly/logs/wilfly/console-$(date +%Y%m%d-%H%M%S).log

export SHUTDOWN_WAIT=30

export prog=wildfly
export JBOSS_BIND_ADDRESS=0.0.0.0

JBOSS_MODULES_SYSTEM_PKGS= »org.jboss.byteman »

#Adapt the memory tunning as you want
JAVA_OPTS= »-Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true »
JAVA_OPTS= »$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true »
JAVA_OPTS= »$JAVA_OPTS -Djboss.modules.policy-permissions=true »
JAVA_OPTS= »$JAVA_OPTS -Djboss.bind.address=$JBOSS_BIND_ADDRESS »
export JAVA_OPTS

EXEC_PATH=${JBOSS_HOME}/bin
cd ${EXEC_PATH}

start() {
# TODO verifier le contenu du fichier de pid
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps –pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq ‘1’ ]; then
echo -n « $prog is already running »
echo
return 1
else
rm -f $JBOSS_PIDFILE
fi
fi

mkdir -p $(dirname $JBOSS_CONSOLE_LOG)
cat /dev/null > $JBOSS_CONSOLE_LOG

mkdir -p $(dirname $JBOSS_PIDFILE)

export LAUNCH_JBOSS_IN_BACKGROUND=1
$JBOSS_SCRIPT -c $JBOSS_CONFIG > $JBOSS_CONSOLE_LOG 2>&1 &
return 0
}

stop() {
# TODO verifier le contenu du fichier de pid
count=0;

if [ -f $JBOSS_PIDFILE ]; then
read kpid < $JBOSS_PIDFILE
let kwait=$SHUTDOWN_WAIT

# Try issuing SIGTERM

kill -15 $kpid
until [ `ps –pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq ‘0’ ] || [ $count -gt $kwait ]
do
sleep 1
let count=$count+1;
done

if [ $count -gt $kwait ]; then
kill -9 $kpid
fi
fi
rm -f $JBOSS_PIDFILE
}

status() {
# TODO verifier le contenu du fichier de pid
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps –pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq ‘1’ ]; then
echo « $prog is running (pid $ppid) »
return 0
else
echo « $prog dead but pid file exists »
return 1
fi
fi
echo « $prog is not running »
return 3
}

case « $1 » in
start)
start
;;
stop)
stop
;;
restart)
$0 stop
$0 start
;;
status)
status
;;
*)
## If no parameters are given, print which are avaiable.
echo « Usage: $0 {start|stop|status|restart|reload} »
esac

 

4) Déploiement

Pour déployer votre application JAVA (sous forme de fichier ear), il vous suffit de le placer dans le répertoire <votre répertoire d’installation>/wildfly/standalone/. Une fois la copie terminée créer un fichier vide ayant le même nom que votre fichier ear suivi de .dodeploy.

Exemple: monapplicationjava.ear.dodeploy.

Wildfly commencera à déployer votre application. Si le déploiement se passe correctement le fichier sera renommé en <nom de votre fichier ear>.deployed

Le contenu de votre application sera disponible depuis votre navigateur via le port 8080 (port HTTP par défaut).

Il est vivement conseillé de toujours utiliser un reverse proxy HTTP (apache2) devant votre serveur d’application (un tutoriel est disponible à ce sujet: https://journaldunadminlinux.fr/tutoriel-mettre-en-place-un-reverse-proxy-sur-apache-via-mod_proxy/)




Tuto | Installer et configurer OpenNebula sous Debian

Article publié le 6 Juin 2017

Article mis à jour le 13 Janvier 2018

 

Cela fait un petit moment que je m’intéresse aux technologies Cloud (AWS, OpenStack, etc…) et OpenNebula a particulièrement attiré mon attention par sa simplicité d’installation.

C’est pourquoi, je vous propose un petit tutoriel d’installation sur OpenNebula sous Debian.

Pour suivre ce tutoriel, vous aurez besoin d’au minimum deux VMs: Une VM pour l’interface de gestion et d’une ou plusieurs VMs pour les hôtes (hyperviseurs).

 

1) Installation de l’interface de gestion

1.1) Installation des paquets

On installe les dépôts:

wget -q -O- http://downloads.opennebula.org/repo/Debian/repo.key | apt-key add –

echo « deb http://downloads.opennebula.org/repo/5.2/Debian/8 stable opennebula » > /etc/apt/sources.list.d/opennebula.list

On installe les paquets:

apt-get update & apt-get install opennebula*

A adapter selon la version de votre Debian (à l’heure ou cet article a été écrit, la 9 n’est pas encore sortie en version stable). De plus la version de opennebula (dernière version en date de cet article: 5.4) est à adapter dans le lien (deb http://downloads.opennebula.org/repo/<version opennebula>/Debian/8 stable opennebula)

 

On installe des bibliothèques Gem supplémentaires

/usr/share/one/install_gems

Activation d’openNebula:

systemctl enable opennebula
systemctl enable opennebula-sunstone

1.2) Installation du stockage partagé

On installe le serveur NFS:

apt-get install nfs-common nfs-kernel-server

Dans le fichier /etc/exports ajoutez la ligne suivante:

/var/lib/one/ *(rw,sync,no_subtree_check,root_squash)

Activez  nfs:

systemctl enable nfs-kernel-server

Démarrez nfs:

systemctl start nfs-kernel-server

1.3 Installation de la base de données

La base de données par défaut est SQLITE. Inutile de vous préciser que rester sur ce type de base de données n’est pas une solution pérenne. Nous allons donc partir sur une installation de MySQL.

Installez les paquets:

apt-get install mariadb-server

Activez Mysql:

systemctl enable mysql

Démarrez Mysql:

systemctl start mysql

Créons maintenant la base ainsi que le user MySQL:

# mysql
> CREATE DATABASE opennebula;
> GRANT ALL ON opennebula.* TO oneadmin@localhost IDENTIFIED BY ‘onepassword’;

Le mot de passe est à changer bien entendu 😉

Procédez à la configuration d’openNebula pour que celui-ci se connecte à votre base de données MySQL. Pour cela éditez le fichier /etc/one/oned.conf et commencer par commenter la ligne suivante :

DB = [ backend = « sqlite » ]

Ensuite, rajoutez les lignes suivantes :

DB = [ backend = « mysql »,
server  = « localhost »,
port    = 0,
user    = « oneadmin »,
passwd  = « onepassword »,
db_name = « opennebula » ]

Démarrez les services :

systemctl start opennebula
systemctl start opennebula-sunstone

2) Installation de l’hyperviseur

Sur votre deuxième VM, installez les dépôts:

wget -q -O- http://downloads.opennebula.org/repo/Debian/repo.key | apt-key add –

echo « deb http://downloads.opennebula.org/repo/5.2/Debian/8 stable opennebula » > /etc/apt/sources.list.d/opennebula.list

On installe ensuite le paquet:

apt-get update & apt-get install opennebula-node

On active libvirtd et on le démarre:

systemctl enable libvirtd
systemctl start libvirtd

Rajoutez dans votre fichier /etc/fstab la ligne suivante :

<ip de votre serveur de gestion>:/var/lib/one/ /var/lib/one/ nfs soft,intr,rsize=8192,wsize=8192 0 0

Montez le volume NFS:

mount -a

 

Maintenant que votre hyperviseur est installé nous allons le rajoutez dans le cluster opennebula depuis l’interface de gestion.

Pour cela connectez vous à l’interface Web via l’URL: http://<ip ou nom de votre machine>:9869.

Une page ressemblante à la capture d’écran ci-dessous devrait s’afficher:

Récupérez vos identifiants en affichant le contenu du fichier  /var/lib/one/.one/one_auth et identifiez-vous.

Une fois connecté, le dashboard général d’openNebula s’affiche:

 

Cliquez sur le menu « infrastructure » puis sur « Hosts »:

Cliquez sur le bouton ajoutez:

Puis renseignez le hostname ou l’ip de votre hyperviseur:

Votre installation d’OpenNebula est maintenant terminée!

Vous pouvez commencer à créer des templates et provisionner des Vms

Merci à Séb pour sa contribution pour la rédaction de cet article 😉

 




Vérifiez la sécurité de votre site wordpress avec WPSeku

Article publiée le 02/06/2017

Plus de 74 millions de sites tournent sous WordPress dans le monde. Malheureusement ce CMS est très facilement piratable ce qui fait qu’il y a énormément de site wordpress piraté dans le monde. WordPress représente à lui tout seul une faille de sécurité si celui ci n’est pas géré correctement (mise à jour régulière de wordpress et des plugins installés, vérification de la provenance des plugins, etc…) et ceux, même si vous sécurisez convenablement votre serveur (apache, OS etc…)

Après quelques recherches, j’ai trouvé un super outil développé en PYTHON permettant de faire un audit de sécurité complet d’un site wordpress: WPSEku.

Comme vous pouvez le voir sur la capture d’écran ci-dessus, ce petit script est riche en fonctionnalités.

Un grand merci au développeur pour son travail !

Ci-dessous le lien git

https://github.com/m4ll0k/WPSeku

En cas de message d’erreur lors de l’exécution de ce script, vérifiez l’installation des librairies Python nécessaire pour la bonne exécution de ce script comme python-request.

Inutile de tester cet outil sur mon site, vous risqueriez d’avoir votre IP blacklisté et de ce fait ne plus pouvoir accéder à mon blog ;-))