Page modifiée le :

omega.ducouet.fr

Carte Odroid Xu4
Software and hardware
Carte Odroid Xu4

Le site web Omega est auto hébergé sur une carte Odroid Xu4. Cette carte fonctionne sous Armbian Buster (Une version Arm de Debian). Le serveur Web est Apache.

Brèves

Sécuriser ssh

(De www.sshaudit.com)

Trop d'administrateurs négligent la configuration SSH lors de la configuration de nouveaux systèmes. Malheureusement, les valeurs par défaut de nombreux systèmes d'exploitation sont optimisées pour la compatibilité et non la sécurité.

freebox@my1:~$ sudo -s
root@my1:/home/freebox# cp /etc/ssh/moduli /etc/ssh/moduli~
root@my1:/home/freebox# cp /etc/ssh/sshd_config /etc/ssh/sshd_config~
root@my1:/home/freebox# awk '$5 >= 3071' /etc/ssh/moduli~ > /etc/ssh/moduli
root@my1:/home/freebox# sed -i 's/^HostKey \/etc\/ssh\/ssh_host_\(dsa\|ecdsa\)_key$/\#HostKey \/etc\/ssh\/ssh_host_\1_key/g' /etc/ssh/sshd_config
root@my1:/home/freebox# echo -e "\n# Restrict key exchange, cipher, and MAC algorithms, as per sshaudit.com\n# hardening guide.\nKexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256\nCiphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr\nMACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com\nHostKeyAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com" >> /etc/ssh/sshd_config
root@my1:/home/freebox# service ssh restart

/etc/rc.local vs systemd

Systemd est un gestionnaire de démarrage et de service pour Linux. Il est conçu pour être rétrocompatible avec les scripts d'initialisation SysV et fournit un certain nombre de fonctionnalités telles que le démarrage parallèle des services systèmes au moment du démarrage, l'activation à la demande des démons ou la logique de contrôle de service basée sur les dépendances.

Systemd introduit le concept d'unités systemd. Ces unités sont représentées par des fichiers de configuration d'unité situés dans l'un des répertoires :

/usr/lib/systemd/system/ : Fichiers d'unités systemd distribuées avec des paquets.
/run/systemd/system/ : Les fichiers d'unités systemd créées pendant l'exécution. Ce répertoire a priorité sur le répertoire de fichiers d'unités de service installées.
/etc/systemd/system/ : le répertoire /etc/systemd/system/ est réservé aux fichiers d'unité créés ou personnalisés par l'administrateur système.
Exemple pour ajouter une adresse IPv6 fixe.
Pour connaître interface et l'adresse de BROADCAST :
freebox@test:~$ ip a
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet6 2a01:e0a:195:1040:9cb4:fbff:fe42:ae65/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86376sec preferred_lft 86376sec
    inet6 fe80::9cb4:fbff:fe42:ae65/64 scope link 
       valid_lft forever preferred_lft forever
freebox@test:~$

On peut voir que l'interface se nome enp0s3.
Il existe une adresse ipv6 publique ou routable (scope global) allouée dynamiquement (dynamic) 2a01:e0a:195:1040:9cb4:fbff:fe42:ae65/64.
Une adresse IPv6 est longue de 128 bits et se compose de huit champs de 16 bits, chacun étant délimité par deux-points (:). Les trois champs situés complètement à gauche (48 bits) contiennent le préfixe alloué à votre réseau par un FAI. Le champ suivant correspond à l'ID de sous-réseau de 16 bits. Les quatre champs les plus à droite (64 bits) contiennent l'ID d'interface.
(Pour en savoir plus ...)

On créer un fichier pour ajouter une address IPv6 fixe :
[Unit]
Description=Add IPv6
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ip -6 addr add 2a01:e0a:195:1040:fac9:219b:207e:a77a/64 dev enp0s3
ExecStartPost=/sbin/ip -6 route add default via 2a01:e0a:195:1040::1
RemainAfterExit=true
ExecStop=/sbin/ip -6 addr del 2a01:e0a:195:1040:fac9:219b:207e:a77a/64 dev enp0s3
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
On lance manuellement pour la première fois :
freebox@test:~$ sudo systemctl start ipv6
On active la création au démarrage :
freebox@test:~$ sudo systemctl enable ipv6
Created symlink /etc/systemd/system/multi-user.target.wants/ipv6.service → /etc/systemd/system/ipv6.service.
Et on vérifie
freebox@test:~$ ip a
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet6 2a01:e0a:195:1040:fac9:219b:207e:a77a/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 2a01:e0a:195:1040:9cb4:fbff:fe42:ae65/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86093sec preferred_lft 86093sec
    inet6 fe80::9cb4:fbff:fe42:ae65/64 scope link 
       valid_lft forever preferred_lft forever
freebox@test:~$ 

IPv6 et fichier rc.local

Vous avez plusieurs machines dérrière une box ? Vous avez qu'une adresse IPv4 publique qui ne peut donc être "natter" que sur une machine. Aujourd'hui (Depuis même un moment), vous avez personnellement plus adresses IPv6 qu'il n'existe IPv4 dans le monde ! Chaque machine communique avec sa propre adresse sur internet. Il n'y a plus de NAT. Pour améliorer l'anonymat, cette adresse change régulièrement, mais dans le cas d'un serveur, il faut fixer cette adresse.
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Add static Ipv6 
/sbin/ip -6 addr add 2a01:e0a:195:3040:fac9:219b:207e:d823/64 dev enx001e06300937
/sbin/ip -6 route add default via 2a01:e0a:195:3040::1

exit 0