Table des matières
4 billet(s) pour janvier 2026
| AWX sur K8S Kind - partage de fichier pour les blob - Execution pods | 2026/01/26 10:15 | Jean-Baptiste |
| Notes rsh rcp | 2026/01/21 18:08 | Jean-Baptiste |
| Git - Duplication d'un dépôt | 2026/01/19 10:22 | Jean-Baptiste |
| Exemple simple de conf Nagios | 2026/01/14 10:07 | Jean-Baptiste |
Notes serveur DNS filtrant - relais DNS
Voir aussi /etc/hosts
- Adguard DNS
- AdGuardHome
- Pi-hole
- aardvark-dns pour Docker / Podman en mode rootless
Notes SELinux
Voir :
- ausearch
- SEtroubleshoot
- setroubleshootd
- system-config-selinux
Autoriser avec audit2allow
sudo cat /var/log/audit/audit.log | grep AVC | grep denied | audit2why > audit2why.txt sudo cat /var/log/audit/audit.log | grep AVC | grep denied | audit2allow > audit2allow.txt
/usr/bin/audit2allow -a -M plop
Restaurer les autorisations SELinux
# Voir les différences restorecon -nv /etc/passwd # Les remettre restorecon -v /etc/passwd # Exemple restorecon -v /usr/sbin/httpd restorecon -v /etc/ld.so.cache restorecon -v /etc/hosts
Au démarrage du système
touch /.autorelabel
Réétiquetés les fichiers lors du prochain redémarrage
Cela crée le fichier /.autorelabel contenant l'option -F
fixfiles -F onboot
Passez toujours en mode permissif avant d'entrer dans la commande fixfiles -F onboot. Cela permet d'éviter que le système ne démarre pas s'il contient des fichiers non étiquetés. Pour plus d'informations, voir RHBZ#2021835.
Voir aussi /etc/selinux/restorecond.conf qui contient les chemins des fichiers à restaurer
En vrac
ls -z ps -eZ sestatus setenforce 0 getenforce semanage login -l chcon seinfo audit2allow
semodule --list-modules=full chcon system_u:object_r:bin_t /opt/nagios/agent/nrpe chcon -t sudo_exec_t /usr/bin/sudo
grep -w 'denied.*insights-client.*permissive=0' /var/log/audit/audit.log
Serveur Web
setsebool -P httpd_can_network_connect 1
Pb Exemple
Err Permission denied
Before:
# ls -lZ /opt/plop/plop/plop.jar -rwxrwxrwx. 1 app_plop appgrp unconfined_u:object_r:unlabeled_t:s0 61558236 Feb 26 2023 /opt/plop/plop/plop.jar
After:
# ls -lZ /opt/plop/plop/plop.jar -rwxrwxrwx. 1 app_plop appgrp unconfined_u:object_r:bin_t:s0 61558236 Feb 26 2023 /opt/plop/plop/plop.jar
Service SystemD
chmod 640 /usr/local/lib/systemd/system/plop.service restorecon -v /usr/local/lib/systemd/system/plop.service systemctl daemon-reload chcon system_u:object_r:bin_t:s0 /tools/list/plop/ctmagt/ctm/scripts/start-ag chcon system_u:object_r:bin_t:s0 /tools/list/plop/ctmagt/ctm/scripts/shut-ag
Containers
DEFAULT_CONTAINER_RUN_OPTIONS = ['--network', 'slirp4netns:enable_ipv6=true', '--security-opt', 'label=disable']
Voir : https://ansible.readthedocs.io/projects/awx/en/24.6.1/administration/instances.html
Autres
Checking /etc/selinux/targeted/contexts/files/file_contexts, I found out which additional selinux contexts I had to add to the newly created directories:
sudo semanage fcontext --add --type container_ro_file_t '/var/lib/containers/user/[^/]+/storage/overlay(/.*)?' sudo semanage fcontext --add --type container_ro_file_t '/var/lib/containers/user/[^/]+/storage/overlay2(/.*)?' sudo semanage fcontext --add --type container_ro_file_t '/var/lib/containers/user/[^/]+/storage/overlay2-images(/.*)?' sudo semanage fcontext --add --type container_ro_file_t '/var/lib/containers/user/[^/]+/storage/overlay2-layers(/.*)?' sudo semanage fcontext --add --type container_ro_file_t '/var/lib/containers/user/[^/]+/storage/overlay-layers(/.*)?' sudo semanage fcontext --add --type container_ro_file_t '/var/lib/containers/user/[^/]+/storage/overlay-images(/.*)?' sudo semanage fcontext --add --type container_file_t '/var/lib/containers/user/[^/]+/storage/volumes/[^/]*/.*
then, reapply them to the system:
sudo restorecon -RvF /var/lib/containers/user
Voir https://kcore.org/2023/12/13/adventures-with-rootless-containers/
Autres
Voir :
- sealert
Dec 11 18:23:34 srv1 setroubleshoot[13728]: SELinux interdit à bash d'utiliser l'accès read sur le fichier /usr/lib/x86_64-linux-gnu/libc.so.6. Pour des messages SELinux exhaustifs, lancez sealert -l 4c092563-ff9e-461c-a202-f8b30a83315f Dec 11 18:23:34 srv1 setroubleshoot[13728]: SELinux interdit à bash d'utiliser l'accès read sur le fichier /usr/lib/x86_64-linux-gnu/libc.so.6. ***** Le greffon restorecon (54.2 de confiance) suggère ******************* Si vous souhaitez corriger l'étiquette. L'étiquette par défaut de /usr/lib/x86_64-linux-gnu/libc.so.6 devrait être lib_t. Alors vous pouvez lancer restorecon. La tentative d’accès pourrait avoir été stoppée due à des permissions insuffisantes d’accès au dossier parent, auquel cas essayez de changer la commande suivante en conséquence. Faire # /sbin/restorecon -v /usr/lib/x86_64-linux-gnu/libc.so.6 ***** Le greffon file (16.6 de confiance) suggère ************************* Ceci est dû à la création d'un nouveau système de fichiers. Alors vous devez y ajouter des étiquettes. Faire /sbin/restorecon -R -v /usr/lib/x86_64-linux-gnu/libc.so.6 ***** Le greffon file (16.6 de confiance) suggère ************************* Si vous pensez que ceci est dû à une machine mal étiquetée. Alors vous devez complètement ré-étiqueter. Faire touch /.autorelabel; reboot ***** Le greffon catchall_labels (3.18 de confiance) suggère ************** Si vous souhaitez autoriser bash à accéder à read sur libc.so.6 file Alors l'étiquette sur /usr/lib/x86_64-linux-gnu/libc.so.6 doit être modifiée Faire # semanage fcontext -a -t FILE_TYPE '/usr/lib/x86_64-linux-gnu/libc.so.6'
- # SELinux PAM
`/etc/pam.d/remote` ~~~
- %PAM-1.0 auth required pam_securetty.so auth include system-auth account required pam_nologin.so account include system-auth password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session optional pam_keyinit.so force revoke session required pam_loginuid.so session include system-auth session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open
~~~
Notes sed grep regex
grep
Voir :
man regex
Voir aussi :
- pcregrep
Regex
Exclude
^((?!motif).)*$
Grepper sur plusieurs lignes (match grep with line break)
grep -zP '\S{64}\n\S{64}'
Extended regular expressions
Source : https://www.gnu.org/software/sed/manual/html_node/Extended-regexps.html
The only difference between basic and extended regular expressions is in the behavior of a few characters: ?, +, parentheses, and braces {}. While basic regular expressions require these to be escaped if you want them to behave as special characters, when using extended regular expressions you must escape them if you want them to match a literal character .
Examples:
abc?
becomes ‘abc\?’ when using extended regular expressions. It matches the literal string ‘abc?’.
c\+
becomes ‘c+’ when using extended regular expressions. It matches one or more ‘c’.
a\{3,\}
becomes ‘a{3,}’ when using extended regular expressions. It matches three or more ‘a’.
\(abc\)\{2,3\}
becomes ‘(abc){2,3}’ when using extended regular expressions. It matches either ‘abcabc’ or ‘abcabcabc’.
\(abc*\)\1
becomes ‘(abc*)\1’ when using extended regular expressions. Backreferences must still be escaped when using extended regular expressions.
Trouver des tabulations dans un fichier (GNU grep) you can use the Perl-style regexp
grep -P '\t' *
Pb
Pb binary file matches
# grep -i -e '2020-11-24' daemon.log Binary file daemon.log matches
Solution
grep -a -i -e '2020-11-24' daemon.log
head / tail
Supprimer les deux dernières lignes
head -n -2 myfile.txt
Supprimer les 4 primières lignes
tail -n +4 myfile.txt
Sed
Voir :
Matched text
sed -i -e 's/^LoadModule mod_unique_id.c/#&/' /etc/proftpd/modules.conf
Commenter tout un fichier
sed -i -e 's/^[^#]/#&/' /etc/snmp/snmp.conf
Supprimer tous les espaces en début de ligne
sed -e 's/^\s\+//g'
Première lettre en majuscule
sed -e 's/^./\U&/'
Insérer une ligne au début d'un fichier
sed -i '1i/dev/mapper/vg_os-root / xfs defaults,noatime 1 1' /etc/fstab
Ou pour insérer le caractère '{' en première ligne
sed -e '1 i\{'
Strip HTML
sed -e 's/<[^>]*>//g'
Colonnes
df -PhT |column -t grep -v -e '^#' /etc/fstab |column -t
Adresse IP
rgrep -E --color -e '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/www/plop/www.acme.fr/htdocs/
Supprimer une ligne
sed -i -e '/\/data/d' /etc/fstab
Supprimer toutes les lignes à partir du motif
sed -e '/MODIF/,/$$/d' plop.txt
$$ : jusqu'à la fin du fichier
Supprimer les fins de ligne
Source et explications : https://stackoverflow.com/questions/1251999/how-can-i-replace-a-newline-n-using-sed
sed ':a;N;$!ba;s/\n/ /g' file
Afficher de la ligne n à la ligne m :
cat -n launch.sh # ou grep -n -A7 my_function launch.sh # Puis (de la ligne 46 à la ligne 68) cat launch.sh | sed -n -e '46,68p' >> build.sh
Character Classes
how to represent “alphanumeric or _ or -”
That will be this character class:
[[:alnum:]_-]
Which means allow one of these:
- Alpha numeric
- Underscore
- Hyphen
It is important to keep hyphen at 1st or last position in character class to avoid escaping.
Awk
Voir :
Utiliser les variables d'environement dans awk :
awk -v a="$var1" -v b="$var2" 'BEGIN {print a,b}'
Dernier champ ; avant dernier champ
awk '{print $NF}' awk '{print $(NF - 1)}'
Mettre en majuscule/minuscule et grepper
awk '/sAMAccountName/ {print tolower($2)}'
Exemple ligne commençant par opencv ou libopencv
apt-cache search opencv |awk '/^(lib)*opencv/ {print $1}'
Trouver les zombies
ps aux | awk '$8 ~ /^[Zz]/'
Remplacer un motif par un autre
$ echo "Bobby is cool" | awk '{sub("Bobby","Teddy"); print}'
Teddy is cool
Exemple
ip link |awk '/: br-/ { gsub(":", "") ; print $2 }'
Awk One-Liners - Remove duplicate, nonconsecutive lines
iptables-save |awk ' !x[$0]++' |iptables-restore
sum - total - faire l'addition / la somme de nombres séparés par des sauts de ligne
awk '{s+=$1} END {printf "%.0f", s}' fichiers.txt
if greater / less than
awk -F':' '$3 >=1000 && $3 <=65534 {print $3}' /etc/passwd
Avant-dernier champs
awk '{ print ( $(NF-1) ) }'
Remplacer un motif par un autre (remplace)
awk '/^gpg: key / {gsub(":", "") ; print $3 ;}')
Lire une valeur dans un fichier ini en supprimant les espaces config.ini
process_name = appsrvd
awk -F= '/process_name/ { gsub (" ", "", $0) ; print $2 }' config.ini
Calcul
calc() { awk "BEGIN { print $* }"; } calc_sum() { awk '{s+=$1} END {printf "%.0f", s}' "$*" }
Awk autres
/etc/auto.smb
# ......... $SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- ' BEGIN { ORS=""; first=1 } /Disk/ { if (first) print opts; first=0 dir = $2 loc = $2 # Enclose mount dir and location in quotes # Double quote "$" in location as it is special gsub(/\$$/, "\\$", loc); print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\"" } END { if (!first) print "\n"; else exit 1 } '
Python
re.match \ La méthode match recherche une correspondance uniquement au début de la chaîne
re.search \ search() La fonction recherchera le modèle d’expression régulière et renverra la première occurrence. \ Contrairement à Python re.match(), il vérifiera toutes les lignes de la chaîne d'entrée. La fonction Python re.search() renvoie un objet match lorsque le modèle est trouvé et « nul » si le modèle n'est pas trouvé
re.findall \ findall() Le module est utilisé pour rechercher « toutes » les occurrences qui correspondent à un modèle donné. En revanche, le module search() ne renverra que la première occurrence correspondant au modèle spécifié. \ findall() parcourra toutes les lignes du fichier et renverra toutes les correspondances de modèle qui ne se chevauchent pas en une seule étape.
Exemple de regex
email_re = re.compile(r'([a-zA-Z0-9_\+\-\.]+)@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)')
Autres
Tr
SC1017 (error): Literal carriage return. Run script through
tr -d '\r' .
Convertir les fins de ligne en null char
tr '\n' '\0'
Preserve file timestamp in multifile string replace
Source : https://gist.github.com/u0d7i/c03e34e57802d0b6347a#file-preserve_date_in_replace-txt
# -I to grep ignores binary files, # @ in sed works as separator for strings with / # -r in touch uses existing file timestap as a reference grep -IR aaaa /somepath/ | awk -F: '{print $1}' | while read line; do touch -r $line /tmp/timeref; sed -i 's@aaaa@bbbb@' $line; touch -r /tmp/timeref $line; done
Notes sécurité
Voir :
- Open Web Application Security Project (OWASP)
Vidéo https://www.youtube.com/watch?v=U9nEKocxAbM Les cyberattaques se multiplient en France |Ce que vous devez savoir
Normes / Certifications
- PCI DSS
- ISO 27002
- Méthodologie EBIOS
Métrique, notes, mesure, évaluation, criticité
Prévention :
Matériel / Hardware
Voir :
- air-gapped
Protocole
Texto / SMS :
Signaling System #7
Failles CVE
Failles
- https://www.cve.org/ (ancienement https://cve.mitre.org)
Logiciel / Application
Logiciels / Applications “sécurisées”
https://fr.m.wikipedia.org/wiki/ANOM_Operation_Trojan_Shield
Antivirus et autres cochonneries :
Autres
Wallix access Manager / CyberArk et autres
Hardening
Web HTTP / HTTPS
Crypto
Générateur de nombres pseudo aléatoire
Attaque de la chaîne d'approvisionnement - Power supplies to attack
De plus en plus nous constatons des commits non pas pour corrigés mais pour inclure volontairement des failles de sécurité. Cela avait conduit Linus Torvald à refuser dans le noyau toutes les contributions de l'université du Minnesota https://linux.developpez.com/actu/314666/La-Fondation-Linux-veut-des-details-sur-toutes-les-contributions-au-noyau-Linux-faites-par-l-universite-du-Minnesota-avant-qu-elle-ne-soit-autorisee-a-contribuer-a-nouveau-au-noyau/ Il y avait aussi eu l'affaire node-ipc https://www.lemondeinformatique.fr/actualites/lire-avec-le-sabotage-de-node-ipc-la-protestation-dans-l-open-source-inquiete-86188.html Il y a encore peu de temps nous considérions systématiquement un système à jour comme plus fiable qu'un système pas à jour. Cela n’est pas forcément vrai à présent. La simplicité, le coût et la portée considérable d’une attaque de la chaîne d'approvisionnement laisse à penser que ce genre d’attaque va encore s’accroitre.
Code
https://fr.wikipedia.org/wiki/Seccomp
https://github.com/seccomp/libseccomp-golang
Open Source Supply chain - OpenSSF Scorecard:
Pishing
client-side scanning (CSS)
Cell-Site Simulators
Notes techniques
~/.mysql_history
Howto
Audit sécurité
Vérif toutes les urls si setup.php etc….
Spectre / Meltdown / Retbleed
Side Channel Attack
Voir Software Guard Extensions (SGX)
dmesg | grep 'Kernel/User page tables isolation'
Voir :
Patch : https://docs.ovh.com/fr/dedicated/meltdown-spectre-kernel-update-per-operating-system/
Autres
URLs à bloquer / WAF reverse proxy / firewall applicatif
Passer à bloquer les URLs suivantes :
*/nohup.out
