Yop

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - GNULinux

Fil des billets - Fil des commentaires

mardi, 3 septembre 2013

Envoi de SMS par le RaspberryPi

J'ai un projet où le Rasp doit envoyer des informations par SMS.

J'ai acheté 10€ une clé 3G d'occasion pour l'utiliser avec Gammu

  • Informations sur la clé

$ dmesg | grep tty | grep usb
[ 1014.053491] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[ 1014.062066] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[ 1014.069542] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
$
$ lsusb | grep -i Huawei
Bus 001 Device 006: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
$

  • Installation de Gammu

$ sudo apt-get install gammu

  • Paramétrage

$ gammu-detect
; Configuration file generated by gammu-detect.
; Please check The Gammu Manual for more information.

[gammu]
device = /dev/ttyUSB0
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at

[gammu1]
device = /dev/ttyUSB1
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at

[gammu2]
device = /dev/ttyUSB2
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at
$

Dans /etc/gammurc on met juste:

[gammu]
device = /dev/ttyUSB0
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at

$ gammu identify
Périphérique : /dev/ttyUSB0
Fabricant : Huawei
Modèle : unknown (K3565)
Firmware : 11.111.11.11.11
IMEI : 222222222222222

Si un code PIN est activé

$ gammu getsecuritystatus
Waiting for PIN.
$ gammu entersecuritycode PIN 1234
$ gammu getsecuritystatus
Nothing to enter.
$

  • Envoi de SMS

$ gammu sendsms TEXT 0612345678 -text "Test 1"
If you want break, press Ctrl+C...
Sending SMS 1/1....waiting for network answer..OK, message reference=1
$

$ echo "Test 2" | gammu sendsms TEXT 0612345678
If you want break, press Ctrl+C...
Sending SMS 1/1....waiting for network answer..OK, message reference=2
$

  • Divers

$ gammu getlocation
Latitude : 48.XXXXXX
Longitude : 2.XXXXXX
Range : 50000
Number of samples : 70
$

Gammu envoi la CellID sur le site web du projet open source OpenCellID (GET HTTP).
(Il faut un accès Internet dans ce cas, donc je ne pourrais l'utiliser)

  • Conclusion

Nous avons donc pour 10€ de clé, et 2€ (voir 0€ ;) ) de forfait mensuel une solution d'envoi de SMS illimité.

Pour toutes les infos, voir la doc .

mardi, 6 août 2013

Tests chiffrement RaspberryPi

Il y a différents moyens de chiffrer des fichiers sous GnuLinux, mais ils se classent généralement dans 2 catégories.

  • Le chiffrement où l'on créé un volume chiffré.. et on met les fichiers dedans.

On trouve par exemple:
Truecrypt
loop-AES
dm-crypt

  • Le chiffrement fichier par fichier.

On trouve par exemple:
eCryptfs
EncFS

Le but de ce billet n'est pas de comparer les avantages/inconvénients de ces différents logiciels ni de décrire leur installation... mais uniquement de lister les résultats de mes tests de vitesse d'écriture sur le disque dur (non SSD) branché en USB sur mon Raspberry Pi.

Voir ces tests de vitesse sans chiffrement.

- Sans chiffrement
dd if=/dev/zero bs=4096 count=244140 of=/data/file_1GB
999997440 octets (1,0 GB) copiés, 35,4711 s, 28,2 MB/s

- Truecrypt(AES/256)
999997440 octets (1,0 GB) copiés, 229,275 s, 4,4 MB/s

- loop-AES (AES/128)
999997440 octets (1,0 GB) copiés, 164,494 s, 6,1 MB/s

- dm-crypt(LUKS) (AES/256)
999997440 octets (1,0 GB) copiés, 653,715 s, 1,5 MB/s

- eCryptfs (AES/128/fnek)
999997440 octets (1,0 GB) copiés, 187,407 s, 5,3 MB/s

- EncFS (Expert/AES/128/Blocs 4096)
999997440 octets (1,0 GB) copiés, 308,457 s, 3,2 MB/s


dimanche, 28 juillet 2013

sshuttle - VPN / SSH

sshuttle est a mi-chemin entre le VPN et le port forwarding SSH.
Il permet en gros, de faire une sorte de VPN avec juste un serveur SSH en face.

Concrètement, je l'utilise surtout lorsque je suis connecté à des réseaux type "Wifi Hotel".
Je connecte sshuttle vers mon Raspberry chez moi, en écoute en SSH (port 80 et authentification uniquement par clé).
De cette manière tout ce qui sort de mon pc est chiffré quand il passe sur le réseau Wifi, y compris mon trafic Internet, qu'il soit fait par mon navigateur, ou même un simple apt-get.

Il remplace donc avantagement un tunnel SSH avec l'option -D ainsi que l'utilisation de tsocks

Il n'encapsule pas exactement TCP dans TCP, ce qui évite des problèmes de performances réseau.
La partie DNS est "tunnelisée" avec l'option --dns
/!\ UDP (autre que DNS) et ICMP ne passent pas dans le tunnel.

sshuttle est dispo dans les dépots debian, mais pour moi l'authentification par clé ne fonctionnait pas.
Si c'est toujours le cas, passez donc par github pour l'installation de la dernière version:

$ git clone git://github.com/apenwarr/sshuttle
$ cd ./sshuttle

$ curl ip.uggy.org
x.x.x.x
$
$ ./sshuttle --dns -r y.y.y.y:80 0/0
Connected.

On ouvre par exemple un autre terminal

$ curl ip.uggy.org
y.y.y.y
$

Avec la commande sshuttle ci-dessus, toutes les connexions (0/0) DNS et TCP passent par le tunnel SSH (OpenSSH ouvert sur le port 80).
Pas besoin donc de configurer son navigateur pour passer par un proxy Socks, ni d'activer l'option network.proxy.socks_remote_dns, ni d'utiliser tsocks.

On peut utiliser aussi utiliser par exemple:
- l'option -D pour le faire tourner en démon.
- l'option -x pour exclure des réseaux.

Allez voir le README pour toutes les informations.


samedi, 18 mai 2013

Renommer les fichiers proprement - detox

Detox est un petit soft qui permet de renommer des fichiers contenant des caractères un peu spéciaux.

J'utilisais jusqu'à présent une "grosse" function dans mon .bashrc pour essayer de faire cela "moi-même".. ce qui fait que je n'étais jamais encore tombé sur ce petit soft.

Vous pouvez éditer le fichier /usr/share/detox/safe.tbl pour modifier le comportement du remplacement des caractères...

Exemple; on créé un fichier avec des caractères un peu spéciaux :

$ touch "éa%b =c+dàe[f)g"
$ detox -v éa%b =c+dàe[f\)g
Scanning: éa%b =c+dàe[f)g
éa%b =c+dàe[f)g -> ea_b_c_dae-f-g
$ ls ea_b_c_dae-f-g
ea_b_c_dae-f-g
$


Le fichier à été renommé en supprimant tous les caractères particuliers.

Dans la vraie vie c'est surtout pratique pour renommer les trucs téléchargés (légalement bien entendu).

Pour plus d'infos:

man detox
man detox.tbl
man detoxrc

mercredi, 8 mai 2013

Monter une image disque (.img) contenant plusieurs partitions

Le RaspberryPi nécessite 2 partitions et les OS sont généralement founis en .img

J'avais besoin de comparer certains fichiers entre mon installation Rasbian et la distribution Raspbmc.

Je télécharge donc raspbmc-final.img sur mon laptop puis:

$ mkdir mount
$ sudo fdisk -l raspbmc-final.img

Disk raspbmc-final.img: 1363 MB, 1363148800 bytes
4 heads, 32 sectors/track, 20800 cylinders, total 2662400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d692e

Device Boot Start End Blocks Id System
raspbmc-final.img1 4096 147455 71680 c W95 FAT32 (LBA)
raspbmc-final.img2 151552 2662399 1255424 83 Linux

Si on veut monter la 1ère partition qui démarre au sector 4096, l'offset à utiliser est donc 512x4096=2097152

$ sudo mount -o loop,offset=2097152 raspbmc-final.img mount/
$ cat mount/cmdline.txt
dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2
$ sudo umount mount/

Si on veut monter la 2ème partition qui démarre au sector 151552, l'offset à utiliser est donc 512x151552=77594624

$ sudo mount -o loop,offset=77594624 raspbmc-final.img mount/
$ cat mount/etc/hostname
raspbmc
$ sudo umount mount/

man fdisk
[...] starting offset and the size of each partition is stored in two ways: as an absolute number of sectors [...]

man mount
[...] mount knows about four options, namely loop, offset, sizelimit and encryption [...]



[Edit:] Tassatux m'indique dans le commentaires que kpartx est créé a cet effet:

This tool, derived from util-linux' partx, reads partition tables on specified device and create device maps over partitions segments detected. It is called from hotplug upon device maps creation and deletion.

Voir les commentaires pour les informations supplémentaires.

- page 2 de 32 -