Dans un environnement Microsoft Windows, il est possible de monter facilement un partage réseau depuis GNU/Linux en utilisant la commande mount et l'utilitaire cifs. L'avantage réside dans la simplicité du processus de configuration. Cependant, l'inconvénient est qu'il repose sur l'utilisation du protocole NTLM (v1 et v2) pour l'authentification qui est obsolète et peu sécurisé pour l'authentification des utilisateurs, ce qui présente des risques en terme de sécurité en raison de son ancienneté et de son manque de robustesse.
Heureusement, il existe une méthode alternative pour le montage de partages Windows depuis Linux qui offre une sécurité nettement renforcée grâce à l'utilisation de Kerberos. Contrairement à NTLM, Kerberos est un protocole d'authentification plus récent et nettement plus sécurisé. Bien que sa mise en œuvre nécessite une configuration plus complèxe, les améliorations substantielles en matière de sécurité qu'il offre font qu'ils devrait être utilisé en priorité.
Cet article est dédié à vous guider étape par étape dans le processus d'établissement et de configuration de l'authentification basée sur Kerberos, vous permettant de monter en toute sécurité des partages Windows sur les systèmes GNU/Linux.
⚠️ Prérequis : Assurez-vous que l'horloge des serveurs Windows et Debian est synchronisée. ⚠️
root@desktop:~# apt update && apt install cifs krb5-user ntp
domain std.local
search std.local
nameserver 192.168.1.200
[libdefaults]
default_realm = STD.LOCAL
ticket_lifetime = 1d
renew_lifetime = 7d
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
STD.LOCAL = {
kdc = ad.std.local
admin_server = ad.std.local
}
john@desktop:~$ id -u
1000
john@desktop:~$ id -g
1000
john@desktop:~$ echo $USER
john
john@desktop:~$ sudo mkdir /mnt/win_share
john@desktop:~$ sudo mount -t cifs username=j.valmer,domain=std.local,uid=1000,gid=1000 //192.168.1.200/SHARE /mnt/win_share
john@desktop:~$ kinit j.valmer@STD.LOCAL
Mot de passe pour j.valmer@STD.LOCAL :
john@desktop:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: j.valmer@STD.LOCAL
Valid starting Expires Service principal
09/08/2023 18:19:54 10/08/2023 04:19:54 krbtgt/STD.LOCAL@STD.LOCAL
renew until 10/08/2023 18:19:50
09/08/2023 18:19:59 10/08/2023 04:19:54 cifs/ad.std.local@
renew until 10/08/2023 18:19:50
Ticket server: cifs/ad.std.local@STD.LOCAL
john@desktop:~$ sudo mount -t cifs cruid=john,user=john,sec=krb5i,uid=1000,gid=1000 //ad.std.local/SHARE /mnt/win_share
Contact :