Outils pour utilisateurs

Outils du site


blog

Memento OpenSSL

Source http://www.vincentliefooghe.net/node/113

Pour chiffrement de fichier voir scrypt

1 Si DSA :

openssl dsaparam -out dsaparam.pem 4096

2 Génération de la clef privée:

Si RSA

#openssl genrsa -des3 -out macle.key 2048
openssl genrsa -out macle.key 2048

Note : avec l'option -des3 openssl demande une passphrase

Si DSA

openssl gendsa -des3 -out macle.key dsaparam.pem

Si Elliptic Curve key

 #openssl ecparam -genkey ....

N'oubliez pas de noter la pass phrase, elle sera utilisée par la suite

3 Génération d'un certificat auto-signé

openssl req -new -x509 -days 3650 -key macle.key -sha256 -extensions v3_ca -out macle.crt

Génération de la paire de certificat + clef en une seule ligne

openssl req -nodes -new -x509  -keyout server.key -out server.cert
4 Génération d'une demande de certificat (CSR)

Si on ne veut pas générer un certificat auto-signé (pas reconnu dans les navigateurs et clients), il faut généralement passer par une étape intermédiaire : générer un CSR (Certificate Signing Request) qui sera signé par une autorité de certification (les sociétés telles que Verisign, Thwate & Co). On peut aussi utiliser son propre certificat auto-signé comme certificat d'autorité par la suite.

openssl req -sha256 -new -key macle.key -out macle.csr -days 3650

5 Signature d'un CSR

On va signer la demande de certificat (.csr) avec la clé et le certificat de l'autorité de certification :

openssl ca -in macle.csr -out macle.crt -keyfile ca.key -cert ca.crt -days 3650 -extensions usr_cert -notext -md sha256

Il est parfois nécessaire de créer un fichier index.txt et serial (selon les O.S.). Par exemple sur un Linux RHEL / CentOS :

touch /etc/pki/CA/index.txt
echo 0000 > /etc/pki/CA/serial

6 Vérification

On peut vérifier le certificat de plusieurs manières :

avec openssl verify, qui vérifie son DN et sa validité \ avec openssl x509, qui dump le contenu du certificat

on peut ajouter une option pour vérifier le “chaining” avec le certificat de l'autorité :

¢ openssl verify -CAfile ca.crt macle.crt
macle.crt: OK

Autre

Suppression de la pass-phrase d'une clé
$ cp macle.key macle.key.avecpass
$ openssl rsa -in macle.key.avecpass -out maclesanspass.key
Enter pass phrase for macle.key.avecpass:
writing RSA key
Conversion en format PKCS12

Le format PKCS12 contient le certificat et la clé ; il est parfois utilisé pour l'import d'un certificat dans des keystore Java ou par des utilitaires Windows.

Il faut disposer de la clé privé et du certificat pour les exporter au format pkcs12 :

openssl pkcs12 -export -inkey macle.key  -in macle.crt -name AliasDeLaCle -out macle.p12

Conversion

Convert PEM to PKCS12

openssl pkcs12 -export -inkey privatekey.pem -in cert.pem -certfile cacert.pem -out bundle.p12

Convert PKCS12 file to PEM (you can then chop the files up with a text editor)

openssl pkcs12 -nodes -in bundle.p12 -out bundle.pem

Convert DER (binary) to PEM

openssl x509 -inform der -in plop.local.cer -out plop.local.pem
2025/03/24 15:06

Ansible Vagrant et Docker

Docker

Install
Proxy
Général

Ajout du compte au groupe docker

adduser jean docker

Attention, cela créé une faille de sécurité

Exemple

docker run -ti --privileged -v /:/host fedora chroot /host

Voir http://www.projectatomic.io/blog/2015/08/why-we-dont-let-non-root-users-run-docker-in-centos-fedora-or-rhel/

Conf conteneur

Dockerfile

FROM debian:jessie
 
#ENV http_proxy  http://192.168.56.1:3128
#ENV https_proxy http://192.168.56.1:3128
 
ARG https_proxy
ARG http_proxy
 
ENV DEBIAN_FRONTEND noninteractive
ENV TERM linux
ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8
ENV LC_ALL C.UTF-8
 
RUN echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list
RUN (apt-get update && apt-get upgrade -y -q && apt-get dist-upgrade -y -q && apt-get -y -q autoclean && apt-get -y -q autoremove)
RUN apt-get install -q -y --no-install-recommends openssh-server python-minimal tmux bash locales sudo vim supervisor
RUN apt-get install -q -y --no-install-recommends -t jessie-backports ansible
 
RUN (locale-gen fr_FR.UTF-8 UTF-8 && dpkg-reconfigure locales)
 
RUN mkdir -p /var/run/sshd
RUN mkdir /root/.ssh
RUN echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQP77kB6AoqUSfvgy844x46CpJC5qLFTgnh2meUxMxA98jvk8TkheKICY2WBiEdORC4uGWVuMEIy0Zy/vL25JFlu7lgZ2B8g7r7JmITpVQMc+TlF5GyJqE1r56A5ljqZXKVVE9PnLCi2FN0rhQLpYM645U0Akvkc6yS0+6RFSWkobrC9/F1L6PU+dzmw6Yisd2nFDjw/J43QrADGPi3HCY+xTjcW/TD8FyGlNWuvNlvHY8aQKoOnuvWnK7F32ciaJE6/8BLKCap/lmkEtxAFd7hAt5YpLK6lNXtkbTKxBZF7SChVW4KJbI5IK2kaHIuXBhMfVTt3xSxk08wahbnVhV root@debian2.localdomain" > /root/.ssh/authorized_keys
 
COPY sshd.conf /etc/supervisor/conf.d/sshd.conf
 
EXPOSE 22
ENTRYPOINT ["/usr/bin/supervisord", "-c",  "/etc/supervisor/supervisord.conf",  "-n"]

Conf supervisord

sshd.conf

[program:sshd]
directory=/
command=/usr/sbin/sshd
autostart=true
autorestart=true
user = root
#docker build --no-cache -t plop --build-arg http_proxy=http://192.168.56.1:3128 --build-arg https_proxy=http://192.168.56.1:3128 .
docker build -t plop --build-arg http_proxy=http://192.168.56.1:3128 --build-arg https_proxy=http://192.168.56.1:3128 .

Vagrant

Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.provider "docker" do |d|
    #d.image = "debian:jessie"
    d.remains_running = false
    d.build_dir = "."
    d.has_ssh = true
    d.create_args = ['--name=ansible1']
  end
  config.ssh.username = "root"
  config.ssh.private_key_path = "~/.ssh/id_rsa"
 
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "play-fi.yml"
    ansible.extra_vars = {
                hostname: "default"
        }
  end
 
end

Autre

Un Makefile pour nous simplifier la vie

Makefile

FicListYaml = $(shell find . -type f -iname "*.yml" -not -iname "mdp.yml")
FicListPlayBook = $(shell echo play*.yml)
 
check:  check-yaml check-ansible
 
# Check YAML syntax
check-yaml:
        for Fic in $(FicListYaml); do \
                ansible-lint "$$Fic" || break ; \
        done
 
check-ansible:
        for Fic in $(FicListPlayBook); do \
                ansible-playbook --check "$$Fic" || break ; \
        done
 
apply:
        for Fic in $(FicListPlayBook); do \
                ansible-playbook "$$Fic" || break ; \
        done
 
# Check idempotent
check-active:
        $(eval changed := $(shell ansible-playbook play-fi.yml | tail -2 | sed -e 's/^.*changed=\([0-9][0-9]*\).*/\1/'))
        @if [ "$(changed)" != "0" ]; then\
                echo "ERR NO idempostent";\
                false ;\
        fi
 
clean:
        rm -f *.retry
        vagrant destroy -f
 
build:
        vagrant up --provider=docker
 
status:
        vagrant global-status
        docker ps

Pb

La commande hostname échoue dans un Docker

J'ai dû utiliser la clause WHEN

- name: define hostname
  hostname: name='{{hostnameFqdn}}'
  when: ansible_virtualization_type != "docker"

La modification du fichier /etc/hosts via lineinfile pose également pb.

Could not replace file: /tmp/tmpu74RFY to /etc/hosts: [Errno 16] Device or resource busy

https://github.com/William-Yeh/docker-ansible/issues/4

2025/03/24 15:06

MDP pam Empêcher de réutiliser un ancien mot de passe utilisateur

Tester sur Debian Jessie

touch /etc/security/opasswd
chmod 700 /etc/security/opasswd
chown root:root /etc/security/opasswd

Dans le fichier /etc/pam.d/common-password, ajouter remember=5 dans la ligne appelant le module pam_unix.so /etc/pam.d/common-password

#password       [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512
password        [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512 remember=5

Tester si c'est ok

2025/03/24 15:06

Materiel sécurité et insécurité

Intel Management Engine

Vulnerable and proprietary low-level hardware parts … advanced attacks.

The Intel Management Engine (ME) is a type of separate computer within all modern Intel processors (CPU). The ME acts as a master controller for your CPU and has extensive access to your computer (system memory, display, keyboard, network). Intel controls the code of the ME and severe vulnerabilities have already been found in the ME that allow local and remote attacks. Therefore, ME can be considered a backdoor.

Gadget pentest

Yubikey

Autres

Virtual Intel Software Guard Extensions (vSGX)

2025/03/24 15:06

Notes Markdown Étendue

Lint

markdownlint (mdl)
$ sudo apt-get install markdownlint

$ mdl notes_-_nerdctl.txt 
notes_-_nerdctl.txt:13: MD012 Multiple consecutive blank lines
notes_-_nerdctl.txt:20: MD012 Multiple consecutive blank lines
notes_-_nerdctl.txt:24: MD012 Multiple consecutive blank lines
notes_-_nerdctl.txt:42: MD012 Multiple consecutive blank lines
notes_-_nerdctl.txt:54: MD012 Multiple consecutive blank lines
notes_-_nerdctl.txt:55: MD012 Multiple consecutive blank lines
notes_-_nerdctl.txt:67: MD012 Multiple consecutive blank lines
notes_-_nerdctl.txt:30: MD013 Line length
notes_-_nerdctl.txt:50: MD031 Fenced code blocks should be surrounded by blank lines
notes_-_nerdctl.txt:7: MD032 Lists should be surrounded by blank lines
notes_-_nerdctl.txt:15: MD032 Lists should be surrounded by blank lines
notes_-_nerdctl.txt:22: MD032 Lists should be surrounded by blank lines
notes_-_nerdctl.txt:15: MD034 Bare URL used
notes_-_nerdctl.txt:16: MD034 Bare URL used
notes_-_nerdctl.txt:17: MD034 Bare URL used
notes_-_nerdctl.txt:18: MD034 Bare URL used
notes_-_nerdctl.txt:22: MD034 Bare URL used

Conversion Markdown vers ODT

pandoc notes.md -f markdown -t odt -o notes.odt
Autres
pandoc --list-input-formats lists native

Éditeurs Markdown

Voir :

  • hedgedoc
Markdown slide
Editer un fichier Markdown avec Atom

Atom \ Puis [CTRL] + [SHIFT] + [M] \ Ou “Packages - Markdown Preview - Toggle Preview”

Linter

Install

sudo apt-get install ruby-mdl

Utilisation

mdl fichier.md

Config - ignorer une règle

mdl ~/code/mkdocs/projet1/docs/start.md 
/home/jean/code/mkdocs/projet1/docs/start.md:41: MD013 Line length
/home/jean/code/mkdocs/projet1/docs/start.md:171: MD013 Line length

mdl -r ~MD013 ~/code/mkdocs/projet1/docs/start.md
mdl -r ~MD013,~MD046 ~/code/mkdocs/projet1/docs/start.md

Autres

Markdown

For security reasons, the Unicode character U+0000 must be replaced with the REPLACEMENT CHARACTER (U+FFFD)

#sudo add-apt-repository ppa:wereturtle/ppa
sudo apt update
sudo apt install ghostwriter

markdown.pl

2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki