Microsoft mon amour !

Et non, ce n'est pas une déclaration ! J'ai longtemps été in love avec Microsoft, mais comme on le sait, les histoires d'amour finissent souvent mal ! Blague à part, en imposant d'abord Exchange dans les entreprises, Microsoft telle une pieuvre avait bien préparé le terrain afin que celles-ci migrent vers Exchange Online, une des briques de la méga suite 365. Le résultat est qu'aujourd'hui la domination est quasi totale, domination que les autres acteurs ont bien du mal à concurrencer. Bien ou pas, ce n'est pas l'objet de cet article, par contre cette domination devrait imposer un devoir d'exemplarité, et force est de constater que ce n'est pas toujours le cas, loin s'en faut !

En devenant l'acteur majeur de la messagerie d'entreprise, Microsoft est également devenu un acteur majeur du spam. Face à cette déferlante certains acteurs moins conséquents n'ont d'autre choix que d'imposer régulièrement le blocage des adresses IP de Microsoft, une pratique certes discutable, mais également adoptée par Microsoft lui même pour son service grand public Hotmail (comme on peut le lire 1 | 2 | 3 )

Dans la pratique on se retrouve avec une messagerie professionnelle incapable d'envoyer des messages vers certaines destinations, @free.fr et @orange.fr par exemple, mais pas que. La situation peut se débloquer toute seule et alors les messages prennent du retard, ou sont simplement renvoyés à l'expéditeur via un NDR.

L'un de nos collègue, Marc, a eu l'opportunité d’échanger avec le responsable de la messagerie chez Free et il lui a posé la question :

Pensez vous qu’il puisse être envisageable d’exploiter d’autres mécanismes permettant un filtrage avec une granularité plus fine (genre trio DKIM, SPF, DMARC) ?

    • Non, pas à ce jour et probablement pas dans un futur proche.
    • Le premier problème est que la situation dans laquelle vous êtes ne concerne qu'Office365 et aucun autre hébergeur de messagerie. Il y a bien des problèmes avec Gmail mais les solutions techniques mises en place chez eux n'ont rien à voir avec celles d'Office365 et les dommages collatéraux en sont drastiquement réduits.
    • Le second problème est que si nous devions basculer sur une réputation par domaine en nous basant sur les signatures DKIM, il nous faudrait également prendre en compte les sceaux ARC (signature de l'intermédiaire technique) et qu'ici, il y a un sceau ARC sur microsoft.com sur les mails sortant d'Office365 et qu'il y a un risque conséquent pour que ce soit toute la plateforme Office365 qui se retrouve bloquée.
    • Le troisième problème est que nous avons pu constater ces dernières années des campagnes de spams expédiées au travers de comptes compromis. Sur certaines journées en décembre dernier, c'est plus de 1500 domaines qui participaient ainsi aux envois rien que pour Office365. Il est délicat de mettre en place une whiteliste concernant un domaine ou un compte car cela revient à retirer toutes nos protections alors que nous gérons pas ce domaine ou ce compte.

Dans ces conditions et puisque Microsoft ne réagit pas plus, il faut trouver un contournement qui va nous permettre de rerouter les messages destinés aux domaines qui pratiquent de tels blocages. D’aucuns diront que continuer à utiliser en 2022 un compte de messagerie chez un FAI n’est pas une bonne idée, mais peu importe, dans le cadre d’une relation commerciale on ne commence pas par expliquer la vie au client, mais à entretenir la relation avec lui et ainsi lui apporter des solution viable. On est tous d'accord, on ne devrait pas avoir à apporter une telle solution !

Contournement

Sur Microsoft 365, Exchange Online plus précisément, nous allons utiliser une règle et un connecteur pour dérouter les messages destinés au domaine free.fr  et orange.fr vers un serveur SMTP externe qui va servir de relais. S’il existe bien des services de relai SMTP sur Internet, ces services nécessitent soit une authentification, soit une restriction sur une adresse IP. Problème, il n’est pas possible de s’authentifier sur un connecteur sortant, et Microsoft utilise une multitude d’adresses IP sur ses serveurs SMTP.

*.protection.outlook.com : 40.92.0.0/15, 40.107.0.0/16, 52.100.0.0/14, 52.238.78.88/32, 104.47.0.0/17

Il va donc nous falloir monter un serveur SMTP externe sur lequel on va autoriser le relai depuis ces blocks d’adresses IP. Il existe toutefois un petit risque que d’autres administrateurs trouvent la faille et se servent de notre serveur. Ce risque est faible, et au pire on changera notre adresse IP.

Le relai

Ou relais, une fois de plus les anglais font plus simple avec relay, smtp-relay. Bref, pour monter un tel serveur il existe certainement plusieurs produits possibles, pour peu que ces logiciels soient capable de gérer de multiples plages d’adresses IP sources à relayer. J’ai utilisé HMailServer sous Windows car je le connais bien, mais on doit pouvoir faire ça sous Linux à moindre frais. Quant à la restriction au niveau des IP sources, ça peut aussi se faire au niveau du firewall.

Dans HMailServer (IP Ranges) on va déclarer nos adresses IP autorisés sans authentification, celle des serveur Microsoft 365 :

On répète ça pour chaque plage d’IP et ensuite de la même façon on va déclarer nos relais autorisés, les mêmes IP :

C'est un peu fastidieux et ce serait plus simple de déclarer 107.47.0.0/17, mais ici c’est ainsi.

Ensuite on s’assurera que notre serveur est correctement installé (il n’accepte rien d’autre) et est correctement déclaré et configuré (SPF, reverse IP, etc...) pour les domaines pour lesquels il devra assurer le transit. On fait un Telnet sur mx1.free.fr afin de s’assurer que l’on peut bien les joindre et  que notre IP publique n'est pas elle aussi blacklistée.

A ce stade on se connecte à l’administration Exchange de Microsoft 365 dans laquelle on va faire en sorte que tous les mails à destination de Free et Orange devront transiter via l’IP de notre serveur relai.

Exchange Online

Pour ce faire on va commencer par créer un connecteur qui s'appliquera aux messages sortant d'Exchange Online vers ce qui s'appelle ici Organisation Partenaire :

Le choix suivant est important :

  1. Soit on décide que ce connecteur s'applique à tous les messages à destination de Free et Orange, auquel cas on configure simplement ces domaines. C'est la solution la plus simple pour un tenant qui ne gère qu'un seul domaine.
  2. Soit on décide que ce connecteur ne s'applique qu'au messages qui ont été redirigés par une règle. On utilisera cette option dans le cas ou on souhaite rediriger uniquement certains mails, expéditeurs ou domaines sources, qui seront le fruit d'une règle à créer.

Ensuite se pose la question de la validation du connecteur ou l'on utilisera une adresse @free.fr par exemple. Dans la pratique validé ou pas le connecteur fonctionne tout de même....

Si l'on a fait le choix 2 il va nous falloir créer une règle pour que cela fonctionne. Dans cette règle on va demander à ce que :

  • le destinataire soit sur le domaine free.fr
  • le domaine de l'expéditeur
  • Et enfin que ce trafic transite via le connecteur précédemment créé.

Cela va nous permettre de ne dérouter vers notre MTA premise uniquement les domaines sources qui y seront configurés. Ce cas est spécifique à des tenant "partagés" ou plusieurs domaines coexistent, mais cela peut également permettre d'utiliser plusieurs serveurs relais en fonction des domaines sources.

Il est bien sur possible de faire ceci en PowerShell, vous trouverez les détails dans cet excellent article.

C'était mieux avant...

Alors voilà, je bosse depuis une douzaine d’année sur le même PC, un HP i7 alors un peu haut de gamme, sous Windows 7. Au fil des années je lui ai donné un peu de mémoire (16 GO) et j’ai remplacé le disque par un SSD. Le Windows 7 est d’origine avec un nombre incalculable d’installations de logiciels et d’utilitaires à tester, et la particularité est que je ne le redémarrais jamais, en dehors de quelques coupures électrique, et il y a bien longtemps que j’avais désactivé les mises à jour visant à le pousser vers la sortie ! Bref, la robustesse même d’un bon PC avec un O/S éprouvé.

Lors de la dernière coupure électrique j’ai toutefois remarqué qu'il avait mis un peu de temps à redémarrer, et même qu’il voulait chercher des secteurs défectueux, je ne l’ai pas fait et il a fini par redémarrer, c’était au début de l’été je crois.

Je me suis tout de même dit qu’il serait temps de faire quelque chose avant de me retrouver vraiment en rade. Au début je voulais le remplacer par un NUC. Mais un NUC un peu sérieux sur lequel je pourrais raccorder au moins trois écrans va chercher dans les 1500 €, voire plus. Alors je me suis dit, pourquoi ne pas faire comme pour les serveurs et regarder le marché de l’occasion chez les brookers. Les maîtres en la matière sont les allemands. Ils rachètent des lots aux grandes entreprises, ils révisent, polissent et finissent par vous livrer une machine comme neuve ! Et c’est ainsi que je me suis offert une Workstation HP Z230SF avec un Xeon E3-1245v3 (au moins aussi puissant que les i7 des NUC), un SSD pour Windows et un disque dur parce-que le brooker ne doit pas aimer laisser des emplacements vides… Ah j’oubliais surtout 32 GO de mémoire, le tout pour 380 € TTC !

Pas besoin d’installer Windows, la version Pro est une vraie version OEM, et surtout la dernière build ce qui m’évite les fastidieuses heures de mise à jour. Windows 10 je connais car même si j’ai longtemps boudé sur mon PC principal j’en ai sur des laptops ou des VM chez moi ou sur Azure. Il n’y a pas que du bon, loin de la, mais on ne peut pas rester indéfiniment sur un O/S vintage, et puis avec le temps Windows 10 commence à se stabiliser, au moins quand les développeurs de chez Microsoft ne se prennent pas une murge la veille du lancement d’une mise à jour importante. La dernière à du être sérieuse (je parle de la murge) car je me suis retrouvé avec des mises à jour appliquées d’office et surtout avec l’antivirus désactivé au redémarrage. Bref, tout va bien du côté de Redmond…

Mais ce n’est pas pour vous narrer ma life que j’ai voulu écrire ce billet, mais pour vous explique un problème que vous pourriez bien rencontrer, si ce n’est pas déjà fait !

Sous Windows 7 j’avais trois écrans HD, un en VGA, un autre en DVI et un troisième en USB via un adaptateur. Je l’avais oublié celui-là, et entre temps j’aurais pu le raccorder sur le port HDMI de la carte graphique de que j’avais dû remplacer (les constructeurs installent des cartes graphiques avec ventilateur, inutile en bureautique, le ventilateur lâche au bout de 3 ans et on doit changer la carte graphique, un classique de l’obsolescence programmée, alors qu’une carte fanless fait parfaitement l’affaire en bureautique).

Su ma nouvelle machine j’ai trois sorties Display Port. J’ai donc acheté 2 câbles DP vers DVI pour deux de mes écrans et je me suis offert un écran UHD pas trop cher (Samsung U28E590D) pour mettre au centre, et qui dispose lui d’une entrée Display Port. Je raccorde le tout et tout fonctionne merveilleusement. Edge me permet de rapidement installer Chrome et ainsi d’installer les applications qui me seront utile. Bon, je suis mauvaise langue, Microsoft s’est enfin décidé à copier Google et la RC du nouveau Edge Chromium fonctionne très bien, à la différence que ce n’est plus Google qui vous espionnera mais Microsoft, pas sur que ça change grand-chose si ce nouvel Edge se popularise… J’évite d’installer trop de choses car j’ai pris soin de virtualiser mon ancien Windows 7 sur mon ESXi et je pourrais ainsi y retrouver les petits utilitaires que j’utilise une ou deux fois par an.

Le hic !

Alors vous devez vous dire, tout ce bla bla pour vous dire que j’ai un nouveau PC ? Hélas il y a un problème ! En effet, le petit matin qui suit le grand soir, lendemain de la première nuit avec lui (comme dirait Bénabar), j’ai eu la surprise de retrouver toutes les fenêtres que j’avais méticuleusement ordonnées, ramassées, tapies au coin de l’écran de droite. C’est très désagréable sur ce genre de config ou tout à sa place. Après quelques tests et mises à jour de pilotes, je me suis rapidement aperçu que c’était la mise en veille ou l’extinction des écrans qui provoquait ça, en effet Alexa les éteint pour économiser quand je lui souhaite une bonne nuit…

Je suis donc parti pour une longue nuit à l’exploration des forums afin de trouver une solution. A la surface du net, Microsoft conseille comme d’habitude de mettre à jour les pilotes, de réinstaller Windows ou d’autres conseils du même acabit. Bien sûr, continuez à prendre les gens pour des ânes ! En cherchant un peu on s’aperçoit qu’il y a bien un problème, mais que c’est By Design, comme ils disent. Et surtout je me suis aperçu que je suis loin d’être le seul concerné, quelque part ça me rassure !

Explications

Un écran Display Port (ou HDMI) est un peu moins bête que nos bons vieux VGA. Il communique avec le PC via la carte graphique. Windows lui demande de se mettre en veille, il se met en veille et puis il s’éteint. Et sur ce type d’écran si l’écran est éteint, Windows considère tout bonnement qu’il n’est plus présent, donc il agit comme s’il avait été débranché et il déplace les fenêtres de cet écran sur un écran qui lui est présent, même éteint car connecté en VGA ou DVI, Windows ignore son état. Je schématise un peu, tout cela est géré par les protocoles DDC/CI et l’EDID (voir les liens en bas pour les curieux).

Alors vous allez me dire qu’il doit bien exister une clé de registre pour palier à cet inconvénient ? Et bien non, en fait il y en avait une sous Windows 7 et la première version de Windows 10, mais depuis elle a été supprimée, Microsoft (et l’industrie qui va avec) considérant surement qu’il n’y avait plus sur terre d’écrans VGA ou DVI et que tout le monde disposait d’écrans DP ou HDMI, auquel cas ce problème n’existerait pas car tous les écrans sont alors absents et il n'y a pas lieu de déplacer les fenêtres.

On retrouve ce problème dans des configurations différentes, par exemple ceux qui utilisent un TV connecté au PC et l’éteignent quand ils ne regardent plus de films, le Player rejoint alors l’écran principal. Ou la situation ou on connecte un vidéo projecteur le temps d’une présentation et ou PowerPoint rejoint l’écran du laptop quand on débranche le projecteur. Mais dans ces cas ça a du sens ! Ce qui est rageant c’est que Microsoft ne laisse pas le choix, fusse t'il via une position de registre pour ceux qui osent RegEdit.

On pourrait également penser que cela puisse se passer au niveau du driver, et ce serait assez logique. En gros aujourd’hui de ce côté là on a NVidia, AMD et Intel. Sur les NVidia Quatro (des cartes pro) il y a une astuce, attention, pas une fonctionnalité mais juste une astuce qui peut disparaître lors de la mise à jour suivante. Mauvaise note également pour Samsung qui sur ce modèle ne prévoit pas la désactivation DDC/CI, certains écrans Dell le permettent.

Me voici donc condamné à travailler avec un seul écran ou à renouveler tous mes écrans. Quand je disais à mon comptable que j’aurais du prendre un 8K de 95 pouces… Ce n’est pas une solution, et je préfère travailler avec plusieurs écrans, un principal en 28" UHD, un 24" HD à droite qui me sert principalement pour des connections à des dizaines de sessions RDP sur des serveurs distants, et un autre 24" à gauche dédié aux divers moyens de communication (WA, Messenger, Slack, Hangouts, etc…). C’est ainsi, à mon âge je ne vais pas changer mes habitudes, déjà qu’il faut manger bio se sentir responsable de la planète ! Et je n’ai aucune envie de me plier à un quelconque dictat. Et pour ceux, oui je l’attendais celle-ci, qui me diront que je devrais passer sous Mac, sachez que j’ai aussi un Mac et que le problème est exactement identique.

Contournement

Puisque j'ai vu sur des centaines de posts sur de forums ou des sites qu’il n’y a pas de solution simple et efficace, je vais essayer de contourner ce dysfonctionnement. Après tout je ne demande pas la Lune, je ne cherche qu’à retrouver la disposition de mon espace de travail au réveil !

Je me suis d’abord dit qu’il devait exister des utilitaires permettant de retrouver une disposition précise, ou mieux la dernière disposition, après une mise en veille. Certains le promettent comme DisplayFusion dans sa version payante, hélas promesse non tenue, et c’est même pire, il mélange tout ! D’autres, gratuits, semblent faire mieux mais sont statiques et datent de Windows XP. Je me suis épuisé à chercher et je n’ai rien trouvé de satisfaisant, de plus quand l’écran Display Port se rallume, Windows effectue le processus de reconnaissance Plug&Play, ce qui n’est pas instantané. En listant certains forums j’ai également vu des utilisateurs excédés couper ou isoler des broches sur les connecteurs HDMI, solution pas totalement satisfaisante car du coup l’écran ne se mettra pas en veille.

Il existe bien une solution, mais elle consiste à sortir le fer à souder, c’est l’affaire d’une paire de résistances à deux centimes. Et comme toujours en pareille situations il y a ceux qui ont décidé de rentabiliser leur fer à souder. Ainsi il existe deux solutions clé en main, l’une en HDMI sur un site qui n’inspire pas vraiment confiance, mais ses adaptateurs son bien livrés et fonctionnent à ce que j’ai pu lire sur des forums, l’autre solution vient du Japon, elle est dédiée au Display Port, son auteur prend soin d’expliquer que ça ne fonctionne pas toujours… Tant pis, je suis joueur et pour 47 € je viens de passer commande… Je reviendrais vous en parler ici…

EDIT 07/11/2019 : J’ai reçu l’adaptateur DPHPDMA. En fait il y a deux modèles, le plus simple est censé fonctionner tout seul en Fake mode, mais dans mon cas ça n’a rien changé. Heureusement il y a un jumper pour forcer le Fake mode. En fait de jumper il s’agit ici de faire une microscopique soudure après avoir démonté l’adaptateur. Je ne suis pas équipé pour ce genre de soudure sur CI, j’ai tenté le coup avec mon fer à souder d’électricien, par chance ça n’a rien brûlé et ça fonctionne. Alexa peut éteindre mes écrans quand je vais me coucher sans risque de tout retrouver en vrac le lendemain.

Le second modèle, outre qu’il dispose d’un cavalier afin d’éviter toute soudure hasardeuse, dispose également d’un lien USB qui permettra de gérer les modes directement depuis Windows. Il n’en reste pas moins que ça fait beaucoup et cher pour une fonctionnalité arbitrairement retirée de Windows.

Autre chose...

En fait il y a un autre paramètre à prendre en compte car ça peut être gênant à l’usage. Sur un UHD de 28" on utilise une mise à l'échelle de 150% sans quoi c’est vraiment trop petit. Par contre sur le HD qui est à coté en 24" on conserve le ratio standard à 100%. Et quand on fait glisser une fenêtre d’un écran à un autre, Windows il la resize à la volée, d’une part c’est visuellement désagréable et d’autre part ça plante quand on le fait plusieurs fois sur la même fenêtre...

Donc pour faire cohabiter un écran UHD avec des écrans HD de 24" il faut dans l’absolu que le UHD fasse 42" afin de pouvoir utiliser une mise à l'échelle standard de 100%, dans mon cas ça s'est terminé avec un 32" et une mise à l’échelle à 125%.

Windows 10

Et sinon, ça fait quoi de passer de Windows 10 après avoir résisté tout ce temps ?

Bof, à une époque où tout se passe de plus en plus dans un navigateur, L’O/S a-t-il encore une grande importance ? Pour preuve, j’ai envoyé à ma fille un vieux ChromeBook pour remplacer son MacBook Pro le temps d’une réparation (250 € mais on n’a pas su me dire quoi), bref au-delà de son profond attachement à son MacBook (merci le Marketing Apple), elle ne m’a exprimé aucune gêne liée à l'usage du ChromeBook pour son travail à la fac. Seul hic, Netflix ne se lance pas sur ce vieux ChromeBook, mais il a cinq ans…

Tout ça pour dire qu’en ce qui me concerne Windows 10 ne m’apporte pas grand-chose, je pourrais en dire plus quand j’aurais réglé ce problème d’écran. Pour l’instant je le sens bien plus gourmand. Par exemple, outre Outlook, Slack, Opera pour WA, Telegram et Messenger, pas mal d’utilitaires chargés, deux OneDrive et Google Drive, j’ai en permanence 256 onglets dans Chrome (impossible avec d’autres navigateurs), ceci était contenu sous Windows 7 dans mes 16 GO de mémoire, là j’arrive aisément à 24 GO sous Windows 10 alors que j’ai surement moins de choses qui tournent en tache de fond… Donc quand il se dit que Windows 10 est moins gourmand c’est un leurre, d’ailleurs il ne se vend plus de laptops au-dessous de de 8 GO de mémoire à ce que je sache… Bref, Windows 10 c’est l’industrie en marche, mais les utilisateurs ont des habitudes, cela profite à Microsoft, il n’y a qu’à voir Office que tout le monde réclame pour envoyer trois courriers et faire quatre additions. Je pense sincèrement que l’avenir pour les utilisateurs lambda est un Chromebook, peut être que Microsoft le comprendra et sortira son équivalemment, je pense même qu’ils y travaillent… En plus ça ne plante pas, car il n’y a rien dedans, tout étant dans le cloud…

Windows 10 c’est aussi la plaie des mises à jour. Il faut donc rapidement installer ce petit utilitaire si on ne veut pas être emmerdé. Oui j’ai bien dit emmerdé car je veux pouvoir décider quand je vais consacrer du temps à installer des mises à jour et pas que Microsoft me l’impose (même combat sous Windows Serveur 2016/2019, mais là il y a une alternative car on passe de plus en plus de serveurs sous Linux, d’ailleurs en parlant de Linux, je vous parlerai un jour de mon expérience plutôt positive avec Ubuntu / KDE / Plasma).

Bonus : Gadgets

Sous Windows 7 nous avions les Gadgets de bureau, parfois gadget mais parfois très utiles comme par exemple pour pouvoir surveiller d’un œil des processus ou des liaisons (SNMP, VPN, services). Microsoft ayant décidé que nous n’en avons plus besoin (sous l'ovni Windows 8 je crois ou ça faisait tache avec les tuiles), des développeurs indépendants se sont hâtés de rendre ça disponible sous Windows 10. Il faut bien le dire, si ça fonctionne bien, le design vintage fait un peu tache sous Windows 10. Heureusement il y a d’autres développeurs qui on produit Rainmetter (1). Ca ne date pas d’hier mais aujourd’hui le projet est bien aboutit et le design est magnifique. Donc si les gadgets vous manquent, je recommande !

Bonus : mes petits outils du quotidien...

Bonus : Windows Defender

Si vous trouvez que Windows Defender prend trop ses aises, restreignez le avec cette commande PowerShell (Microsoft vous donne les explications ici ). 

Set-MpPreference -ScanAvgCPULoadFactor 25

Et à moins que vous ne passiez votre temps dans les coins sombres du net, évitez les outils de sécurité tiers, pour le coup celui qui est intégré à Windows fait bien son job. Désinstallez également tous les crapwares livrés avec votre nouveau PC, deux antivirus c'est contre productif. Et si vous pensez vraiment qu'il vous faut une meilleure protection, vous n'avez pas besoin de mes conseils et ce n'est pas avec des solutions grand public que vous vous bâtirez vos défenses....

Sources