Etape 1 (V1) – Installation – Boot EFI & ZFS on Debian Bullseye avec Proxmox (sans cryptage / serveur local)

Etape 1 (V1) – Installation – Boot EFI & ZFS on Debian Bullseye avec Proxmox (sans cryptage / serveur local)

Vous êtes ici :
Article 2/12 de la série suivante :

0. Mises à jour

  • 11/11/2017 : Version de base
  • 21/05/2022 : Actualisation pour Debian 11 (testé sur un serveur HP ProLiant DL180 Gen9)

1. Introduction

Nous allons voir ici comment installer proxmox sur un serveur local (donc inutile de crypter la partition vous savez que le matériel ne peut être utilisé par autrui).

Pour cela, on va utiliser le système de fichier ZFS.

ZFS est un système de fichier initialement conçu par Sun pour Solaris. Il est utilisé par défaut dans FreeBSD et surtout FreeNAS. Le portage sous Linux et donc Debian est assez récent mais stable.

L’avantage de ce système de fichier c’est qu’il permets de faire de la redondance de fichier (comme le RAID), avec un système de contrôle d’intégrité des fichiers (check-sum).

2 ZFS on Debian – Prérequis

2.1 Debian Live

Par défaut l’installateur de Debian ne prends pas en charge ZFS, il faudra donc passer par un live cd.

Si par hasard vous avez un hardware assez récent et qu’il vous faut une version NON-FREE c’est par ici.

Vous pouvez prendre n’importe quelle version du bureau, en fonction de vos habitudes (KDE, Gnome…), cela n’a aucune incidence pour la suite (étant donné qu’il n’y a pas d’interface graphique en mode serveur)…

2.2 Matériel

ZFS peut théoriquement fonctionné sur n’importe quel type de hardware mais il est recommandé d’avoir de la RAM compatible ECC (mais ce n’est pas consensuel la preuve sur ce site)

3. Préparation de l’environnement d’installation

3.1 Accès SSH et installations des packages

  • Booter en EFI la version live (difficile de décrire exactement la procédure, mais la plupart du temps il s’agit d’un réglage système et bien veiller à démarrer dans ce mode)
  • Installer le serveur SSH (par le biais d’un terminal ou sur un écran secondaire en tapant CTRL+ALT+F2) :
sudo -s
apt update
apt install --yes openssh-server
sed -i "s/#PasswordAuthentication yes/PasswordAuthentication yes/g" /etc/ssh/sshd_config
systemctl restart ssh
  • Connexion en SSH depuis autre ordinateur (faire ip -a sur le serveur pour connaitre l’IP si non connue). Le mot de passe est « live » :
ssh -l user 123.123.123.123
  • On installe et charge le module ZFS :
sudo -s
sed -i "s/bullseye main/bullseye main contrib non-free/g" /etc/apt/sources.list
apt update
apt install --yes gdisk zfsutils-linux debian-archive-keyring debootstrap
  • Il faut valider la licence

3.2 Formatage des disques systèmes

  • Dans les lignes qui suivent il faut remplacer scsi-SATA_disk* par le disque adapté (faire un ls -l /dev/disk/by-id/) pour identifier les disques.
  • On enregistre 2 variables qui servirons par la suite
DISK1=/dev/disk/by-id/scsi-SATA_disk1
DISK2=/dev/disk/by-id/scsi-SATA_disk2
Si les disques étaient déjà utilisés en RAID Logiciel (attention ici ça touche tous les disques présents !):

mdadm  --stop /dev/md*
mdadm --zero-superblock --force ${DISK1}*
mdadm --zero-superblock --force ${DISK2}*

Si les disques étaient déjà utilisés en ZFS :

wipefs -a /dev/disk/by-id/*

  • On efface les 2 disques :
sgdisk --zap-all $DISK1
sgdisk --zap-all $DISK2
  • Puis on partitionne CHAQUE disque :
sgdisk -a1 -n1:0:+512M -t1:EF00 -c1:"efi_1" -n2:0:+8G -t2:FD00 -c2:"swap_1" -n3:0:0 -t3:BF00 -c3:"linux_zfs_1" -p $DISK1
sgdisk -a1 -n1:0:+512M -t1:EF00 -c1:"efi_2" -n2:0:+8G -t2:FD00 -c2:"swap_2" -n3:0:0 -t3:BF00 -c3:"linux_zfs_2" -p $DISK2
Explications des paramètres :
-a1 : Fixe le « sector alignment multiple », important surtout pour les disques dont le nombre de secteurs physiques est supérieur aux secteurs logiques (de plus en plus fréquent)
-n1:0:+512M : nouvelle partition « efi » (1) de 512Mo
-t1:EF00 : Le type de la partition 1 est BIOS EFI
-n2:0:+8G : nouvelle partition « swap » (4) de 8g (Proxmox recommande entre 4 et 8g)
-t2:FD00 : Le type de la partition 2 est RAID (car le swap ne sera pas sur le ZFS cf infra)
-n3:0:0 : nouvelle partition « linux_zfs » (4) de la taille restante du disque
-t3:BF00 : Le type de la partition 3 est SOLARIS (root)
-p : Afficher

3.3 Création du pool ZFS

  • On crée le pool ZFS en mode miroir qui va servir à héberger le système
zpool create \
    -o cachefile=/etc/zfs/zpool.cache \
    -o ashift=12 -O atime=off -o autotrim=on -d \
    -o feature@async_destroy=enabled \
    -o feature@bookmarks=enabled \
    -o feature@embedded_data=enabled \
    -o feature@empty_bpobj=enabled \
    -o feature@enabled_txg=enabled \
    -o feature@extensible_dataset=enabled \
    -o feature@filesystem_limits=enabled \
    -o feature@hole_birth=enabled \
    -o feature@large_blocks=enabled \
    -o feature@lz4_compress=enabled \
    -o feature@spacemap_histogram=enabled \
    -O acltype=posixacl -O canmount=off -O compression=lz4 \
    -O devices=off -O normalization=formD -O relatime=on -O xattr=sa \
    -O mountpoint=/ -R /newdebian \
    rpool mirror ${DISK1}-part3 ${DISK2}-part3
Explications des paramètres :
– ashift=12 : il faut spécifier Alignment Shift (ashift) à 12 car il existe de plus en plus de disque à 4096b physique.
– atime=off : désactive la mise à jour du dernier accès (permet un gain de performance)
– canmount=off : empêche le pool d’être monté (permet de faire de l’héritage)
– compression=lz4 : mode de compression de la base de donnée zfs
– normalization=formD : nécessaire si fichier en UTF-8
– devices=off : empêche d’interpréter les devices node pour des raisons de sécurité
– mountpoint=/ : on définit le point de montage à /
– -R /mnt : temporairement on définit la base de montage relative sur /mnt (par défaut le chemin est fonction de /)
– rpool : nom du pool
– /dev/… : nom du disque

Si vous avez des messages d’erreur comme quoi les disques sont occupés, il faut redémarrer la machine.

  • Pour lister les pools et leurs datasets :
zfs list
NAME    USED  AVAIL  REFER  MOUNTPOINT
rpool   264K  18.9G    96K  /mnt

3.4 Création des datasets

Par défaut un pool contient un dataset, mais il est possible de découper un pool en plusieurs datasets qui seront visualisés par le système comme des « disques » (mais totalement géré par ZFS, pas de passage par fstab par exemple).

Le concept est extrêmement fort car il permets par exemple :
– De faire des snapshots snapshots de datasets (des points de restauration et de restaurer à ce moment exactement)
– De limiter un dataset en espace disque.
– De faire plusieurs datasets de boot par exemple et de switcher d’un dataset à l’autre pour booter le système (et ne pas perdre de donner)
– De créer des sous-datasets (avec héritage des propriétés)
– Et bien plus…

  • On commence par créer le dataset ROOT qui va servir à contenir les sous-datasets système :
zfs create -o canmount=off -o mountpoint=none rpool/ROOT
zfs create -o canmount=noauto -o mountpoint=/ rpool/ROOT/debian
zfs mount rpool/ROOT/debian
  • Puis on crée le dataset BOOT :
zfs create -o canmount=off -o mountpoint=none bpool/BOOT
zfs create -o mountpoint=/boot bpool/BOOT/debian
  • On crée un dataset home dans lequel on va mettre tous les répertoires des users y compris celui du root :
zfs create -o setuid=off rpool/home
zfs create -o mountpoint=/root rpool/home/root
chmod 700 /newdebian/root
  • On crée un dataset var avec les sous-datasets log,cache,tmp que l’on exclura des snapshots
zfs create -o canmount=off rpool/var
zfs create -o canmount=off rpool/var/lib
zfs create rpool/var/log
zfs create rpool/var/spool
zfs create -o com.sun:auto-snapshot=false rpool/var/cache
zfs create -o com.sun:auto-snapshot=false rpool/var/tmp
chmod 1777 /newdebian/var/tmp
  • On créée un tmpfs utile par la suite :
mkdir /newdebian/run
mount -t tmpfs tmpfs /newdebian/run
mkdir /newdebian/run/lock

4. Installation du système de base

  • On installe une debian de base (la commande peut mettre plusieurs minutes à s’exécuter):
debootstrap --arch amd64 bullseye /newdebian http://ftp.fr.debian.org/debian
...
I: Configuring ifupdown...
I: Configuring tasksel-data...
I: Configuring tasksel...
I: Configuring libc-bin...
I: Base system installed successfully.
  • On copie le zpool.cache :
mkdir /newdebian/etc/zfs
cp /etc/zfs/zpool.cache /newdebian/etc/zfs/

5. Configuration du système de base

5.1 Nom de la machine

hostname MonServeur
hostname > /newdebian/etc/hostname

5.2 Interfaces réseaux

  • On recherche le nom des interfaces réseaux (ici pour l’exemple eno1):
ip addr show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1a:1b:1c:1d:1e brd ff:ff:ff:ff:ff:ff
    inet 123.123.123.123/24 brd 123.123.123.255 scope global dynamic eno1
       valid_lft 1569sec preferred_lft 1569sec
    inet6 fe80::abcd/64 scope link 
       valid_lft forever preferred_lft forever
  • On crée les fichiers de configuration réseau (utilisé la commande nano), à adapter selon votre environnement réseau :
auto eno1
iface eno1 inet dhcp
auto eno1
iface eno1 inet static
address 192.168.100.1
netmask 255.255.255.0
broadcast 192.168.100.255
gateway 192.168.100.254
  • S’il s’agit d’un serveur local à 2 interfaces (une vers le réseau externe, l’autre vers le réseau local :
auto eno2
iface eno2 inet static
address 192.168.0.1
netmask 255.255.255.0

5.3 Chrooter dans le nouveau système

mount --make-private --rbind /dev  /newdebian/dev
mount --make-private --rbind /proc /newdebian/proc
mount --make-private --rbind /sys  /newdebian/sys
chroot /newdebian /bin/bash --login
  • On crée le fichier mtab (alter-ego de fstab mais des disques montés) :
ln -s /proc/self/mounts /etc/mtab
  • On monte /tmp dans la ram (TMPFS) :
cp /usr/share/systemd/tmp.mount /etc/systemd/system/
systemctl enable tmp.mount
  • On modifie le mot de passe root (ne pas oublier cette étape sinon vous allez vous retrouver dehors) :
passwd

5.4 Apt

  • On modifie les sources :
# Debian Bullseye - Depot officiel
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

# Debian Bullseye - Security
deb http://security.debian.org/ bullseye-security main contrib non-free
#deb-src http://security.debian.org/ bullseye-security main contrib non-free

# Debian Bullseye -  Updates
deb http://ftp.fr.debian.org/debian/ bullseye-updates main
#deb-src http://ftp.fr.debian.org/debian/ bullseye-updates main
  • On actualise les sources et on met à jour :
apt update
apt upgrade
  • On installe aptitude (optionnel mais bien pratique) :
apt install --yes aptitude

5.5 Locales

  • On installe Locales :
apt install --yes locales
dpkg-reconfigure locales
  • On sélectionne en_US.UTF-8 & fr_FR.UTF-8 avec fr_FR.UTF-8 par défaut :

5.6 Tzdata

  • On lance la reconfiguration du paquet :
dpkg-reconfigure tzdata
  • Puis on sélectionne Europe, puis Paris :

apt install screen
screen
Il suffit de faire un screen -r depuis une nouvelle session SSH en cas de deconnexion pour revenir au même endroit !

5.7 SSH

  • On installe le serveur SSH :
apt install --yes openssh-server
  • Temporairement on autorise le root à s’authentifier (nous modifierons la configuration SSH dans l’étape suivante) :
sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config

5.8 Installation des packages nécessaires au boot

  • On lance la commande suivante :
apt install --yes dpkg-dev linux-headers-amd64 linux-image-amd64 zfs-dkms zfs-initramfs
echo REMAKE_INITRD=yes > /etc/dkms/zfs.conf
  • Si vous avez des erreurs du type W: Possible missing firmware [...] for module bnx2x :
apt install --yes firmware-bnx2x
Si vous avez une erreur toujours persistante pour le firmware-bnx2x un bug est en cours, voici le fix :

cd /lib/firmware/bnx2x
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/bnx2x/bnx2x-e2-7.13.21.0.fw
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/bnx2x/bnx2x-e1h-7.13.21.0.fw
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/bnx2x/bnx2x-e1-7.13.21.0.fw

  • On configure la partition EFI :
apt install --yes dosfstools
mkdosfs -F 32 -n EFI /dev/disk/by-id/scsi-SATA_disk1-part1
mkdosfs -F 32 -n EFI /dev/disk/by-id/scsi-SATA_disk2-part1
echo PARTUUID=$(blkid -s PARTUUID -o value /dev/disk/by-id/scsi-SATA_disk1-part1) /boot/efi vfat defaults 0 1 >> /etc/fstab
echo "#"PARTUUID=$(blkid -s PARTUUID -o value /dev/disk/by-id/scsi-SATA_disk2-part1) /boot/efi vfat defaults 0 1 >> /etc/fstab
mkdir /boot/efi
mount /boot/efi
  • On installe Grub :
apt install --yes grub-efi-amd64
  • On teste (vous devez obtenir en retour zfs) :
grub-probe /
zfs
  • On met à jour l’initramfs (qui a pour seul et unique but de monter le système de fichier racine) :
update-initramfs -u -k all
Pour mettre Grub en mode debug (optionnel mais recommandé en début d’installation) :

sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT=\"quiet\"/GRUB_CMDLINE_LINUX_DEFAULT=\"\"/g" /etc/default/grub
sed -i "s/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g" /etc/default/grub

  • On met à jour la configuration de Grub :
update-grub
  • On l’installe en mode EFI :
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --no-floppy
Si vous avez l’erreur :

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --no-floppy
Could not prepare Boot variable: No space left on device

C’est que la NVRAM est pleine, il faut donc effacer des entrées EFI. Pour cela on les identifie avec la commande suivante :

efibootmgr
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0002,2001,0001,2002,2003
Boot0000* ManjaLinux
Boot0001* Debian
Boot0002* rEFInd Boot Manager
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM

Et on efface comme ceci :

efibootmgr -Bb 0000

  • Et on verifie que le module ZFS est bien installé dans Grub :
ls /boot/grub/*/zfs.mod
/boot/grub/x86_64-efi/zfs.mod
  • On désinstall l’OS PROBER :
apt remove --purge os-prober

5.9 Configuration des montages automatique des partitions.

  • On commence par lancer les commandes suivante :
sed -i "s/ZED_SYSLOG_SUBCLASS_EXCLUDE/#ZED_SYSLOG_SUBCLASS_EXCLUDE/g" /etc/zfs/zed.d/zed.rc
mkdir /etc/zfs/zfs-list.cache
touch /etc/zfs/zfs-list.cache/rpool
zed -F &
  • On vérifie que le fichiers est mis à jour :
cat /etc/zfs/zfs-list.cache/rpool
  • S’il est vide, on redémarre zed :
fg

zed -F &
  • Si le fichier est bien alimenté, on ferme zed :
fg

  • On corrige les chemins en retirant /newdebian :
sed -Ei "s|/newdebian/?|/|" /etc/zfs/zfs-list.cache/rpool

6. Premier redémarrage

  • On fait un premier screenshot des 2 datasets :
zfs snapshot bpool/BOOT/debian@install
zfs snapshot rpool/ROOT/debian@install
  • Si screen lancé :
exit
  • Puis, on quitte tout :
exit
mount | grep -v zfs | tac | awk '/\/newdebian/ {print $3}' |xargs -i{} umount -lf {}
umount /newdebian/*
umount -l /newdebian
grep /newdebian /proc/*/mounts | tac| awk '{print $3}' FS="/" | uniq | xargs -i{} kill -9 {}
zpool export -a
reboot -f
  • N’oubliez pas de retirer la clé USB ou de démonter l’iso

7. Swap

Assurez vous d’avoir bien redémarré la machine !

Il existe toujours une question existentielle concernant la taille du swap. Pendant longtemps il était communément admis de dire que le swap faisait 2 fois la taille de la RAM.

Aujourd’hui après avoir écumé de nombreux forum je peux vous dire :

– Que la taille du SWAP doit être au moins 1 fois la taille de la RAM pour les systèmes qui sont amenés à se mettre en hibernation (mise en veille prolongée), donc pas le sujet ici.
– Qu’étant donné la RAM des serveurs actuels (8 / 16 / 32 voire 64 Go), 8 Go semble tout à fait suffisant.

  • On crée un zvol (qui sera visible comme un disque dans /dev/zvol/) de 8 Go
zfs create -V 8G -b $(getconf PAGESIZE) -o compression=zle -o logbias=throughput -o sync=always -o primarycache=metadata -o secondarycache=none -o com.sun:auto-snapshot=false rpool/swap
  • On crée un swap crypté
mkswap -f /dev/zvol/rpool/swap
echo /dev/zvol/rpool/swap none swap defaults 0 0 >> /etc/fstab
echo cryptswap1 /dev/zvol/rpool/swap /dev/urandom swap,cipher=aes-xts-plain64:sha256,size=256 >> /etc/crypttab
systemctl daemon-reload
systemctl start systemd-cryptsetup@cryptswap1.service
echo /dev/mapper/cryptswap1 none swap defaults 0 0 >> /etc/fstab

8. Paquets utiles

Voici quelques paquets bien pratique :

  • apt-transport-https :
apt install --yes apt-transport-https

Permet de se connecter en HTTPS aux miroirs APT.

  • ntp :
apt install --yes ntp
  • man :
apt install --yes man-db
  • command-not-found :
apt install --yes command-not-found
apt update
update-command-not-found
  • bash-completion :
apt install --yes bash-completion
  • Emacs :
apt install --yes emacs25-nox

Paramètres d’Emacs (à copier-coller directement dans un terminal) :

echo ";;Pour empecher de faire des backups ~
(setq make-backup-files nil)

;; utf-8 grace a LOCALES
;;(set-selection-coding-system locale-coding-system)
;;(set-keyboard-coding-system locale-coding-system)
;;(set-terminal-coding-system locale-coding-system)

;; forcer utf-8
(setq locale-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(prefer-coding-system 'utf-8)

;; Pb de copier-coller avec accent
(setq selection-coding-system 'compound-text-with-extensions)" > ~/.emacs.el

9. Personnalisation du root

  • Bash (à copier-coller directement dans un terminal) :
echo "# If not running interactively, don't do anything
[ -z \"\$PS1\" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval \"\$(SHELL=/bin/sh lesspipe)\"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z \"\$debian_chroot\" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=\$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we \"want\" color)
case \"\$TERM\" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n \"\$force_color_prompt\" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        color_prompt=yes
    else
        color_prompt=
    fi
fi

if [ \"\$color_prompt\" = yes ]; then
    PS1='\${debian_chroot:+(\$debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\\$ '
else
    PS1='\${debian_chroot:+(\$debian_chroot)}\u@\h:\w\\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case \"\$TERM\" in
xterm*|rxvt*)
    PS1=\"\[\e]0;\${debian_chroot:+(\$debian_chroot)}\u@\h: \w\a\]\$PS1\"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval \"\$(dircolors -b ~/.dircolors)\" || eval \"\$(dircolors -b)\"
    alias ls='ls --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

PATH=\$PATH:/root/binperso
" > ~/.bashrc

Assurez vous d’avoir un ficher /root/.profile :

# if running bash                                                               
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists                                              
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists                       
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

10. Fichier /etc/apt/sources.list

# Depot officiel
deb http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch main contrib non-free

# Debian Stretch - Security
deb http://security.debian.org/ stretch/updates main contrib non-free
#deb-src http://security.debian.org/ stretch/updates main contrib non-free

# Debian Stable Update
deb http://ftp.fr.debian.org/debian/ stretch-updates main
#deb-src http://ftp.fr.debian.org/debian/ stretch-updates main

11. Fichier /etc/ssh/sshd_config

Si vous souhaitez par la suite vous pouvez sécuriser votre installation SSH en mettant un port non standard (ça ne permettra pas d’éviter un hacking ciblé mais au moins d’avoir la paix dans les logs avec les scripts auto qui cherchent à entrer sur le port 22). Ce fichier spécifie également un utilisateur unique autorisé :

# What ports, IPs and protocols we listen for
Port 1022

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 2m
PermitRootLogin no
StrictModes yes
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

X11Forwarding no
PrintMotd no
PrintLastLog yes

# KeepConnexion alive
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 6

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem	sftp	/usr/lib/openssh/sftp-server

AllowUsers monuser

2 Replies to “Etape 1 (V1) – Installation – Boot EFI & ZFS on Debian Bullseye avec Proxmox (sans cryptage / serveur local)”

  1. > ZFS peut théoriquement fonctionné sur n’importe quel type de hardware mais il est recommandé d’avoir de la RAM compatible ECC (voir ce site)

    Ce site dit précisément l’inverse : tout l’enjeu de l’article est de debunker l’idée selon laquelle une mémoire ECC serait davantage nécessaire pour ZFS que pour tout autre système de fichiers.

    1. Oui j’ai bugué j’avais justement pris cet article pour montrer que c’était toujours un débat sans fin. J’ai corrigé merci ! Finalement tu as opté pour quelle solution ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.