Installer le client mumble sur votre machine ou utilisez l'interface web si on l'installe un jour.
apt install mumble-server avahi-daemon- nftables git dpkg-reconfigure mumble-server
On demande le démarrage automatique au boot, on autorise le serveur a avoir une priorité supérieure aux autres programmes (en particulier pour limite l'impact des mises à jour) et on indique un mot de passe pour l'admin du serveur.
Le mot de passe peut être généré par exemple avec :
echo $(cat /dev/urandom| tr -dc "a-zA-Z0-9-_*@/\#$%^&*()+{}:<>?=/|\\!" | head -c64)
On modifie ''/etc/mumble-server.ini' pour avoir les lignes suivantes :
serverpassword="…………………………………"
apt install python-ldap python-daemon
git clone https://github.com/mumble-voip/mumble-scripts.git /opt/mumble-scripts mkdir /etc/mumble-server cp /opt/mumble-scripts/Authenticators/LDAP/* /etc/mumble-server
On vérifie le contenu des deux fichiers copiés (parce que donner accès au ldap à du code téléchargé au hasard sur github, on a vu mieux).
Puisqu'il n'y a aucun service en écoute sur le port 80, on utilise `certbot` en mode standalone.
apt install certbot at='@' certbot certonly --standalone --agree-tos --rsa-key-size 4096 \ -m "admin${at}federez.net" -d chiliagon.federez.net -d mumble.federez.net
Ensuite, il faut modifier la configuration de murmur pour utiliser le certificat :
sslCert=/etc/letsencrypt/live/chiliagon.federez.net/fullchain.pem sslKey=/etc/letsencrypt/live/chiliagon.federez.net/privkey.pem
#!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0 policy drop ct state established accept ip protocol icmp icmp type { destination-unreachable, router-advertisement, time-exceeded, parameter-problem } accept ip6 nexthdr icmpv6 icmpv6 type { destination-unreachable, packet-too-big, time-exceeded, parameter-problem, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert } accept tcp dport { 22, 443, 64738 } accept udp dport { 443, 64738 } accept reject } chain forward { type filter hook forward priority 0 policy drop reject } chain output { type filter hook output priority 0 policy accept } } table ip nat { chain prerouting { type nat hook prerouting priority 0 tcp dport 443 redirect to :64738 udp dport 443 redirect to :64738 } chain postrouting { type nat hook postrouting priority 0 } } table ip6 nat { chain prerouting { type nat hook prerouting priority 0 tcp dport 443 redirect to :64738 udp dport 443 redirect to :64738 } chain postrouting { type nat hook postrouting priority 0 } }
systemctl enable nftables.service
https://www.skelleton.net/2014/10/16/setting-up-an-active-directory-authenticated-mumble-server/
https://github.com/Johni0702/mumble-web