Ei bine, am petrecut multe (mult prea multe!) ore cercetând și explorând diferite soluții înainte de a posta aici, dar nu știi, mi-am găsit propriul răspuns la mai puțin de o oră mai târziu. Răspunsul lui Intika la o întrebare diferită m-a îndreptat în cele din urmă în Direcția corectă. Sunt sigur că există soluții cu spații de nume de rețea etc., dar aceasta a fost de departe cea mai simplă modalitate de a ne atinge scopul dorit.
iptables -t mangle -A OUTPUT -m proprietar --gid-owner "studenti" -j MARK --set-mark 42
iptables -t nat -A POSTROUTING -o enp1s0.20 -m mark --mark 42 -j SNAT --to-source 192.168.20.10
regulă ip adăugați fwmark 42 tabelul 42
IP route add default prin 192.168.20.2 dev enp1s0.20 tabelul 42
netfilter-salvare persistentă
IP-ul vlan este 192.168.20.10; gateway-ul filtrat este 192.168.20.2.
NOTA 1: iptables-save nu face acest lucru persistent la reporniri; numai netfilter-persistent va salva modificările iptables.
NOTA 2: Aceasta nu salvează configurația rutei IP. Acesta trebuie setat pentru a se reîncărca de fiecare dată când interfața este reactivată (cablu deconectat, repornire etc.). Pentru ca această configurație să fie persistentă, trebuie să configurați fișierul corespunzător în /etc/netplan. Deoarece nu am reușit să analizez sintaxa sau să găsesc exemple relevante, am atașat iptables-ul original -j CĂDARE
regulă și a salvat acest lucru (cu netfilter-persistent), astfel încât, în cazul unei resetare nesupravegheate a rețelei, accesul tuturor elevilor va fi blocat. Apoi am scris un script foarte simplu, eliminând acea linie din tabelul Filter și adăugând ruta ip
linie din nou.
#!/bin/bash
# Eliminați blocul permanent pe Grupul „studenti” din tabelul Filtre: sudo iptables -D OUTPUT -p tcp -m multiport --dport 80,443 -m owner --gid-owner "students" -j DROP
# Adăugați politicile de rută care nu persistă la o repornire a rețelei fără a edita configurația netplan:
sudo ip route add default prin 192.168.20.2 dev enp1s0.20 tabelul 42
echo „Accesul filtrat ar trebui configurat pentru „studenți” de grup”
Ieșire