Jitsi (docker-jitsi-meet, version figée) derrière Nginx sur meet.syllabuslab.fr, accès par jeton JWT signé par le portail, modération du micro, mains levées synchronisées avec l'application. Pare-feu : UDP 10000 et pont interne br-visio (accords d'Adam). Jicofo n'authentifie plus lui-même : il donnait le rôle de propriétaire aux élèves. Capacité ramenée à 20 VM. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
50 lines
2 KiB
Django/Jinja
50 lines
2 KiB
Django/Jinja
#!/usr/sbin/nft -f
|
|
# Géré par Ansible (rôle durcissement) — ne pas modifier à la main.
|
|
# Politique : tout est refusé en entrée sauf loopback, trafic déjà établi,
|
|
# ICMP, les ports TCP {{ durcissement_ports_ouverts | join(', ') }}{% if durcissement_ports_udp_ouverts | default([]) %} et UDP {{ durcissement_ports_udp_ouverts | join(', ') }}{% endif %}.
|
|
|
|
flush ruleset
|
|
|
|
table inet filter {
|
|
chain input {
|
|
type filter hook input priority 0; policy drop;
|
|
|
|
iif lo accept
|
|
ct state established,related accept
|
|
ct state invalid drop
|
|
|
|
ip protocol icmp accept
|
|
meta l4proto ipv6-icmp accept
|
|
|
|
tcp dport { {{ durcissement_ports_ouverts | join(', ') }} } accept
|
|
{% if durcissement_ports_udp_ouverts | default([]) %}
|
|
udp dport { {{ durcissement_ports_udp_ouverts | join(', ') }} } accept
|
|
{% endif %}
|
|
}
|
|
|
|
chain forward {
|
|
type filter hook forward priority 0; policy drop;
|
|
{% for pont in durcissement_ponts_internes | default([]) %}
|
|
|
|
# Trafic interne au réseau Docker {{ pont }} (conteneur ↔ conteneur).
|
|
iifname "{{ pont }}" oifname "{{ pont }}" accept
|
|
{% endfor %}
|
|
|
|
{% if reseau_veth_gw_subnet is defined %}
|
|
# Un seul sens autorisé : réseau externe OpenStack -> Internet (NAT),
|
|
# plus les réponses à ce trafic. Rien n'entre depuis Internet vers les
|
|
# réseaux internes ; tout le reste est refusé par la politique drop.
|
|
iifname "{{ reseau_veth_gw }}" oifname "{{ reseau_interface_publique }}" ip saddr {{ reseau_veth_gw_subnet }} accept
|
|
iifname "{{ reseau_interface_publique }}" oifname "{{ reseau_veth_gw }}" ct state established,related accept
|
|
{% endif %}
|
|
}
|
|
|
|
chain output {
|
|
type filter hook output priority 0; policy accept;
|
|
}
|
|
}
|
|
|
|
# Autres règles (NAT, etc.), déposées par d'autres rôles. Un glob sans fichier
|
|
# correspondant n'est pas une erreur pour nft : cette ligne ne casse rien tant
|
|
# que /etc/nftables.d/ est vide.
|
|
include "/etc/nftables.d/*.conf"
|