PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Journal du hacker : Liens intéressants Journal du hacker semaine #45

lundi 11 novembre 2019 à 00:01

Pour la 45ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

blog-libre : Les contraintes de la prod

samedi 9 novembre 2019 à 11:30

Lors de mon premier job de sysadmin, je traînais sur Clubic pour m’informer. Je me souviens de commentaires disant que les sysadmins n’ayant pas encore passés les pc de leur parc sur Windows Seven étaient des incompétents. Ça m’a marqué.

Dans la réalité

Quelques principes de base :

Tu fais avec : Ce qu’on t’a dit, ce que tu as, ce que tu peux.

Parfois je suis gêné de parler de mon job actuel car je sais que je vais avoir des remarques du genre : « Attends t’es toujours sur *****, t’as pas encore mis en place *****, mais niveau sécurité ***** juste non ». Illustrons le sujet.

FTP

Nous sommes en 2019, je travaille chez un petit hébergeur web. Tout job a ses spécificités mais je dois avouer que celui d’hébergeur est super particulier.

Dans un article Bearstech rappelait que Apple, Google, Microsoft et Mozilla annonçaient il y a un an, la fin du support de TLS 1.0 et TLS 1.1 dans leurs navigateurs pour 2020. TLS 1.0 est vieux de 20 ans, TLS 1.3 date de l’année dernière et la majorité du trafic web chiffré se fait aujourd’hui avec TLS 1.2.

J’ai passé récemment un serveur sous Buster, rôle ftp, normalement easy. Dans mon /etc/proftpd/proftpd.conf j’ai TLSProtocol ALL -SSLv3 (doc) et voici la configuration par défaut de openssl que vous trouverez dans /etc/ssl/openssl.cnf sur Debian Buster.

[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2

Quelques jours après la mise en prod, nous avons reçu des tickets de clients signalant que leur accès FTP ne fonctionnait plus. Certains clients utilisent des logiciels datés qui ne savent pas gérer TLS 1.2/1.3 mais seulement TLS 1.0/1.1. Typiquement un logiciel codé avec WinDev, l’utilisateur met des fichiers Excel dans un dossier et appuie sur un gros bouton vert pour envoyer les fichiers par FTP. Le truc a été codé il y a XX années, ça marchait et le client comprend pas que ça marche plus. Il faut que ça fonctionne.

Voyez-vous ma configuration proftpd est correcte mais la configuration par défaut de openssl ne permet pas de négocier en dessous de TLS 1.2 (MinProtocol = TLSv1.2). J’ai donc dû mettre MinProtocol = TLSv1. Pour vérifier ce qui est accepté par votre serveur FTP.

openssl s_client -connect 127.0.0.1:21 -starttls ftp -tls1_3
openssl s_client -connect 127.0.0.1:21 -starttls ftp -tls1_2
openssl s_client -connect 127.0.0.1:21 -starttls ftp -tls1_1
openssl s_client -connect 127.0.0.1:21 -starttls ftp -tls1

Est-ce que la connexion est moins sécurisée ? Non. Le logiciel PERMET de se connecter en TLS 1.0/1.1 mais l’immense majorité des clients/utilisateurs UTILISE TLS 1.2/1.3. Juste on ne FORCE pas les clients à utiliser TLS 1.2 au minimum sinon le FTP ne fonctionnerait plus pour certains d’entre eux.

Mais si la connexion se fait en TLS 1.0 par exemple, c’est moins secure ? Oui. Il s’agit du CHOIX des clients, ils préfèrent en général (tous ?) que ça fonctionne PEU sécurisé que PAS DU TOUT.

Et lors d’un audit de sécurité ? Rigolo. De rares clients font auditer l’hébergement que nous proposons, nous avons alors des remarques plus ou moins appuyées sur le fait qu’on permet des connexions TLS 1.0/1.1 dépassées ne devant plus être utilisées. Double dose.

Python et PHP

Python sera EOL (End Of Life) le 1 Janvier 2020, pour être précis : Support officially stops January 1 2020, but the final release (2.7.18) will occur after that date. La première release de la branche 2.7 date du 03/07/2010. La dernière release de la branche PHP 5 est la 5.6.40 EOL le 31/12/2018.

En 2019 nous recevons des tickets pour savoir si ces versions de Python et PHP vont rester disponibles, oui je vais devoir les compiler/fournir au grand minimum jusqu’à la prochaine migration vers Debian 11 (Bullseye). Dans notre cas les clients en ont BESOIN, on répond à leur DEMANDE, ils en assument les CONSÉQUENCES et nous leur rappelons les RISQUES.

Est-ce que c’est secure d’utiliser PHP 5.6.40 ? Non mais il faut toujours prendre en compte le CONTEXTE. Si votre intranet uniquement accessible en interne est en PHP 5.6.40, les risques d’avoir un problème sont très faibles. Si votre site est accessible en ligne par contre…

En résumé

Le prochain qui me dit « Attends t’es toujours sur *****, t’as pas encore mis en place *****, mais niveau sécurité ***** juste non », je le déguste avec une sauce tartare.

J’ai parlé de proftpd (retenu pour ses modules), pour certains ce ne sera peut-être pas le meilleur choix, n’oubliez pas : Il ne s’agit pas d’utiliser la meilleure solution, il s’agit de mettre en place la meilleure SOLUTION en fonction des CONTRAINTES de la prod.

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Articles similaires

ephase : Démarrer SysRescueCD en PXE avec iPXE

jeudi 7 novembre 2019 à 18:35

Pour démarrer des machines via le réseau en PXE, j’utilise iPXE. J’en avais déjà parlé lors du paramétrage dnsmasq en tant que serveur DHCP avec iPXE.

J’utilise de temps à autres SysRescueCD que je démarre donc via le réseau. J’avais une configuration qui fonctionnait bien, mais en voulant passer à la version 6 de ce couteau suisse de diagnostic et de la réparation, impossible de démarrer car la distribution de base a changé.

La nouvelle arborescence

Précédement, les fichiers étaient organisés comme ceci dans mon répersoire srcd sur le partage NFS ou sont stockés les fichiers :

.
├── initram.igz
├── rescue32
├── rescue64
├── sysrcd.dat
└── sysrcd.md5

Le live CD, basé sur Gentoo était compatible avec les arcihectures 32 et 64 bits. Avec la version 6 fini le support 32 bits, et l’arborescence est celle utilisée par archiso :

.
├── boot
   ├── amd_ucode.img
   ├── amd_ucode.LICENSE
   ├── intel_ucode.img
   ├── intel_ucode.LICENSE
   └── x86_64
       ├── sysresccd.img
       └── vmlinuz
├── pkglist.x86_64.txt
└── x86_64
    ├── airootfs.sfs
    └── airootfs.sha512

La nouvelle configuration

Voici les options nécessaires au démarrage de SysRescueCD via iPXE, je ne mets ici que l’extrait de la configuration qui nous intéresse :

:srcd
kernel  nfs://${server_ip}/${nfs_path}/srcd/boot/x86_64/vmlinuz
initrd  nfs://${server_ip}/${nfs_path}/srcd/boot/intel_ucode.img
initrd  nfs://${server_ip}/${nfs_path}/srcd/boot/amd_ucode.img
initrd  nfs://${server_ip}/${nfs_path}/srcd/boot/x86_64/sysresccd.img
imgargs vmlinuz ip=dhcp archisobasedir=srcd archiso_nfs_srv=${server_ip}:/${nfs_path} checksum

configurer le réseau au démarrage

Les informations données sur le wiki d’archlinux parlent de la commande SYSAPPEND 3 mais celle-ci ne semble pas disponible sur iPXE1, le réseau ne sera donc pas initialisé lors du démarrage, empêchant le montage du dossier NFS. Le paramètre noyau ip=dhcp permet de forcer le système à obtenir une adresse IP lors du démarrage.

Les autres options

le reste des options parlent d’elle-même :

Il est possible de trouver les options disponibles sur le README dans le dépôt git archiso.


  1. Voir la documentation de SYSAPPEND sur le wiki de PXELINUX 

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

Articles similaires

genma : Capitole du libre 2019 - Mes conférences

mercredi 6 novembre 2019 à 09:00

Les samedi 16 et dimanche 17 novembre prochain, comme chaque année, à Toulouse, se tient le Capitole du libre. Je serai présent et je donnerai deux conférences, le programme, assez dense et varié, est en ligne.

Nextcloud - De l'usage personnel sur Yunohost à un usage professionnel chez Atos

Samedi 16 nov. 10:30 – 11:00 en salle A001

Facile à installer, facile à gérer, pourquoi ne pas héberger votre propre Nextcloud sur YunoHost (Yunohost est un système d'exploitation serveur destiné à rendre l'auto-hébergement accessible au plus grand nombre, sans nuire à la qualité et à la fiabilité du logiciel). Mais Nextcloud, ce n'est pas que pour les particuliers. Au sein du centre OpenSource d'Atos, je travaille au développement d'une offre et d'un partenariat autour de Nextcloud & Collabora pour nos clients. Petite présentation d'en quoi Nextcloud, c'est la solution cloud qui peut répondre aux besoins professionnel en alternative à Office365 ou GoogleDocs.

Fusion de mes deux conférences lightning talk données lors du Nextcloud Conf 2019 à Berlin.

Un mode Kiosk avec Ubuntu en 2019, c'est possible !

Samedi 16 nov. 17:30 – 18:30 en salle A001

Le Centre d'action sociale de la Ville de Paris (CASVP) propose de nombreuses prestations créées par la Ville de Paris pour ses habitants. En octobre 2019, des bornes libres services sont mises à disposition pour faciliter les démarches numériques aux bénéficiaires. Le système informatique de ces bornes a été réalisé par Atos ; l'ensemble du projet - documentation complète des hacks et scripts réalisés permettant une réutilisation - sera libéré à la mi-novembre 2019 à la suite du Capitole du libre sous licence Creative Commons.

La conférence a pour objectifs de présenter le projet, son interface, et de répondre à la question : quel intérêt peuvent avoir des collectivités, des médiathèques, des écoles à s'intéresser et surtout s'approprier et contribuer à ce projet ? Mais surtout, de présenter, comment du point de vue technique en 2019, sur base Ubuntu, il est possible de faire une borne mode Kiosk avec un Firefox mais pas que... et de répondre au cahier des charges et aux demandes de :
- simplifier et verrouiller Firefox pour avoir un mode kiosk en 2019 (tous les tutoriels sur le sujet étant obsolètes....) ;
- simplifier Ubuntu et Gnome 3 pour verrouiller les possibilités d'interactions pour rendre l'usage le plus simple possible ;
- créer une session utilisateur temporaire / jetable et pourtant réutilisable et évolutive ;
- pouvoir maintenir la solution et la faire évoluer.

Les supports

Les supports seront mis en ligne une fois les conférences données, pour permettre leurs réutilisation.

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

Littlewing : Programmmation par aspect avec Spring AOP

mardi 5 novembre 2019 à 18:12

Une fois n’est pas coutume, voici un article qui reprend des basiques de la programmation. J’aborde une stack JAVA, mais c’est applicable à d’autres langages.

Il existe une fonctionnalité très intéressante dans Spring (et dans J(akarta)EE) que l’on oublie assez souvent : l’AOP ou encore la programmation par aspect. Cette manière de programmer permet notamment de séparer le code fonctionnel et technique.
Si vous faites du JAVA, vous utilisez déjà l’AOP. En effet, quand vous faites une insertion en base via JPA dans un EJB ou un bean annoté @Transactional, une transaction est initiée au début de la méthode et fermée à la fin.

Avec Spring et notamment dans Spring boot, voici comment initier l’AOP.

Configuration maven

Ajouter le starter AOP:

 


Activation des aspects

Dans la configuration ci-dessous, je prendrai comme exemple le logging des méthodes ( un log en début de méthode et un log en fin ). 

La définition des aspects se fait dans des classes annotées par @Configuration.

@Configuration
@Aspect
@ConditionalOnProperty(name = "debug.enabled", havingValue = "true")
public class DebuggingConfiguration {

private static final Logger LOGGER = LoggerFactory.getLogger(DebuggingConfiguration.class);
private static final String WITHIN_MY_PACKAGE = "within(my.package..*)";

/**
* Log before execution
*
* @param joinPoint the current method
*/
@Before(WITHIN_MY_PACKAGE)
public void logBeforeExecution(JoinPoint joinPoint) {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("Beginning of method : [{}]", joinPoint.getSignature().getName());
}
}

/**
* Log after execution
*
* @param joinPoint the current method
*/
@After(WITHIN_MY_PACKAGE)
public void logAfterExecution(JoinPoint joinPoint) {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("End of method : [{}]", joinPoint.getSignature().getName());
}
}
}

L’utilisation de l’ annotation @ConditionalOnProperty me permet d’activer cette classe de configuration seulement si la propriété debug.enabled est initialisée à true.

Les annotations @Before et @After indiquent à Spring AOP quand exécuter ces méthodes ou sur quelles méthodes. Dans mon cas, quand les méthodes appelées sont définies dans les classes d’un package défini.

Pour plus de détails sur la syntaxe et les possibilités, vous pouvez vous référer à la documentation.


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

I'm richer than you! infinity loop