mercredi 18 avril 2018

Renouveler le certificat Let's Encrypt de notre Nextcloud

Dans le tutoriel d'installation du serveur Nextcloud, nous avons vu comment mettre en place en place un certificat ssl let's encrypt. Petite particularité, ce certificat a une durée de vie assez modeste et il faut le renouveler régulièrement. Vous recevrez un mail pour vous signaler l'expiration du certificat plusieurs fois avant la date fatidique. Ainsi, vous serez prévenus.

Pour renouveler le certificat, c'est simple. Le script certbot-auto se trouve ici:

cd /etc/letsencrypt

Puis lancer la commande suivante pour exécuter le script de renouvellement:

sudo ./certbot-auto renew

Le processus prend du temps et commence par une mise  jour de certbot-auto lui-même. Donc soyez patients, surtout durant l'étape d'installation des packages Python.

Normalement, si tout s'est bien passé, vous devriez avoir un message de succès.

 
Il peut arriver que les serveurs de let's encrypt soient "down" et le processus de renouvellement ne peut aboutir. C'est un service gratuit qui nous rends un énorme service. Soyons indulgents et réessayons plus tard.

mercredi 12 juillet 2017

Uncomplicated firewall

Dans cet article nous verrons ensemble quelques commandes pour utiliser UFW sans se casser la tête. Ici seront détaillées que quelques cas très basiques, UFW est bien plus complet et permet des choses plus poussées.

Nous allons partir du début en installant UFW:
sudo apt install ufw

En suite, par défaut, il faut rejeter l'ensemble du trafic et puis enfin créer les règles pour autoriser uniquement les ports dont nous avons besoin.
Pour tout rejeter:
sudo ufw default deny

Pour continuer, il peut être "utile" de se permettre un accès en ssh depuis le réseau local. Pour ce faire, modifier la commande suivante si votre réseau local n'est pas 192.168.0.0/24 afin que vous ne vous bannissiez pas de votre propre serveur (ce serait fâcheux, ça m'est arrivé par erreur et ça fait tout drôle --face palm--):
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22

Enfin, partons du principe que le serveur doit pouvoir recevoir le trafic depuis internet sur le port 443 pour le https:
sudo ufw allow 443/tcp

Cette commande est à modifier et répéter pour tous les autres services qui doivent être atteints depuis tout l'internet mondial.

Pour terminer la mise en place initiale d'UFW, il faut l'activer. Attention à bien vérifier les règles pour être certain de ne pas vous enfermer à l'extérieur de votre serveur...
sudo ufw enable

Ensuite, il peut arriver après quelques temps que vous vous souveniez plus trop des règles que vous avez mis en place. Et donc il est possible d'afficher un résumé comme ça:
sudo ufw status

Pour avoir une liste des règles numérotées (utile pour la gestion des règles), il est possible d'utiliser la commande suivante:
sudo ufw status numbered

Et puis, en lisant les logs du serveur, il peut arriver que des petits skriptkiddie soient un peu trop insistants, trop agressifs ou tout simplement trop entreprenants. Il peut être utile de bloquer leur ip. Cela ne découragera que les moins aguerris, mais pour ce que je dois protéger, pas besoin d'en faire plus. A voir ce que vous vous devez protéger.
sudo ufw insert 1 deny from [ip-to-block] to any

Dans cette commande, nous demandons d'insérer la règle en première position. En effet, UFW donne priorité aux règles en fonction de leur position dans la liste des règles. la règle la plus haute prime sur la règle la plus basse. Ainsi, si on autorise tout le trafic sur le port 443, comme dans notre exemple, et que cette règle est située en position 1, il se sera pas possible de bloquer une ip. A chaque fois qu'on fait une règle particulière, il faut donc s'assurer qu'elle figure au dessus des règles générales. Pour connaitre les règles actuelles et leur ordre, il faut utiliser "ufw status" (voir ci-dessus).

Avec le temps il peut être utile de supprimer une règle. Ainsi, après avoir pris le numéro de la règle à effacer (voir ci-dessus), on peut la supprimer:
sudo ufw delete [numéro de la règle]

Attention cependant lorsque vous traitez un nombre de règles, chaque fois que vous supprimez une règle, l'ordre et donc le numéro des règles change... Donc vérifier après chaque manipulation avec les numéros des règles.

mardi 2 mai 2017

Mise à jour manuelle d'un serveur Nextcloud 11

Dans ce tuto, nous allons voir comment mettre à jour notre serveur Nextcloud installé dans un tuto précédent. Si vous tentez la mise à jour avec l'updater, il y aura un certain nombre d'erreurs qui ne permettront pas de terminer le processus de mise à jour automatique. Certaines de ces erreurs peuvent être corrigées rapidement et facilement, d'autres nécessitent plus de recherches et des compétences que je ne possède pas...
Ainsi, il est préférable de laisser tomber l'update automatique, aussi pratique soit-elle, pour utiliser la méthode manuelle. Ce tuto n'est finalement qu'une traduction de la page de la documentation officielle, avec quelques ajustements pour notre configuration.

1) La bonne pratique veut que nous fassions une mise à jour:
sudo apt-get update
sudo apt-get dist-upgrade

2) Une autre bonne pratique est de créer une image de notre carte sd afin de pouvoir la restaurer facilement en cas de besoin.
Pour ce faire, nous allons arrêter le Raspberry pi, enlever la carte sd, la brancher sur notre Linux préféré et en faire une image. Commençons par éteindre le pi.
sudo poweroff

Sur notre ordinateur muni d'une distribution Linux (pour les autres OS, débrouillez-vous, c'est tout aussi facile), il faut lister les disques, puis brancher la carte sd puis lister à nouveau les disques. Ainsi, il est facile de voir quel est le disque à cloner.
df -h
(brancher la carte sd)
df -h

Le résultat ressemble à "/dev/mmcblk0p1" ou "/dev/sdb1". Le dernier numéro tel que "p1" ou "1" est le numéro de partition. Comme nous voulons une image de la carte entière, il faut utiliser "/dev/mmcblk0" ou "/dev/sdb".

Dans un terminal, taper la commande suivante (à modifier en fonction de l'étape précédente) et attendre, cela peut être assez long en fonction de la taille de la carte:
sudo dd if=/dev/sdb of=~/SDCardBackup.img

Voilà, maintenant, quoi qu'il arrive, il est possible de revenir à cette image et de retrouver un système qui fonctionne parfaitement. Passons donc à la mise à jour de Nextcloud.

3) Faire un backup du fichier config.php (éventuellement du dossier contenant les données, ce qui est inutile si les données sont ailleurs que dans le dossier de Nextcloud)
Créer un dossier bkp qui contiendra le backup:
cd /var/www
sudo mkdir bkp
sudo cp /var/www/nextcloud/config/config.php /var/www/bkp

4) Télécharger la dernière version de Nextcloud
sudo wget https://download.nextcloud.com/server/releases/nextcloud-[version].zip

5) Maintenant nous entrons dans le vif du sujet, il faut mettre Nextcloud en mode maintenance:
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --on

6) Arrêter le serveur apache
sudo /etc/init.d/apache2 stop

7) Renommer le dossier de l'installation courante de Nextcloud, par exemple par nextcould-old.
sudo mv /var/www/nextcloud /var/www/nextcloud-old

8) Décompresser l'archive téléchargée à l'étape 4 dans le dossier /var/www.
cd /var/www
sudo unzip nextcloud-[version].zip

9) Des fichiers contenus dans l'ancienne installation sont encore utiles. Nous allons les copier de l'ancienne installation vers la nouvelle.
Copier le fichier config.php de l'ancienne installation dans la nouvelle installation.
sudo cp /var/www/bkp/config.php /var/www/nextcloud/config

Si vous avez suivi le tuto précédent pour l'installation, vous n'êtes pas concernés par ce qui suit, passez directement à l'étape 10. Sinon, vérifiez si votre dossier contenant les données est dans votre installation, il faut le copier de l'ancienne installation vers la nouvelle (nextcloud-old/data -> nextcloud/data).

10) Si vous utilisez des applications tierces, et qu'elles ne se trouvent pas dans la nouvelle installation (nextcloud/apps), il faut les copier depuis l'ancienne installation. Une fois fait, vérifiez les permissions afin qu'elles soient identiques à celles de l'ancienne installation. Pour ma part j'utilise les applications calendar et contacts, si vous en utilisez d'autres, il faut répéter l'opération pour chacune d'elle.
sudo cp -r /var/www/nextcloud-old/apps/calendar /var/www/nextcloud/apps/
sudo cp -r /var/www/nextcloud-old/apps/contacts /var/www/nextcloud/apps/

11) Il ne reste qu'à définir les permissions et l’appartenance des fichiers.
sudo chown -R www-data:www-data nextcloud
sudo find nextcloud/ -type d -exec chmod 750 {} \;
sudo find nextcloud/ -type f -exec chmod 640 {} \;

12) Démarrer le serveur web et se déplacer dans le dossier de la nouvelle version de nextcloud.
sudo /etc/init.d/apache2 start
cd /var/www/nextcloud

13) A présent il faut lancer la mise à jour en utilisant occ.
sudo -u www-data php occ upgrade

La mise à jour peut prendre quelques minutes à plusieurs heures en fonction de la taille de l'installation. Si vous suivez ce tutoriel pour le raspberry pi, comptez plutôt quelques minutes... ;) Normalement tout doit bien se passer et un message de réussite s'affiche.



Dans le cas contraire, un message d'erreur vous indiquera ce qui s'est mal passé.

14) En partant du principe que tout s'est bien passé, nous désactiver le mode maintenance.
sudo -u www-data php occ maintenance:mode --off

Nous pouvons à présent nous connecter dans notre nouvelle version de Nextcloud. Une bonne idée serait de se connecter avec un compte admin et de vérifier la version de Nextcloud sur la page d'admin. Se rendre ensuite sur la page des apps et ré-activer les applications.

15) Faisons encore juste un peu de ménage.
sudo rm -r /var/www/bkp
sudo rm -r /var/www/nextcloud-[version].zip
sudo rm -r /var/www/nextcloud-old

dimanche 26 mars 2017

Installation de Nextcloud sur un Raspberry Pi

Dans ce tuto, nous allons installer Nextcloud, fork de ownCloud, sur un raspberrypi. Les données seront stockées sur une clé usb, la base de donnée utilisée est mariadb la version de php installée sera php7. Le serveur sera securisé grâce à fail to ban et ufw (uncomplicated fire wall). La connexion sera sécurisée grâce à un certificat let's encrypt. Ce tuto part du principe que vous avez déjà un nom de domaine. Si vous n'en avez pas, vous pouvez utiliser no-ip ou un autre fournisseur de ce type de service et adapter le tuto à vos besoins (très simple).

Premièrement la clé usb qui acceuillera vos données doit etre insérée et montée automatiquement à chaque (re)boot.

1) Brancher votre clé ou votre disque externe.

2) Ma clé était formatée en NTFS, installons le paquet qui permet de travailler avec ce système de fichiers:
sudo apt-get install ntfs-3g

3) Créer le répertoire qui va accueillir le "mount" du disque:
sudo mkdir /media/cloudata

4) Monter le disque dans notre répertoire fraichement créé au point précédent (cette commande est valable pour le système de fichiers NTFS, pour tout autre système de fichier que vous souhaitez utiliser, changer la commande comme il se doit):
sudo mount -t ntfs-3g -o uid=1000,gid=1000,umask=007 /dev/sda1 /media/cloudata

5) Trouver le UUID du disque USB que nous venons de brancher au point 18, c'est une suite de chiffres ressemblant à ça:4264E66D64E66361 normalement en bleu et associé à sda1 avec la commande ci-dessous:
ls -l /dev/disk/by-uuid/

6) Si comme moi, vous êtes nul et que vous avez de gros doigts gras qui ne vous obéissent pas toujours comme vous le souhaiteriez, choisir la sécurité et faire un backup du fichier fstab:
sudo cp /etc/fstab /etc/fstab.backup

7) Editer fstab et ajouter le UUID de votre clé ou disque externe USB que vous avez trouvé au point 22 (vous suivez?):
sudo nano /etc/fstab

Ne pas effacer ce qui est déjà dans le fichier, mais copier-coller cette ligne tout en bas (remplacer le UUID de cette ligne par celui de votre disque)
UUID=4264E66D64E66361 /media/owncloud ntfs-3g uid=1000,gid=1000,umask=007 0 0

8) Reboot du Pi et vérifier si la clé est montée correctement
mount

9) Installer Apache2
sudo apt-get install apache2 -y

10) Pour installer PHP7 il faut ajouter le dépôt
sudo nano /etc/apt/sources.list

11) ajouter la ligne suivante
deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi

12) Créer un fichier pour continuer
sudo nano /etc/apt/preferences

13) Coller ces lignes
Package: *
Pin: release n=jessie
Pin-Priority: 600

14) Installer php7 et tout ce qu'il faut pour que la cache soit activée et que ça fonctionne avec mariadb, exécuter les commandes suivantes dans l'ordre:
sudo apt-get update
sudo apt-get install -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip -y
sudo apt-get install php7.0-APC -y
sudo apt-get install mysql-server php7.0-mysql -y
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 reload
sudo apt-get install libxml2-dev php-zip php-dom php-xmlwriter php-xmlreader php-gd php-curl php-mbstring -y
sudo a2enmod rewrite
sudo service apache2 restart

15) Installer MariaDB:
sudo apt-get install mariadb-server -y
   
16) Créer une redirection vers l'installation de Nextcloud
cd /var/www/html
sudo nano index.html

Ajouter la ligne suivante où "nextcloud.nomdedomaine.com." doit être l'adresse qui pointe sur votre serveur.
    <meta http-equiv="refresh" content="0; URL='http://nextcloud.nomdedomaine.com/nextcloud'" />

17) Installer Nextcloud:
cd /var/www/
sudo wget https://download.nextcloud.com/server/releases/nextcloud-10.0.0.zip
sudo unzip nextcloud-10.0.0.zip
sudo rm nextcloud-10.0.0.zip
cd /

18) Ajuster les permissions grâce à un script:
cd /home/pi
nano permissions.sh

Coller le code suivant dans le fichier créé
#!/bin/bash

ocpath='/var/www/nextcloud'

htuser='www-data'

htgroup='www-data'

rootuser='root'


printf "Creating possible missing Directories\n"

mkdir -p $ocpath/data

mkdir -p $ocpath/assets

mkdir -p $ocpath/updater


printf "chmod Files and Directories\n"

find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640

find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750


printf "chown Directories\n"

chown -R ${rootuser}:${htgroup} ${ocpath}/

chown -R ${htuser}:${htgroup} ${ocpath}/apps/

chown -R ${htuser}:${htgroup} ${ocpath}/assets/

chown -R ${htuser}:${htgroup} ${ocpath}/config/

chown -R ${htuser}:${htgroup} ${ocpath}/data/

chown -R ${htuser}:${htgroup} /media/cloudata

chown -R ${htuser}:${htgroup} ${ocpath}/themes/

chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chown -R ${htuser}:${htgroup} /tmp


chmod +x ${ocpath}/occ


printf "chmod/chown .htaccess\n"

if [ -f ${ocpath}/.htaccess ]

then

 chmod 0644 ${ocpath}/.htaccess

 chown ${rootuser}:${htgroup} ${ocpath}/.htaccess

fi
 
if [ -f ${ocpath}/data/.htaccess ]

then

 chmod 0644 ${ocpath}/data/.htaccess

 chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess

fi

Rendre le script exécutable et le lancer
chmod +x permissions.sh
sudo ./permissions.sh

19) Configurer Apache2 en modifiant le fichier nextcloud.conf
cd /etc/apache2/sites-available
nano nextcloud.conf

Coller ceci dans le fichier:
Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
 Options +FollowSymlinks
 AllowOverride All

<IfModule mod_dav.c>
 Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

Puis lancer dans l'ordre les commandes suivantes:
ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

a2enmod headers

a2enmod env

a2enmod dir

a2enmod mime

a2enmod ssl

a2ensite default-ssl

service apache2 reload

20) Mettre en place la base de données en commençant par se loguer en root à la base de données:
mysql -u root -p

Puis lancer les commandes suivantes dans l'ordre. Je vous conseille fortement de remplacer MOTDEPASSE par un mot de passe fort de votre cru, souvenez-vous en, nous en aurons besoin plus tard.
CREATE DATABASE nextcloud;

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'MOTDEPASSE';

GRANT ALL PRIVILEGES ON nextcloud.* TO nextclouduser@localhost;

EXIT

21) Mettre en place le certificat ssl de let's encrypt:
sudo apt install git -y

cd /etc

sudo git clone https://github.com/letsencrypt/letsencrypt

cd letsencrypt

sudo ./letsencrypt-auto

crontab -e

Copier la ligne suivante au bas du fichier:
30 1 * * 1 root /etc/letsencrypt/certbot-auto renew --quiet

22) Si tout s'est bien passé, nous sommes prêts à nous connecter à notre interface pour terminer l'installation de Nextcloud par la génération des fichiers de configuration.
Ouvrir votre navigateur préféré et taper l'adresse qui devrait vous amener à votre cloud. Créer un utilisateur d'administration et changer le chemin des données pour pointer le disque usb.
/media/cloudata

En ce qui concerne la base de données, renseigner les champs comme ceci, en utilisant le mot de passe que vous avez choisi à l'étape 20
nextclouduser

MOTDEPASSE

nextcloud
   
Si il y a un message d'erreur signalant que le dossier des données ne peut pas être écrit, ça m'est arrivé, essayer ceci:
sudo usermod -a -G pi www-data

23) Activer le Mem Cache, cela peut paraître facultatif et le serveur fonctionnera sans, mais ce sera plus lent et vous aurez des messages d'erreur dans la console d'administration...
sudo nano /var/www/nextcloud/config/config.php


Juste avant ); insérer:
'memcache.local' => '\OC\Memcache\APC',

24) Un petit "clean" qui ne fera pas de mal... ;)
sudo apt-get clean

25) Définir la taille maximale de fichiers
cd /var/www/nextcloud

sudo nano .htaccess

Trouver la ligne php_value upload_max_filesize 512M et la ligne php_value post_max_size 512M
Changer les deux valeurs à celle souhaitée, si souhaité utiliser G pour gigas à la place de M
sudo nano .user.ini

Trouver la ligne upload_max_filesize=512M et post_max_size=512M
Changer les valeurs par la même que défini à l'étape précédente et ne pas oublier de changer le M en G, si besoin...

26) Éviter les attaques de l'homme du milieu:
cd /etc/apache2
sudo nano apache2.conf

A la fin du fichier, ajouter ce qui suit:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>

27) Reboot et vérification que tout fonctionne bien
sudo reboot

Félicitations! Vous avez fait un grand pas pour vous éloigner des GAFAM! La route n'a pas été si difficile, n'est-ce pas?
Maintenant, avec plus d'indépendance et de liberté, viennent immanquablement plus de responsabilités. Vous êtes responsables de votre matériel et de vos données. A vous de faire en sorte que tout fonctionne comme souhaité et que vos données soient raisonnablement protégées contre les regards indiscrets. La suite du tutoriel est à votre on vouloir et n'est en aucun cas obligatoire pour que le serveur fonctionne bien. Cependant, je vous encourage vivement de le suivre. Je ne suis pas un expert en sécurité et il y a peut-être des aberrations (merci de les relever dans les commentaires)... Faites vos propres recherches et agissez en fonction.


28) Installer et activer fail2ban pour les logins (Basé sur: https://forum.owncloud.org/viewtopic.php?f=8&t=28678):
sudo apt-get install fail2ban

Puis créer un fichier nextcloud.conf:
sudo nano /etc/fail2ban/filter.d/nextcloud.conf

Coller dans ce fichier les lignes suivantes:
[Definition]
failregex={"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: '.*' \(Remote IP: '<HOST>'\)","level":2,"time":".*"}

ignoreregex =

Créer un fichier jail.local:
sudo nano /etc/fail2ban/jail.local

Coller dans ce fichier les lignes suivantes:   
[nextcloud]
enabled = true
filter  = nextcloud
# selectionner http, https ou les deux, en fonction de vos besoins:
port    =  http,https
# modifier le chemin des logs si besoin:
logpath = /var/www/nextcloud/data/nextcloud.log

Activer fail2ban par cette suite de commandes:
sudo service fail2ban start
sudo service fail2ban reload
sudo service fail2ban status

Vérifier périodiquement les logs de fail2ban:
nano /var/log/fail2ban.log

29) Installer ufw (uncomplicated firewall):
sudo apt install ufw

Rejeter par défaut tous les paquets:
sudo ufw default deny

Il peut être utile de désactiver les IP v6, à voir si cela vous est utile...
sudo nano /etc/default/ufw
Changer la ligne 7:
IPV6=no

Permettre la connexion SSH depuis le réseau local uniquement. Si votre réseau local n'est pas 192.168.1.0/24 , il faut modifier le code suivant à votre convenance.
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22

Permettre le port 443 pour le https depuis internet.
sudo ufw allow 443/tcp

Activer le firewall:
sudo ufw enable

Vérifier le statut de ufw:
sudo ufw status

vendredi 16 décembre 2016

Ouverture de phpPgAdmin à un accès depuis le réseau local

Dans cet article, nous allons voir comment installer et ouvrir l'accès à phpPgAdmin pour une machine sur le réseau local.

Nous partons du principe que ls base de données PostgreSQL est déjà installée.L'installation de phpPgAdmin vise à gérer une base de données PostgreSQL par le navigateur. Cette installation est très simple:

1) Mettre à jour:
sudo aptitude update
2) Installer phpPgAdmin:
 sudo aptitude install phppgadmin
 Ce fut bref, n'est-ce pas?

Pour le moment, phpPgAdmin n'est atteignable que par le localhost. Sur un serveur qui n'a pas d'écran, ce n'est pas très partique... Il faut donc ouvrir un accès pour les machines sur le réseau. Pour ce faire, il faut modifier le fichier de configuration de phpPgAdmin:
sudo nano /etc/apache2/conf-available/phppgadmin.conf
Il faut alors le modifier comme suit:
order deny,allow
#deny from all
allow from 127.0.0.0/255.0.0.0 ::1/128
#allow from all
Il faut ensuite  redémarrer de serveur apache:
sudo /etc/init.d/apache2 restart
Pour rétablir le blocage une fois le boulot voulu effectué, il suffit de décommenter "deny from all" et à nouveau de redémarrer le serveur apache. Il est possible de vérouiller l'accès par un couple utilisateur/mot de passe, mais pour une utilisation ponctuelle de phpPgAdmin, je trouve plus simple de faire ces manipulations simples manuellement à chaque fois...

Sources:
- https://stackoverflow.com/questions/29970054/phppgadmin-forbidden-you-dont-have-permission-to-access-phppgadmin-on-this-s

mercredi 2 novembre 2016

Installation ODK Aggregate sur Ubuntu Server

Dans cet article, nous allons installer ODK Aggregate sur une base Ubuntu server. ODK Aggregate, libre et open source, permet de réaliser, centraliser et gérer des saisies avec des formulaires remplis sur smartphone/tablette par des personnes sur le terrain grâce aux applications android ODK Collect ou GeoODK. ODK Aggregate est une solution fiable utilisée par exemple par de nombreux organismes non gouvernementaux liés à l'ONU.
Ce tuto part du principe que l'installation sera effectuée sur une installation fraiche d'Ubuntu server. Si vous suivez l'installation sur un matériel qui héberge déjà d'autres services, vous devrez éventuellement faire les modifications qui s'imposent...

1) Installer Ubuntu server en veillant à sélectionner au minimum les paquets pour un serveur OpenSSH, LAMP et la base de donnée PostgreSQL. Ajouter d'autres paquets à volonté en fonction de vos besoins. Éviter simplement d'installer le serveur tomcat car nous installerons manuellement la version 6 plus tard.


2) Se connecter en SSH à la machine et prendre les droits d'administration de root.

3) OPTIONNEL: désinstaller MySQL, personnellement je ne vais pas l'utiliser sur ce serveur. Les commandes suivantes le permettent:
service mysql stop
killall -KILL mysql mysqld_safe mysqld
apt-get --yes purge mysql-server mysql-client
apt-get --yes autoremove --purge
apt-get autoclean
deluser --remove-home mysql
delgroup mysql
rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
updatedb
4) OPTIONNEL: désinstaller le serveur Tomcat 7 si présent. ODK Aggregate ne tourne que sur Tomcat 6. Premièrement il faut identifier les paquets liés à Tomcat 7:
dpkg -l|grep tomcat
Puis il faut supprimer manuellement chaque paquet listé avec la commande précédente:
dpkg -P <nom du paquet à supprimer>
 5) Installer Tomcat 6 grâce à la commande suivante:
apt-get install tomcat6
 A ce stade il faut vérifier que le serveur fonctionne correctement. Il faut alors visiter l'adresse ip du serveur en sollicitant le port 8080:

http://<adresse ip du serveur>:8080
Vous devriez avoir un message qui spécifie que le serveur fonctionne.


 6) Télécharger ODK Aggregate, lancer et suivre le processus sur son propre ordinateur. Le processus n'installe rien sur l'ordinateur, il créé simplement un fichier "ODKAggregate.war" et un script "create_db_and_user.sql" qui mettra en place la base de donnée PostgreSQL. Ces deux fichiers doivent être placés sur le serveur, cela sera détaillé dans ce tuto.

7) Utiliser SCP pour transférer les deux fichiers créés à l'étape précédent sur le serveur. Pour ce faire, nous allons créer un dossier dans le dossier home et y placer les fichiers.
cd /home/<nom d'utilisateur>
mkdir odkagg
cd odkagg
scp -r <utilisateur>@<ip ordinateur>:<chemin vers le dossier de l'étape 6> .

 8) Lancer le script de mise en place de la base de données. Si vous suivez ce tuto, vous êtes déjà dans le bon dossier, sinon cd dans le dossier contenant le fichier "create_db_and_user.sql". Si vous êtes toujours root, quittez ces privilèges en tappant "exit".Puis il faut lancer ce script grâce à la suite de commandes suivantes:
sudo -i -u postgres
psql
\i create_db_and_user.sql
\q
exit

9) Copier le fichier "ODKAggregate.war" dans le dossier "webapps" de Tomcat 6:
cp ODKAggregate /var/lib/tomcat6/webapps

L'installation est terminée, il ne reste qu'à visiter http://<ip du serveur>:8080/ODKAggregate et se logger avec le nom d'utilisateur créé à l'étape 6, mot de passe "aggregate" et changer le mot de passe. Bon terrain et bonne récolte de données!

samedi 9 janvier 2016

Raspberry Pi 2: monitorage de serveur

Dans ce tout petit tuto (il s'agit surtout d'une traduction du site du script), nous allons voire comment obtenir un rapport global de notre serveur owncloud ou autre. Nous allons obtenir cela:


Pour ce faire, nous allons utiliser un script nommé "eZ Server Monitor". Notez qu'il existe une version pour afficher cela tout beau dans le navigateur, mais personnellement ça ne m'intéresse pas, je veux juste jeter un œil de temps en temps quand je suis sur mon réseau local et connecté en ssh.
Bref, c'est tout kiss...

0) Mettre à jour et installer hddtemp. Je pars du principe que ce tuto est réalisé sur un raspberry pi, si vous avec une autre machine, vous pourriez vouloir aussi installer Im-sensors.
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install hddtemp
1) Se rendre dans un répertoire (moi j'ai choisi mnt car il est vide et c'est presque une abréviation de "monitor"):
cd /mnt
2) Créer un dossier pour y placer le script et s'y rendre:
sudo mkdir monitor
cd monito
3) Télécharger la dernière version du script (il s'agit de la version 2.2 au moment de la rédaction de ce petit tuto):
sudo wget --content-disposition http://www.ezservermonitor.com/esm-sh/downloads/version/2.2
4) Décompresser l'archive:
sudo unzip ezservermonitor-sh_v2.2.zip
5) Supprimer l'archive:
sudo rm ezservermonitor-sh_v2.2.zip
6) Attribuer les droits:
sudo  chmod u+x eZServerMonitor.sh
7) Éditer le script pour afficher les températures:
sudo nano eZServerMonitor.sh
8) Au début du fichier se trouvent les options de configuration.
Trouver la ligne
# Temperatures blocks (true for enable)
TEMP_ENABLED=false

Et changer la valeur à "true".

9) Lancer le script:
./eZServerMonitor.sh -Ca
Et voilà! Bon monitorage à vous!

mercredi 23 décembre 2015

Raspberry pi 2: mise à jour d'owncloud server

Ce bref tuto permet de faire la mise à jour de votre cher petit serveur owncloud lorsque vous remarquez la bannière vous y invitant quand vous êtes logués en tant qu'administrateur.
Il existe peut-être de meilleures façons de faire, mais celle là a le grand mérite d'avoir fonctionné chez moi!
A noter qu'il est vivement conseillé de faire un beau backup des données et de la base de données avant de commencer. Cela n'est pas couvert par ce tuto, je ne le fais pas car je n'ai aucune donnée qui ne soit pas déjà bien au chaud quelque part. Mais je me permet de suggérer de faire une image de votre carte sd, c'est très simple et facile à restaurer.

1) Se loguer par ssh.

2) Se placer dans le bon dossier:
cd /var/www
3) Faire un backup de notre installation actuelle:
sudo mv owncloud owncloud_backup
3) Faire un backup des données d'owncloud:
sudo cp -R /var/www/owncloud_backup/data owncloud_backup_data
4) Télécharger la version actuelle d'owncloud. La version peut varier, au moment de la rédaction de ce tuto, la dernière version est owncloud-8.2.2:
sudo wget https://download.owncloud.org/community/owncloud-8.2.2.tar.bz2
5) Décompresser l'archive téléchargée:
sudo tar xvf owncloud-8.2.2.tar.bz2
6) Supprimer l'archive qui ne sert plus à rien:
sudo rm owncloud-8.2.2.tar.bz2
7) Restaurer les données de configuration de l'ancienne installation d'owncloud avec les deux commandes suivantes:
sudo cp -R owncloud_backup/data owncloud/data
sudo cp -R owncloud_backup/config/* owncloud/config
8) Accorder les permissions nécessaires:
sudo chown -R www-data:www-data /var/www
9) Ouvrir son navigateur et se rendre sur la page de login owncloud. Cette dernière ne devrait pas proposer de champs de saisie des identifiants, mais un bouton pour terminer la mise à jour à la place. Cliquer dessus et laisser faire la machine...

10) Réactiver toutes les éventuelles applications qui était activées dans votre ancienne version (par exemple le calendrier, les contacts, ...).

Si tout a bien fonctionné, la dernière version devrait être installée. Il est possible de le vérifier cela en se loguant en tant qu'administrateur.

Si il y a eu un souci, il est très facilement possible de revenir à la version précédente avec les deux commandes suivantes:
sudo rm -r owncloud
sudo mv owncloud_backup owncloud
Je n'ai rien inventé, ce tuto est en grande partie une traduction de cette source:

vendredi 11 septembre 2015

Raspberry Pi 2: installation d'un serveur owncloud 8.x

Ce tuto vise à obtenir un serveur owncloud 8 sur un Raspberry Pi 2 modèle B. Pourquoi encore un tuto la dessus, il y en a plein à travers le net... Oui, mais il y a quelques petites subtilités avec la version 8.1 et il s'agit ici de créer un serveur utilisable (pas seulement pour tester) et un minimum sécurisé, autant au niveau de la sauvegarde des données que des menaces externes.
Globalement, la base de donnée est MySQL qui permet de gérer plusieurs utilisateurs. Les données sont placées sur une clé USB (un disque dur USB fera aussi très bien l'affaire), les données sont dupliquées sur une autre clé USB et automatiquement mises à jour régulièrement (PARTIE DU TUTO A VENIR - pas terminée...) et naturellement le serveur est accessible depuis tout l'internet mondial de la planète par une connexion sécurisée SSL (https) avec un certificat autosigné.

Matériel:

  • RPI2 et ce qu’il faut pour le faire fonctionner (carte mico-sd, alimentation, ...)
  • Clé ou disque USB

1) Installer Raspian

2) Allumer le Raspberry, se loguer avec l'utilisateur Pi et réaliser les premières manipulations: changer le mot de passe de pi, définissez le hostname, changer la valeur du split GPU memory à 16 et surtout activez le ssh.

Si vous avez déjà effectué certaines manipulations lors d'une installation précédente, il est possible de rappeler l'outil d'initialisation: 
sudo raspi-config

3) Mettre à jour:
sudo apt-get update && sudo apt-get upgrade

4) Ajouter les utilisateurs au groupe www-data:
sudo usermod -a -G www-data www-data
5) Installer les paquets requis (le serveur nginx, MySQL, ...):
sudo apt-get install nginx openssl ssl-cert php5-cli php5-sqlite php5-gd php5-common php5-cgi sqlite3 php-pear php-apc libapr1 libtool curl php5-curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-gd php5-fpm memcached php5-memcache varnish mysql-server php5-mysql
Vous pouvez aller vous faire un thé detox, manger une pomme tout en regardant les lignes défiler poétiquement. On prend soin de notre vie privée, de nos petits serveurs, autant aussi prendre soin de soi-même!

6) Installer MySQL de façon sécurisée, répondre attentivement à toutes les questions, il n'est pas nécessaire de changer le mot de passe root de MySQL puisqu'il est demandé en premier. Ainsi, il est possible de répondre: n - y - y - y - y
sudo mysql_secure_installation
7) Lancer MySQL en ligne de commande et saisir le mot de passe root de MySQL défini à l'étape précédente:
mysql -uroot -p
8) Créer une base de données (ici elle est nommée "owncloud"):
CREATE DATABASE owncloud;
9) Créer un utilisateur pour la base de données et remplacez moi ce "mot_de_passe" par un mot de passe de votre cru:
GRANT ALL ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'mot_de_passe';
Quitter ensuite MySQL
quit
9 bis - FACULTATIF) La configuration de PHP avec MySQL et pointer les socket correctement peut aider à avoir de meilleures performances:
sudo nano /etc/php5/conf.d/mysql.ini
et tout remplacer par cela:

# configuration for PHP MySQL module
extension=pdo_mysql.so
extension=mysql.so

[mysql]
mysql.allow_local_infile=On
mysql.allow_persistent=On
mysql.cache_size=2000
mysql.max_persistent=-1
mysql.max_links=-1
mysql.default_port=
mysql.default_socket=/var/run/mysqld/mysqld.sock
mysql.default_host=
mysql.default_user=
mysql.default_password=
mysql.connect_timeout=60
mysql.trace_mode=Off

 
10) La base de données est en place, occupons nous du serveur nginx et des certificats ssl. Ici, les certificats durent 730 jours, sentez vous libre de mettre ce que vous souhaitez. Mais éviter si possible de mettre des durées délirantes comme 100 ans...
sudo openssl req $@ -new -x509 -days 730 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key
11) Modifier les privilèges des deux fichiers:
sudo chmod 600 /etc/nginx/cert.pem
sudo chmod 600 /etc/nginx/cert.key
12) Accéder à la configuration du serveur web (nginx):
sudo nano /etc/nginx/sites-available/default
13) Remplacer le contenu par ce qui suit en remplaçant mon IP locale (192.168.0.18) par celle de votre PI ou votre IP publique si vous souhaitez pouvoir accéder depuis l'extérieur:
upstream php-handler {
  server 127.0.0.1:9000;
  #server unix:/var/run/php5-fpm.sock;
  }

server {
  listen 80;
  server_name 192.168.0.18;
  # enforce https
  return 301 https://$server_name$request_uri;
  }

server {
  listen 443 ssl;
  server_name 192.168.0.18;

  ssl_certificate /etc/nginx/cert.pem;
  ssl_certificate_key /etc/nginx/cert.key;

  # Add headers to serve security related headers
  add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
  add_header X-Content-Type-Options nosniff;
  add_header X-Frame-Options "SAMEORIGIN";
  add_header X-XSS-Protection "1; mode=block";
  add_header X-Robots-Tag none;

  # Path to the root of your installation
  root /var/www/owncloud/;
  # set max upload size
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  # Disable gzip to avoid the removal of the ETag header
  gzip off;

  # Uncomment if your server is build with the ngx_pagespeed module
  # This module is currently not supported.
  #pagespeed off;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
    }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
    deny all;
    }

  location / {
   # The following 2 rules are only needed with webfinger
   rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
   rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

   rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
   rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

   rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

   try_files $uri $uri/ /index.php;
   }

   location ~ \.php(?:$|/) {
   fastcgi_split_path_info ^(.+\.php)(/.+)$;
   include fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param HTTPS on;
   fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
   fastcgi_pass php-handler;
   }

   # Optional: set long EXPIRES header on static assets
   location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
       expires 30d;
       # Optional: Don't log access to assets
         access_log off;
   }

  }

14) Editer php.ini pour permettre la prise en charge de fichiers jusqu'à 2GB:
sudo nano /etc/php5/fpm/php.ini
Rechercher "upload_max_filesize" et changer la valeur à 2000M
Rechercher "post_max_size" et changer la valeur à 2000M

15) Configurer PHP en changeant les valeurs dans les deux fichiers suivants:
sudo nano /etc/php5/fpm/pool.d/www.conf
Et changer:
listen = /var/run/php5-fpm.sock
à :
listen = 127.0.0.1:9000
sudo nano /etc/dphys-swapfile
Et changer:
CONF_SWAPSIZE=100
à :
CONF_SWAPSIZE=512

16) Reboot du Pi:
sudo reboot
17) Installation d'owncloud: télécharger la version actuelle d'owncloud. La version peut varier, au moment de la rédaction de ce tuto, la dernière version est owncloud-8.1.1.
Installer owncloud par cette suite de commandes:
sudo mkdir -p /var/www/owncloud
sudo wget https://download.owncloud.org/community/owncloud-8.1.1.tar.bz2
sudo tar xvf owncloud-8.1.1.tar.bz2
sudo mv owncloud/ /var/www/
sudo chown -R www-data:www-data /var/www
sudo rm -rf owncloud owncloud-8.1.1.tar.bz2
18) Brancher votre clé ou votre disque externe.

19) Ma clé était formatée en NTFS et je ne l'ai pas reformatée. Avec le recul, le format ext4 aurait été mieux adapté. Mais bon, continuons donc avec NTFS et installons le paquet qui permet de travailler avec ce système de fichiers:
sudo apt-get install ntfs-3g
20) Créer le répertoire qui va permettre de "mount" le disque:
sudo mkdir /media/owncloud
21) Monter le disque dans notre répertoire fraichement créé au point précédent (cette commande est valable pour le système de fichiers NTFS, pour tout autre système de fichier que vous souhaitez utiliser, changer la commande comme il se doit):
sudo mount -t ntfs-3g -o uid=1000,gid=1000,umask=007 /dev/sda1 /media/owncloud
22) Trouver le UUID du disque USB que nous venons de brancher au point 18, c'est une suite de chiffres ressemblant à ça:4264E66D64E66361 normalement en bleu et associé à sda1 avec la commande ci-dessous:
ls -l /dev/disk/by-uuid/
23) Si comme moi, vous êtes nul et que vous avez de gros doigts gras qui ne vous obéissent pas toujours comme vous le souhaiteriez, choisir la sécurité et faire un backup du fichier fstab:
sudo cp /etc/fstab /etc/fstab.backup
24) Editer fstab et ajouter le UUID de votre clé ou disque externe USB que vous avez trouvé au point 22 (vous suivez?):
sudo nano /etc/fstab
Ne pas effacer ce qui est déjà dans le fichier, mais copier-coller cette ligne tout en bas (remplacer le UUID de cette ligne par le votre, soyez pas niais!)
UUID=4264E66D64E66361 /media/owncloud ntfs-3g uid=1000,gid=1000,umask=007 0 0
25) Reboot du Pi (voir point 16)

26) Attribuer les permissions pour le groupe www-data:
sudo usermod -a -G pi www-data
27) Petit gourmand que vous êtes, les valeurs de taille de fichier par défaut ne vous suffiront pas. Il faut donc modifier les valeurs de taille de fichier maximum autorisées dans les fichiers .htaccess et .user.ini:
cd /var/www/owncloud
sudo nano .htaccess
changer les valeurs à 2000M pour les paramètres suivants:
Php_value upload_max_filesize
Php_value post_max_size
Php_value memory_limit
sudo nano .user.ini
changer les valeurs à 2000M pour les paramètres suivants:
upload_max_filesize
post_max_size
memory_limit


28) Reboot du Pi (voir point 16)

29) Ouvrir votre navigateur préféré et visiter l'ip locale du Pi. Terminer l'installation en créant un compte administrateur et faisant bien attention de sélectionner la base de données MySQL en cliquant sur "avancé".

30) Pour accéder à votre serveur depuis une IP externe, vous devez l'ajouter dans la config PHP:
sudo nano var/www/owncloud/config/config.php
et modifiez le fichier en ajoutant une ligne pour votre IP publique ou, si vous possédez un nom de domaine, avec votre nom de domaine associé à l'IP publique du serveur Owncloud.
...
'trusted_domains' =>;
  array (
    0 =>; '192.168.0.18', # IP locale
    1 =>; 'xxx.xxx.xxx.xxx', # IP publique ou nom de domaine à mettre ici
...

31) Faire la redirection de ports (port forwarding) dans votre routeur. Cette manipulation simple est différente pour chaque routeur, je vous laisse donc voir avec votre propre matériel. Ainsi, vous pouvez accéder à Owncloud depuis le l'internet mondial (jcfrog si tu nous lit).

32) Maintenant que votre serveur est accessible du net, il convient de définir les règles d'iptables. Pour commencer, il faut voir quelles sont les règles actives:
sudo iptables -L
Normalement, si vous suivez ce tuto depuis une installation fraiche de rasbian, il ne devrait pas y avoir de règles affichées.

33) On va donc créer des règles minimales:
sudo nano /etc/iptables.firewall.rules
Il faut ensuite remplir le fichier comme suit:
*filter
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p udp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-unreachable

COMMIT

34) Activation des règles:
sudo iptables-restore < /etc/iptables.firewall.rules
35) On vérifie que les règles ont bien été prises en compte en listant les règles actives (voir point 32). Les nouvelles règles devraient alors apparaitre.

36) Pour s'assurer que les règles seront bien prises en compte même après avoir redémarré, il faut écrir un petit script:
sudo nano /etc/network/if-pre-up.d/firewall
Puis copier-coller ceci:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules


37) Changer les permissions du script:
sudo chmod +x /etc/network/if-pre-up.d/firewall
38) Comme on est un peu paranos, en tout cas moi je le suis! On va aussi installer fail2ban:
sudo apt-get install fail2ban
39) Pour voir si tout fonctionne bien, reboot du Pi (voir point 16)

Voilà, si tout s'est bien passé, votre serveur doit être fonctionnel, un minimum sécurisé (je suis pas un spécialiste, si j'ai oublié quelque chose ou fait une connerie, lapidez-moi dans les commentaires) et atteignable, ce qui est plutôt positif pour un serveur. 
Attention, ce tuto n'est pas tout à fait terminé, il faut que je vérifie que tout marche bien car je ne l'ai pas fait dans cet ordre. De plus, les données sont relativement peu en sécurité car exposées à la faillite de la clé USB.
Dans la suite du tuto que j'ai pas encore rédigé, on verra comment dupliquer les données sur une autre clé ou sur la carte sd pour avoir une redondance. La syncronisation se fera à base de rsync et de cron, mais il faut encore que je travaille sur tout ça...

Je ne suis pas un gourou de linux, donc je me suis basé sur plusieurs sources par de vrais pros. Je me suis grandement basé sur ce tuto:
Pour le reste, en vrac:

jeudi 28 janvier 2010

Installation de Backtrack 4 sous VirtualBox

Avec ce tutoriel, nous allons voir en détail l'installation de Backtrack 4 sur VirtualBox.
Pour réaliser ce tutoriel vous devez disposer de:
  • Une connexion internet... Bon, je considère que c'est OK, vu que vous avez échoué sur ce tuto. ;)

Pour commencer, téléchargez et installez VirtualBox si vous tournez sous Window$ ou Mac O$X, la démarche est la même qu'avec n'importe quel autre programme. Si votre OS hôte est Linux, veillez à télécharger la version correspondante à votre distribution et à ajouter votre utilisateur fétiche au groupe d'utilisateurs de VB.
Une fois l'installation réalisée avec succès, lancez Virtualbox. Aucune machine virtuelle n'est alors disponible, il s'agit maintenant d'en créer une. Ne partez pas en courant, cela reste très simple. Commencez la création par cliquer sur "Nouveau".


Cliquez sur "Suivant" et vous arrivez alors sur une fenêtre où on vous demande de nommer votre machine virtuelle et de spécifier quel type de système sera installé sur cette machine virtuelle. Choisissez donc un nom pour votre machine et définissez comme système d'exploitation "Linux" et comme version "Linux 2.6". Puis suivant.

Il va falloir ensuite définir la quantité de RAM que vous allez allouer à la machine virtuelle. Vous allez le déterminer en fonction des ressources disponibles sur votre ordinateur et des besoins de votre OS hôte. Ce paramètre est modifiable dans les propriétés de la machine virtuelle, si vous n'avez pas bien évalué le bon équilibre et que votre machine rame ou que votre OS en pâtit, il sera donc possible d'y remédier ultérieurement. Je dispose de 4Go de RAM en tout, je décide d'en dédier la moitié à ma machine virtuelle.

Après avoir cliqué sur suivant, il s'agit de créer une image de disque dur pour y installer votre BT. Vérifiez donc que l'option "Disque dur d'amorçage" est cochée et cliquez sur suivant.

Une nouvelle fenêtre s'ouvre, cliquez sur suivant. Il s'agit ici de définir le type d'image de disque dur virtuel. Une image à taille dynamique s'adaptera à vos besoins futurs alors qu'une image à taille fixe sera limitée à celle que vous lui aurez attribué. Je vous conseille de choisir une image disque à taille dynamique. Sauf si vous ne disposez déjà d'un espace limité et que vous ne désirez pas voir la machine virtuelle prendre trop de place sur votre disque physique.


Cliquez sur suivant et vous devez alors définir l'emplacement et la taille de votre disque dur virtuel. Ne touchez pas à l'emplacement. Attribuez une taille au disque dur virtuel, sachant qu'un minimum de 8Gb est requis. Pour ce tuto, je décide de laisser la valeur par défaut de 8Gb.

Cliquez sur suivant et vous débouchez alors sur le récapitulatif de la configuration de votre future disque virtuel. Cliquez sur terminer si vous en êtes satisfait pour créer le disque dur virtuel.

Vous arrivez alors au récapitulatif de la configuration de la machine virtuelle que vous avez paramétré. Si vous êtes satisfait de la configuration, cliquez sur terminer.


Votre machine virtuelle est alors prête à accueillir Backtrack. Vous avez réalisé le plus dur! Il ne reste plus qu'à installer Backtrack 4 et le tour est joué.

En bref, il s'agit de démarrer Backtrack en liveCD sur votre machine virtuelle et d'en exécuter l'installer qui se trouve sur le bureau. Munissez vous donc de votre image DVD de Backtrack, sélectionnez votre machine virtuelle et cliquez sur "Préférences".

Vous accédez alors à la configuration de votre machine virtuelle dont vous pouvez changer beaucoup de paramètres. A vous d'affiner les réglages en fonctions des performances de votre système hôte et des besoins de votre machine virtuelle, mais nous n'en sommes pas encore là. Allez dans l'onglet "Système" et paramétrez la séquence de démarrage comme suit:

Poursuivez en vous rendant dans l'onglet "Supports" et spécifiez l'emplacement de votre image DVD de Backtrack. Validez par Ok.


Il est enfin temps de lancer la machine virtuelle, ô joie! :) Pour cela, sélectionnez votre machine fraichement paramétrée et cliquez sur Lancer.


La machine boot alors sur l'image DVD. Validez la résolution d'écran proposée (1024x768) et poursuite du lancement, cela peut prendre un certain temps. Lorsque la ligne de commande apparait, le système est lancé, il ne vous reste plus qu'à taper
startx
pour lancer l'interface graphique.

Une fois l'interface graphique lancée, cliquez une fois sur le seul icône se trouvant sur le bureau "install.sh". L'installation commence.


Choisissez votre fuseau horaire, votre clavier etc et validez les paramètres par défaut. Ne craignez rien pour vos données, le formatage ne concerne que le disque dur virtuel créé précédemment. Le processus d'installation démarre, vous aurez le temps d'aller vous préparer un café et de manger un gouter, petit gourmand que vous êtes.


Lorsque l'installation est terminée arrêtez la machine virtuelle et "retirez" l'image DVD du lecteur virtuel, en suivant la méthode pour le mettre. C'est là qu'on verra si vous avez bien compris ce que vous avez fait… :)


Installation des additions invité:

Il reste une dernière étape pour pouvoir utiliser votre machine virtuelle confortablement. Il s'agit d'y installer les "additions invité". Cela vous permettra d'utiliser Backtrack en plein écran ou de ne plus avoir besoin d'utiliser la combinaison de touches pour sortir le pointeur de la zone de la machine virtuelle.

Pour ce faire, lancez la machine virtuelle et entrez pour le login:
root
et son inverse pour le mot de passe:
toor
Lancez ensuite l'interface graphique grâce à un
startx
Une fois l'interface graphique en place, dans la barre de menu générale, de VirtualBox cliquez sur "Périphériques" et "Installer les additions invité". Il ne se passe rien, c'est normal. Ouvrez un terminal.

Saisissez
cd /media/cdrom/
puis
./VBoxLinuxAdditions-x86.run
ou
./VBoxLinuxAdditions-amd64.run
si votre matériel est en 64bits.

Quand l'installation est terminée, éteignez la machine virtuelle et relancez la. Si tout s'est bien passé, vous pouvez maintenant jouir de votre installation en plein écran et avec une gestion de la souris bien plus confortable.