298 private links
Quelques rappels sur le fonctionnement des redirections de ports avec SSH à l’aide d’images.
En français, avec quelques explications et l’introduction de la « redirection de port locale et « dynamique » au niveau applicatif » (-D [bind_address:]port
, voir ssh(1)
), ou plus simplement un « proxy SOCKS » : https://blog.hugopoi.net/2021/01/01/ssh-port-forwarding-par-lexemple/
J’en profite pour rajouter quelques infos, je vous conseille de jeter un œil sur l’option GatewayPorts
dans sshd_config(5)
, car par défaut (version 8.4 actuellement) cette option est sur no
, et donc force les redirections en locale uniquement (ce qui est plutôt une bonne chose).
Ainsi, pour laisser le choix aux clients ssh, il suffit de renseigner la valeur clientspecified
dans votre configuration (mais attention aux conséquences).
In case it might help someone, when developping with VCS.
Copied/pasted from QuickStart:
To get this feature working quickly (including colors), you can do the following (assuming, you loaded vcs_info properly - see above):
zstyle ':vcs_info:' actionformats \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
zstyle ':vcs_info:' formats \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
precmd () { vcs_info }
PS1='%F{5}[%F{2}%n%F{5}] %F{3}%3~ ${vcs_info_msg0}%f%# '
Obviously, the last two lines are there for demonstration. You need to call vcs_info from your precmd function. Once that is done you need a single quoted '${vcs_info_msg0}' in your prompt.
To be able to use '${vcs_info_msg0}' directly in your prompt like this, you will need to have the PROMPT_SUBST option enabled.
Un peu de documentation très bien faite sur SPICE et QEMU, et en y retouchant, j’ai maintenant le support de la souris avec relâchement automatique ! \o/
C’est de la folie !
Voilà ce que j’utilise pour un système installé sur une partition dédiée (en l’occurrence, un système Microsoft Windows 7 pour développer dessus quand je n’ai pas le choix) ; première partie à exécuter en tant que root pour monter le système, et deuxième partie en tant que simple utilisateur (moi en l’occurrence) :
-------- BEGIN FILE virtu_win7.sh --------
!/bin/env bash
coding: UTF-8
2017-11-13
DISKIMG="/dev/md/thican_win7"
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
Those 3 commands, as root, before starting, to create the device /dev/md/thican_win7
FILE_MBR="/media/data_raid_2t_xfs/virtual_machines/win7_boot.mbr"
# Boot on "/dev/sdc1"
PARTITION_BOOT_UUID="586887AD68878888"
PARTITION_BOOT="/dev/disk/by-uuid/${PARTITION_BOOT_UUID}"
# System on "/dev/sdc2"
PARTITION_SYSTEM_UUID="D0C40178C40161D8"
PARTITION_SYSTEM="/dev/disk/by-uuid/${PARTITION_SYSTEM_UUID}"
losetup --find "${FILE_MBR}" && \
mdadm --build "${DISKIMG}" --level=linear --raid-devices=3 "$(losetup --list --output NAME --noheadings --associated "${FILE_MBR}")" "${PARTITION_BOOT}" "${PARTITION_SYSTEM}" && \
chown thican "${DISKIMG}"*
# En extra :
chmod g=rX,o=rX /dev/md/
else
export QEMU_AUDIO_DRV=pa
MAC_ADDR="…"
/usr/bin/qemu-system-x86_64 -enable-kvm -machine type=pc,accel=kvm \
-cpu host -smp cores=2,threads=1 -m size=8G \
-drive file="${DISKIMG}",media=disk,format=raw,cache=none,if=virtio \
-boot order=c,menu=off -monitor stdio \
-name "Windows 7" \
-net nic,vlan=0,macaddr="${MAC_ADDR:-52:54:00:01:23:45}",model=virtio \
-net user,vlan=0 \
-display none -vga qxl -spice port=6000,disable-ticketing,disable-copy-paste,playback-compression=off \
-device virtio-serial-pci \
-chardev spicevmc,id=vdagent,debug=0,name=vdagent \
-device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
-usb \
-soundhw hda
-display gtk -vga vmware \
fi
-------- END FILE virtu_win7.sh --------
Et ensuite, j’utilise un client graphique tel que Remmina pour afficher avec SPICE la VM.
Profitez-en bien.
Vérifiez que la valeur de la variable "UserspaceHID" soit sur "true" dans le fichier "/etc/bluetooth/input.conf".
J’en avais déjà entendu parler, il faudrait que j’essaie de mon côté.
Très bon article expliquant en détails la distribution GNU/Linux "TAILS", acronyme pour “The Amnesic and Incognito Live System”.
Via Le Journal du Hacker https://www.journalduhacker.net/s/ktdvdy/d_couverte_du_syst_me_d_exploitation_tails
Oh non …
Cette mise à jour d’OpenSSL supprime des fonctionnalités et ainsi des symboles dans les binaires. Du coup, l’ensemble, voire la totalité des programmes utilisant OpenSSL deviennent cassés, et doivent être recompilés.
En même temps, cette mise à jour corrige de nombreuses failles et bulletins de sécurité, il ne faut pas l’ignorer.
https://www.openssl.org/news/secadv/20160301.txt
Voici le lien vers le message d’annonce de cette nouvelle version, qui indique que SSLv2 est supprimé, en plus d’être désactivé (euh ?).
https://marc.ttias.be/openssl-announce/2016-03/msg00002.php
EDIT 23:09+01:00: un article en français, parlant de l'attaque DROWN (Decrypting RSA using Obsolete and Weakened eNcryption) http://www.numerama.com/tech/149306-drown-un-tiers-des-serveurs-https-est-vulnerable-a-une-nouvelle-faille-critique.html
Avec un site Web, et un outil :
https://drownattack.com/
https://github.com/nimia/public_drown_scanner
Plus d’articles :
http://www.zdnet.com/article/dont-let-your-openssl-secured-web-sites-drown/
EDIT 2015-03-05 : Article de Bortzmeyer https://www.bortzmeyer.org/drown.html
Le post en lui-même n'est pas important, mais c'est plutôt les explications et bidouilles sur le système de fichiers derrière /proc.
À savoir, /proc/<pid>/exe est un lien symbolique vers le chemin de l’exécutable, sauf ça reste être un "fd" (file descriptor) tant que le processus n'est pas terminé, ce qui permet de continuer d'exécuter le processus même si son programme n'est plus (virtuellement) sur le disque dur (un fichier n'est pas supprimé tant que des références vers ce fichier sont ouvertes).
Note : billet très technique, je n'ai pas forcément les connaissances pour bien l'appréhender.
Un message concernant les risques possibles à utiliser l'outil Address Sanitizer (ASan https://en.wikipedia.org/wiki/AddressSanitizer) dans un environnement de production, comme une élévation de privilège puisque ce dernier peut exécuter du code binaire avec setuid sans vérifier les variables d’environnement.
Oh … Aïe, quoi. Ça a l'air plus que sérieux …
C'est étrange, ça rappelle énormément la faille GHOST, en janvier 2015, soit un an : https://links.thican.net/?Y8L6Ag
Plus de liens :
- en français sur le site Web Developpez.com : http://www.developpez.com/actu/96101/Une-autre-faille-critique-de-securite-a-ete-decouverte-dans-glibc-et-rend-les-machines-sous-Linux-vulnerables-a-l-execution-d-un-code-a-distance/
- https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html
- en français sur Linuxfr.org https://linuxfr.org/users/bortzmeyer/journaux/faille-de-securite-dans-la-gnu-libc-avec-les-requetes-dns
Concernant la mise à jour récente d'OpenSSH, l'outil ssh-keygen (ainsi que les autres outils) ne vérifient plus l'empreinte de la clef (ou celle du serveur distant) au même format ; en fait, il ne s'agit pas d'un nouveau format à proprement parler, mais du changement d'algorithme par défaut, passant de MD5 à SHA256.
Ainsi, pour afficher le hash d'une clef actuelle, et la comparer à un ancien format, il faut utiliser l'option "-E fingerprint_hash", et utiliser la valeur "md5" comme ancienne valeur (voir ssh-keygen(1)).
Oh, joli !
GOG.com, un site web qui vend des jeux entièrement sans DRM, a créé un client, disponible actuellement pour « Mac OS X [… et] Windows, bientôt pour Linux », et qui permettra aussi de jouer à des jeux en ligne, avec les fonctionnalités de base d'un client de magasin de jeux (succès, chat, suivi du jeu, et plus).
Voici une alternative supplémentaire à Steam, car il existe déjà une autre alternative, fonctionnant aussi sur les trois principales plateformes, nommée Desura :
Un autre programme pour générer de l'entropie, cette fois en mesurant les légères fluctuations des instructions "sleep", dûes principalement à la variation des horloges à cause de la température.
Un service qui remplit la zone de /dev/random, en utilisant l'algorithme “HArdware Volatile Entropy Gathering and Expansion”, inventé à l'IRISA.
Ce qu'il y a de bien pratique avec la distribution GNU/Linux Gentoo, c'est qu'elle nous fait découvrir des mécanismes cachés du système d'exploitation ; et récemment, ce fut encore le cas quand je voyais dans certains paquets le "USE flag" intitulé "pic", qui est donc l'acronyme[1] de “Position Independent Code”.
Dans cet article, il est ainsi question du “Position Independent Code” dans les bibliothèques partagées.
Du peu que j'ai pu comprendre (car n'ayant pas fini de lire cet article qui me semble compliqué), il s'agit d'un mécanisme de protection du code d'exécution des binaires ELF[2] en rendant les positions des liens des processus dans la mémoire de façon aléatoire, ce qui a pour but d'empêcher un programme malveillant d'accès à des zones de données, pour y copier ou manipuler des données.
Bref, ce n'est pas à la portée de tous, mais ça permet de mieux comprendre le fonctionnement d'un système GNU/Linux.
[1] un acronyme est un sigle qui se lit comme un mot https://fr.wikipedia.org/wiki/Acronymie
[2] ELF pour “Executable and Linkable Format”, le format des binaires sous GNU/Linux pour les architectures x86 https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
EDIT 2015-03-01: D'autres infos :
- le man de gcc(1) (descriptions de -fPIC et -fPIE)
- encyclopédie Wikipedia https://en.wikipedia.org/wiki/Position-independent_code (anglais)
- la distribution Red Hat https://securityblog.redhat.com/2012/11/28/position-independent-executables-pie/
Une nouvelle faille dans les systèmes Unix a été détectée.
cette faille, nommée GHOST, se situe dans la bibliothèque glibc - un composant essentiel aux systèmes GNU/Linux - à cause d'un appel de la fonction oboslète gethostname() (dont son nom), qui permet de faire un dépassement de tampon (buffer overflow).
Cette faille est en principe moins touchée pour les version supérieur ou égale à la version 2.18, mais il est conseillé de mettre à jour, pour corriger pleinement cette faille (c.f le communiqué sur la liste FRsAG).
Voir aussi :
http://www.frsag.org/pipermail/frsag/2015-January/005722.html (français)
https://www.nextinpact.com/news/92886-ghost-nouvelle-faille-critique-qui-fait-trembler-linux.htm (français)
https://community.qualys.com/blogs/laws-of-vulnerabilities/2015/01/27/the-ghost-vulnerability (anglais)
Note : dans la section 4 de cette page, il y a un code à compiler soit même :
- copiez simplement la commande qui contient la ligne "cat > GHOST.c << EOF" et finit par "EOF",
- faites "gcc -o GHOST GHOST.c" puis "./GHOST",
- regardez le résultat, pour savoir si vous êtes vulnérable à cette faille ou non.
Si vous avez besoin de bibliothèques en « 32 bits » (dites x86_32) alors que votre système est en x86_64 multilib (amd64), voici un petit tutoriel, très simple à utiliser et qui fonctionne :
1) commencez par exécuter : echo '-abi_x86_32' >> /etc/portage/profile/use.mask
2) lancez la compilation avec ABI_X86="32" en début de ligne :
ABI_X86="32" emerge -vaN1 libX libY libZ
Info : ce tuto est fini à 98%, j'ai encore quelques retouches ou remarques à écrire, mais de l'ordre du détail, donc j'ai publié (je vais rajouter le support pour RAID).
Comme tout bon geek qui écrit sur le web, il commence par faire des tutoriels ...
Là, c'est direct du haut niveau, vous allez apprendre à chiffrer votre système d'exploitation Linux ! (basé sur Gentoo)
Bonne lecture.
Pour infos, j'avais commencé à écrire ce tutoriel il y a plus d'un an, mais je n'avais pas l'expérience, et puis j'avais mis de côté ma première distribution chiffrée. Maintenant, avec ce tuto, ça fonctionne aussi bien pour machine desktop que pour serveur.
(en version texte https://thican.net/~thican/installation_systeme_chiffrement-tuto.txt)
iPXE est un ensmble de protocole, basé sur IP, pour charger des systèmes d'exploitations depuis le réseau.
Très pratique si on veut démarrer sur une distribution GNU/Linux sans avoir à utiliser un support tel qu'une clef USB ou un disque gravé.
Oh, sublime exemple de hack !
Sous GNU/Linux, il est possible grâce à la variable d'environnement LD_PRELOAD de modifier le fonctionnement d'une bibliothèque, en chargeant des libs modifiées avant celles par défaut.