mardi 13 décembre 2016

Flash de rom Android sous OSX avec Heimdall

Quand on est habitué au logiciel Odin sous Windows, l'utilisation de Heimdall peut sembler complexe de part nécessité de préciser quelle rom flasher sur quelle partition. Pour mieux comprendre ce qu'Heimdall attend de nous, on peut utiliser les commandes suivantes afin de lister le partitionnement du téléphone connecté:
heimdall download-pit --output file.pit
heimdall print-pit --file file.pit
Lorsque l'on télécharge une rom c'est en fait un zip de plusieurs fichiers mais Odin est capable de lire dans ce zip et de destiner le bon fichier à la bonne partition. Avec heimdall on doit décompresser et dépackager la rom afin d'obtenir la liste des fichiers de rom ( fichiers .img, .mbn, .bin ...)

On va ensuite associer chacun d'entre eux à la bonne partition en fonction de leur nom. En général c'est assez explicite. Exemple si dessous pour flasher un Samsung Note 3:
heimdall flash --RECOVERY recovery.img --SYSTEM system.img.ext4 --HIDDEN hidden.img.ext4 --BOOT boot.img --MODEM modem.bin --APNHLOS NON-HLOS.bin --ABOOT aboot.mbn --BOOT boot.img --TZ tz.mbn --RPM rpm.mbn --SBL1 sbl1.mbn --DBI sdi.mbn --CACHE cache.img.ext4

mardi 29 novembre 2016

Echanger des données via iCloud, dropbox ou équivalent de manière sécurisée entre iOS et OSX

Avec un service de stockage de données en ligne comme iCloud on a plusieurs niveaux de sécurité possible:

- Est ce que le transfert descendant ou montant est chiffré ?
- Est ce que les données sont stockées chiffréee ?
- Si les données sont chiffrées, qui possède la clé privée ?

Pour iCloud, comme beaucoup de services équivalents, les données sont chiffrées sur les serveurs du fournisseur de service mais sont déchiffrables par lui même. Cela protège contre un attaque externe mais pas contre la malhonnêteté de l'entreprise.

La solution à ce problème est le chiffrage local avant tout passage par internet ou PIE (Pre Internet Encryption).

Sur iOS on peut utiliser l'application Disk Decipher qui permet d'ouvrir un conteneur Truecrypt. Ainsi on pourra stocker des données de son PC dans ce conteneur Truecrypt, l'envoyer sur un iDevice (par iCloud ou transfert local) et réouvrir ce conteneur sur l'iDevice grâce à Disk Decipher.

Depuis l'abandon dans des circonstances ombrageuse du projet TrueCrypt on ne peut plus complètement faire confiance à ce logiciel mais son alternative VeraCrypt n'est pas encore supportée par Disk Decipher. D'après le siteofficiel ce sera le cas pour la version 2.0

En attendant il faut faire attention de bien créer le conteneur avec TrueCrypt et non VeraCrypt.

A noter qu'avec ce système on perd toute finesse dans l'upload des données sur iCloud. En effet le service n'étant pas capable de voir le contenu du conteneur TrueCrypt, il ne peut pas ne réuploader que les fichiers fraichement modifiés. Tout le conteneur doit être réuploadé même pour un seul caractère changé.


mercredi 17 août 2016

Création d'un disque USB bootable à partir d'un .iso sur OSX

De nombreux sites expliquent le processus mais beaucoup oublient l'étape de convertion ou font une erreur de syntax sur la commande dd. Donc voici un exemple testé avec GParted sur El Capitan
hdiutil convert -format UDRW -o gparted-live-0.26.1-5-i686.img gparted-live-0.26.1-5-i686.iso
diskutil list
diskutil partitionDisk /dev/disk3 1 "Free Space" "unused" "100%"
sudo dd if=~/gparted-live-0.26.1-5-i686.img.dmg of=/dev/rdisk3 bs=1m

Notez la différence entre le "/dev/disk3" et le "/dev/rdisk3" pour les deux dernières commandes.

Après l'éxécution de la dernière commande vous aurez un "the disk you inserted was not readable by this computer" ou l'équivalent en français mais ça n'empêche pas OSX de booter dessus suite à démarrage en appuyant sur ALT pour sélectionner le disque de montage.

Pour info si le disque bootable GParted n'est pas reconnu par OSX c'est qu'il est construit avec une partition EFI ( extention 0xEF ) lorsque l'on fait un "diskutil list". On peut quand même forcer son montage en faisant:
mkdir /Volumes/efi
sudo mount -t msdos /dev/disk3s2 /Volumes/efi/

jeudi 12 mai 2016

Automonter des partages Samba et NFS sous OSX (et le répertoire spécial /net)

Au lieu de manuellement rajouter des appels à mount_nfs dans son .bash_profile ou autres scripts lancés au démarrage on peut utiliser le système d'automounter autofs supporté par OSX.

Dans /etc/auto_master on va commencer par référencer deux nouveaux fichiers /etc/auto_nfs et /etc/auto_smb qui contiendront nos paramètres de connexion spécifiques au NFS et au Samba. #
# Automounter master map
#
+auto_master # Use directory service
/net -hosts -nobrowse,hidefromfinder,nosuid
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab
/- -static
/- auto_nfs -nosuid
/- auto_smb -nosuid
Ensuite on crée nous mêmes les fichiers /etc/auto_nfs et /etc/auto_smb ainsi que les répertoires de montage: mkdir /Users/myuser/nfs
mkdir /Users/myuser/smb

auto_nfs
/Users/myuser/nfs -fstype=nfs,noowners,nolockd,noresvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.1.10/home/linuxuser/nfsshare

auto_smb
/Users/myuser/smb -fstype=smbfs,soft,noowners ://guest:@192.168.1.10/exchange
Au redémarrage on vérifie bien que les partages sont montés: mount

/dev/disk1 on / (hfs, NFS exported, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
map auto_nfs on /Users/myuser/nfs (autofs, nosuid, automounted, nobrowse)
192.168.1.10:/home/linuxuser/nfsshare on /Users/myuser/nfs (nfs, nodev, nosuid, automounted, noowners, nobrowse)
map auto_smb on /Users/myuser/smb (autofs, nosuid, automounted, nobrowse)
//guest:@192.168.1.10/exchange on /Users/myuser/smb (smbfs, nodev, nosuid, automounted, noowners, nobrowse)
Autre solution. Utiliser le répertoire spécial /net/

Si l'on a un serveur nfs sur 192.168.1.10 on peut automatiquement naviguer dedans par /net. ls /net renvoie vide mais si l'on fait /net/192.168.1.10/ on a accès aux répertoires partagés via NFS.

mardi 3 mai 2016

Partage NFS de Linux vers OSX

Avec la configuration présentée dans mon billet précédent si l'on essaie de monter le répertoire NFS Linux sous OSX on pourra lire son contenu mais on aura un "Permission denied" lors de la tentative d'écriture dans le répertoire. Ceci est du à la difference de UID/GID entre l'utilisateur Linux (typiquement 1000/1000) et l'utilisateur OSX (typiquement 501/20)

Pour rendre l'export Linux compatible avec un client OSX il faut utiliser les paramètres suivants dans /etc/exports
/home/linuxuser/nfsshare *(rw,sync,insecure,no_subtree_check,all_squash,anongid=65534,anonuid=65534)
Une fois exports modifié relancer avec:
sudo exportfs -ra L'option all_squash indique au serveur NFS d'exécuter toutes les requêtes distantes en tant qu'utilisateur anonyme. Les options anongid et anonuid spécifient l'identité de l'utilisateur anonyme (nobody,nogroup)

A noter que dans cet exemple j'ai utilisé l'utilisateur anonyme nobody mais on peut très bien "squasher" les connexions vers un autre utilisateur que nobody ( typiquement 1000/1000 ).

lundi 2 mai 2016

Partage NFS de Linux (Ubuntu) à Linux

Sélectionner le répertoire à partager. Par example /home/linuxuser/nfsshare et lui donner les droits en accès de l'utilisateur anonyme (nobody/nogroup)
sudo chown nobody /home/linuxuser/nfsshare
sudo chown nogroup /home/linuxuser/nfsshare
Définir les paramètres d'export dans /etc/exports
/home/linuxuser/nfsshare *(rw,sync,insecure,no_subtree_check)
* pour que toutes les IP aient accès au partage.
Lancer ou relancer le service nfs. Par besoin de relancer le service si l'on fait des modifs ultérieures.
sudo service nfs-kernel-server restart
Exporter le partage:
sudo exportfs -ra
Vérifier la liste des répertoires partagés avec:
showmount -e
A partir de ce moment sous Linux on peut monter le partage comme ceci:
sudo mkdir /mnt/nfslinux
sudo mount 192.168.1.100:/home/linuxuser/nfsshare /mnt/nfslinux
Et le démonter:
sudo umount -f -l /mnt/nfslinux

Partager un répertoire via NFS sous OSX

Par l'interface utilisateur d'OSX on peut partager des fichiers via AFP (avec d'autres Macs) ou par Samba avec des PC Linux ou Windows. NFS est considéré plus stable et moins consommateur en ressources mais doit être configuré en ligne de commande. Ayant eu des problèmes de partage via Samba entre mon Mac et mon Raspberry j'ai décidé de passer au partage via NFS.

Pour ce faire il suffit de créer le fichier /etc/exports et d'y spécifier le répertoire à partager:
sudo nano /etc/exports
/Volumes/DATA/Media -maproot=nobody
Le système va détecter automatiquement cette modification et lancer le service nfsd. Plus tard si l'on modifie à nouveau le fichier exports on peut s'assurer de la prise en compte des nouveaux paramètres par:
sudo kill -1 `cat /var/run/mountd.pid`
sudo nfsd enable
On peut vérifier que l'export se fait sans erreur par:
sudo nfsd checkexports
Et lister les répertoires exportés par: showmount -e A distance sur mon Raspberry je peux également lister les fichiers partagés sur le Mac en faisant: showmount -e 192.168.1.100