Archives de catégorie : FreeBSD

Montage sélectif de clé USB sur FreeBSD

Mon problème a résoudre ici est assez simple. Permettre à un utilisateur sans droits du système de monter une clé USB définit à un emplacement spécifique.

Sous Linux, ça se serait traduit par une création de répertoire et une ligne ajoutée à /etc/fstab avec un UUID= et l’option users.
Mais je dois le faire sous FreeBSD et il n’y a ni l’option users ni udev.

L’exercice est fait ici avec FreeBSD Release 10.0. Le dossier à utiliser est /sas. La clé est formatée avec une seule partition en VFAT.

Label de partition

Insérer la clé USB.

Il faut commencer par trouver le périphérique de la partition qui nous intéresse. La commande dmesg nous renseigne sur le dernier périphérique utilisé :

# dmesg | tail
ugen2.2: <vendor 0x13fe> at usbus2
umass0: <vendor 0x13fe MEMUP, class 0/0, rev 2.00/1.10, addr 2> on usbus2
umass0:  SCSI over Bulk-Only; quirks = 0x4000
umass0:5:0:-1: Attached to scbus5
da0 at umass-sim0 bus 0 scbus5 target 0 lun 0
da0: < MEMUP PMAP> Removable Direct Access SCSI-0 device
da0: Serial Number 0748374E0011
da0: 40.000MB/s transfers
da0: 1908MB (3907584 512 byte sectors: 255H 63S/T 243C)
da0: quirks=0x2<NO_6_BYTE>

Ici, c’est le périphérique /dev/da0. Si on regarde /dev/da0*, on a :
/dev/da0
/dev/da0s1

On va pouvoir ajouter un label à cette partition da0s1 de cette clé USB :
# glabel label sas /dev/ad0s1

La partition a maintenant un label permanent qui apparaît comme /dev/label/sas. Si on remplace la clé USB par une autre clé partitionnée de la même façon, le label ne sera pas remis en place, il est vraiment spécifique au couple clé/partition.

Point de montage

On commence par créer le dossier /sas avec les bons droits :
# mkdir /sas
# chmod 770 /sas
# chown toto /sas
# chgrp toto /sas

On pourrait monter la partition à la main, mais c’est mieux de l’automatiser. On ajoute à /etc/fstab :
/dev/label/sas /sas msdosfs rw,noauto 0 0

Ici, je permet l’écriture (rw) et interdit le montage automatique (noauto). Le montage se fera par une action volontaire de l’utilisateur.

On peut vérifier que la partition monte bien :
# mount /sas
# ls /sas
Photos
# umount /sas

On peut aussi vérifier avec une autre clé USB, ça ne marche pas.

Droit aux utilisateurs

Jusqu’ici, seul root peut utiliser cette partition.On va faire en sorte qu’un utilisateur le puisse aussi.

Ajouter au fichier /etc/rc.conf la ligne :
devfs_system_ruleset="localrules"

Ajouter au fichier /etc/sysctl.conf la ligne :
vfs.usermount=1

Créer le fichier (ou ajouter) /etc/devfs.rules avec comme contenu :
[localrules=10]
add path 'label/sas' mode 0660 group toto

Après redémarrage, en insérant la clé USB, on peut voir les droits de /dev/label/sas :
crw-rw---- 1 root toto 0x69 29 avr 23:45 /dev/label/sas

Et, reconnecté en tant que toto, on doit pouvoir monter la partition simplement en lançant :
$ mount /sas
$ ls /sas
Photos
$ umount /sas

Si on donne pas à toto les droits utilisateurs sur le répertoire de montage, il le peut pas monter la partition sur ce répertoire. Mais il peut la monter ailleurs dans son dossier personnel.

Et voila :-)

Liens

http://www.freebsd.org/doc/handbook/geom-glabel.html
http://scratching.psybermonkey.net/2010/07/freebsd-how-to-allow-normal-user-to.html
http://www.freebsd.org/cgi/man.cgi?query=devfs.rules&sektion=5
http://www.freebsd.org/doc/handbook/usb-disks.html

FreeBSD РDisque chiffr̩ et boot sur cl̩ USB

liAttention – Documentation partielle !
Cette exercice a été abandonné en cours d’installation.
Partial installation.

Après la Clé USB bootable chiffrée sous OpenBSD, le Disque chiffré et boot sur clé USB sous Linux et le Système bootable chiffré sur deux clés USB interdépendantes (et suite) sous Linux, voici le disque chiffré et boot sur clé USB sous FreeBSD.
Objectifs :
1. Chiffrer l’intégralité du disque dur ;
2. Placer le nécessaire pour le démarrage uniquement sur une clé USB amovible ;
3. Permettre le démarrage du système sans saisir de mot de passe.

Basé sur le tutoriel :
http://namor.userpage.fu-berlin.de/howto_fbsd9_encrypted_ufs.html

L’exercice est réalisé avec le DVD1 de FreeBSD V10.0 RELEASE amd64.

Continuer la lecture de FreeBSD РDisque chiffr̩ et boot sur cl̩ USB

Sélectionner un OS sécurisé en entreprise : ne pas faire d’erreur dès la première étape

Au détour d’une recherche de renseignements sur de la crypto, je tombe sur l’article Selecting a Secure Enterprise OS: Don’t Make the First Step the Wrong Step.

Je lit l’article de 2005, un peu amusé.
Et aujourd’hui, en 2013, qu’en est-il ?

Et bien aujourd’hui, malgré les incertitudes de l’auteur, Linux n’a pas disparu, ni FreeBSD d’ailleurs. C’est pire encore, il y en a absolument partout!

Comparer le cycle de développement de Microsoft avec les autres OS est un peu osé. Surtout si l’on met en avant la mise à jour du noyau Linux en deux étapes, donc plus long que le même processus chez MS. Or l’histoire a montré que la communauté réagissait plus vite dans les corrections de failles que la société multi-milliardaire en dollars et en machines installées.

Dire que les patchs de Linux peuvent introduire des confusions et des problèmes de gestion, c’est en partie faux. Ce peut être éventuellement le cas si on change radicalement de version ou de distri. Mais c’est faux si on reste sur une distri dite stable ou à support allongé.

Enfin, comparer la gestion des mises à jours chez MS et sur BSD ou Linux est trompeur. MS fait bien son boulot, oui à condition de ne considérer que les logiciels MS à l’exclusion de tout autre. Or dans la vraie vie, on trouve aussi bien sur stations que sur serveurs un grand nombre d’applications tierces dont il faut assurer le suivi au jour le jour. C’est par exemple Flash ou Java. Certains éditeurs font de grands efforts mais chacun travaille dans son coin. Et ce travail de suivi est éreintant. Ah, on me dit que c’est justement un des arguments contre le mode de développement de Linux… Sauf qu’une distribution Linux intègre le suivi de toutes les applications qu’elle propose, et cela va bien plus loin que l’OS et quelques outils. Il est ainsi bien plus facile de tenir à jour un parc Linux qu’un parc Windows, même à long terme.

Si on ajoute en plus de problème de suivi des licences, le casse-tête des applications propriétaires généralement sous Windows n’a pas d’équivalent dans le monde du logiciel libre.
Ah, on me dit que cela ne fait plus partie de la première étape…

FreeBSD, IPv6 et OVH

Je bataille depuis un moment avec un serveur Kimsufi de chez OVH. Ce serveur a une adresse IPv4 et une grande plage d’adresses IPv6. Chouette!

Mais…
Si s’adresse IPv4 et la plage IPv6 sont bien disponibles et fonctionnels, je galère sous FreeBSD v9.0. En l’état, la route par défaut en IPv6 tombe sans prévenir au bout d’une demi-heure après le reboot de la machine…
Donc ce n’est pas bien utilisable en l’état (l’IPv6 bien sûr).

J’ai essayé par tous les moyens depuis le fichier de configuration /etc/rc.conf de changer cette route par défaut. J’ai même modifié /etc/sysctl.conf. Rien n’y fait, le système attribue automatiquement par défaut une adresse de lien local. Cette adresse marche, mais elle n’est pas configurée comme STATIC… donc elle disparaît au bout d’un certain temps.

Je n’ai pas trouvé quel script de démarrage force cette route sur une adresse de lien local (rtsol par exemple). Donc je choisi une autre solution moins élégante mais efficace : je supprime puis force ma route par défaut en fin de démarrage.
Il faut créer le fichier /etc/rc.local avec :
route del -inet6 default
route add -inet6 default 2001:XXXX:XXXX:eaff:ff:ff:ff:ff -static

Changer les droits du fichier (chmod 755 /etc/rc.local).

Et voila, on a notre route par défaut au démarrage, et elle ne tombe pas !

Ref :
http://www.freebsd.org/doc/handbook/network-ipv6.html
http://forum.ovh.com/showthread.php?t=85332
http://help.ovh.com/Ipv4Ipv6#link10
http://forums.freebsd.org/showthread.php?t=21804

Ebox 3310A – suite FreeBSD et Xorg

Suite à Ebox 3310A – suite en FreeBSD, j’essaye avec une interface graphique.

Par défaut, il n’y a pas d’interface graphique, on l’installe avec la commande :
# pkg_add -r xorg

Il faut un gestionnaire de connexion graphique, slim par exemple, et un gestionnaire de fenêtre, WindowMaker par exemple. On les installe avec les commandes :
# pkg_add -r slim
# pkg_add -r windowmaker

Et enfin, j’ai voulu aussi un beau gestionnaire de fenêtre. FreeBSD propose le port de e17 (enlightenment v0.17). Je l’installe avec les commandes :
# cd /usr/ports/x11-wm/enlightenment/
# make install
# make clean

Le clean est à la fin quand tout s’est bien passé.

Tout un tas de programmes annexes s’installent tout seuls de la même façon. Ça a un peu coincé pour eet (/usr/ports/devel/eet) et curl (/usr/ports/ftp/curl) que j’ai dû installer individuellement avant de relancer l’installation de e17.

C’est terminé!

Ebox 3310A – suite en FreeBSD

Je voulais tester le boîtier sous FreeBSD, c’est fait, en version 9.1 i386.

L’installation est classique si ce n’est qu’il faut utiliser une image d’installation pour clé USB, comme celle ici (memstick). Comme pour l’installation de Debian Linux, il faut copier l’image sur la clé USB avec l’outil dd :
dd if=FreeBSD-9.1-RELEASE-i386-memstick.img of=/dev/sdc
avec /dev/sdc le périphérique (visible avec la commande dmesg).

Une fois redémarré en fin d’installation, tout est fonctionnel (pour un serveur). Je vais tester avec une interface graphique…

 

Ebox 3310A

C’est les soldes!
J’ai craqué sur un tout petit PC en promo. C’est un Ebox-3310A de DMP :

Processor MSTI PDX-600 -1GHz (Fanless)
Memory 512 MB DDR2 onboard
VGA XGI Z9S with 32MB DDR2
External 15-pin D-type female VGA connector
Ethernet Interface Integrated 10/100 Mbps LAN
I/O Enhanced IDE interface, 44pin box header x 1
Type I/II Compact Flash Slot x 1
MicroSD slot (bootable) x 1
RJ-45 Ethernet Connector
External 6-pin Mini DIN for PS2 Keyboard and Mouse
Audio CM119, Line out and MIC in
USB 3 ports (USB 2.0) (2 on Front)
Power Requirement Single Voltage +5V @2A
Dimensions 115 x 115 x 35 mm
Weight 505g
Operating Termperaturet +5 ~ +50°C operating temperature
Certificate CE,FCC

 

Le processeur est une sorte de 486 DX (Vortex86DX2) tournant à 1GHz mais sans ventilateur. Le tout est épaulé par 512Mo de RAM. Rappelez-vous, les processeurs que l’on avaient à notre puberté… Mais ici en beaucoup plus rapide!

Imaginez un peu à quoi cela ressemble : un PC dans un boîtier de 11,5cm de largeur et de longueur et de 3,5cm d’épaisseur !!!
Le tout sans ventilateur, donc sans aucun bruit!

Par contre, pas de disque dur interne. Mais on peut utiliser nativement à la place une carte CompactFlash (CF) ou une carte micro SD. Perso j’utilise une carte micro SD (Class4) de 16Go.

Systèmes supportés

D’après la doc, cette configuration matériel peut supporter M$$$ Windows XP mais aussi Debian Linux ou Ubuntu Linux par exemple. J’ai essayé différentes distributions :

  1. Ubuntu Linux 12.04 LTS i386
  2. Linux Mint i386
  3. Debian Linux 7.1.0 i386

Surprise, Ubuntu et Mint nécessitent en fait un processeur i586 au minimum… Dommage pour le 486. Seule la Debian à effectivement démarrée.

Installation

La méthode pour installer un système Linux sur ce boîtier est assez simple. Il faut une clé USB de au moins la taille du CD-ROM ou DVD-ROM d’installation du système d’exploitation visé.

  1. Sur une machine Linux. Télécharger l’image ISO du système à installer, par exemple Debian Linux 7.1.0.
  2. Insérer la clé USB sur cette machine.
  3. Faire une copie brute de l’image ISO sur la clé USB :
    dd if=debian-7.1.0-i386-CD-1.iso of=/dev/sdc
    avec /dev/sdc le périphérique (visible avec la commande dmesg).
  4. Retirer la clé USB et la brancher sur le boîtier Ebox.
  5. Allumer le boîtier. Il doit trouver tout seul la clé et booter dessus comme si c’était un lecteur CD ou DVD.
  6. Si on insère une carte CF ou micro SD, on peut installer le système dessus…

Si la carte micro SD n’est pas reconnue lors de l’installation, ce qui m’est arrivé avec Debian, il faut la retirer et la placer dans un lecteur de cartes et le relier au boîtier à côté de la clé USB.

Je teste avec Xorg pour voir ce que ça donne en terme de réactivité, puis j’essayerais d’installer FreeBSD par dessus…

Documentation

Le manuel peut être trouvé par ici. Copie du manuel : EBOX-33xxA User Manual