PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Thuban : Syspatch: patch OpenSMTPD (exec, tls) - multi-arch - 6.5, 6.6

mercredi 29 janvier 2020 à 00:22
L'équipe OpenBSD nous livre deux nouveaux correctifs pour le service OpenSMTPD :

  • le premier se nomme "smtpd_tls" - faille de fiabilité - afin de corriger un plantage du service, causant lui-même un DOS, à la suite d'un déclassement opportuniste de TLS. 6:5 : patch n°29 ; 6.6 : patch n°18 .
  • le second se nomme "smtpd_exec" - faille de sécurité - pour corriger une vérification incorrecte qui permettait à un attaquant de tromper à la fois, et la livraison mbox en exécutant des commandes arbitraires en tant que root, et la livraison lmtp en exécutant des commandes arbitraires en tant qu'utilisateur non privilégié. 6.5 : patch n°30 ; 6.6 : patch n°19 .
Il est nécessaire de redémarrer le service.



Architectures concernées : hormis amd64, arm64 et i386 qui peuvent le faire par syspatch, toutes les autres architectures gérées par le projet OpenBSD doivent le faire par re-compilation.

Lire la FAQ Administration Système pour savoir quoi faire : EN Official FAQ, FR


Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Yannic Arnoux : Apprentissage de Rust

mercredi 29 janvier 2020 à 00:00

Pas de voeux sinistres cette année même si l'année écoulée n'a fait que conforter ce que je pense. Il n'empêche que la vie est belle, avec ses projets, ses espoirs et ses petits malheurs :-)

Pour revenir dans le domaine de l'informatique on va parler code, ma passion, devenue mon gagne-pain depuis fort longtemps. En dehors des tâches professionnelles, j'ai toujours été actif avec des side projects pour découvrir un langage, une techno ou une méthodologie. Mais l'année 2019 a été plutôt creuse, j'ai sûrement trop donné au taf, il n'y avait plus de neurones en sortant le soir ;-) et c'est la musique et les séries TV qui gagnaient.

Java, Python, JavaScript, HTML & consorts sont mes langages réguliers depuis des années. Une indigestion de NodeJS avec son outil à remplir l'écran de warnings indiquant que tout va bien (qu'on appelle aussi NPM) et la lecture d'articles à la mode du style "Comment devenir riche en 2020 en apprenant un nouveau langage hype recherché par toutes les entreprises du Fortune 500" m'ont donné envie de voir autre chose. J'aurais pu choisir un langage listé dans le top 3 pour devenir riche mais j'ai décidé de me former au langage Rust, présent quand même dans le top 10, qui me fait de l'oeil depuis un bail.

Pourquoi Rust m'a attiré ?

Soyons clair, j'aime ces trois langages même si j'ai lancé une pique sur NodeJS et Rust n'est pas une solution universelle qui fait mieux que tout ce qui existe, absolument pas : un bon artisan doit utiliser l'outil le mieux adapté à la tâche qu'il doit réaliser.

Et la solution universelle c'est Golang, enfin d'après Google ;-)

J'ai très peu codé en langage C (uniquement pendant mes études) et jamais mis en pratique mes lectures sur C++. Revenir à un langage fortement typé, non objet mais avec des concepts permettant l'abstraction, centré sur les vérifications à la compilation, ça m'a vraiment intéressé par sa différence avec ce que je fais d'ahabitude. C'est un retour à une certaine programmation qui demande de l'effort pour maîtriser ses allocations mémoire (stack / heap, concept de borrowing), maîtriser les pointeurs et autres joyeusetés.

Pour démarrer, j'ai lu avec attention les 3/4 du Rust Book et survolé le quart restant qui abordait des concepts très avancés en retenant que ça existe et que je pourrais m'y référer plus tard. Ce qui m'a plu d'entrée, c'est la qualité de ce livre. Je fais un parallèle avec Golang qui est un langage plein de qualité mais dont la doc officielle est vraiment pas terrible et nécessite de trouver d'autres ressources. Le Rust Book est complet, on aborde les concepts un par un. On sent le langage Rust bien né, bien pensé avec une cohérence entre les concepts démontrant que les concepteurs savent exactement où ils vont avec leur langage.

Du coup je prend mon temps pour absorber ; j'ai lu le livre par étapes pendant deux semaines avant d'écrire une ligne de code. J'ai choisi de réécrire un de mes projets Python vers Rust. Mon projet est modeste en nombre de lignes et il mixe un serveur HTTP, des templates, de la gestion d'e-mails. C'est un bon petit projet pour comprendre, expérimenter et essayer d'écrire du code Rust dans les règles de l'art. Si l'apprentissage est fructueux je publierai quelques articles sur des éléments du langage Rust.

Gravatar de Yannic Arnoux
Original post of Yannic Arnoux.Votez pour ce billet sur Planet Libre.

Thuban : Quelques questions sur Chiffrement Complet de Disque (FDE) et démarrage

mardi 28 janvier 2020 à 20:28
Bonjour,



Un grand merci pour l'article :


"OpenBSD: Chiffrement intégral de disque dur (FDE, bioctl)"


http://doc.huc.fr.eu.org/fr/sys/openbsd/bioctl-fde/



C'est plus vivant que les doc, et cela donne plein de petits détails sur comment faire, et comment ca fonctionne, ... en "liant la sauce", ce que ne peuvent pas faire aussi bien les doc et faq (malgré les exemples, ils sont bien, mais quand même plutôt succincts...).



Donc vraiment merci !



J'avais en tête de faire un disque encrypté pour le système, et là, j'ai l'occasion (upgrade en changeant de disque et install de zéro,... donc j'en profite pour aussi crypter le disque de l'os).



et il me reste des questions sur le fonctionnement du FDE, avec la clé USB.



je mets des numéros aux questions, pour que vous puissiez répondre plus facilement à l'une ou l'autre...



*********************
Q1
: visiblement, on ne peut pas utiliser une clé USB pour ouvrir le cryptage (bioctl) et que si on ne met pas la clé, il demande la passphrase ?



je veux dire : fromage et dessert, ... pas l'un OU l'autre ?



genre, j'ai perdu la clé, et plutôt que d'en fabriquer une (dont l'image a été soigneusement cryptée avec une passphrase (et GPG comme suggéré)), ... et bien je relance direct le système en tapant une passphrase qui dévérouille le disque, ... et zou... quitte à utiliser ensuite le système pour refabriquer une clé usb avec la "key" qui va bien pour le disque du système...



ca serait bien pratique de pouvoir utiliser l'un et l'autre ... au choix... non ?



j'ai loupé quelque chose, en terme de sécurité, ou une raison technique pas évidente ?(sur linux ... on peut,... bon, d'accord, je viens d'avoir une mauvaise pensée,... mais j'ai pas pu m'enpêcher  Sad )



*********************
Q2
: l'option "-k" de bioctl, ... ca fonctionne comment ?

je veux dire : il fabrique la partition indiquée, sur la clé usb, avec quoi dedans ?

Est ce que la partition cryptée est mise en relation avec la partition de la clé (via les uid des partitions, par exemple) ?



est ce que bioctl regarde la partition cryptée, trouve dans l'entête l'uid de la clé usb, et du coup, va chercher dans les devices s'il y a un machin avec cet uid,... et si oui l'ouvre (crypté aussi ?) et la monte, et regarde dedans la passphrase pour ouvrir la partition cryptée ?



c'est ca, le fonctionnement ?



*********************
Q3
: question corrélative : sur la clé usb, est ce qu'on peut mettre deux ou trois partitions de "clé de cryptage bioctl" ?

et utiliser une même clé pour déverrouiller plusieurs disques cryptés avec bioctl ?



ca serait pratique... ca ferait une clé usb "trousseau de clé".



*********************
Q4
: question corrélative : si je fais la petite cuisine de fabrication de mon disque système :



sd0 = disque système partition de base encryptée

sd1 = disque système ouvert par bioctl

sd2 = la clé USB de clé pour bioctl pour sd0.



ensuite, ca tourne, ... le système est lancé, et j'enlève la clé usb une fois le système démarré.

et si j'ajoute un disque de données (par usb par exemple, ..) : il prend le device sd2.



je remet la clé usb pour redémarrer (avec le disque aussi mis dans l'usb), ou bien ajoutée en Sata.



il va y avoir

sd0 = disque système partition de base encryptée

sd1 = disque système ouvert par bioctl

sd2 = disque de data.

sd3 = la clé USB de clé pour bioctl pour sd0.



est-ce que ca va fonctionner, si la clé USB est sur sd3 au lieu de sd2 ?



est-ce que ca va fonctionner, c'est à dire le système va démarrer, s'il y a deux clés usb, l'une pour le système, l'autre pour le disque de data (et pas forcément dans les mêmes devices que lors des fabrications...) ?



*********************
Q5
: sur bioctl, et l'option "-k" : ou est ce qu'on peut trouver de la doc, ou des explications plus détaillées, sur le fonctionnement ?

est ce qu'il y a un endroit, pour de la doc "avancée" ?

ou est ce qu'il faut regarder le code de bioctl ?



*********************
Q6
: c'est à quel endroit que le système, au démarrage, décide de faire appel bioctl, qui décide d'aller regarder dans la clé ?

c'est indiqué dans la GPT, et les partitions ?

c'est dans les process de démarrage de OpenBSD ?



c'est pour savoir si on peut intervenir dans les scripts ou le code, à ce niveau là ?



et si c'est une chose faisable et fiable, ... ou "surtout pas toucher à ça... c'est trop risqué pour en valoir la peine..."



*********************
Q7
: question corrélative : est ce qu'on peut démarrer en mode "-p" de bioctl ?



c'est à dire : on fournit un path vers un fichier qui contient la passphrase (oui en clair...) au lieu de taper la passphrase au clavier.



idée : on mets cela sur la clé usb, et on utilise ce moyen pendant les deux ou trois jours pendant lequel on prépare le serveur.



pour relancer, faire les essais, etc... c'est plus simple.

ca évite à chaque fois de (se) taper la passphrase.



ensuite, quand c'est en place, on peut détruire cette horrible clé usb qui contient une passphrase en clair (on la format, avec écriture random dessus plein de fois et tout et tout... pour être bien sur.... évidemment...).



*********************
Q8
: est ce qu'il est envisageable, et peut être déjà faisable, que la clé usb soit plutot un appel à un serveur d'authentification ?



un serveur du type Vault de HashiCorp, par exemple (https://www.hashicorp.com/products/vault).



cela permet, entre autre, de couper toute tentative de lancer le serveur, ... s'il n'est pas connecté avec la bonne ip, et ne fait pas une demande en bonne et du forme au serveur d'authentification.



cela permet aussi de couper les droits de démarrer tout court, si on a constaté un problème (vol du serveur, par exemple....).



alors que si on s'est fait voler le serveur, et la clé dessus, ... tout voleur chacun peut relancer le serveur autant de fois qu'il veut... et avoir accès à la config...



Bon, d'accord, ça, c'est pas le plus urgent,... mais l'idée n'est pas mauvaise, d'utiliser une authentification par serveur, non ?



*******************************************

voilà,... 8 questions....



svp,... si vous pouvez éclaircir ces fonctionnements....



Antoine

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : CacheOut : une nouvelle faille vs Intel

lundi 27 janvier 2020 à 23:24
Bonsoir,

Un nouveau type de faille touche les processeurs Intel en s'attaquant aux mécanismes de cache des CPU.

https://cacheoutattack.com/

Ceux qui bénéficient des firmwares d'Intel, c'est le moment !

PS : Très différente des failles précédentes, on en fini pas l'hécatombe !

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

genma : Yunohost, Nextcloud et Collabora

lundi 27 janvier 2020 à 09:00

Collabora ?

Dans le monde de la bureautique en ligne avec Nextcloud, il y a deux écoles : Collabora et Onlyoffice. Il faudra que je fasse un billet dédié sur le sujet.

J'ai donc voulu installer Collabora sur mon instance Yunohost sur laquelle j'ai un Nextcloud.

La galère

J'ai passé pas mal de temps à regarder dans les forums, à tester, à installer et désinstaller l'application packagée, à essayer en faisant à la main en installant Collabora avec Docker, avec les paquets sans succès.

Jusqu'à trouver la manipulation suivante qui marche :

La solution

On crée un sous-domaine, par exemple collabora.mondomaine.fr, dans l'enregistrement DNS.

Dans l'interface d'administration de Yunohost, on ajoute ce domaine dans Yunohost, on mets des certificats SSL via Let's Encrypt, toujours via l'interface d'administration.

Issu du forum de Yunohost, il faut utiliser la branche testing de l'application en passant des paramètres particuliers. Je fais donc ça en ligne de commande (via SSH) :

# yunohost app install https://github.com/YunoHost-Apps/collabora_ynh/tree/testing --debug --no-remove-on-failure

Et j'associe l'application au sous-domaine, à la racine de celui-ci (soit collabora.mondomaine.fr) quand on me le demande (on a l'équivalent en ligne de commande d'une installation classique d'une application pour Yunohost).

Ensuite, on ajoute l'application Collabora dans Nextcloud via un compte administrateur.

Et dans la configuration de l'application, il faut mettre https://collabora.mondomaine.fr SANS LE PORT (ne pas mettre de port comme dans l'exemple donné par défaut dans le champ de saisie qui indique https://collabora_serveur:8090).

Conclusion

Collabora est disponible est accessible pour les 3 instances Nextcloud qui tournent sur le même serveur, il suffit de mettre le même paramétrage indiqué ci-dessus.

Reste à faire : tester la charge avec plusieurs utilisateurs.

Explication technique

Il faudra creuser / regarder le script d'installation en détail du paquet Yunohost, mais voici quelques explications techniques :
* Nextcloud et Collabora sur le même serveur.
* Nextcloud est installé en tant qu'application packagée Yunohost,
* Collabora est installé en tant qu'application packagée Yunohost non stabilisée / beta, les scripts sont alors installé Collabora via les paquets Debian officiel.

Cette application écoute sur le port 8090 et c'est Nginx qui fait la redirection / qui sert de proxy.

Je mets aussi des paramètres particuliers que l'on trouve dans le fichier /etc/loolwsd/loolwsd.xml. Ces paramètres sont bien renseignés dans le cas d'une installation de Collabora via le paquet Yunohost, mais pour ceux qui feraient des installations manuelles, cela peut toujours servir comme informations.


* ssl > enable > false
* ssl > termination > true
* storage > wopi > Ajout d'un élément sous la forme moncloud\\.chezmoi\\.fr
* storage > ssl reste inchangé

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.