Pavel Volkov <sai...@lists.xtsubasa.org> wrote:
> On понедельник, 16 сентября 2019 г. 04:35:19 MSK, Dmitry Alexandrov wrote:
>> SOCKS proxy не проще настроить, не?
>
> Но входящих коннектов с SOCKS не будет, а для битторрента это было бы хорошо.

Стоп.  Это разные задачи, и к ним разные решения.  Для битторента — это значит 
для сервера; а раз для сервера — значит вопрос «чем заменить попользовательский 
контроль доступа» неактуален, ведь он все равно по-хорошему будет запускаться 
от своего пользователя, а возможно и в своем пространстве сетевых имен, как т. 
Мельников предлагает.

>> Тут нужна какая-то изоляция.  Под описанное решение — подмена ToS 
>> Нетфильтром, подходят cgroups, свойство зовется net_cls.classid.
>
> Попробую изучить cgroup-ы, а это свойство есть и в v1, и в v2?

Нет, это в первых.  А в Дебиан уже по-умолчанию вторые завезли?

Тогда там само-то по себе все еще удобнее: возиться вручную с цифирью (а 
classid это число), если надо много разных классов создавать, уже не надо, 
можно буквами писать.

Но есть и одно большое но: Систем-д.  Он предъявляет монопольное право на 
распоряжение к-группами.  Оно и на первые предъявлял, просто net_cls от него 
был свободен.  А ко вторым, как вы знаете, все контроллеры слили в один, так 
что вот так по-простому:

$ # по-умолчанию доступ закрыт
$ curl detectportal.firefox.com
curl: (7) Failed to connect to detectportal.firefox.com port 80: No route to 
host

# # создаем к-группу
# mkdir /sys/fs/cgroup/net_cls/inet
# # разрешаем кому надо (здесь — всем) добавлять в нее процессы и убирать 
обратно
# chmod a+w /sys/fs/cgroup/net_cls/inet/tasks /sys/fs/cgroup/net_cls/tasks
# # указываем Нетфильтру ее членов пропускать
# echo 1 > /sys/fs/cgroup/net_cls/inet/net_cls.classid
# iptables -A OUTPUT -m cgroup --cgroup 1 -j ACCEPT
# ip6tables -A OUTPUT -m cgroup --cgroup 1 -j ACCEPT

$ # добавляем текущий шелл в разрешительную к-группу
$ echo $$ > /sys/fs/cgroup/net_cls/inet/tasks
$ # она наследуется
$ curl detectportal.firefox.com
success

...уже не сделаешь.  Надо какой-то огород городить, чтобы при логине 
создавалось по своему ‘inet’у на каждого пользователя, причем вместе с 
отдельными правилами для Нетфильтра (хотя по делу они нафиг и не нужны).

Attachment: signature.asc
Description: PGP signature

Ответить