Casper 9.8 et Bushel prêt pour El Capitan

JAMF Software a pour habitude d’avoir une version à jour le jour même de la sortie d’une nouvelle version d’OS X. La dernière version de Bushel permet d’enrôler des systèmes sous El Capitan. Casper 9.8 permet aussi cela. Il y aura certainement d’autres améliorations qui permettront d’autres fonctions. Les nouvelles fonctions de sécurité par exemple ont obligé à changer l’emplacement du binaire jamf ainsi pour les nouvelles règles d’enrôlement, afin de garder les systèmes Apple aussi sûrs que possible.

Bushel est un SaaS, il est donc disponible aujourd’hui. Casper va être mis à jour. Vous pouvez accéder aux installateurs sur votre page My Assets de JAMF Nation.

Cet article a paru sur Krypted, le 20 septembre 2015.

Bender, la solution facile pour sauvegarder OS X Serveur

bendericon_display

 

Bender est un petit utilitaire écrit par Forget Computers pour automatiser la sauvegarde de OS X Server. Il y a plusieurs façons de réaliser cette action : en utilisant Time Machine comme je l’avais montré dans cet article et maintenant avec Bender. Comme toujours avec l’action de sauvegarder, c’est l’action de restaurer qui importe !

Bender arrive sous la forme d’une archive PKG. Une fois installé, Bender créera un dossier à la racine de votre disque et sauvegardera à 22h à l’intérieur de ce dossier, les fichiers suivants :

  • Un répertoire comportant la date et l’heure auxquelles la sauvegarde s’est faite.
  • Une archive Open Directory si le serveur est configuré en maître Open Directory
  • Un fichier de sauvegarde avec les services du serveur afin de permettre la restauration des réglages ou leur importation.
  • La base de données postgres utilisée par les services Profile Manager et Wiki.

Bender fonctionne de OS X Server 10.6 à Yosemite.

Pour restaurer, votre OS X Server en cas de soucis, voici la marche à suivre :

Pour Open Directory, il suffit d’utiliser Server admin (10.7 et avant), d’aller dans la partie Open Directory, de cliquer sur l’onglet Archive, de choisir l’archive que vous voulez utiliser et de cliquer restaurer. En revanche il vous faudra connaître le mot de passe utilisé pour chiffrer l’archive, pour cela, il vous faudra aller dans le Terminal :

system_profiler SPHardwareDataType | awk ‘/Hardware UUID/{print $3}’

Il n’existe aucune option de restauration dans Server.app en 10.8 et après, il vous faut utiliser la ligne de commande :

sudo slapconfig -restoredb /path/to/your/archive.sparseimage

Pour restaurer tous les réglages OS X Server :

sudo serveradmin settings < /path/to/your-sa_backup-allservices.backup

pour restaurer un réglage spécifique :

sudo serveradmin settings < /path/to/your-sa_backup-servicename.backup

Le Terminal accepte aussi le glisser-déposer, vous pouvez donc prendre un plist dans le dossier de sauvegarde afin de restaurer son réglage.


	

Quels processus doivent être autorisés pour utiliser Daylite ?

appointments_626x442

Voici la liste des différents processus qui doivent être autorisés dans le pare-feu afin de pouvoir utiliser Daylite sur OS X. Le pare-feu se trouve dans les Préférences Système, Sécurité et confidentialité, il vous faut cliquer sur Coupe-feu et régler les processus suivants afin qu’ils acceptent les connexions entrantes pour Daylite Server Admin (ces réglages seront donc à réaliser sur l’ordinateur qui héberge Daylite Server Admin) :

  • DLAccessd : Responsable de l’authentification des clients (OS, iOS et DAV*) avec la base de données.
  • DLAttachmentd : Responsable des chargements/téléchargements des pièces jointes vers et depuis la base de données.
  • DLCardCald : Le serveur DAV de la base de données qui permet les abonnements/publications de CardDAV et CalDAV.
  • DLConfigd : Responsable du démarrage/arrêt des autres processus et du fonctionnement de l’application Daylite Server Admin.
  • DLPortsd : Responsable de la redirection automatique de ports des routeurs acceptant NAT-PNP et UPNP.
  • DLStaged : Responsable de la création de la base de données iOS sur le serveur.
  • DLTouchd : Responsable pour le chargement/téléchargement des données entre la base de données et les clients iOS.
  • postgres : La base de données du serveur responsable de l’application des changements à la base de données elle-même.

*Lexique : OS = ordinateur de bureau ou portable ; iOS = iPhone ou iPad ou Apple TV ; DAV = Distributed Authoring and Versioning, protocole soutenant tous les échanges de données pour le calendrier ou les contacts (CalDAV et CardDAV).

Si certains ou pas des processus ci-dessus sont visibles, accomplissez les actions suivantes manuellement :

  1. Ouvrer une fenêtre du Finder et naviguer jusqu’à l’emplacement suivant : Macintosh HD/Bibliothèque/Applications Support/Daylite Server (4 ou 5).
  2. Appuyer sur la touche Ctrl et cliquer sur « Daylite Server.bundle ». Choisissez « Afficher le contenu du paquet ».
  3. D’ici naviguer jusque Contents/Resources.

Les processus que Daylite Server Admin requiert pour que la base de données puisse communiquer localement/à distance seront listés ici. Garder cette fenêtre ouverte en arrière-plan. Pour ajouter ces processus au pare-feu, vous aurez besoin de :

  1. Aller dans Préférences Système. Choisissez Sécurité et confidentialité, puis Coupe-feu. Cliquer sur le cadenas afin de vous authentifier. Cliquer sur Options de coupe-feu…
  2. Dans la fenêtre suivante, cliquer sur le bouton « + »
  3. Maintenant depuis la fenêtre du Finder que vous avez gardé en arrière-plan, glisser-déposer les processus dans la fenêtre de coupe-feu. Cela vous permettra de voir la liste des processus.
  4. Ensuite, ajouter les processus suivants : DLAccessd, DLAttachmentd, DLCardCald, DLConfigd, DLPortsd, DLStaged, DLTouchd & postgres (ce dernier que vous trouverez à cet endroit : /Bibliothèque/Application Support/DayliteServer 4/Daylite Server.bundle/Contents/Frameworks/MCDatabaseServer.framework/Versions/A/Resources/postgresql/bin).
  5. Cliquer sur « OK » pour confirmer vos changements. Arrêter et redémarrer votre ordinateur pour que le pare-feu prenne vos réglages en compte.

Lancer Daylite Server Admin et confirmer qu’il est bien en marche.

Cet article a paru sur le site de MarketCircle dans leur base de connaissances.

Nouveau site de NausicaMedia (bientôt !)

20121023-230735.jpgNous travaillons d’arrache-pied à une nouvelle version du site de NausicaMedia. Apple a considérablement évolué ces dix dernières années et NausicaMedia aussi. Et NausicaMedia a eu 10 ans cette année. Nous épousons peu à peu la philosophie d’Apple à savoir privilégier les petites entreprises, répondre aux demandes de ces petites entreprises avec les outils tel que le Mac Mini, apporter des solutions comme la gestion de temps et de projet, les formations liées à ces solutions et mettre en avant les formidables logiciels dont nous nous occupons : Daylite, Billings, Lightspeed et les produits Kerio (Workspace, Connect, Operator et Control). Nous allons limiter considérablement les activités annexes comme la vente de stockage. Nous ne garderons que la vente d’Active Storage qui reste un partenaire privilégié, Object Matrix, tout autant privilégié, et ATTO Technologies.

 

Débusquez le Dock !

Mettons que vous vous connectez par Remote Desktop à un système où le Dock est invisible, en mode cachée ! Pourquoi cache-t-on son Dock sur un serveur ? Bon, ne cherchez pas, mais si vous vous connectez à un système avec le Dock masqué, alors j’ai cette ligne enregistrée dans mes modèles :

defaults write com.apple.dock autohide -bool false; killall Dock

En écrivant une clé pour le masquage qui est négative (false) dans com.apple.dock pour l’utilisateur courant, je n’ai plus à me préoccuper d’un Dock qui se cache. Je dois « tuer » (kill) le Dock.

Une fois que j’ai fini de travailler avec ce système, je peux faire réapparaître le Dock à nouveau :

defaults write com.apple.dock autohide -bool true; killall Dock

Ou bien, à la place je peux utiliser Command-Option-d quand je me connecte à un système avec Remote Desktop et recommencer la même commande quand je me déconnecte.

 

Cette article a paru sur Krypted de 318, le 30 août 2012.

Installer un certificat d’autorité sur Astaro

Sur une appliance Astaro, pardon Sophos, vous pouvez installer un certificat signé par une autorité afin de sécuriser certains services, comme notamment le Web Application Security. Plus encore, il vous sera possible de créer par le Web Application Security un portail d’entrée SSL pour tous les serveurs Web hébergés derrière votre pare-feu. Par exemple, si vous avez un webmail qui s’exécute sur le port 80 et n’est donc pas sécurisé (et qui sera classé dans les Real WebServers), vous pouvez le protéger en créant un Virtual WebServer qui lui sera en SSL. Ce serveur Web virtuel sera joué par l’UTM sur lequel vous aurez installé le certificat SSL signé. Assez cool, en fait.

Pour commencer, il faut créer le CSR (Certificate Signing Request). Vous pouvez le faire sur l’Astaro/Sophos directement si vous le voulez. Loguez-vous en loginuser, c’est suffisant. Et vous pouvez le faire sur votre Mac aussi évidemment, de toute façon il faudra SCP le fichier entre l’Astaro et le Mac ou l’inverse. La commande pour générer le CSR est :

openssl req –config ./openssl.config –new –newkey rsa:2048 –out server.key

Ensuite, il vous demande les informations habituelles (Organization, City, etc.). Attention le Common name doit être le domaine pour lequel vous demandez le certificat.

Ensuite vous devrez aller sur le site d’une autorité de certificat (GoDaddy étant de loin les plus sexy si vos critères sont purement esthétiques), là vous soumettrez votre CSR (attention comme toujours aux espaces non voulus dans les certificats). L’autorité de certificat, vous donnera ensuite un certificat et un ou deux certificats intermédiaires, c’est de mise maintenant afin d’accroitre la sécurité. Enfin, vous ferez de ces différents fichiers un fichier pkcs#12, le format est primordial pour l’Astaro.

openssl pkcs12 -export -out /Users/me/certificate/certificate.pfx -inkey /Users/me/certificate/server.key -in /Users/me/certificate/monnom.de.domaine.crt -certfile /Users/me/certificate/bundle.crt

Dans cet exemple, vous noterez que les certificats intermédiaires sont à la fin de la commande. Le CSR et le certificat correspondant au nom de domaine en premier.

Normalement, OpenSSL vous demande le mot de passe que vous avez choisi pour le certificat. Il ne vous reste plus qu’à copier le CSR sur l’Astaro si vous l’avez créé sur votre Mac, par exemple en suivant la commande précédente :

scp -r -p /Users/me/certificate/server.key loginuser@192.168.x.x:/home/login

On vous demande le mot de passe, et hop, le fichier CSR (en l’occurrence ici un .key) est copié sur l’Astaro.

Il ne vous reste plus qu’à vous loguer sur l’interface WebAdmin et dans /Remote Access/Certificate Management/Certificate Authority vous allez importer le certificat signé. Un redémarrage de l’UTM est préférable.

Ensuite vous pourrez sélectionner votre certificat pour le Mail Security ou pour le Web Application Security ou pour d’autres services encore.

Bonjour, Ruby !

Vous allez créer un fichier que vous appellerez : bonjour.rb et le coller comme suit :

#!/usr/bin/env ruby
puts ‘Bonjour’

Rendez le exécutable pour votre utilisateur. Puis lancez le fichier (en partant du principe qu’il est sur votre Bureau et que votre utilisateur s’appelle admin) :

/Users/admin/Desktop/bonjour.rb

Passez une bonne journée !

Adaptateur série, écran et OS X…

Quelquefois il faut recourir à l’adaptateur série de Keyspan (le problème se pose particulièrement, encore qu’un peu moins que par le passé, avec certains périphériques de Point de vente) pour gérer les appareils disposant d’un port série. Si vous détestez l’idée d’ouvrir une session console avec Zterm (qui n’est plus mis à jour à ma connaissance) ou de redémarrer sur une machine virtuelle Windows, vous trouverez une nouvelle solution avec goSerial qui rend le Keyspan série vers usb adaptateur connecté avec un câble modem null utile. Vous serez au paradis de la ligne de commande en moins de temps qu’il n’en faut pour le dire. GoSerial peut être téléchargé ici.

Vous pouvez aussi utiliser la commande screen. La commande screen ouvrira un terminal virtuel et vous offre les fonctionnalités d’un bon vieux DEC VT100. Screen est l’un des outils très efficaces quand vous travaillez avec de multiples serveurs en même temps, ou avec plusieurs sessions VT comme c’est le cas parfois.

Pour ouvrir une session screen dans un APC :

screen /dev/tty.KeySerial1 2400

Pour ouvrir une session screen dans un Qlogic :

screen /dev/tty.KeySerial1 9600

Pour ouvrir une session screen dans un RAID Promise :

screen /dev/tty.KeySerial1 115200

Pour voir vos sessions screen actives :

screen -ls

Il vous donnera des screen similaires à :

6077.ttys001.krypted2 (Detached)

Quand vous listez les screens vous noterez que certains peuvent être « détachés » (ie. déconnectés). Vous pouvez aussi démarrer un screen détaché. Pour se faire, utilisez la drapeau -d quand vous invoquez le screen (ou bien -D si vous ne voulez pas que le process ait les ressources fork). Si vous désirez attaché un screen qui a été détaché, -R vous y reconnectera automatiquement. Il peut être utile d’avoir aussi des noms plus amicaux quand vous travaillez avec de multiples sessions screen. Pour se rattacher à une session screen attachée, utilisez le -x.

screen -x 6077.ttys001.krypted2

Pour founir une façon aisée de se souvenir d’un nom, utilisez l’option -s. Pour commencer une session screen appelé simplement Qlogic :

screen -s Qlogic /dev/tty.KeySerial1 9600

En créant un fichier .screenrc dans votre dossier utilisateur, vous pouvez aussi configurer de multiples options pour screen.

Si la commande screen est très utile pour se connecter à des appareils externes par la ligne de commande, c’est seulement une petite partie de ce que screen peut faire. Ceux qui utilisent le Terminal livré avec OS X ont utilisé des environnements qui fonctionnent à l’instar de screen auparavant. Vous pouvez ouvrir des onglets et ainsi laisser une session travailler tranquillement en arrière-plan (en train de tailer des logs par exemple…), dans une autre session vous lisez une page man ou démarrez un autre process.  Screen est capable de prendre toutes ses fonctionnalités et des les inclure dans une session du Terminal pour des environnements qui ne disposent pas d’un gestionnaire de ligne de commande aussi interactif. Par exemple, si vous sshez un hôte linux dans un data center, vous devrez initiez deux sessions dans cet hôte afin d’avoir deux sessions screen concurremment ouvertes, mais vous n’aurez besoin que d’une session ssh (et vous pouvez être limité à une seule) et toujours avoir la flexibilité que vous avez avec l’écran de Terminal, dans une seule fenêtre peut-être.

Par exemple, disons que vous sshez dans un serveur RHEL (Red Hat) et que vous invoquez l’éditeur emacs :

screen emacs prog.c

Maintenant disons que vous tapez quelques lignes d’un nouveau fichier de configuration samba et que vous voulez exécuter la commande tail sur les lots de samba pour être sûr que vous augmentez les correctes options :

screen tail -f  /var/logs/samba/log.smbd

Pour revenir à emacs :

screen -R

Il y a encore plein d’autres choses que vous pouvez faire avec screen et il ne vous reste plus qu’à les découvrir. Que du bonheur en perspective !

Cet article a paru sur Tech Journal de 318, le 9 juin 2011.

Script basique pour créer un miroir

Migrer un volume sur un disque miroir est souvent la première chose que vous faites vers un serveur tout frais sorti de sa boîte. Ce script lit les données des deux volumes et crée un miroir fondé sur ces données, il est facilement utilisable avec DeployStudio ou une gestion de flux de scripts :

#!/bin/bash
#Converts a standalone disk to a RAID 1 and automates adding the second member.
clear
echo -n « Enter the name of the first volume to be placed in the mirror:  »
read disk_1
export disk_1nv=`echo $disk_1 | sed ‘s:/Volumes/::g’`
echo  »
creating the $disk_1 mirror »
sleep 2
export disk_1slice=`diskutil list « $disk_1 » | grep -m 1 « $disk_1nv » | grep -o « disk… »`
diskutil appleRAID enable mirror $disk_1slice
echo -n « Enter the name of the second volume to be placed in the mirror:  »
read disk_2
export disk_2nv=`echo $disk_2 | sed ‘s:/Volumes/::g’`
export disk_2root=`diskutil list « $disk_2 » | grep -m 1 « $disk_2nv » | grep -o « disk. »`
export raid_uuid=`diskutil info $disk_1slice | grep « Parent RAID Set UUID » | sed -e ‘s_Parent RAID Set UUID:__g;s_^[ t]*__’`
diskutil AppleRAID add member $disk_2root $raid_uuid

 

 

Cette article a paru sur Tech Journal de 318, le 12 septembre 2011.

mDNSResponder, mDNS et dns-sd

Le processus qui rend Bonjour possible est mDNSResponder, il est situé dans /usr/sbin. /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist invoque mDNSResponder au démarrage (boot). L’une des façons les plus faciles pour circonscrire un problème que vous pensez lié à Bonjour est de désactiver temporairement mDNSResponder :

launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Pour le réactiver :

launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

En addition de l’activation et la désactivation de mDNSResponder, quand vous cherchez à résoudre un problème vous devriez toujours regarder les logs. Les événements de logs sont enregistrés à la manière syslog et sont disponibles dans la Console. Ils sont situés à /var/log/system.log. En recherchant les erreurs liés à mDNSResponder dans system.log peut aussi être fait en utilisant le Terminal :

cat /var/log/system.log | grep mDNSResponder

Ou interactivement, vous pouvez chercher les erreurs comme elles apparaissent :

tail -f /var/log/system.log | grep mDNSResponder

Afin d’avoir plus d’informations, envoyer une commande SIGUSR1 à mDNSResponder en utilisant killall :

sudo killall -USR1 mDNSResponder

Pour voir les informations au niveau des paquets dans system.log, envoyez un SIGUSR2 à mDNSResponder :

sudo killall -USR2 mDNSResponder

Pour copier l’état dans system.log :

sudo killall -INFO mDNSResponder

mDNSResponder utilise Mach sur le port 5123. Chaque service qui a Bonjour implémenté s’enregistrera avec mDNSResponder sur ce port et pourra être appelé. On retrouve le mécanisme des enregistrements DNS avec un préfixe pour le service et un suffixe pour le type TCP/IP. Par exemple, IPP printing est _ipp._tcp., Apple Events distants est -EPPC._tcp., Remote Frame Buffer est _rfb._tcp., SSH est _ssh._tcp., SFTP est _sftp-SSH._tcp, Partage de Page Web est appelé _home-sharing._tcp, le partage iTunes est _afpovertcp._tcp. et AFP est _afpovertcp._tcp. Un exemple de trafic UDPserait _net-assistant._udp.

Si vous désirez voir quel service est enregistré (et enregistrer des sercies si vous contruisez un réseaux de services qui le nécessitent), utilisez la commande mDNS. L’option -B pour mDNS peut être utilisé pour requérir un espace de noms. Par exemple, l’espace de noms _afpovertcp._tcp peut être appelé en utlisant la commande suivante :

mDNS -B _afpovertcp._tcp

Le résultat serait le suivant, il montre toutes les instances vivantes que le système voit :

Timestamp     A/R Flags Domain                   Service Type             Instance Name

22:53:15.988  Add     0 local.                   _afpovertcp._tcp.            Krypted MacBook Air

Pour enregistrer des services avec Bonjour, il faut utiliser l’opérateur -R et pour chercher des information au sujet d’une instance donnée d’un service utilisez l’opérateur -L. L’opérateur -L vous permet d’obtenir beaucoup d’informations à propos d’un objet donné. Une fois que vous avez trouvé l’objet en utilisant l’option -B, vous aurez le Domaine et le nom de l’instance.  Cela permettra à mDNS d’obtenir IPv4, IPv6, le numéro de port, et les enregistrements TXT, qui fournissent une bande d’options, tel que les informations des imprimantes et autres services et objets. Par exemple, Mac OS X  génère aussi automatiquement des informations au sujet des imprimantes, fondés sur les informations insérées dans le système au sujet de ces imprimantes, tel que le support d’agrafage (Staple=F), le support de collation (Collate=T), et l’url de l’administrateur CUPS (adminurl:http///<computer name>:631/printers/<printername>). D’autres services comme le partage personnel fera un usage important du nom de la machine ou de l’ID de la bas de données d’iTunes.

Pour permettre à mDNS d’utiliser une sortie étendue, utilisez la commande mDNS, avec l’option -L, suivi du nom de l’instance (le nom de l’instance est défini par le service à l’enregistrement de l’instance et peut être le nom de l’imprimante, le nom de l’ordinateur ou ce que le vendeur choisit d’utiliser). Après le nom de l’Instance, mettez l’espace d’adressage (le type de service) et ensuite le domaine donné précédemment lors de l’utilisation de l’option -B. Par exemple, pour regarder une HP 8565 partagé depuis le MacBook Air de Krypted appelé « HP 8565 Krypted MacBook Air », j’utilise :

mDNS -L « HP 8565 Krypted MacBook Air » _ipp._tcp local.

D’autres opérateurs qui ne sont pas sur la page man, mais sont disponibles, inclut _E pour trouver des domaines d’enregistrement recommandés, -F pour trouver des informations au sujet des domaines navigués, -A pour tester des enregistrements mis à jour, -U pour tester des enregistrements TXT, -N pour tester des mises à jour d’enregistrements NULL, -T pour tester des ajouts d’enregistrements, -M pour de multiples enregistrements et -I pour mettre à jour immédiatement des enregistrements plutôt que d’obliger à travailler à travers la mémoire cache. Disponible aussi pour appelé est la commande dns-sd, utilisant la syntaxe identique à mDNS et avec la même sortie aussi. Les données du système ne change pas toujours dynamiquement. Pour recharger les informations après des changements, utilisez l’option flushcache de dscacheutil :

dscacheutil -flushcache

 

Cet article a paru le 27 mars 2011 sur le site Krypted