Archive for Réseau

Mavericks et le transfert de fichiers qui ne finit jamais

Je viens de rencontrer sur le serveur d’un client un bug très curieux et particulièrement agaçant1. Après avoir installé un nouveau Mac mini en version serveur, j’ai déployé dessus l’excellent Rumpus, qui propose une interface super simple pour télécharger des fichiers en FTP, web, SFTP… Un logiciel éprouvé et à l’excellent support technique.

Sauf que là, quand on essaie de transférer des fichiers fichiers de 50 Mo ou plus depuis Rumpus, aucun ne s’achève. Le transfert commence correctement, puis…semble suspendu indéfiniment. Le téléchargement bloque à des endroits différents, et tout se passe comme si plus aucun paquet n’arrivait… sans que la liaison soit coupée. Mieux encore (ou pire, c’est selon), on peut continuer à contrôler le serveur à distance, les autres services fonctionnent correctement, et le même transfert en LAN ne pose aucun souci.

Après avoir mis hors de cause la ligne SDSL2 ou le reste de l’environnement réseau ou même Rumpus, puisque le souci arrivait également avec un transfert via scp, j’ai réussi à trouver un début de piste dans les Internets. En particulier, cette discussion sur le forum de JAMF (développeur de Casper) où est abordée une nouvelle fonction de Maverick : la validation ARP, expliquée plus en détails sur un blog de Cisco. Pour corriger le problème, il faut donc désactiver les réponses unicast ARP de Mavericks, en modifiant le fichier /etc/sysctl.conf (qui n’existe pas forcément par défaut) et en y rajoutant la ligne suivante :

net.link.ether.inet.arp_unicast_lim=0

Vous pouvez aussi télécharger un script shell qui fait ça fort bien pour vous sur Github. Téléchargez le script, modifiez les autorisations pour qu’il puisse être exécutable (chmod 755), et lancez le avec sudo.

Ceci fait, redémarrez votre Mac… Et hop, plus de souci de téléchargement à travers le WAN ! Merci qui ? Merci les Internets !

Attention : n’utilisez ce script QUE si vous avez des problèmes lorsqu’on vient télécharger depuis chez vous par exemple (téléversement, ou upload). Le patch en question concerne surtout OS X dans des conditions bien spécifiques. Ne l’appliquez pas « juste pour améliorer votre vitesse de téléchargement à Internet », ça ne servira sûrement à rien :-)

  1. Durant cette période de l’année où je suis particulièrement chargé, il m’a fallu presque cinq jours pour trouver la solution…
  2. Merci au support de Stella Telecom d’ailleurs, plutôt efficace.

Tester les périphériques réseau avec Safari et AppleScript

J’ai eu il y a quelques jours un souci qui arrive parfois à un administrateur réseau : impossible de retrouver un périphérique réseau (ici, un switch) via son adresse IP. En effet, l’appareil a été configuré en DHCP à l’origine, et personne n’avait modifié son adresse IP pour lui en attribuer une fixe… Du coup, pas forcément pratique à retrouver, sauf à installer un utilitaire sous Windows. Le moyen le plus simple était alors d’ouvrir l’interface web de configuration de l’appareil… mais tester 254 adresses IP ne me semblait pas la plus rapide des solutions. À moins d’automatiser le processus…

Attendez, vous avez dit automatiser ? Bon sur, mais c’est bien sang, AppleScript, à la rescousse ! J’ai donc concocté un petit script appelé sobrement Tester plage web avec Safari permettant d’ouvrir une page web pointant vers chaque adresse IP du sous-réseau local, l’une après l’autre, sur une plage de 256 adresses IP (correspondant à un masque de 255.255.255.0). Vous lancez le script, vous appuyez sur Exécuter, et un dialogue vous proposera de taper une adresse IP en utilisant par défaut votre plage d’adresse IP locale, puis de lancer la recherche. 

Tester IP

Pour le moment cette version ne teste que le port 80, mais je prévois une nouvelle version qui testera aussi en plus le port 443 (SSL) si vous le souhaitez.

Amusez-vous bien :-)

Télécharger le script (62 Ko)

Mini-armoire informatique, made in IKEA

Je recherchais depuis quelques mois une solution pour mieux organiser mon bureau. Ma problématique : beaucoup de câbles, évidemment, un switch, une Time Capsule, un Mac mini de test, et pas mal d’écrans sur le bureau.

J’avais donc envie d’un petit meuble pour ranger tout ça, et j’ai finalement trouvé par hasard mon bonheur chez notre suédois préféré (ahem). Un petit caisson à tiroirs appelé LENNART1 et qui coûte en plus fois rien : 9,99€.

En quoi ce meuble est bien ? Déjà, il propose trois tiroirs mobiles, et avec un espacement suffisant entre les tiroirs pour laisser passer des fils devant et derrière. Ensuite, les tiroirs sont grillagés, il n’y a donc aucun problème de ventilation pour le Mac mini. Enfin, il est doté de deux roulettes pour faciliter son déplacement lors du débranchement/rebranchement de câbles. Et il se monte en 15 minutes, si on est pas trop mauvais avec un tournevis.

Le résultat, le voici :

J’ai donc du haut vers le bas :

– un Mac mini, relié en Ethernet ;

– Un AppleTV. Éteint. Depuis… longtemps, en fait.

– Un switch Netgear Gigabit et manageable, tant qu’à faire ;

– Et la Time Capsule, qui sauvegarde vaillamment toute la maison. Elle marche d’ailleurs plutôt bien, et est très silencieuse depuis que j’ai changé son disque dur.

Tout ce petit monde est bien caché sous mon bureau, et j’ai même un câble Ethernet déjà connecté au cas où j’ai besoin de connecter rapidement une bécane pour lui refaire une santé. Tout ça avec une occupation au sol minimale et pas de vibration particulière. Et quand y’a besoin d’accéder à l’arrière, ben… c’est sur roulette, quoi, et les tiroirs s’ouvrent facilement. Un investissement minime, et plein de place récupérée sur mon bureau, moi je dis formidable.

Bientôt dans cette rubrique : comment écrire le mot ORDINATEUR sur votre Mac avec des lettres argentées et l’installer sur une moquette taupe, sous la houlette de Valérie Damidot ! Yeah !

  1. ménager

Mac OS X : comment sélectionner automatiquement le PPD d’un copieur multi-fonction ?

Je déteste les copieurs multi-fonctions. Au moins, vous êtes prévenu : si vous lisez des gros mots, ça ne sera pas ma faute.

Je viens de me battre pendant quelques jours à essayer de faire fonctionner correctement un copieur BizHub 350 de Konica Minolta avec Mac OS X 10.6. Car, voyez-vous, le constructeur n’a pas encore eu l’heurt de proposer un pilote à jour pour ce système sorti depuis maintenant 14 mois… Pas grave, hein, on va se débrouiller, comme d’habitude !

Donc, après avoir trouvé avec le (très gentil) technicien de Konica le bon driver (C-401, parce qu’il y a un Fiery derrière, amusant non ?), puis sélectionné la bonne file d’attente (« print », là c’est facile, mais attention, ça dépend du copieur), il restait à trouver comment sélectionner automatiquement le bon driver. Car Mac OS X dispose d’une petite subtilité pour choisir automatiquement le driver. Il faut, dans l’ordre :

– que le copieur renvoie son nom de modèle (ModelName) à la connexion avec le Mac ;

– Qu’il existe dans un dossier PPDs (principalement dans /Library/Printers/) un PPD compressé au format .gzip et intitulé avec le ModelName du copieur.

Dans l’ensemble, ce mécanisme marche… pas trop mal. Mais que se passe-t-il si le développeur, particulièrement incompétent, fait n’importe quoi ?

Et ben on se prend bien le chou. Car il faut alors trouver le modèle renvoyé par le copieur, ce qui n’est pas totalement évident… Dans mon cas, j’avais un PPD qui s’appelait Fiery X3e 22C-KM PS v2.0 eu. Pratique non ? Le ModelName dans le PPD indiquait quand à lui Fiery X3e 22C-KM PS Color Server v2.0 eu. Problème : quelque soit le nom utilisé, impossible d’avoir le PPD sélectionné automatiquement. Ce qui veut dire que le copieur ne se présente pas comme indiqué dans le PPD.

Et bien, soit ! Analysons un peu le traffic IP entre le Mac et l’imprimante au moment de la connexion. Tapons donc dans le Terminal :

sudo tcpdump -nnnvi en0 host IP_Copieur

Ici, en0 désigne le nom BSD de votre connexion Ethernet. La plupart du temps, c’est en0 si vous êtes en Ethernet ou en1 si vous utilisez Airport. En cas de doute, vérifiez ce nom dans Informations Système > Réseau. Et vous remplacez évidemment IP_Copieur par l’adresse IP ou le nom DNS de votre copieur.

Maintenant, ouvrez la préférence Système Imprimantes et Fax, appuyez sur le bouton +, puis sur le bouton IP pour faire une configuration via IP, et tapez l’adresse du copieur, ici 192.168.1.51.

Aie… « Imprimante PostScript générique » ! Pas vraiment ce qu’on veut… Il est temps maintenant de regarder ce que ça donne du côté de tcpdump Beaucoup de bla-bla, mais une ligne qui m’intéresse :

23:15:06.354258 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 92)    192.168.1.51.161 > 192.168.1.2.59013:  { SNMPv1 { GetResponse(49) R=1536459456  .1.3.6.1.2.1.25.3.2.1.3.1= »C350″ .1.3.6.1.2.1.1.6.0= » » } }
Ne voyez-vous donc pas ? « C350 », qu’elle dit, la dame ! Il faut donc :
– Décompresser le PPD ;
– Remplacer à l’aide d’un éditeur de texte le ModelName dans le PPD par C350 ;
– Renommer ce fichier PPD décompressé en C350 ;
– Recompresser le PPD au format Gzip (avec la commande gzip, par exemple) ;
– Replacer le PPD C350.gzip dans le dossier /Bibliothèque/Printers/PPDs/Contents/Resources/
Saisissons  à nouveau l’adresse du copieur…
Victoire !!! Attention cependant à bien mettre le bon nom de file d’attente avant d’enregistrer : par exemple, pour ce modèle de copieur, c’est « print », mais sur d’autres, ça peut être « lp », ou rien, ou autre chose…
Et au passage, petite info : si vous utilisez les préférences gérées (MCX) pour appliquer des imprimantes par défaut à vos postes, méfiez-vous de ne pas laisser de caractère spécial ou accentué dans le nom de l’imprimante : vous risqueriez alors de rajouter des nouveaux doublons à chaque ouverture de session !

TechnoIT fait le point sur Apple en entreprise

J’ai été invité il y a quelques jours par Lionel du blog TechnoIT à participer à une de ses émissions diffusée en balladodiffusion©™® [1]. Et imaginez-vous qu’à peine enregistrée hier soir, l’émission est déjà en ligne ! Un grand merci à Lionel donc pour ce débat de haute volée sur l’implication d’Apple en entreprise. Vous verrez qu’on y parle vraiment de tout : de Mac, de Mac OS X Server, d’iPad, d’iPhone, de déploiement, d’intégration… L’émission s’écoute donc sur le blog de TechnoIT, et vous pouvez vous abonner directement à son podcast ici ! Et vous pouvez suivre TechnoIT sur Twitter.

  1. Je sais, c’est ridicule.

VPN et Open Directory : quand ça coince

Il arrive (trop régulièrement) que, pour une raison inconnue (appelons-ça un bug, c’est plus simple), des utilisateurs qui s’authentifient à l’aide d’un compte Open Directory sur un serveur VPN tournant sous Mac OS X Server ne puissent plus se connecter. Il leur est alors répondu que le serveur VPN ne répond pas correctement. Curieusement, les comptes locaux du serveur arrivent toujours à se connecter.

Si cela vous arrive, tentez tout d’abord simplement de redémarrer le service Open Directory. Pour cela, le plus simple est de cocher la case Activer SSL dans Server Admin > Open Directory > Réglages > LDAP. Enregistrez la modification, puis décochez la case et enregistrez à nouveau immédiatement.

Si cela ne suffit pas, il faudra peut-être réinitialiser un compte spécifique du serveur. Pour cela :

– Ouvrez le Gestionnaire de groupe de travail ;
– Dans le menu Présentation, cochez Afficher les fiches système ;
– Dans la liste des utilisateurs Open Directory (branche /LDAPv3/127.0.0.1), cherchez l’utilisateur de UID 57 : son nom est VPN MPPE Key Access User.

– Sélectionnez-le, et… supprimez-le.
– Stoppez le service VPN (avec Server Admin, ou en utilisant la commande sudo serveradmin stop vpn.
– Ouvrez le Terminal, et tapez la commande suivante :
sudo /usr/sbin/vpnaddkeyagentuser /LDAPv3/127.0.0.1
Validez en tapant votre mot de passe d’administrateur.
– Redémarrez le service VPN.

Si tout va bien, cela recréera la fiche VPN MPPE Key Access User et vos utilisateurs Open Directory pourront enfin se connecter en VPN.

Sous les (pa)VPN, la plage (IP)

C’est l’été, période propice aux tests… Alors voici un petit article technique, ça faisait longtemps hein ?

Depuis quelques années, les technologies VPN ont permis de faciliter l’accès à distance aux réseaux des entreprises. Petit rappel rapide de la technologie : en se connectant à l’aide d’un client VPN, un ordinateur situé à l’extérieur du réseau d’une entreprise établit un tunnel sécurisé vers un serveur VPN et ainsi se connecter au réseau de l’entreprise comme s’il s’agissait d’une connexion locale.

Dans l’absolu, cette technologie est géniale. Pour quelqu’un d’assez mobile comme moi, elle permet de me connecter aux ordinateurs des réseaux de mes clients pour corriger rapidement un dysfonctionnement ou mettre en place un service. Dans la pratique, elle est la plupart du temps aussi efficace qu’annoncée en théorie.

Il y a cependant un point parfois gênant. Quand vous configurez un routeur, il est par défaut configuré sur la plage 192.168.0.1/24 ou 192.168.1.1/24. Et on la laisse par défaut sur cette plage, sans se poser de questions. Et on monte donc son réseau sur cette plage, en se disant que ça va bien youpi. Et à mon goût, c’est une erreur.

En effet, lorsqu’un client VPN se connecte sur votre réseau, il va se voir attribué une adresse IP privée de votre plage distante. Mais que se passe-t-il si ce client est déjà connecté côté LAN sur un réseau utilisant la même plage que la plage distante ?

Voyez-vous où se trouve le problème ?

Cas concret : ma machine est sur un réseau en 192.168.1.1/24. Elle a l’adresse IP 192.168.1.2. Maintenant, je me connecte sur un réseau VPN dont la plage privée est également 192.168.1.1/24. Que se passe-t-il si, lors de la connexion distante, vous devez vous connecter vers un serveur en 192.168.1.100 ? Est-ce que votre client va devoir chercher cette adresse sur son réseau LAN, ou sur le réseau VPN ?

C’est là qu’il faut être futé. Car si on ne fait pas attention, boum, on se retrouve avec une connexion qui se fait, mais des postes distants inaccessibles. La meilleure solution est d’utiliser une plage réseau inutilisée d’habitude. Vous avez là l’embarras du choix, moi par exemple j’utilise une plage en 10.0.254.0/24 (et je vous interdis d’utiliser la même, non mais). Le tout est d’avoir une plage qui risque peu d’être utilisée en dehors de votre entreprise, 192.168.192.0, 10.0.77.0, 172.16.25.0… Vous choisissez. Mais PAS les plages par défaut !!!

Avec Mac OS X Server comme serveur VPN, il y a quelques astuces qui permettent cependant de limiter la casse sans changer tout le réseau. La première est d’ajouter dans les réglages du service VPN (avec Server Admin) la définition de votre réseau local. Ça permet au poste distant de mieux retrouver ses petits.

Ma plage est en 10.0.254.0, je l'ai donc définie comme plage privée dans mon VPN.

Une autre idée : dans les réglages du VPN côté client, vous pouvez forcer à envoyer tout le trafic réseau sur la connexion VPN distante. Attention : cela signifie que vos périphériques locaux ne fonctionneront plus…

En envoyant tout le trafic sur la connexion distante, vous augmentez les chances d'accéder à vos périphériques distants.

Voilà, vous savez tout. Mais vraiment, vraiment, si vous souhaitez limiter la casse, je vous invite à changer votre plage réseau si ce n’est pas déjà fait. Certes, cela demande une certaine planification pour les parcs importants, mais cela vous simplifiera certainement la vie dans le futur…

Comprendre et mettre en place Wide Area Bonjour

Yoann Gini a mis en ligne sur son blog quatre exceeeeeellents articles pour implémenter la technologie Wide Area Bonjour avec Mac OS X Server :

Wide Area Bonjour – Introduction et données statiques
Wide Area Bonjour – Une zone modifiable par tous
Wide Area Bonjour – Un peu plus loin dans l’enregistrement
Wide Area Bonjour – Authentification des clients par secret partagé

Et à quoi sert Wide Area Bonjour ? Principalement trois choses :
– Permettre de voir un périphérique sur le réseau dans une zone prédéfinie ;
– Rendre visible des services sur le réseau à l’aide du DNS, y compris à travers Internet ;
– Permettre à des périphériques du réseau d’ajouter leurs propres informations dans le service DNS Bonjour, fort utile là encore pour retrouver des périphériques à distance.

Une technologie magique, que Yoann a décortiqué avec talent, et vu le peu de docs, c’était pas gagné… Bravo à lui !