====== Utilisation ======
Installer le client mumble sur votre machine ou utilisez l'interface web si on l'installe un jour.
====== Installation ======
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="…………………………………"
===== Authentification LDAP =====
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).
FIXME
===== Utilisation d'un certificat Let's Encrypt =====
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
===== Redirection du port 443 =====
#!/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