Préambule
Ce tutoriel vient comme une suite de celui-ci à propos de la virtualisation de vos services à l'aide de VirtualBox.
Je me servirai donc de la machine virtuelle déjà créée comme d'une base à ce tutoriel.
But à atteindre
Notre but dans ce tutoriel sera de créer une machine virtuelle vous permettant d'opérer des transferts de fichiers via le réseau.
Cela peut en effet vous permettre de recevoir ces fichiers dans un environnement cloisonné et donc (au cas ou ces fichiers sont infectés) de ne pas mettre en péril votre système hôte.
L'envoi par le réseau a également l'avantage de ne pas nécessiter de connexion de stick USB inconnu (et contenant peut être du code malicieux) sur votre machine.
Mode opératoire
Nous allons :
OwnCloud
OwnCloud, Késako ?
Owncloud est une application Web permettant de créer votre propre service de Cloud (comme Dropbox ou Google Drive).
Il vous permet ainsi de créer et de gérer des utilisateurs ayant chacun son espace privé sur votre serveur.
Pourquoi installer owncloud
Dans notre solution, owncloud sera une solution facile pour déposer (et récupérer) des fichiers sur notre machine virtuelle.
Vous pourrez donc ainsi vous connecter sur le owncloud de cette machine virtuelle afin de déposer des fichiers que vos amis pourront retrouver en se connectant via le même utilisateur.
Création de la base de données
Dans le dernier tutoriel, nous avons installé Apache et MySQL.
Ces outils sont nécessaires pour owncloud. Cependant, afin de faciliter la gestion de notre base de données MySQL, nous allons également installer phpmyadmin.
Pour ce faire connecter vous en root et taper les commandes suivantes:
A l'installation, sélectionnez Apache2 comme serveur Web.
Accepter également la création de la base de données de PHPMyAdmin avec dConfig puis suivez ce processus.
Nous devons maintenant faire le lien entre PHPMyAdmin et Apache.
Pour ce faire et toujours en root, exécuter les commandes suivante :
Rendez-vous maintenant (sinon je tire :P) sur votre browser préféré de votre machine physique et essayez l'URL suivante :
localhost:8888/phpmyadmin
Si vous obtenez une erreur, ajoutez la ligne suivante à votre php.ini
extension=mysqli.so
Explication complète
Redémarrez ensuite Apache (service apache2 restart)
Vous devriez maintenant accéder à phpmyadmin.
Connectez vous en tant que root
Rendez vous dans l'onglet Users et complétez comme suit :
Attention n'oubliez pas de cocher la checkbox concernant la création d'une DB pour cet utilisateur.
Allez sur Go dans le fond de la page.
Vous devriez donc maintenant avoir une base de données pour votre owncloud.
Installation
Nous allons maintenant télécharger et installer owncloud.
Pour ce faire, tapez les commandes suivantes :
Rendez vous maintenant sur votre navigateur favoris de votre machine physique.
Accède l'URL suivante : localhost:8888/owncloud
Si vous obtenez une erreur tel que :
PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.
To fix this issue set always_populate_raw_post_data to -1 in your php.ini
Décommentez la ligne :
always_populate_raw_post_data = -1
Dans votre PHP.ini puis redémarrez Apache
Au terme de cette installation vous devriez obtenir l'écran suivant dans le navigateur de votre machine hôte :
Configuration de owncloud
Complétez l'écran précédent tel que :
Ne vous trompez pas dans les informations de connexion à votre base de données !
Vous devriez alors accéder à votre owncloud.
En haut à droite, il existe un menu déroulant portant votre nom, cliquez dessus et accédez à la page users.
Dans cette page vous aurez accès à un bouton "Create" permettant de créer un nouvel utilisateur.
C'est à cet utilisateur que toutes les personnes voulant partager des fichiers avec nous auront accès.
Choisissez donc un nom d'utilisateur et un mot de passe puis enregistrer.
Déconnectez vous et testez la connexion via ce nouvel utilisateur.
Disponibilité de la VM
Dans la section suivante, nous allons ajouter un serveur FTP à notre machine virtuelle.
Cependant, FTP n'aime pas beaucoup être natté. De ce fait nous allons changer le mode réseau de notre machine virtuelle en Bridge.
De ce fait, elle sera reconnue comme une machine normale sur votre réseau.
Rendez vous dans la configuration de votre machine virtuelle sur VirtualBox et, dans l'onglet réseau, changez le mode de connexion de NAT en Bridge (choisissez l'interface qui vous convient).
Cette opération nécessite que la machine virtuelle soit éteinte.
Une fois la machine virtuelle redémarrée, repérez son adresse ip via la commande ifconfig.
Cependant, après cette opération faite :
En effet, owncloud enregistre les @IPs pouvant y accéder, nous allons donc devoir supprimer une règle pour que vous puissiez de nouveau avoir accès à votre owncloud.
Pour ce faire exécutez les commandes suivantes :
Supprimez alors toutes les lignes se situant entre la ligne commençant par 'secret' et la ligne commençant par 'datadirectory'.
Relancez apache2 puis essayez à nouveau d'accéder à votre owncloud via :
IP_VM/owncloud
Conclusion de l'installation
Vous disposez maintenant d'un espace d'échange vous permettant d'échanger des fichiers via le réseau.
Chacun d'entre vous pourra en effet accéder à votre owncloud (via le second compte que nous avons créé) afin d'y déposer ou d'y prendre des fichiers.
Afin que vos connaissances puissent accéder à votre owncloud, vous devrez cependant leur donner l'adresse IP de votre machine virtuelle.
Cette dernière peut très aisément se trouver via la commande ifconfig.
Sachez également que owncloud permet la création de dossiers de partages entre les différents utilisateurs, je vous laisse le loisir d'explorer cette solution si elle vous intéresse.
Après l'installation de notre serveur FTP et de notre antivirus, nous créerons quelques scripts permettant d'accèder aux fichiers de owncloud via FTP.
ProFTPd
Nous allons maintenant installer un serveur FTP basique.
Celui-ci nous permettra de pouvoir déposer et accéder des fichiers via ce protocole.
Pour ce faire, connectez vous en root à votre machine virtuelle et exécuter la commande suivante :
Lors de l'installation, il vous est demandé si vous souhaitez lancez proftpd comme un service indépendant ou via inetd. Dans notre cas, et pour faciliter les choses, nous l'installerons comme un service indépendant.
Ajout d'un utilisateur FTP
Afin de permettre le dépôt de fichiers via FTP, nous allons créer un nouvel utilisateur sur votre VM Linux, tapez donc la commande suivante :
Complétez alors les informations.
Ouvrez ensuite votre programme de FTP sur votre machine hôte et essayez de vous connecter avec l'utilisateur créé sur la machine virtuelle.
Vous devriez avoir accès aux fichiers de cet utilisateur et également avoir la possibilité d'en ajouter de nouveaux.
N'oubliez pas que vous devez vous connecter via l'@IP de la machine virtuelle.
Clamav
Clamav est un anti virus disponible sur Linux et permettant de vérifier si un fichier est infecté ou non.
Dans notre cas, il nous servira à vérifier si les fichiers reçu sont infectés avant de les transférer vers notre machine hôte.
Installation
Comme d'habitude sur linux, l'installation est très complexe :
Après installation j'ai eu un souci d'utilisation de la commande freshclam, si vous l'avez aussi exécuter la commande suivante :
Utilisation
Pour utiliser clamav, il faut 2 commandes :
Voici un exemple d'un scan de dossier avec clamav :
L'option move déplace les fichiers infectés vers /tmp
Quelques optimisations/scripts
Dans cette section, nous allons faire quelques scripts permettant de rendre cette VM plus facilement utilisable.
Nous allons donc :
Owncloud --> FTP
Ce script permettra que les données copiées par un utilisateur sur owncloud puissent être accessible également via FTP.
Le dépôt pourra ainsi se faire via owncloud tandis que la récupération se fait en FTP.
Il s'agira ainsi d'une seconde méthode pour récupérer les fichiers sur votre machine virtuelle et ce via le protocole FTP.
Pour ce faire, nous devons créer un nouvel utilisateur Linux (afin de pouvoir y accéder via ftp), appelons le owncloud.
Ecrivons maintenant le script qui ne sera en fait composé que d'une seule commande, la commande rsync.
Commençons par l'installer :
Voici le script :
Sauvegardez le sous le nom que vous souhaitez puis enregistrer le dans le crontab afin qu'il s'exécute toutes les 2 minutes (pour ne pas devoir attendre trop longtemps).
Rendez- le exécutable :
Voici le code pour l'ajouter dans le crontab :
Puis ajouter la ligne suivante :
Analyse antivirale
Encore un script qui ne fera que deux lignes :
N'oubliez pas de le rendre exécutable.
Ce script ne sera pas ajouté dans le crontab, il devra être exécuté à la main avant le transfert vers la machine physique.
Mise à jour de la base virale
Ce script n'exécutera que la commande freshclam
Le voici donc :
Rendez le exécutable puis ajouter le dans le crontab :
Conclusion
Nous avons aujourd'hui appris à créer une machine virtuelle vous permettant de sécuriser vos transfert de fichiers.
Vous avez maintenant votre propre cloud avec les identifiants mot de passe que vous avez créé.
N'oubliez pas que grâce à nos scripts vous avez également la possibilité de récupérer les fichiers du cloud via FTP !
J'espère que cet exemple vous incitera à aller vers la virtualisation de vos services. Cette solution a beaucoup d'avantages y compris au point de vue de la sécurité.
En effet, si cette machine venait à être compromise, vous pourriez simplement recharger un état précédent non compromis. De plus, une machine virtuelle compromise a de très faible chance d'infecter la machine hôte.
Cette VM peut encore être améliorée.
Par exemple, nous pourrions :
Elle est cependant une bonne base, libre à vous de l'améliorer.
Si vous avez d'autres idées d'améliorations n'hésitez pas à m'en faire part.
Je suis également disponible pour toute question.
Ce tutoriel vient comme une suite de celui-ci à propos de la virtualisation de vos services à l'aide de VirtualBox.
Je me servirai donc de la machine virtuelle déjà créée comme d'une base à ce tutoriel.
But à atteindre
Notre but dans ce tutoriel sera de créer une machine virtuelle vous permettant d'opérer des transferts de fichiers via le réseau.
Cela peut en effet vous permettre de recevoir ces fichiers dans un environnement cloisonné et donc (au cas ou ces fichiers sont infectés) de ne pas mettre en péril votre système hôte.
L'envoi par le réseau a également l'avantage de ne pas nécessiter de connexion de stick USB inconnu (et contenant peut être du code malicieux) sur votre machine.
Mode opératoire
Nous allons :
- Installer et configurer owncloud
- Installer et configurer un serveur FTP
- Installer un anti virus (afin de vérifier les fichiers reçus)
- Créer quelques scripts utilitaires
OwnCloud
OwnCloud, Késako ?
Owncloud est une application Web permettant de créer votre propre service de Cloud (comme Dropbox ou Google Drive).
Il vous permet ainsi de créer et de gérer des utilisateurs ayant chacun son espace privé sur votre serveur.
Pourquoi installer owncloud
Dans notre solution, owncloud sera une solution facile pour déposer (et récupérer) des fichiers sur notre machine virtuelle.
Vous pourrez donc ainsi vous connecter sur le owncloud de cette machine virtuelle afin de déposer des fichiers que vos amis pourront retrouver en se connectant via le même utilisateur.
Création de la base de données
Dans le dernier tutoriel, nous avons installé Apache et MySQL.
Ces outils sont nécessaires pour owncloud. Cependant, afin de faciliter la gestion de notre base de données MySQL, nous allons également installer phpmyadmin.
Pour ce faire connecter vous en root et taper les commandes suivantes:
Code:
aptitude install phpmyadmin
Accepter également la création de la base de données de PHPMyAdmin avec dConfig puis suivez ce processus.
Nous devons maintenant faire le lien entre PHPMyAdmin et Apache.
Pour ce faire et toujours en root, exécuter les commandes suivante :
Code:
cd /var/www/html ln -s /usr/share/phpmyadmin/ phpmyadmin
localhost:8888/phpmyadmin
Si vous obtenez une erreur, ajoutez la ligne suivante à votre php.ini
extension=mysqli.so
Explication complète
Redémarrez ensuite Apache (service apache2 restart)
Vous devriez maintenant accéder à phpmyadmin.
Connectez vous en tant que root
Rendez vous dans l'onglet Users et complétez comme suit :
Attention n'oubliez pas de cocher la checkbox concernant la création d'une DB pour cet utilisateur.
Allez sur Go dans le fond de la page.
Vous devriez donc maintenant avoir une base de données pour votre owncloud.
Installation
Nous allons maintenant télécharger et installer owncloud.
Pour ce faire, tapez les commandes suivantes :
Code:
wget https://download.owncloud.org/community/owncloud-8.0.3.tar.bz2 tar -jxvf owncloud-8.0.3.tar.bz2 mv owncloud/ /var/www/html/ chown www-data.www-data -R /var/www/html/owncloud/
Accède l'URL suivante : localhost:8888/owncloud
Si vous obtenez une erreur tel que :
PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.
To fix this issue set always_populate_raw_post_data to -1 in your php.ini
Décommentez la ligne :
always_populate_raw_post_data = -1
Dans votre PHP.ini puis redémarrez Apache
Au terme de cette installation vous devriez obtenir l'écran suivant dans le navigateur de votre machine hôte :
Configuration de owncloud
Complétez l'écran précédent tel que :
Ne vous trompez pas dans les informations de connexion à votre base de données !
Vous devriez alors accéder à votre owncloud.
En haut à droite, il existe un menu déroulant portant votre nom, cliquez dessus et accédez à la page users.
Dans cette page vous aurez accès à un bouton "Create" permettant de créer un nouvel utilisateur.
C'est à cet utilisateur que toutes les personnes voulant partager des fichiers avec nous auront accès.
Choisissez donc un nom d'utilisateur et un mot de passe puis enregistrer.
Déconnectez vous et testez la connexion via ce nouvel utilisateur.
Disponibilité de la VM
Dans la section suivante, nous allons ajouter un serveur FTP à notre machine virtuelle.
Cependant, FTP n'aime pas beaucoup être natté. De ce fait nous allons changer le mode réseau de notre machine virtuelle en Bridge.
De ce fait, elle sera reconnue comme une machine normale sur votre réseau.
Rendez vous dans la configuration de votre machine virtuelle sur VirtualBox et, dans l'onglet réseau, changez le mode de connexion de NAT en Bridge (choisissez l'interface qui vous convient).
Cette opération nécessite que la machine virtuelle soit éteinte.
Une fois la machine virtuelle redémarrée, repérez son adresse ip via la commande ifconfig.
Cependant, après cette opération faite :
- Le port d'accès HTTP sera 80 et plus 8888
- Le port SSH sera 22 et plus 2222
- L'IP ne sera plus localhost
- L'accès à owncloud se fera via : IP_VM/owncloud
- L'accès à owncloud ne sera plus possible
En effet, owncloud enregistre les @IPs pouvant y accéder, nous allons donc devoir supprimer une règle pour que vous puissiez de nouveau avoir accès à votre owncloud.
Pour ce faire exécutez les commandes suivantes :
Code:
vim /var/www/html/owncloud/config/config.php
Relancez apache2 puis essayez à nouveau d'accéder à votre owncloud via :
IP_VM/owncloud
Conclusion de l'installation
Vous disposez maintenant d'un espace d'échange vous permettant d'échanger des fichiers via le réseau.
Chacun d'entre vous pourra en effet accéder à votre owncloud (via le second compte que nous avons créé) afin d'y déposer ou d'y prendre des fichiers.
Afin que vos connaissances puissent accéder à votre owncloud, vous devrez cependant leur donner l'adresse IP de votre machine virtuelle.
Cette dernière peut très aisément se trouver via la commande ifconfig.
Sachez également que owncloud permet la création de dossiers de partages entre les différents utilisateurs, je vous laisse le loisir d'explorer cette solution si elle vous intéresse.
Après l'installation de notre serveur FTP et de notre antivirus, nous créerons quelques scripts permettant d'accèder aux fichiers de owncloud via FTP.
ProFTPd
Nous allons maintenant installer un serveur FTP basique.
Celui-ci nous permettra de pouvoir déposer et accéder des fichiers via ce protocole.
Pour ce faire, connectez vous en root à votre machine virtuelle et exécuter la commande suivante :
Code:
aptitude install proftpd
Ajout d'un utilisateur FTP
Afin de permettre le dépôt de fichiers via FTP, nous allons créer un nouvel utilisateur sur votre VM Linux, tapez donc la commande suivante :
Code:
adduser nomUser
Ouvrez ensuite votre programme de FTP sur votre machine hôte et essayez de vous connecter avec l'utilisateur créé sur la machine virtuelle.
Vous devriez avoir accès aux fichiers de cet utilisateur et également avoir la possibilité d'en ajouter de nouveaux.
N'oubliez pas que vous devez vous connecter via l'@IP de la machine virtuelle.
Clamav
Clamav est un anti virus disponible sur Linux et permettant de vérifier si un fichier est infecté ou non.
Dans notre cas, il nous servira à vérifier si les fichiers reçu sont infectés avant de les transférer vers notre machine hôte.
Installation
Comme d'habitude sur linux, l'installation est très complexe :
Code:
aptitude install clamav
Code:
rm -r /var/log/clamav/freshclam.log
Pour utiliser clamav, il faut 2 commandes :
- clamscan qui scanne un ou plusieurs fichiers
- freshclam qui met à jour la base de données antivirale (la base virale VPS a été mise à jour )
Voici un exemple d'un scan de dossier avec clamav :
Code:
clamscan -rv /home/ --move /tmp
Quelques optimisations/scripts
Dans cette section, nous allons faire quelques scripts permettant de rendre cette VM plus facilement utilisable.
Nous allons donc :
- Créer un script qui copie les données de notre user owncloud vers un user FTP
- Créer un script qui analyse (antivirus) automatiquement le dossier /home et le dossier de owncloud
- Créer un crontab qui met à jour l'antivirus en automatique
Owncloud --> FTP
Ce script permettra que les données copiées par un utilisateur sur owncloud puissent être accessible également via FTP.
Le dépôt pourra ainsi se faire via owncloud tandis que la récupération se fait en FTP.
Il s'agira ainsi d'une seconde méthode pour récupérer les fichiers sur votre machine virtuelle et ce via le protocole FTP.
Pour ce faire, nous devons créer un nouvel utilisateur Linux (afin de pouvoir y accéder via ftp), appelons le owncloud.
Code:
adduser owncloud
Commençons par l'installer :
Code:
aptitude install rsync
Code:
#!/bin/bash rsync -arv --delete /var/www/html/owncloud/data/user/files/* /home/owncloud/
Rendez- le exécutable :
Code:
chmod +x ftp.sh
Code:
crontab -e
Code:
*/2 * * * * /root/ftp.sh
Encore un script qui ne fera que deux lignes :
Code:
#!/bin/bash clamscan -rv /home --move /tmp clamscan -rv /var/www/html/owncloud/data
Ce script ne sera pas ajouté dans le crontab, il devra être exécuté à la main avant le transfert vers la machine physique.
Mise à jour de la base virale
Ce script n'exécutera que la commande freshclam
Le voici donc :
Code:
#!/bin/bash freshclam
Code:
crontab -e
Code:
* */2 * * * /root/majantivir.sh
Nous avons aujourd'hui appris à créer une machine virtuelle vous permettant de sécuriser vos transfert de fichiers.
Vous avez maintenant votre propre cloud avec les identifiants mot de passe que vous avez créé.
N'oubliez pas que grâce à nos scripts vous avez également la possibilité de récupérer les fichiers du cloud via FTP !
J'espère que cet exemple vous incitera à aller vers la virtualisation de vos services. Cette solution a beaucoup d'avantages y compris au point de vue de la sécurité.
En effet, si cette machine venait à être compromise, vous pourriez simplement recharger un état précédent non compromis. De plus, une machine virtuelle compromise a de très faible chance d'infecter la machine hôte.
Cette VM peut encore être améliorée.
Par exemple, nous pourrions :
- Améliorer le script d'analyse antivirale afin de n'afficher que les fichiers infectés
- Créer des système d'utilisateurs virtuels sur le FTP
- Faire un change root des users en FTP
- Passer own cloud en https
- ...
Elle est cependant une bonne base, libre à vous de l'améliorer.
Si vous avez d'autres idées d'améliorations n'hésitez pas à m'en faire part.
Je suis également disponible pour toute question.