Outils pour utilisateurs

Outils du site


blog

Ubuntu problème langue clavier

Voir :

  • IBus
  • SCIM
  • Fcitx
  • Mozc

Bug sur Ubuntu (Quelle version ?). Ubuntu démarre (Le problème apparaît seulement une fois logé sur l'interface graphique)

Ubuntu est en clavier yankee appelé qwerty

Sources :

Qwerty

En cliquant sur l’icône de la langue clavier, se situant en haut, le problème cesse jusqu'au prochain redémarrage.

Solution : dans un terminal taper :

ibus-setup

Si vous ne pouvez pas utiliser dbus, ajouter les lignes suivantes dans votre

~/.bashrc

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

Fermer, puis relancer le terminal (pour relire le .bashrc)

Onglet “Méthode d'entrée” “Personnaliser les méthodes de saisie actives” Vérifier que la langue clavier est correctement configuré

Onglet “Avancé” Cocher la case “Utiliser la disposition clavier système”


Voir aussi

loadkeys fr
 
# Idem pour X11
setxkbmap fr

Sous Debian

# loadkeys fr
cannot open file fr
loadkeys /usr/share/keymaps/i386/azerty/azerty.kmap.gz
cd /usr/share/keymaps
ln -s i386 amd64

Changer agencement clavier :

loadkeys fr-pc

Sous Archlinux /etc/vconsole.conf

KEYMAP=fr

Dé-commenter les locales souhaiter (pour définir la langue du système)

nano /etc/locale.gen

Exécuter :

locale-gen

Ajouter la même locale dans /etc/locale.conf Pour la France : ajouter : /etc/locale.conf

LANG="fr_FR.UTF-8"

Ajouter la locale pour la session courante :

export LANG=fr_FR.UTF-8

/etc/default/locale

#  File generated by update-locale
LANG="fr_FR.UTF-8"

Paramètres noyau

lang=fr_FR kmap=fr-latin1
2025/03/24 15:06

Tunnel SSH over HTTPS

SSLH

Voir

apt-get install sslh

Nous configurons notre serveur web en HTTPS, mais au lieu d'utiliser le port 443 ici nous allons utiliser le port 444.

Puis nous configurons SSLH pour écouter sur le port 443 et si HTTPS se connecter sur 127.0.0.1:444

/etc/default/sslh

#DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:7001 --ssl 127.0.0.1:444 --pidfile /var/run/sslh/sslh.pid
service nginx rstart
service sslh restart

à présent on peux serfer sur https://www.acme.fr et aussi se connecter en ssh via ssh www.acme.fr -p 443

/etc/fail2ban/jail.local

# Add the following to your fail2ban jail.conf
# In Debian you'd append it to /etc/fail2ban/jail.local
 
[sslh-ssh]
enabled = true
filter = sslh-ssh
action = iptables-multiport[name=sslh,port="443"]
logpath = /var/log/messages
maxretry = 5
2025/03/24 15:06
, ,

Traefik - un reverse proxy pour Docker

Voir aussi :

traefik.yml

entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"

serversTransport:
  insecureSkipVerify: true
#  rootCAs:
#    - certs/inter-chain.pem

providers:
  file:
    filename: dynamic_conf.yml
    watch: true
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false

log:
  #level: DEBUG
  level: INFO

api:
  dashboard: true
  #debug: true
  #insecure: true

dynamic_conf.yml

tls:
  certificates:
    - certFile: certs/registry.docker.local.crt
      keyFile: certs/registry.docker.local.key

    - certFile: certs/wildcard.docker.local.crt
      keyFile: certs/wildcard.docker.local.key
      stores:
        - default

  stores:
    default:
      defaultCertificate:
        certFile: certs/wildcard.docker.local.crt
        keyFile: certs/wildcard.docker.local.key

  options:
    default:
      minVersion: VersionTLS12
      sniStrict: true

docker-compose.yml

version: '3.7'
services:
  traefik:
    image: traefik
    #restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - $PWD/traefik.yml:/traefik.yml:ro
      - $PWD/dynamic_conf.yml:/dynamic_conf.yml:ro
      - $PWD/certs:/certs:ro
#    environment:
#      PUID: ${PUID}
#      PGID: ${PGID}
#      TZ: ${TZ}
    labels:
      - traefik.enable=true
      - traefik.http.routers.dashboard.entrypoints=web
      - traefik.http.routers.dashboard.rule=Host(`traefik.docker.local`)
      #- traefik.http.services.s-dashboard.loadbalancer.server.port=8080
      - traefik.port=8080
      - traefik.http.routers.s-dashboard.entrypoints=websecure
      - traefik.http.routers.s-dashboard.rule=Host(`traefik.docker.local`)
      - traefik.http.routers.s-dashboard.service=api@internal
      - traefik.http.routers.s-dashboard.middlewares=auth@docker
      # mkpasswd -m md5 |sed -e 's/\$/$$/g'
      - traefik.http.middlewares.auth.basicauth.users=jean:$$1$$qvbVKuOn$$qKZpjcMQuMFWNgC9vtycL1
      - traefik.http.routers.s-dashboard.tls=true
      - traefik.http.routers.dashboard.middlewares=https-redirect@docker
      - traefik.http.middlewares.https-redirect.redirectscheme.scheme=https
      - traefik.http.middlewares.https-redirect.redirectscheme.permanent=true
 
#  hello:
#    image: osones/helloworld
#    labels:
#      - traefik.enable=true
#      - traefik.http.routers.hw.entrypoints=web
#      - traefik.http.routers.hw.rule=Host(`hw.docker.local`)
#      - traefik.http.routers.s-hw.entrypoints=websecure
#      - traefik.http.routers.s-hw.rule=Host(`hw.docker.local`)
#      - traefik.http.routers.s-hw.tls=true
#      - traefik.http.routers.hw.middlewares=https-redirect@docker
#      - traefik.http.middlewares.https-redirect.redirectscheme.scheme=https
#      - traefik.http.middlewares.https-redirect.redirectscheme.permanent=true
#      #- "traefik.port=80"
#      #- "traefik.backend=hello"

  redis:
    image: redis
    #restart: unless-stopped
    restart: always
  registry:
    image: registry:2
    depends_on:
      - redis
    environment:
    environment:
      - REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/data
      - REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=redis
      - REGISTRY_REDIS_ADDR=redis:6379
    volumes:
      - $PWD/data:/data
    labels:
      - traefik.enable=true
      - traefik.port=5000
      - traefik.http.routers.s-registry.rule=Host(`registry.docker.local`)
      - traefik.http.routers.s-registry.entrypoints=websecure
      - traefik.http.routers.s-registry.tls=true

  registry-ui:
    image: konradkleine/docker-registry-frontend:v2
    #restart: unless-stopped
    depends_on:
      - registry
    environment:
      ENV_DOCKER_REGISTRY_HOST: 'registry'
      ENV_DOCKER_REGISTRY_PORT: 5000
      #ENV_DOCKER_REGISTRY_USE_SSL: 1
      ENV_DEFAULT_REPOSITORIES_PER_PAGE: 50
    labels:
      - traefik.enable=true
      - traefik.port=80
      - traefik.http.routers.s-registry-ui.rule=Host(`registry-ui.docker.local`)
      - traefik.http.routers.s-registry-ui.entrypoints=websecure
      - traefik.http.routers.s-registry-ui.tls=true
      - traefik.http.routers.s-registry-ui.middlewares=auth@docker
      - traefik.http.middlewares.auth.basicauth.users=jean:$$1$$qvbVKuOn$$qKZpjcMQuMFWNgC9vtycL1

Exemple de génération de certificats. Notez que Traefik est capable d'utiliser Let's Encrypt

mkdir certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/wildcard.docker.local.key -x509 -days 365 -out certs/wildcard.docker.local.crt
docker-compose up -d
2025/03/24 15:06

Tous logger et historiser vos commandes bash grace à la commande "script"

Voir aussi :

  • netconsole

Conserver un historique en local de tout ce qui est affiché dans vos shells (entrée/sortie) C'est également valable pour les connexions distantes via SSH. NB : Les mots de passes SSH ne serons pas enregistré (car pas affichés à l'écran)

Il suffit d'ajouter dans le .bashrc

~/.bashrc

##### EXTREM LOGING / HISTORIZE ####
 
historyFolder="$HOME"
historyFilename=".history_$(date '+%Y-%m-%d-%H-%M').$$.txt"
historyFilenameTime=".history_$(date '+%Y-%m-%d-%H-%M').$$.time"
 
#parentProcessNameOfCurrentShell=$(ps --no-headers -o comm -p $(ps --no-headers -o ppid -p $$))
parentProcessNameOfCurrentShell=$(ps --no-headers -o comm -p $PPID)
if [ "$parentProcessNameOfCurrentShell" != script ]
then
        script -aqf ${historyFolder}/${historyFilename} -t 2> ${historyFolder}/${historyFilenameTime}
fi

Vous pouvez voir Les caractères de contrôle, le mouvement du curseur, couleurs, etc… seront également enregistrés ce qui “pollue” le fichier. Voici un exemple de comment le nettoyer en cas de besoin :

cat $NOMDUFICHIER |sed -e 's/[[:cntrl:]]//g' -e 's/\[[^m]*m//g' -e 's/\^*M//g' >$NOUVEAUFICHIER

Pour arrêter l'historisation du shell courant, utiliser la commande :

exit

A utiliser une seul fois. Sinon vous fermerez votre shell.

Pour reprendre l'historisation, après un “exit” il suffit de sourcer votre .bashrc

source ~/.bashrc

Rejouer l'historique, exemple :

scriptreplay -t .history_2014-10-14-16-57.7649.time .history_2014-10-14-16-57.7649.txt

Il est possible de jeter un œil rapide sur le fichier avec cat, more ou less

cat .history_2014-10-14-16-57.7649.txt
less -r .history_2014-10-14-16-57.7649.txt
more .history_2014-10-14-16-57.7649.txt

Autre façon avec rsyslog

/etc/rsyslog.d/bash.conf

local6.*    /var/log/commands.log

/etc/bash.bashrc

# bash history logger
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
systemctl restart rsyslog

Autre

De pas dupliquer les ligne dans l'historique

export HISTCONTROL=ignoredups

Afficher les date & heure dans l'history (hardening)

export HISTTIMEFORMAT="[ %d/%m/%Y %H:%M:%S ]"

Avec SystemD

# journalctl -t sudo -p 5 -u session-*.scope -b
Sep 12 08:19:01 vmdeb01 sudo[601]:    admin : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/bin/bash
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