Installation de Technitium DNS Server sous Alpine Linux

Contexte

Technitium DNS Server

Officiellement, Technitium DNS Server ne dispose pas de documentation officielle pour Alpine Linux.

Ce guide a donc pour objectif de vous proposer une méthode non officielle mais fonctionnelle pour installer et exécuter Technitium sous Alpine 3.20.


Prérequis

  • Alpine Linux 3.20 minimum
  • Accès root ou sudo
  • Connexion Internet active

Installation des paquets nécessaires

Ajouter les dépôts Edge

Éditez le fichier des dépôts :

vi /etc/apk/repositories

Ajoutez les dépôts Edge :

http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing

Installer les dépendances

apk add aspnetcore8-runtime bash sudo tar unzip curl

Télécharger et installer Technitium DNS

curl -O https://download.technitium.com/dns/DnsServerPortable.tar.gz
sudo mkdir -p /opt/technitium/dns
sudo tar -zxf DnsServerPortable.tar.gz -C /opt/technitium/dns
chmod +x /opt/technitium/dns/start.sh

Création du service OpenRC

Créez le fichier de service :

vi /etc/init.d/technitium-dns

[!NOTE] Remarque : Le script ci-dessous utilise un kill -9 pour forcer l'arrêt du processus. C'est un peu « sale », mais nécessaire ici à cause de la gestion incomplète du signal TERM par dotnet sous Alpine.

Contenu du script /etc/init.d/technitium-dns

#!/sbin/openrc-run

name="Technitium DNS Server"
description="Technitium DNS Server using dotnet"
command="/usr/bin/dotnet"
command_args="/opt/technitium/dns/DnsServerApp.dll"
command_user="root"
pidfile="/var/run/technitium-dns.pid"
directory="/opt/technitium/dns"

depend() {
    need net
}

start_pre() {
    if [ ! -f "${directory}/DnsServerApp.dll" ]; then
        eerror "DnsServerApp.dll not found in ${directory}"
        return 1
    fi

    export DOTNET_ROOT=/usr/lib/dotnet
    export PATH=$PATH:/usr/lib/dotnet

    return 0
}

start() {
    ebegin "Starting ${name}"
    ${command} ${command_args} > /opt/technitium/dns/technitium-dns.log 2>&1 &
    echo $! > ${pidfile}
    eend $?
}

stop() {
    ebegin "Stopping ${name}"

    if [ -f "${pidfile}" ]; then
        PID=$(cat ${pidfile})
        kill -9 $PID
        sleep 2

        if ps -p $PID > /dev/null; then
            eerror "Failed to stop ${name}. Process is still running."
            eend 1
        else
            rm -f ${pidfile}
            eend 0
        fi
    else
        eerror "No PID file found. Is the service running?"
        eend 1
    fi
}

Activer et démarrer le service

Rendez le script exécutable et ajoutez-le au démarrage :

sudo chmod +x /etc/init.d/technitium-dns
sudo rc-update add technitium-dns
sudo rc-service technitium-dns start

Accès à l'interface d'administration

Une fois le service démarré, accédez à l'interface Web de Technitium via :

[!TIP] http://IP_SERVEUR:5380/


Conclusion

Vous disposez maintenant d’un serveur DNS complet et léger fonctionnant sous Alpine Linux grâce à Technitium DNS Server.

Malgré l’absence de documentation officielle, cette méthode s’avère fiable pour un usage personnel ou en labo.


[!NOTE] Note de transparence : Cet article est basé sur mon contenu original. La mise en forme et certaines reformulations ont été réalisées avec l'aide d'un outil d'IA.!

Systèmes Linux Alpine Technitium DNS Server
Share X (Twitter) Reddit LinkedIn