Zakładam, że użytkownicy A i B używają tych samych maszyn z systemem Linux, na których jesteś administratorem. (Z twojego pytania nie wynika to całkowicie. Jeśli A i B mają własne komputery, na których są administratorami, jest to zupełnie inny problem).
Następujące polecenie uniemożliwi użytkownikowi z identyfikatorem UID 1234 wysyłanie pakietów przez interfejs eth0
:
iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP
Zalecam przeczytanie przewodnika Ubuntu iptables, aby uzyskać podstawową znajomość narzędzia (i zajrzyj na stronę podręcznika, aby uzyskać zaawansowane informacje, takie jak tablica z maglami).
Użytkownik nadal będzie mógł uruchomić ping (ponieważ jest to setuid root), ale nic więcej. Użytkownik nadal będzie mógł połączyć się z lokalnym serwerem proxy, jeśli serwer proxy został uruchomiony przez innego użytkownika.
Aby usunąć tę regułę, dodaj -D
do powyższego polecenia.
Aby reguła stała się trwała, dodaj ją do /etc/network/if-up.d/my-user-restrictions
(aby skrypt wykonywalny zaczynał się od #!/bin/sh
). Lub użyj iptables-save
( więcej informacji znajdziesz w przewodniku Ubuntu iptables ).
Nie użyłbym do tego iptables.
Zakładam, że A i B są powiązane ze stałymi adresami IP ClientA i ClientB. Zakładam, że Twoim internetowym serwerem proxy jest ServerI (Twój Ubuntu-Server?).
Dodałbym więc wpis routingu odmowy / upuszczenia z ClientA do ServerI.
Nie używam Ubuntu - więc nie mogę powiedzieć, którego pliku konfiguracji użyć, aby to ustawienie było trwałe (przetrwanie ponownego uruchomienia).
Być może ktoś może dodać ten szczegół?
źródło