Affichage des articles dont le libellé est Sécurité. Afficher tous les articles
Affichage des articles dont le libellé est Sécurité. Afficher tous les articles

lundi 14 septembre 2015

Manjaro - trousseau de clé

Le principe de base du trousseau, c'est qu'il est déverrouillé au moment du login (si l'on a protégé son login par un mot de passe). Le problème, c'est qu'il ne se déverrouille pas au login et me demande une confirmation de mot de passe pour chromium.
Pour résoudre ce problème, j'ai installé seahorse.

sudo pacman -S seahorse

Ensuite, j'ai supprimé le trousseau "Défaut" et défini le trousseau "Connexion" par défaut à la place. Un reboot et ça va mieux.


vendredi 5 juin 2015

SELinux sur CentOS

J'ai récemment migré un site php sous apache hosté sur un serveur Ubuntu vers un serveur CentOS.

Le premier problème rencontré après ma migration vers CentOS a été l'upload de fichiers qui ne fonctionne plus.
Pourtant, après avoir vérifié sur le web, les droits de mon répertoire d'upload étaient bien ajustés :

sudo chown apache:apache /var/www/upload_dir
sudo chmod 774 /var/www/upload_dir


Rien à faire, j'ai toujours un « permission denied » dans mon /etc/httpd/logs/ssl_error_log …

Que s'est-t-il passé ? La gestion traditionnelle des droits sur les répertoires est soumises à SELinux (Security-Enhanced Linux). Le principe est que les utilisateurs et les applications peuvent changer les droits d'accès aux répertoires du serveur et pas toujours de la bonne manière. L'administrateur ne peut contrôler tous ces changements de droits.

SELinux va donc recouvrir tous les dossiers du serveur par un niveau ré-haussé de sécurité. Par exemple, il va interdire les accès autres que lecture seule pour http (apache) dans mon /var/www/.

On peut changer le statut de SELinux en modifiant /etc/selinux/config (selinux=enfocing, permissive ou disabled) ou en écrivant

Setenforce 0

Cette commande va permettre de désactiver SELinux mais ne résiste pas à un reboot. Si on modifie le fichier /etc/selinux/config, ça résiste à un reboot.

Passer en disabled ou permissive permet de retrouver l'accès écriture à mon dossier et donc l'upload des fichiers fonctionne à nouveau. Le problème, c'est qu'on perd l'avantage de SELinux.

Comment configurer le système pour ouvrir les droits d'écriture sur certains répertoires (/var/www/upload_dir) et pas sur le reste ?
Voici quelques commandes utiles de SELinux.

Tout d'abord, on peut afficher le « contexte SELinux » associé à un fichier :

ls -Z /var/www/index.php

=> -rw-r--r--  username username system_u:object_r:httpd_sys_content_t /var/www/html/index.html

system_u:object_r:httpd_sys_content_t nous renseigne sur le contexte SELinux sous le format utilisateur:rôle:type:mls. (mls n'est pas affiché)

On peut tester cette commande sur quelques fichiers du serveur pour mieux cerner son fonctionnement.
Pour résumé, apache (httpd_t) peut lire des fichier de type httpd_sys_content_t. Par exemple, apache ne pourrait pas lire un fichier dans le home d'un utilisateur.

Comment modifier le contexte des fichiers ?

chcon -v --type=httpd_sys_content_t /var/www/newfile.php

En récursif :

chcon -vR –type=httpd_sys_content_t /var/www/newdir

Finalement, voici le type qu'on va appliquer aux fichiers dans lesquels on souhaite uploader des fichiers :

chcon -vR unconfined_u:object_r:httpd_sys_rw_content_t:x0 /var/www/upload_dir

Maintenant qu'on a ouvert l'accès à l'upload de fichier, il reste à faire ça correctement en modifiant le code php pour :

  1. vérifier que l'extension du fichier est dans une « white list » (gif, jpg, png, pdf, doc, etc.) ;
  2. vérifier que le type du fichier correspond bien à ce que son extension prétend être.

vendredi 26 septembre 2014

phpmyadmin

Ce jeudi 25 septembre 2014, la communauté informatique est en effervescence suite à la publication d'une faille de sécurité dans le bash (source).
Immédiatement, je me renseigne sur les forums ubuntu pour tenter de mieux comprendre les risques encourus par mes serveurs. Assez rapidement, je réalise que la faille ne me concerne pas. Un petit update de bash devrait tout de même me permettre d'avoir bonne conscience.

Cependant, au cours des discussions, je réalise un point important sur la sécurité de mes serveurs : phpmyadmin est fortement déconseillé sur un serveur en production. Je décide donc de le désinstaller. En lieu et place de quoi, je compte utiliser un client lourd comme Mysql Workbech par exemple.

Cependant, pour pouvoir exploiter le client, il faudra d'abord configurer correctement mysql pour pouvoir accéder au serveur depuis une autre machine sur le LAN. Voici les étapes à suivre pour un serveur ubuntu 10.04.

  1. On crée un utilisateur pour une machine sur le réseau
    En utilisant putty, je me connecte sur le serveur mysql :
    > mysql -u <utilisateur> -p
    En console mysql (n'oubliez pas le point-virgule à la fin de chaque ligne) :
    > CREATE USER '<utilisateur>'@'<ip de la machine>' IDENTIFIED BY '<mot de passe>';
    > flush privilieges;
    >exit;
    Il faudra aussi gérer les droits de cet utilisateur soit en ligne de commande, soit directement dans phpmyadmin (puisqu'il est, dans mon cas, encore installé)
  2. On indique dans iptables qu'il faut accepter la machine qui discutera avec le serveur mysql :
    >sudo /sbin/iptables -A INPUT -i eth0 -s <ip de la machine> -p tcp --dport 3306 -j ACCEPT
  3. On modifie le fichier /etc/mysql/my.cnf
    Il faut commenter la ligne bind-address=127.0.0.1
  4. Il ne reste plus qu'à désinstaller phpmyadmin et le tour est joué.
L'utilisation de Mysql Workbench ne devrait pas poser de problème si l'on connaît l'ip du serveur ainsi que le login/mot de passe de l'utilisateur tel que défini plus haut.
A éviter lorsqu'on crée un tel utilisateur : ne pas créer 'user'@'*' ce qui permettrait à cet utilisateur de se connecter depuis n'importe où.

vendredi 30 mai 2014

L'après truecrypt

En attendant que le truecrypt-gate soit un peu éclairci, voici une solution pour installer  et utiliser tcplay :

Editez le gestionnaire de sources :

sudo gedit /etc/apt/sources.list

ajoutez les dépôts universe si ce n'est déjà le cas (par exemple) :

deb http://us.archive.ubuntu.com/ubuntu saucy main universe

puis :

sudo apt-get update 
sudo apt-get install tcplay

Les exemples qui montrent la méthode pour créer un disque fourmillent sur le net.
Mais comment ouvrir un disque préalablement crypté avec truecrypt ?
Voici un exemple d'utilisation.
Je dispose d'un disque crypté : /chemin/DISQUE.tc
J'ai créé un répertoire d'accueil de mon disque : /mnt/MONDISQUE/

Montage du disque :

sudo /sbin/losetup /dev/loop0 /chemin/DISQUE.tc
sudo tcplay -m /chemin/DISQUE.tc -d /dev/loop0
sudo mount /dev/mapper/DISQUE.tc /mnt/MONDISQUE/

Démontage du disque :

sudo umount /mnt/MONDISQUE/
sudo dmsetup remove /chemin/DISQUE.tc
sudo losetup -d /dev/loop0


Voici également un excellent article sur le logiciel encfs qui est une vraie alternative libre à truecrypt. Avec le logiciel cryptkeeper, vous disposez d'un outil efficace et simple d'emploi pour protéger de vos données.

jeudi 6 décembre 2012

Modifier le mot de passe d'un utilisateur

Dernièrement, le premier pc équipé de windows 8 est arrivé au bureau. Après quelques instants de prise en main, qui se sont plutôt bien passés, je dois bien l'avouer, le premier problème a pointé le bout de son nez.
L'utilisateur (local) unique de ce pc disposait d'un mot de passe (défini par l'installateur?) mais inconnu de nous (...) Au démarrage, le mot de passe n'était pas demandé par défaut mais bien après une mise en veille.
La solution pour contourner ce problème consistait à changer ce mot de passe. Facile puisqu'on pouvait se connecter! Mais voici ce que je trouve en cherchant un peu :

Démarrez la machine Windows 8 et pressez F8, ensuite sélectionnez command Line ...
Ensuite lancez les commandes suivantes :

move c:\Windows\System32\Utilman.exe c:\Windows\System32\Utilman.exe.old
copy c:\Windows\System32\cmd.exe c:\Windows\System32\Utilman.exe

Et c'est sensé faire quoi? Bein lorsque vous êtes devant l'écran d'ouverture de session, ça lance la ligne de commande lorsqu'on appuie sur Windows + U. Au passage, c'est pareil pour Windows 7.
Le problème, c'est qu à ce moment, vous disposez de droits administrateur. Donc pour changer le mot de passe d'un utilisateur (Win8 par exemple), il suffit d'entrer la commande suivante :

net user Win8 <nouveau_mot_de_passe>

Bon, j'imagine que ce sera corrigé rapidement ... ou pas.


Conclusion, ne vous prenez pas la tête à retenir des mots de passe compliqués (...)

samedi 24 mars 2012

TrueCrypt

Vous êtes un geek paranoïaque, c'est très bien. Je suis fait pour vous comprendre.
TrueCrypt est un petit soft qui vous permettra de créer des disques cryptés ou de crypter directement un disque existant. Certains poussent le vice (non pas 64) jusqu'à crypter les répertoires de travail de leur browser favori de manière à anonymiser leurs activités sur leur pc.

Sans aller jusque là, je vous présente l'outil et comment créer un disque crypté.

Mais tout d'abord, pourquoi crypter un disque? Tout dépend de l'usage. Si vous êtes le (ou la) seul à utiliser votre pc, cela ne vous servira qu'à assumer votre paranoïa. En revanche, si vous êtes plusieurs à utiliser votre pc cela vous permettra de stocker des données personnelles sans que les autres y fourrent leur nez.
Quelques exemples : vous pouvez y stocker votre budget, ce sont tout de même des informations qui ne concernent que vous. De manière plus générale, vous pouvez y stocker toutes les données que vous souhaitez garder confidentielles (vos mémoires, vos secrets inavouables ou votre plan pour devenir le maître du monde ...)
Une autre utilisation, c'est le cloud. Prenons un exemple bien précis : vos identifiants et mots de passe. Chacun d'entre nous possède un certain nombre d'identifiants sur le web : accès webmail, intranet au boulot, réseaux sociaux, etc. Avec les années, ces identifiants se sont démultipliés au point de ne plus pouvoir vous souvenir de tout. Imaginons que vous souhaitez stocker ces identifiants dans un fichier calc open(libre)office. Si vous pouviez placer ce fichier sur un serveur dans le cloud accessible de n'importe où, cela serait bien pratique. Mais voila, avez-vous confiance au cloud? Une bonne pratique consisterait à créer un petit disque crypté qui contiendrait vos précieuses données.

La procédure :
Après avoir installé et lancé TrueCrypt, vous découvrez un bouton "Create volume" qui vous permettra de créer votre premier disque crypté.
Lorsque vous avez cliqué sur le bouton, vous pouvez choisir de créer un disque (container) ou de crypter un disque existant. Je me concentre sur le premier choix : clic sur "next".
Vous pouvez choisir standard ou invisible (hidden). Partons sur un disque visible, clic sur "next".
Volume location : précisez l'endroit où vous voulez créer le dique et donnez lui un nom. Petite astuce, j'ai pris l'habitude de ne pas donner d'extension aux disques cryptés. Ainsi, l'absence d'extension ne donne aucune information sur la nature du fichier qui sera créé. Clic sur "next".
A l'étape suivante, nous pouvons choisir l'algorithme de cryptage. Clic sur "next".
Ensuite, on vous demande la taille du disque. Tout dépend de l'utilisation. Clic sur "next".
Il vous est alors demandé d'introduire un mot de passe. Plus il sera long et contiendra des caractères complexes (chiffres+lettres+caractères spéciaux, ponctuation, etc.) plus votre disque sera inviolable. Si vous avez des informations sur Roswell, créez un mot de passe de 50 caractères. Clic sur "next".
Options de format. Clic sur "next".
A l'épate suivante, agitez frénétiquement la souris dans la fenêtre de manière a générer ce que l'informatique ne peut générer convenablement : de l'aléatoire. Cela permet de renforcer la clé d'encryptage. Clic sur "format".
Attendez durant la création du disque... C'est fini, clic sur "exit".

Vous voila donc l'heureux propriétaire d'un disque crypté. Si votre mot de passe est suffisamment complexe, sachez que même la NASA se cassera les dents sur votre fichier. Pour pouvoir l'exploiter, il vous faut l'ouvrir avec TrueCrypt. Pour ce faire, je vous présente deux méthodes.

Première méthode :
Utilisez l'interface de TrueCrypt. En utilisant le bouton "Select File", allez ouvrir votre disque crypté. Cliquez sur "Mount" (monter), entrez votre mot de passe secret puis votre mot de passe linux. Un nouveau disque viens d'apparaître dans votre système de fichiers. Vous pouvez y déposer vos documents confidentiels.
Lorsque vous en avez terminé, il vous suffit de cliquer sur "Dismount" (démonter) et votre disque aura l'apparence d'un fichier sans extension impossible à utiliser sans votre mot de passe.

Deuxième méthode :
Pour les fainéants qui ouvrent régulièrement leur boîte de Pandore. Vous pouvez créer un fichier batch avec la ligne de commande suivante pour automatiser l'ouverture du disque crypté (Attention, vous n'êtes pas obligé d'y mettre votre mot de passe, je vous montre uniquement les possibilités qui s'offrent à vous.) :

truecrypt -p <motdepassesecret> /<chemindudisquecrypte>/<disquecrypte> /media/disque

Vous aurez pris soin au préalable de créer le répertoire /media/disque/


Ceci étant dit, vous pouvez créez vos disques cryptés, les mettre dans le cloud, sur clé USB, sur disques durs externes ou les laisser traîner sur un réseau local sans craindre que l'on vous vole vos idées pour devenir maître du monde.

Pour information, j'ai découvert ce programme sur Window$ et j'ai eu le plaisir de découvrir que mes disques cryptés restaient exploitables après avoir migré sous Linux. L'outil est donc vraiment cross-plaftorm.


True crypt vous demande le mot de passe de votre disque mais aussi le mot de passe administrateur. Pour ne pas ré-introduire ce second mot de passe, voici la procédure à suivre :

sudo EDITOR=gedit visudo

et Ajoutez la ligne suivante en fin de fichier :

ALL ALL=(root) NOPASSWD: /usr/bin/truecrypt