Я пытаюсь создать фильтр iptables, чтобы блокировать доступ в Интернет всем, кроме UID 1000. Вот что у меня есть на данный момент:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m owner --uid-owner 1000 -j ACCEPT
-A OUTPUT -j REJECT --reject-with icmp-net-unreachable
-A OUTPUT -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j DROP
COMMIT
Когда я пытаюсь запустить следующее от имени пользователя root (UID 0):
curl http://ipecho.net/plain
curl: (7) Failed to connect to ipecho.net port 80: Network is unreachable
iptables блокирует его, если желаю. Но когда я пробую это как root:
curl --proxy socks5h://localhost:7777 http://ipecho.net/plain
_ip_address_
, все проходит нормально. Что мне нужно изменить, чтобы заблокировать доступ в Интернет для других пользователей, даже если они используют прокси-сервер?
Если вы используете локальный прокси, то исходящий сетевой трафик будет принадлежать uid прокси, а не конечному пользователю. Я предполагаю, что прокси-сервер работает как uid 1000. Что вы используете в качестве прокси?
Вам необходимо использовать прокси, который можно настроить так, чтобы его могли использовать только определенные локальные пользователи.