Linux
guest@6admin.io:~$ ls ~/tags/linux
man sheep.exe
Le mouton pixel, Conway, la famine et les cadavres qui fertilisent la grille : les entrées pour explorer la page de maintenance sans qu'on vous en explique les sorties.
Linux, c'est juste le noyau
Une pédanterie utile sur ce qu'est Linux, puis le point de fond : les couches dont on se sert pour classer les profils sysadmin mesurent la distribution, pas le système et le noyau reste le dénominateur commun.
Frugalité Unix : do more with less
Le pipe `cat | grep` comme marqueur culturel, apropos et man avant tout, la suite dsniff comme leçon de design, un toolkit bash auditable contre l'usine à gaz et pourquoi Kali n'apprend pas l'administration Linux.
Durcir le système de fichiers
Durcissement du système de fichiers: options de montage, permissions, SUID, attributs immuables et séparation des partitions.
Recompiler son kernel: des noyaux aux petits oignons pour son infra
La forme la plus profonde du durcissement par soustraction: compiler son propre kernel, retirer au build les sous-systèmes qu'on n'utilise pas, le livrer en .deb dans son propre dépôt avec du pinning et le gérer à l'échelle avec Katello. Le kiff et son prix: un pipeline de test sur vrai matériel et du canari.
Durcir l'OS et le kernel Linux
Durcissement de l'OS et du kernel: sysctl, modules signés, comptes, sshd et les réglages qui tiennent en production.
Le :ro sur le socket Docker ne protège rien
Monter la socket Docker en lecture seule est un rituel rassurant et parfaitement inutile. Le flag agit au niveau VFS, la socket parle en I/O réseau, les deux ne se croisent jamais.
SSH en 2021 : ce que treize ans ont changé depuis la série de 2008
La série SSH de ce blog s'arrêtait en 2013 avec PKCS#8. Voici la version 2021, complète et sécurisée: Ed25519, les clés FIDO2, les certificats, le durcissement sshd, Include et Match, ProxyJump et le multiplexage. Ce que 2008 faisait avec espoir, 2021 le fait avec des primitives.
Le client FOG: python 2, cron toutes les cinq minutes et une flotte qui se rebootait en place
Archéologie d'avant 2013, sous mon ancienne identité gobel1: un client python2 pour l'imaging FOG qui pollait les jobs par cron, rebootait les postes libres vers l'imaging, les renommait par adresse MAC et trackait les utilisateurs via des hooks GDM. Disséqué gentiment, parce qu'il a tourné des années.
tmux : le multiplexeur qui a pris le fauteuil
Après Screen (1987) et byobu (2009), l'article sur tmux: client-serveur, panes natives, UTF-8 d'emblée, configuration lisible. Pourquoi le nouveau venu d'OpenBSD a fini par remplacer Screen et ce qu'on perd à ne pas savoir les deux.
Haproxy : le reverse proxy qui a pris la suite de Pound
Après Pound (l'article de 2008), l'étage au-dessus: haproxy 1.3, les modes TCP et HTTP, les ACL, les backends et health checks, la page de stats. Ce qu'un reverse proxy doit savoir faire avant d'être crédible.
Byobu : screen avec une couche de vernis (et un statut qui sauve)
Le petit article manquant entre Screen et tmux: byobu, les screen-profiles d'Ubuntu devenus un projet à part entière en 2009. Une barre de statut informative, des raccourcis F-key et la preuve que le multiplexeur n'avait pas besoin d'être un pari.
Bash : Personnalisation du fichier .bashrc
Couleurs du prompt, historique horodaté, PAGER most et une collection d'alias en namespace. Le .bashrc d'un admin de 2009, tel quel.
Screen : un multiplexeur de terminal
GNU Screen, le multiplexeur qui permet à plusieurs programmes de tourner en même temps depuis une seule interface et de survivre au logout.
htop : le remplaçant de top
Htop, le monitor de process qui fait ce que top fait mais en couleur, scrollable et avec un tree view qui montre qui a spawné qui.
tsocks : proxyfions
Tsocks, la bibliothèque LD_PRELOAD qui force n'importe quel programme à passer par un proxy SOCKS, sans modifier le code.
Pound : un reverse proxy très light
Pound, le reverse proxy qui dépose le TLS et balance vers un pool, avant que haproxy ne prenne le relais.
Polipo : un proxy ultra-simple
Polipo, le proxy web cache en 1000 lignes de C et pourquoi on l'utilise derrière un tunnel SSH.
ext3 : accélérez vos accès disques
Noatime, data=writeback, le mode journal et les trois options fstab qui divisent la latence disque par deux.
EncFS : le chiffrement de fichiers sans partition dédiée
EncFS, le chiffrement FUSE qui chiffrerait fichier par fichier sans partition, sans LUKS, sans réinstaller.
Raw Sockets : forger et sniffer des paquets en C
La suite du mémo sockets: AF_PACKET, SOCK_RAW, les struct iphdr et tcphdr, les checksums manuels, le sniffing en mode promiscuous et le forage de paquets SYN. Ce que font tcpdump et Nemesis, écrit à la main, en root, avec éthique et humour.
Sockets : parler TCP en C, sans framework ni magie
Un mémo C de l'époque: socket(), bind(), listen(), accept(), connect(), les struct sockaddr_in, l'ordre des octets et un fork() par connexion. Comment écrire un serveur et un client TCP en soixante lignes, sur une Debian Etch, avec seulement les man pages.
Linux : introduction aux LKMs
Les Loadable Kernel Modules, comment le kernel Linux charge du code à chaud et ce que ça implique pour la sécurité.
Les syscalls de Linux
Les syscalls, la frontière entre l'espace utilisateur et le kernel et comment les observer avec strace.
PAM: limitez les ressources système
PAM limits, le module qui plafonne les ressources par utilisateur avant que le process ne mange tout le RAM.
Magic SysRq : la béquille du sysadmin
La touche SysRq du kernel, la séquence REISUB et pourquoi c'est la dernière chose que vous ferez avant de tirer la prise.
Les liens : hard links et symbolic links et ce qui dépasse le chroot
Les deux types de liens dans Linux, leur différence au niveau inode et pourquoi un symlink dans un chroot peut sortir du chroot.
Root or not root
Su, sudo et la question de savoir qui a le droit de faire quoi sur un système partagé.