Rock64 : configurer Debian

Rédigé par Alexandre le 2019-08-27

#auto-hébergement #debian #loisir

Avec le déménagement qui approche, cela fait presque deux mois que je n'ai rien publié. Ce n'est pas la plus longue période d'inactivité, mais aujourd'hui je viens justement vous prouver que je n'ai pas été inactif. En effet, avec le déménagement, je vais enfin avoir une vraie place pour un projet que j'ai en tête depuis un moment : l'auto-hébergement à domicile.

Toute l'impatience qui me caractérise m'a fait acheter un Rock64. Ce mini-ordinateur de type Rapsberry Pi est le tout premier d'une ferme de trois, permettant à terme, d'héberger l'ensemble de mes services.

En lisant la suite de cette article, vous trouverez une documentation sur ma façon de configurer la Debian 10 dédiée au Rock64. Cette documentation va servir de base à un playbook Ansible me permettant de configurer à l'identique l'ensemble des trois hôtes de mon futur cluster.

Cette documentation a été rédigée et testée sur buster-minimal-rock64-0.9.3-1145-arm64.img.xz. Le contenu de cette documentation peut être modifié à tout moment afin de coller avec mes besoins.

Se connecter en ssh :

  • Utilisateur : rock64
  • Mot de passe : rock64

Passer super utilisateur :

sudo su -

Passer le système en français :

dpkg-reconfigure locales

Dans la fenêtre qui s'ouvre :

  • Chercher fr_FR.UTF-8
  • Cocher en appuyant sur la barre espace
  • Valider avec la touche Entrée
  • Choisir fr_FR.UTF-8
  • Terminer avec la touche Entrée

Changer le fuseau horaire :

dpkg-reconfigure tzdata

Dans la fenêtre qui s'ouvre :

  • Sélectionner Europe
  • Valider avec la touche Entrée
  • Chercher Paris
  • Terminer avec la touche Entrée

Créer un nouvel utilisateur :

adduser pulsar

Permettre au nouvel utilisateur d'utiliser sudo :

adduser pulsar sudo

Sécuriser le serveur SSH :

tee --append /etc/ssh/sshd_config <<EOF

# Custom
PermitRootLogin no
#PasswordAuthentication no
Banner none
EOF
systemctl restart sshd

NB : #PasswordAuthentication no une fois décommenté force l'authentification SSH par clef à l'ensemble des utilisateurs

Créer un fichier personnel de configuration d'apt :

tee --append /etc/apt/apt.conf.d/99custom <<EOF
APT::Install-Recommends "false";
APT::Install-Suggests "false";
APT::Get::Show-Versions "true";
APT::Get::Show-Upgraded "true";
APT::Get::Purge "true";
APT::Get::List-Cleanup "true";
EOF

Nettoyer les dépôts inutile et modifier les dépôts pour supprimer les sources et utiliser les serveurs français :

rm /etc/apt/sources.list.d/*.bak
tee /etc/apt/sources.list <<EOF
deb http://ftp.fr.debian.org/debian/ buster main contrib non-free
deb http://ftp.fr.debian.org/debian/ buster-updates main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
EOF
apt update

Modifier la configuration réseau :

rm /etc/network/interfaces.d/eth0
tee /etc/network/interfaces <<EOF
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.5/24
    gateway 192.168.1.254
    dns-nameservers 80.67.169.12 80.67.169.40
iface eth0 inet6 static
    address 2a01:cb08:65b:c400:e309:6adc:9fba:5/64
    gateway 2a01:cb08:65b:c400::
    dns-nameservers 2001:910:800::40 2001:910:800::12
EOF

Redémarrer la partie réseau :

systemctl restart networking

En cas d'interruption de la session SSH, essayer de se reconnecter. Si la connexion échoue, c'est qu'une erreur de configuration réseau a été commise. Pour la corriger, il est nécessaire de connecter un clavier et un écran au rock64. Se connecter via les identifiants donnés plus haut, passer root et revoir le fichier /etc/network/interfaces. Une fois les correction effectuer, redémarrer le réseau et poursuivre.

NB : Au lieu de connecter un clavier et un écran, il est tout à fait possible de sortir la carteSD ou eMMC du rock64 et de la connecter à un PC sous Linux.

Vérifier que la configuration est fonctionnelle :

ping -c3 -4 ipv4v6.lafibre.info; ping -c3 -6 ipv4v6.lafibre.info

Purger les paquets inutiles :

apt purge --autoremove iozone3 firmware-brcm80211 alsa-utils git* iperf3 iptables network-manager vim* wireless-tools wpasupplicant dhcpcd5 isc-dhcp-common isc-dhcp-client libip6tc0 libnfnetlink0 apt-transport-https libiptc0 libnetfilter-conntrack3 libnftnl11 build-essential jq

Chercher et désinstaller les paquets orphelins :

apt install -y deborphan dialog && orphaner && apt purge -y --autoremove deborphan

Une fenêtre affiche la liste des paquets orphelins :

  • Cocher les paquets en question avec la barre espace
  • Désinstaller les paquets en appuyant sur la touche Entrée
  • Renouveller l'opération jusqu'a ce qu'il n'y ait plus de paquets orphelins

Chercher et appliquer les mises à jour :

apt update && apt -y dist-upgrade

Installer les outils habituels :

apt install htop unattended-upgrades resolvconf locate

Définir le nouveau nom d'hôte :

newHostname="nyx"

NB : j'utilise les héritier de Chaos pour définir le nom d'hôte

Appliquer le changement du nom d'hôte :

hostnamectl set-hostname $newHostname
sed -i "s#rock64#$newHostname#g" /etc/hosts

Réinitialiser le serveur SSH :

rm /etc/ssh/ssh_host_*
rm /etc/ssh/moduli
dpkg-reconfigure openssh-server

Redémarrer le serveur :

reboot

Se reconnecter en SSH :

  • Utilisateur : pulsar
  • Mot de passe : celui qui a été choisi

Supprimer l'utilisateur par défaut :

sudo deluser rock64

Personnaliser bash :

sudo tee --append ~/.bashrc <<EOF

# custom
PS1='${debian_chroot:+($debian_chroot)}\[\033[0;33m\]\u@\h\[\033[00m\]:\[\033[0;93m\]\w\[\033[00m\]\$ '

alias ls='ls --color=auto -lah --group-directories-first'
alias df='df -h --exclude-type=tmpfs --exclude-type=devtmpfs'
EOF

Recharger le fichier de personnalisation de bash :

source ~/.bashrc