dimanche, septembre 29 2019
Par pepin le dimanche, septembre 29 2019, 01:05
L'utilisation de docker et d'autres outil conduit parfois à une pollution de /var/log/syslog, en particulier avec certains messagesqui n'ont aucune incidence.
Il suffit d'éditer la cont 50-default.conf et de mettre, en premières règles les files suivants :
:msg, contains, "error on subcontainer 'ia_addr' insert (-1)" STOP
:msg, contains, "failed to retrieve runc version" STOP
Dans cette exemple, l'erreur de docker sur la "runc version" et celle de snmp sur "ia_addr" seront ignorées.
samedi, septembre 21 2019
Par pepin le samedi, septembre 21 2019, 11:15
qpsnr est un programme que appréciais beaucoup pour tester la qualité d'encodages vidéos, mais le problème c'est que celui-ci n'évolue plus, ne compile plus sans être patché, et même, ne fonctionne plus si bien que ca sur une distrib récente.
mais ffmpeg est capable de faire un controle SSIM.
et au détour de recherche sur internet, comme toujours, on trouve une lib python gérant tout ca de tout ca :
sudo -H pip3 install ffmpeg_quality_metrics
ffmpeg_quality_metrics h265_compressed.mp4 reference.mp4 -of csv | tee > result.csv
Il reste à exploiter les données
mercredi, août 28 2019
Par pepin le mercredi, août 28 2019, 22:44
Sysdig est un outil de diagnostique système très intéressant, dont le but premier et le suivi des appels systèmes.
Mais sa force vient de ses options et modules de diagnostiques qui en font un outil de monitoring et d'analyse très intéressant,
Installation
apt install sysdig
Suivi des appels systèmes
sysdig
(on a l'impression de voire une sorte de strace de l'ensemble des process en cours ...)
Statistiques des usages de net
Par process : sysdig -c topprocs_net
Par sockets : sysdig -c topconns
Lister les "ciseaux" disponibles
sysdig -cl
Avoir des informations sur un ciseau
sysdig -i "ciseau"
samedi, juillet 13 2019
Par pepin le samedi, juillet 13 2019, 04:11
Encore une chose que je cherche parce que je nel'utilisé qu'une fois tous les dix ans...
Régler la taille de la dashboard de gnome à une taille moins imposante pour pouvoir avoir plus de place !!!
gsettings set org.gnome.shell.extensions.dash-to-dock dash-max-icon-size 28
mercredi, juillet 10 2019
Par pepin le mercredi, juillet 10 2019, 18:49
un vieux classique que je n'avais pas utilisé depuis longtemps :
xwininfo -tree -root
A partir de la, vous avez une liste des fenêtres ouvertes et leurs propriétés.
Cela peut permettre de savoir quel process tourne (via le nom de la fenêtre)
ou d'avoir un identifiant pour la tuer avec :
xkill -id {ressource}
lundi, juillet 8 2019
Par pepin le lundi, juillet 8 2019, 01:14
Pour avoir une meilleur lisibilité quand on a plusieurs process tournant sur screen, donner un nom de session est vraiment indispensable.
Pour ce, lors du lancement de screen :
screen -S "session name"
Si vous ne l'avez pas fait à l'initialisation, vous pouvez quand meme changer le nom de session à posteriori :
screen -S "session_id" -X sessionname "session name"
Les identifiants de sessions sont visibles via un :
screen -list
comme il se doit
samedi, juin 15 2019
Par pepin le samedi, juin 15 2019, 13:11
Pour éditer les entrées de boot et ajouter/supprimer/modifier :
efibootmgr
Tout cela demandera beaucoup d'essai pour voir ce qui est faisable ou pas et surtout ... comment
samedi, mai 25 2019
Par pepin le samedi, mai 25 2019, 15:05
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Attention : dans certains cas (certains modèles de portable), le fait de masquer ces objet fait que les logs se remplissent par système-logind, qui au final fini par consommer 100% cpu quand le log devient énorme.
Une autre solution est de changer /etc/systemd/logind.conf pour mettre les valeurs suivantes :
HandleSuspendKey=ignore
HandleHibernateKey=ignore
HandleLidSwitch=ignore
LidSwitchIgnoreInhibited=yes
mercredi, mai 15 2019
Par pepin le mercredi, mai 15 2019, 18:33
Suivre les appels systèmes de la commande ls
strace ls
Limiter au accès fichiers de type open
strace -f -e open ls 2>&1
Nettoyer un peu l'affichage
strace -f -e open ls 2>&1 | grep ^open\( | grep “[[:digit:]]\+$” | cut -d\” -f2
Bien sur sur "ls" c'est "théorique".
Remplacez ls par votre commande pour voir ce qui se passe, ou mieux, par "-p pid" pour voir ce que fricote un process en cours d'exécution.
Limiter (ou étendre) l'usage des traceurs système.
le fichier "/proc/sys/kernel/yama/ptrace_scope" contient un simple octet dont la signification est la suivante :
- kernel.yama.ptrace_scope = 0: all processes can be debugged, as long as they have same uid. This is the classical way of how ptracing worked.
- kernel.yama.ptrace_scope = 1: only a parent process can be debugged.
- kernel.yama.ptrace_scope = 2: Only admin can use ptrace, as it required CAP_SYS_PTRACE capability.
- kernel.yama.ptrace_scope = 3: No processes may be traced with ptrace. Once set, a reboot is needed to enable ptracing again.
Pour permettre à vos utilisateurs de tracer leurs propres process, vous pouvez donc faire :
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
mercredi, mai 8 2019
Par pepin le mercredi, mai 8 2019, 11:35
quelques commandes utiles sous bconsole :
Exécuter un job manuellement
run
Lancer une restauration
restore
attention, il faudra beaucoup d'info pour cela, comme selectionner le jeu a restaurer puis se deplacer dans l'arborescence de restauration des fichiers, et finir par "quit" pour annuler, ou "done" pour entamer la restauration.
la restauration se fera la ou le job utilisé pour les restauration (cf la config de votre directeur) l'indique.
Contrôler votre installation
status
et suivre les directions
Et bien sur, l'aide
help
En gros rien d'autre à faire que lire ce qu'affiche la console. Cependant je vais voir si il existe une vrai gui pour bacula
dimanche, mars 31 2019
Par pepin le dimanche, mars 31 2019, 22:52
Pour qu'un driver soit "dkmsisé" il faut faire ceci :
Creation d'un fichier DKSM.conf
Nous allons prendre l'exemple du driver rtl8821cu-541.
Copier le driver dans /usr/src/{DRV_NAME}-{DRV_VERSION}, ici : /usr/src/rtl8821CU-5.4.1
Création d'un fichier dkms.conf dans l'arborescence du driver, contenant :
PACKAGE_NAME="@PKGBASE@"
PACKAGE_VERSION="@PKGVER@"
BUILT_MODULE_NAME="8821cu"
PROCS_NUM=$(nproc)
[ $PROCS_NUM -gt 16 ] && PROCS_NUM=16
MAKE="'make' -j$PROCS_NUM KVER=${kernelver}
KSRC=/lib/modules/${kernelver}/build"
CLEAN="'make' clean"
DEST_MODULE_LOCATION="/kernel/drivers/net/wireless"
AUTOINSTALL="yes"
REMAKE_INITRD=no
Notez le module_name qui sera le nom du module installé dans votre système.
Ajout du driver, build et installation
sudo dkms add -m {DRV_NAME} -v {DRV_VERSION}
sudo dkms build -m {DRV_NAME} -v {DRV_VERSION}
sudo dkms install -m {DRV_NAME} -v {DRV_VERSION} --force
Suppression du driver
sudo dkms remove {DRV_NAME}/{DRV_VERSION} --all
Lister les drivers dkms-isés
dkms status
NB : une doc bien plus complète existe sur Lea-Linux
samedi, mars 16 2019
Par pepin le samedi, mars 16 2019, 15:30
Et voila que suite à la mise a jour de la distribtion, et donc un upgrade de libx265, je procède à la recompilation de ffmpeg.
Compilation : ko.
Nettoyage des options, configure : ok, compilation ko !
Bon je vous fait pas toute ma session d'une heure à chercher ... au final mon binaire est compilé mais lors de l'encodage j'ai le retour de l'infamie :
[Parsed_yadif_0 @ 0x55b5285d6f80] [IMGUTILS @ 0x7fffd56f6ab0] Picture size 0x0 is invalid
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Ca ne se passe que si je tente d'ajouter un texte en overlay.
Et ca, je l'avais déjà rencontré et corrigé mais absolument pas noté et maintenant oublié ! bref, cette fois, je re-planche dessuis et je noterai ici la solution !
Edit du 16/3
De toute évidence, ce que j'avais rencontré la première fois, n'était pas ce qui posait problème ici. Ici, il m'a fallu revenir à ffmpeg 3.3.9 pour que ca refonctionne. Régression ou changement de structure de filtres ? Je ne sais pas et il faudra que je réessaye quand j'y penserai !
jeudi, mars 14 2019
Par pepin le jeudi, mars 14 2019, 00:26
Prérequris
Installer les dépendances nécessaires à la compilation de ffmpeg et récupérer le source
apt-get build-dep ffmpeg
apt-get source ffmpeg
apt install yasm
apt -y install build-essential autoconf automake cmake libtool git checkinstall nasm yasm libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev libchromaprint-dev frei0r-plugins-dev gnutls-dev ladspa-sdk libcaca-dev libcdio-paranoia-dev libcodec2-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libgme-dev libgsm1-dev libjack-dev libmodplug-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenjp2-7-dev libopenmpt-dev libopus-dev libpulse-dev librsvg2-dev librubberband-dev librtmp-dev libshine-dev libsmbclient-dev libsnappy-dev libsoxr-dev libspeex-dev libssh-dev libtesseract-dev libtheora-dev libtwolame-dev libv4l-dev libvo-amrwbenc-dev libvorbis-dev libvpx-dev libwavpack-dev libwebp-dev libx264-dev libx265-dev libxvidcore-dev libxml2-dev libzmq3-dev libzvbi-dev liblilv-dev libmysofa-dev libopenal-dev opencl-dev libbluray-dev libfdk-aac-dev libbs2b-dev
SDK Nvidia
Downloader le sdk de nvidia a l'url https://developer.nvidia.com/nvidia-video-codec-sdk
unzip nvenc_5.0.1_sdk.zip
cd nvenc_5.0.1_sdk/Samples/common/inc
cp *.h /usr/local/include
Compiler ffmpeg
cd ~/ffmpeg
./configure --prefix=/opt/ffmpegnv
--extra-version=1build1
--build-suffix=-ffmpegnv
--libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu
--enable-gpl
--enable-shared
--disable-stripping
--enable-avresample
--enable-avisynth
--enable-frei0r
--enable-gnutls
--enable-ladspa
--enable-libass
--enable-libbluray
--enable-libbs2b
--enable-libcaca
--enable-libcdio
--enable-libfontconfig
--enable-libfreetype
--enable-libfribidi
--enable-libgme
--enable-libgsm
--enable-libmodplug
--enable-libmp3lame
--enable-libopenjpeg
--enable-openal
--enable-libopus
--enable-libpulse
--enable-librtmp
--enable-libshine
--enable-libspeex
--enable-libtheora
--enable-libtwolame
--enable-libvorbis
--enable-libvpx
--enable-libwavpack
--enable-libwebp
--enable-libxvid
--enable-libzvbi
--enable-opengl
--enable-libzmq
--enable-libssh
--enable-libsoxr
--enable-libx264
--enable-libx265
--enable-nonfree
--enable-nvenc
make
make install
Vous pouvez maintenant utiliser ffmpeg avec nvenc comme suit :
/opt/ffmpegnv/bin/ffmpeg -i source -vcodec nvenc_h264 -b:v 2000k destination.mkv
/opt/ffmpegnv/bin/ffmpeg -i source -vcodec nvenc_hevc -b:v 2000k destination.mkv
Vous pouvez même enregistrer votre bureau :
/opt/ffmpegnv/bin/ffmpeg -video_size 1920x1080 -framerate 15 -f x11grab -i :0.0+0,0 -vcodec nvenc_hevc -b:v 10000k screen_record.mp4
Le binaire résultant ne peut être packagé sans enfreindre la licence nvidia. Vous pouvez cependant l'utiliser librement sur votre ordinateur, la licence le permet.
Complément
Votre kernel doit disposer du module nvidia, et les librairies Cuda doivent être installées dans le même numéro de version que le driver kernel (nvidia-352 à la date de ce post)
apt-get install nvidia-352 libcuda1-352
Votre carte NVidia doit supporter Cuda ET NvEnc. De plus, le codage HEVC hardware n'est disponible que sur les cartes NVidia de génération Maxwell II (GM2XX).
samedi, février 23 2019
Par pepin le samedi, février 23 2019, 22:05
Ce truc peut vous permettre d'automatiquement baisser la luminosité, si vous le voulez en cas (d'absence) d'évènement extérieur :
echo 0 | sudo tee /sys/class/backlight/your_video_card_identifier/brightness
0 coupera totalement la luminosité.
Les valeurs supportées vont de 0 à X, X étant indiqué dans le fichier /sys/class/backlight/.../max_brightness
dimanche, septembre 30 2018
Par pepin le dimanche, septembre 30 2018, 22:04
oublie de la première ligne :
awk 'NR<2{print $0;next}{print $0| "sort"}'
ainsi nous affichons l'entête du fichier et trions les lignes suivantes !
NR<3 conservera deux lignes d'entête, NR<4 conservera 3 lignes, ...
jeudi, septembre 20 2018
Par pepin le jeudi, septembre 20 2018, 09:35
Tester sa configuration
sudo nginx -t
Relancer nginx :
kill --HUP $( cat /path/to/nginx/logs/nginx.pid )
autres signaux :
- TERM,INT : quick shutdown
- QUIT : graceful shutdown
- USR1 : reopne log files
- USR2 ; upgrade executablde on the fly
- WINCH : gracefully stop the worker
mercredi, août 22 2018
Par pepin le mercredi, août 22 2018, 21:00
Que contient le package
rpm -qlp /path/to/file.rpm
Que fourni le package installé ?
rpm -ql package
dnf repoquery -q -l package
dpkg -L package
equery files package
qlist package
Qui fournit le binaire ?
rpm -qf /bin/ps
yum whatprovides /bin/ps
dnf provides /bin/ps
dpkg -S /bin/ps
zypper what-provides /bin/ps
Pour note :
rpm, yum dnf : redhat, centos et dérivées
dpkg : debian
query, qlist : gentoo
zypper : opensuse
Par pepin le mercredi, août 22 2018, 20:43
Suivez le lien du site Percona
samedi, août 18 2018
Par pepin le samedi, août 18 2018, 17:00
S vous avez foutu le bordel dans une configuration de groupe LVM2 ou détruit accidentellement un volume group sour linux, vous pouvez le restorer rapidement en faisant ;
vgcfgrestore vol_name -f /etc/lvm/archive/your-name.vg
Regardez dans /etc/lvm/{backup,archive} pour plus d'info. Et comme toujours, n'oubliez pas les sauvegardes...
jeudi, août 2 2018
Par pepin le jeudi, août 2 2018, 19:16
nmap -sS -sC 127.0.0.1 -oA scan-tcp-std
nmap -sS --script ssl-heartbleed 127.0.0.1
sslscan 127.0.0.1
mercredi, juillet 25 2018
Par pepin le mercredi, juillet 25 2018, 19:29
Quand vous voulez des machines virtuelles pour faire des tests, passer par toutes les fenêtres de configuration de votre vm est une plaie.
En une ligne de commande (ou un script que vous modifiez à loisir :
virt-install \
--virt-type=qemu \
--name=coro2 \
--ram=1024 \
--vcpus=1 \
--os-variant=generic \
--virt-type=qemu \
--hvm \
--cdrom=/opt/iso/ubuntu-16.04.3-server-amd64.iso \
--network=bridge=br0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/coro2.qcow2,size=10,bus=virtio,format=qcow2
Nous regarderons aussi comment faire ca avec vagrant pour notre culture !
vendredi, juin 22 2018
Par pepin le vendredi, juin 22 2018, 11:33
Netscaler = debian avec un shell wrapper
Cosmetics
set cli mode -color ON
set cli prompt %u@%h-%T
Informations
show version
show hostname
show interface -summary
show node
show ip
show feature
show ns mode
Tout d'un coup
show info
Executer des commandes systeme
shell top
Obtenir un vrai shell
shell
Extrait de cette documentation
qui contient beaucoup plus que ce petit nécessaire.
mercredi, juin 13 2018
Par pepin le mercredi, juin 13 2018, 09:30
Pour du NAT 1:1, il faut utilsier -J NETMAP
iptables -t nat -A PREROUTING -d 10.11.0.0/16 -j NETMAP --to 192.168.0.0/16
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j NETMAP --to 10.11.0.0/16
InetDoc
dimanche, juin 3 2018
Par pepin le dimanche, juin 3 2018, 19:05
Activer le module ratelimit :
a2enmod ratelimit
puis ajoutez vos limitations par dossier dans la conf d'apache :
<Location "/free_to_download/">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 65
SetEnv rate-initial-burst 75
</Location>
vendredi, juin 1 2018
Par pepin le vendredi, juin 1 2018, 17:24
Mnemotechnique bete :
tail -f /var/log/hapee-1.5/lb-access-20180601.log | grep /Basic| sed 's,\(.*{[^{]*\)/Basic \([^}]*\)\(}.*\),\1£\2£\3,' | awk -v FS='£' '{system("echo " $2 "| base64 -d"); printf "\n";} '
vendredi, mai 18 2018
Par pepin le vendredi, mai 18 2018, 16:24
Construire l'image docker :
git clone https://github.com/sigtom/docker-cobblerc6
cd docker-cobblerc6
docker-compose build
docker run -it --name cobbler sigtom/docker-cobblerc6
Lancer les services :
service dnsmasq start
service httpd start
service cobbler start
[root@c33d6f6c8173 /]# cobbler
usage
=====
cobbler <distro|profile|system|repo|image|mgmtclass|package|file> ...
[add|edit|copy|getks*|list|remove|rename|report] [options|--help]
cobbler <aclsetup|buildiso|import|list|replicate|report|reposync|sync|validateks|version|signature|get-loaders|hardlink> [options|--help]
Notre serveur cobbler répond.
Il faut maintenant importer notre première distribution.
dimanche, mai 13 2018
Par pepin le dimanche, mai 13 2018, 12:11
Ubuntu 18.04, nouveau kernel, et zou, a la poubelle les drivers Realtek ...
Pour réinstaller :
git clone -b extended --single-branch https://github.com/lwfinger/rtlwifi_new.git
cd rtlwifi_new
make
make install
A l'installation du driver, si votre wifi est faible, sélectionnez une autre antenne. Pour cela, exécutez la commande suivante, puis rebootez :
/bin/sh -c 'echo "options rtl8723de ant_sel=2" >> /etc/modprobe.d/rtl8723de.conf'
Une fois rebooté vous pouvez admirer le résultat, soit avec l'indicateur dans la barre de tache, soit avec la commande :
nmcli device wifi list
jeudi, mai 10 2018
Par pepin le jeudi, mai 10 2018, 19:04
Lister les devices et les drivers recommandés :
ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001401sv000010DEsd0000116Fbc03sc00i00
vendor : NVIDIA Corporation
model : GM206 [GeForce GTX 960]
driver : nvidia-driver-390 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
== cpu-microcode.py ==
driver : intel-microcode - distro free
Installation automatique :
sudo ubuntu-drivers autoinstall
jeudi, avril 26 2018
Par pepin le jeudi, avril 26 2018, 09:51
Openvpn identifie sans problème ce qui est a destination de lui et peut forwarder le reste des flux a un sous systeme (apache par exemple).
Pour cela, paramètres votre apache pour que les connexion ssl soient sur un autre port :
#Listen 443
Listen 4343
Puis modifiez votre configuration vpn comme suit :
port 443
port-share 127.0.0.1 4343
proto tcp
Et voila, votre openvpn tourne sur un port banalisé que les fournisseurs d'accès internet ne filtrent généralement pas !
jeudi, avril 12 2018
Par pepin le jeudi, avril 12 2018, 09:45
Une base Berkeley DB peut être corrompue. Vérifier l'état de slapd en démarrant en mode DEBUG
slapd -d -1 -u ldap -g ldap -f /etc/openldap/slapd.conf
[...]
slapd startup: initiated.
bdb_db_open: dc=my-domain,dc=com
bdb_db_open: dbenv_open(/var/lib/ldap)
bdb_db_open: dc=your-domain,dc=tld
bdb_db_open: dbenv_open(/var/lib/iowaxsldap-hmc)
Arrêter le processus slapd
killall -9 slapd
la base en défaut semble se trouver dans /var/lib/iowaxsldap-hmc
su - ldap
cd /var/lib/iowaxsldap-hmc
db_recover -v
Rédmarrer slapd en mode debug pour vérifier
slapd -d -1 -u ldap -g ldap -f /etc/openldap/slapd.conf
slapd startup: initiated.
bdb_db_open: dc=my-domain,dc=com
bdb_db_open: dbenv_open(/var/lib/ldap)
[...]
slapd starting
Redémarrer normalement slapd
jeudi, avril 5 2018
Par pepin le jeudi, avril 5 2018, 16:03
petit script pour prendre une image de disque au format raw et en extraire les partitions afin de les monter en loopback :
for f in $*
do
sfdisk -l $f | awk -v img="$1" -v start=9999 '{if (/Périphérique/) start=NR;
; if (NR>start) printf ("dd if=%s of=%s skip=%d count=%d\n",img,$1,$2,$4) }'
done
lundi, mars 26 2018
Par pepin le lundi, mars 26 2018, 08:57
apt install build-essential libavformat57 libavcodec57 libavformat-dev libavcodec-dev
wget http://qpsnr.youlink.org/data/qpsnr_0.2.5.tar.bz2
tar xvf qpsnr_0.2.5.tar.bz2
sed -i 's/PIX_FMT_/AV_PIX_FMT_/g' src/qav.cpp
sed -i 's/avcodec_alloc_frame/av_frame_alloc/g' src/qav.cpp
make
vendredi, mars 23 2018
Par pepin le vendredi, mars 23 2018, 16:56
mode server
local 0.0.0.0
port 1194
dev tap
proto tcp
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh2048.pem
# Ip de l'interface tap pour le routage de sortie
ifconfig 192.168.30.1 255.255.255.0
server-bridge 192.168.30.1 255.255.255.0 192.168.30.100 192.168.30.200
# Config par client (un fichier par cn de certificat)
client-config-dir /etc/openvpn/client
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
keepalive 10 180
down-pre
max-clients 10
log-append /var/log/openvpn.log
verb 4
plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so login
Exemple de configuration a passer pour un client :
client
dev tap
remote vpn.mon-domaine.tld. 1194 udp
route remote_host 255.255.255.255 net_gateway
resolv-retry infinite
nobind
route-delay 4
verb 3
comp-lzo
<ca>
-BEGIN CERTIFICATE-
...
-END CERTIFICATE-
</ca>
<cert>
-BEGIN CERTIFICATE-
...
-END CERTIFICATE-
</cert>
<key>
-BEGIN PRIVATE KEY-
...
-END PRIVATE KEY-
</key>
Exemple de configuration de client : /etc/openvpn/client/bob@domain.com
ifconfig-push 192.168.90.9 192.168.90.1
push "route 172.18.0.0 255.255.0.0"
push "route 192.168.1.0 255.255.255.0"
push "route 192.168.2.0 255.255.255.0"
Le fait de fixer l'ip du client avec la configuration par client permet ensuite d'affiner ses droits avec iptables, puisque l'ip est connue à l'avance.
mercredi, mars 21 2018
Par pepin le mercredi, mars 21 2018, 14:54
cp /etc/fstab /etc/fstab.old
blkid | grep UUID| sed 's,\(.*\): UUID="\(.*\)" TYPE.*,s;\1;UUID=\2;,' | grep ";" | sed -i -f - /etc/fstab
mardi, mars 20 2018
Par pepin le mardi, mars 20 2018, 17:02
sh CP*.scexe --unpack=.
une fois le paquet extrait, vous pouvez charger l'environnement, et lancer la mise à jour de firmware
source CPINIT
./hpsetup
dimanche, mars 18 2018
Par pepin le dimanche, mars 18 2018, 12:10
Ajout : %%%
- gestion d'options de choix de type et de filtrage
- réécriture du awk de cacul de longueur et d'affichage pour fusionner en monopasse.
#!/bin/bash
DRY=0
function help {
echo `basename $0` " [-NfdG:]"
echo " -N ; dry-run"
echo " -f : Files Only"
echo " -d : Directories Only"
echo " -G [pattern] : fikter result"
}
while getopts "fdhg:N" OPTION
vi $file
do
case $OPTION in
N) DRY=1; ;;
f) sopts='-type f'; ;;
d) sopts='-type d'; ;;
g) sfilter=$OPTARG; ;;
h) help; ;;
esac
done
file=/tmp/massrename$$
find . -maxdepth 1 $sopts | grep -e "$sfilter" | sed 's,\./,,' | \
awk '{l=length($0); a[$0]=1; if (l>len) len=l;}END{for (i in a) printf("%-" len "s -> %s \n",i,i)}' > $file
vi $file
sed -i 's,^ *,,;s, *$,,;s, *-> *,;,' $file
awk -v FS=';' -v dry=$DRY \
'{if ($1!=$2) {
if (!dry) system ("mv -vi \"" $1 "\" \"" $2 "\"");
if (dry) print ("mv -vi \"" $1 "\" \"" $2 "\"");}}' $file
\rm -f $file
Voila, cette version deux est tout de même bien plus satifsaisante !
vendredi, mars 16 2018
Par pepin le vendredi, mars 16 2018, 10:55
Warning : Doc en cours de rédaction ... les plâtres sont pas secs
sudo kvm -hdb /dev/sdb -boot d -cdrom ubuntu-16.04.4-server-amd64.iso -m 512m
Le -m 512 est imoprtant, sans quoi le "live cd" échouera !
Pour des distribs comme centos, ca peut nécessiter encore plus de mémoire !
mercredi, mars 7 2018
Par pepin le mercredi, mars 7 2018, 15:10
SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema;
vendredi, février 16 2018
Par pepin le vendredi, février 16 2018, 09:50
Pour cela il faut les ipmitools
Trouver le device ILO
for i in `seq 1 14`; do ipmitool lan print $i 2>/dev/null | grep -q ^Set && echo Channel $i; done
Lire la configuration
ipmitool lan print 2
Configurer une IP statique
ipmitool lan set 2 ipsrc static
ipmitool lan set 2 ipaddr 192.168.42.36
ipmitool lan set 2 netmask 255.255.255.0
ipmitool lan set 2 defgw ipaddr 192.168.42.1
ipmitool mc reset cold
Une autre façon de procéder est d'utiliser hponcfg
Dumper la conf ILO
hponcfg -a -w ilo.xml
Charger une configuration ILO
hponcfg -f ilo.xml
Le fichier xml aura été préalablement modifié
mardi, février 13 2018
Par pepin le mardi, février 13 2018, 01:10
Voici un petit script que nous appelons alertesecteur, qui surveille que l'alimentation est bien connectée au portable :
#!/bin/bash
upower -i /org/freedesktop/UPower/devices/line_power_ADP0 | \
awk '{if (/online/ && /yes/) {exit 1}}'
[ $? == 1 ] && play -q /usr/share/sounds/ubuntu/ringtones/Marimbach.ogg
Si ce n'est pas le cas, elle joue une petite mélodie.
Il ne reste plus qu'a mettre ce script dans une crontab pour être exécuté toutes les 20 minutes, et ainsi nous sommes alerté par la mélodie que le secteur a été débranché !
vi /etc/crontab
*/20 * * * * root /usr/local/bin/alertesecteur
Nous pouvons bien entendu mettre d'autres types d'alarmes (visuelles, mails, snmptrap, zabbix, ...)
lundi, février 12 2018
Par pepin le lundi, février 12 2018, 23:39
Sous Ubuntu, l'état de la batterie portable est toujours disponible dans la barre des taches ...
Mais la barre des taches n'est pas toujours disponible (haha), par exemple via un monitoring distant.
Pour contrôler l'état de la batterie, nous pouvons utiliser upower en ligne de commande.
Liste des devices supportés par upower :
upower -e
État d'un device
upower -i <device>
Et maintenant, on combine pour trouver automatiquement les Batteries (BAT) et afficher leurs charge.
upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"
Par pepin le lundi, février 12 2018, 14:38
Simplement en une ligne dconf :
dconf write /org/gnome/desktop/background/show-desktop-icons true
lundi, février 5 2018
Par pepin le lundi, février 5 2018, 12:20
Lvm permet d'augmenter graduellement l'espace alloué à un serveur (virtuel ou physique) par l'ajout de ressources (nouveau disque dur) que nous "fusionnons" avec les disques en activité :
$ lsblk
sdb 8:16 0 70G 0 disk
$ mount | grep "on / "
/dev/mapper/ubuntu--vg-ubuntu--lv on / type ext4 (rw,relatime)
$ pvcreate /dev/sdb
$ vgextend ubuntu-vg /dev/sdb
$ lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
$ resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
/dev/sdb est notre disque ajouté et le volume ubuntu-lv est maintenant augmenté de 70go.
Très bien dans un contexte proxmox ous nous créons des templates light que nous augmentons ensuite !
mardi, janvier 23 2018
Par pepin le mardi, janvier 23 2018, 17:30
Depuis ces documentations la :
Prérequis SElinux :
setsebool -P named_write_master_zones 1
Paramétrage de la zone pour dnssec
dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE doctorwhooo.fr
dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE doctorwhooo.fr
chown named.named Kdoctorwhooo.fr*
vi doctorwhooo.fr
$INCLUDE Kdoctorwhooo.fr.+007+04293.key
$INCLUDE Kdoctorwhooo.fr.+007+28217.key
+ Incrément Serial
vi /etc/named/zone_tardis.conf
zone "doctorwhooo.fr" {
type master;
file "doctorwhooo.fr";
allow-query { any; };
+ auto-dnssec maintain;
+ inline-signing yes;
};
Paramétrage de bind
vi /etc/named.conf
dnssec-enable yes;
dnssec-validation auto;
dnssec-lookaside auto;
service named restart
Validation première
dig dnskey doctorwhooo.fr @dns.local
;; ANSWER SECTION:
doctorwhooo.fr. 43200 IN DNSKEY 256 3 7 AwEAAfPU4a1AsUe6kRSGn9jWqmd7lC/O1B1zjrdXaObGTFejE1nzsuoR O5uOou6QH3qUSQkeyZgSzDOH9tde+wQVT+j68v8o9ZhAZZ/BHrruydIR DJM3k1wjb+PXWWNWU8hkd5bUQ7yDAao5OLgReCnXQ5KhLYwlkEDqfng5 h+9v5G56PeqTRo49edOGRDe2q4mU6NSxzxaypv8dxtRqx1/oA78rQ037 IgtPgENU4pLe3nmFNdqZnpgEZoZjaJlOjSt9JF8/efRxZ91JfvMBC9mK UjEgBCh8J/GKFaaQNGreZQFW2GK5Ttr4Lf8K/5KxOQOA3T553aKvEd2x rJN8Ix/1trM= ; ZSK; alg = NSEC3RSASHA1; key id = 28217
doctorwhooo.fr. 43200 IN DNSKEY 257 3 7 AwEAAai+Kc3ic4fezqhHj3uxI4ODcCaILKw6Mq2Nzsr0eN7VVA/e3/Af s1PjXkoXYtJHPPwfEhk3iP9EK1O871NWms2Of31l7kCnjQz+tSOO9RMf Rw4KYjUqqMQxnUpRzcSrln9+DGoKNJAJsyXbcCbzFN2WRTvQ6nU/vfZI rcM3NWJ8TKvuWmiXWCF2BJ9ZKQzHoreFErDIyqx5ZW/7rR7umUK84ao/ GBatfU/jGCxeeDzSa48qlLTn+yo55qCqinaHo952yAXLokMG37dJD5HT AIClc1dVJNQUpqei4qDFyAbpyoZXMFvDqkC02xQVuwYnkjrpGwOspHrL P5SJ/npp34rggyKzywFA2uldEW0Ry3lknBpHd5Vk+gIIsc3g0jqHmBXA SB5I7bJlIr147uYc7yYtEhSqdH/epclO6pcnjhWoQjQ8meOdHmVIZhDp hWa0fZbZN8ffT20y1YG6/tOiVVLghoUcWD4UyY19sU3zD4HU/aJOdn3h CLVX3iwmNc1XzjZalkEln0RFHHbxhH9h9Ocsv0H6UUwBjAgTynKri4Fk 8IRu2xgkBcsRqfIUQvsAHKyM/HMOPQrljxUU0h3LaQNk+hwjn9JXDk6e kKsrnoQUwtyYB9QVSDY9yOUWpxrR/Uv/neRf9mHHCFGn7EisyDeQ8I5C Ja0wXoxkvSVpp7Nb ; KSK; alg = NSEC3RSASHA1; key id = 4293
Les clefs ZSK et KSK sont en place.
A ce stade, https://dnssec-debugger.verisignlabs.com/doctorwhooo.fr nous indique qu'il ne nous manque que le DS.
dnssec-dsfromkey Kdoctorwhooo.fr.+007+04293.key
doctorwhooo.fr. IN DS 4293 7 1 8E38D736E3E6FAA261ED6B920AF1CB523A20990B
doctorwhooo.fr. IN DS 4293 7 2 7FEE0B93D933DDFA5CC40D7625B41528B0B4B3F42845FA9A826A5AF1 4FEB0988
Considérations additionnelles sur le renouvellement de KSK et ZSK, Lire Ça
vendredi, janvier 19 2018
Par pepin le vendredi, janvier 19 2018, 10:00
Sous SElinux, il existe trois causes de blocages :
Une permission booleene
setsebool -P named_write_master_zones 1
Une permission de contexte (AVC)
grep named /var/log/audit/audit.log | audit2allow -m named > named.te
checkmodule -M -m -o named.mod named.te
semodule_package -o named.pp -m named.mod
semodule -i named.pp
Une fois un module installé, il l'est définitivement (rien à faire au prochain boot)
Une permission lié a un label
voir du cote de selabel_* et google
Pour connaitre la cause de blocage, un audit2allow est la clef.
Bonus :
Dans un playbook ansible
, voici la syntaxe :
seboolean: persistent=yes state=yes name=named_write_master_zones
jeudi, janvier 18 2018
Par pepin le jeudi, janvier 18 2018, 11:59
Attention, ce post est écrit dans un contexte de DNS Maitre.
Dnssec permet de signer les résolution DNS et garantir leur authenticité
Aller dans le répertoire des zones, et générez vos signatures avec les commandes :
zone="ban-kai-ki-kai.org"
zonefile="bankai.org"
dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE $zone
dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE $zone
pour pour chaque fichier .key généré , ajouter au fichier de zone :
$INCLUDE fichier.key
puis editer votre named.conf pour rajouter
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
Modifier la déclaration de la zone pour inclure l'auto-signature et renouvellement, en ajoutant dans la définition de la zone :
auto-dnssec maintain;
inline-signing yes;
Une fois tout cela fait, vous pouvez relancer bind. et valider avec la commande :
dig DNSKEY ban-kai-ki-kai.org. @localhost +noadditional +dnssec +multiline
Si ca ne marche pas, cela peut etre du a SELinux, et dans ce cas, faire :
setsebool -P named_write_master_zones 1
vendredi, janvier 12 2018
Par pepin le vendredi, janvier 12 2018, 10:20
Dans un cas de spam si votre serveur répond, cette réponse n'aboutiera surement pas pour des raison de serveur smtp indisponible (les spammeurs vont du spam scripté avec des adresse de réponse maudites).
Voici comment empêcher ces réponses : le header_check de postfix :
/^Subject: .*Undeliverable:.*\[SPAM/ DISCARD Reponse a un SPAM
Si votre file d'attente est engorgée avant la mise en place de cette règle, vous pouvez la purge comme suit :
for f in `postqueue -p | grep MAILER-DAEMON | sed 's,*,,' | awk '{print $1}'` ; do postcat -q $f | grep -q "^Subject: .*Undeliverable:.*\[SPAM" && postsuper -d $f ; done
lundi, janvier 8 2018
Par pepin le lundi, janvier 8 2018, 17:17
Deux outils indispensables pour vos serveurs HP !
hpasmcli
,vous permet d'interroger les informations de votre chassis HP.
hpssacli (historiquement hpacucli)
,vous permet d'interroger la carte controlleur et de manipuler le raid.
Par pepin le lundi, janvier 8 2018, 08:45
Rien de bien sorcier ici, encode un pense bête : le reformatage de la sortie de postqueue pour sérialiser les entrées et faciliter les grep et sort sans impact négatif
postqueue -p | tr '\n' ';' | sed 's,;;,\n,g;s,; *,;,g'
Ce script que vous appellerez "postqueueflat" peut être utilise conjointement avec awk pour réorganiser les "colonnes" séparées par ";" et tiers ou filtrer le résultat.
vendredi, janvier 5 2018
Par pepin le vendredi, janvier 5 2018, 23:25
Avoir un serveur vpn qui authentifie par certificats c'est déjà bien, mais rajouter en plus une authentification login mot de passe, c'est encore mieux !
pour cela, il faut ajouter les lignes suivantes au fichier de configuration de votre serveur openvpn :
plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so login
Attention, un bug dans le fichier de lancement d'openvpn par systemctl fait que l'authentification ne marche pas. Pour le corriger, il faut éditer
/lib/systemd/system/openvpn@.service, et modifier comme suit :
#CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE CAP_AUDIT_WRITE
Un fois cela fait, recharger les définitions de systemd
systemctl daemon-reload
Puis relancer le serveur openvpn :
systemctl stop openvpn
systemctl start openvpn
Attention encore, il faut ajouter la directive suivante au fichier client :
auth-user-pass
Voila, votre serveur est maintenant "two-factor authentification" !
Petit bonus, nous pouvons "bundeliser" les certificats dans le fichier de conf, ce qui permet de tout livrer en un seul fichier :
Pour cela, le fichier sera comme suit :
client
....
....
<ca>
...
</ca>
<cert>
...
</cert>
<key>
...
</key>
Et voila, vous n'avez plus qu'un seul fichier à livrer (sauf si vous utiliser un "ta" en plus.)