Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: ограничения в /etc/hosts для разных юзеров  (Прочитано 708 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ihaar

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Приветствую

дано
vps с ubuntu server на борту
к нему через ssh туннели подключаются два юзера user1 и user2 (бюджетный впн для чайников))
задача ограничить для user2 доступ к определённому сайту снаружи сети, но для user1 оставить без ограничений

если прописать в /etc/hosts
127.0.0.1 site2block.com

то блокирует для обоих
есть ли возможность разделить hosts по юзерам?
или есть какой другой простой способ не требующий мегазнаний и необходимости писать скрипты в 100 строк )

был бы признателен за подсказки
« Последнее редактирование: 12 Августа 2020, 13:03:44 от ihaar »

Dzhoser

  • Гость
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #1 : 12 Августа 2020, 12:49:20 »
Гуглите Nanny Parental Control

Оффлайн ihaar

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #2 : 12 Августа 2020, 12:55:46 »
Спасибо, но насколько понял, это приложения для клиентов.
А нужно средствами сервера сделать блок. Это важно.
« Последнее редактирование: 12 Августа 2020, 12:57:25 от ihaar »

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #3 : 12 Августа 2020, 13:49:44 »
Интересная задача!

Мне лично приходит в голову только разделить юзеров по контейнерам.
То есть: юзерам даём разные порты для подключения по SSH
порт1 перенаправляем в контейнер1
порт2 перенаправляем в контейнер2

В контейнерах уже настраиваем доступ.
Минус - юзер сможет сам себе открыть доступ, ибо в контейнере он админ  :)
Решение 1 : в контейнерах создавать юзеров с ограниченными правами
Решение 2 : настраивать доступы на хосте, например с помощью https://coredns.io
для каждого юзера поднимать DNS на отдельном порту и разрешать ему доступ только к этому порту, ну и в интернет конечно.

Громоздко, зато
бюджетный впн

Пользователь добавил сообщение 12 Августа 2020, 13:58:28:
P.S. как альтернативу CoreDNS (но более "жирную" и по моему опыту менее стабильную), зато с GUI, можно использовать Pi-hole
Там можно делить списки блокировок по IP клиента (в данном случае по IP контейнера)
« Последнее редактирование: 12 Августа 2020, 13:58:28 от The Green Side »
Debian 11, Debian 11 Server

Оффлайн ihaar

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #4 : 12 Августа 2020, 14:05:14 »
спасибо.
а можно ли разворачивать контейнеры внутри контейнера?
vps и так сам является контейнером на OpenVZ

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #5 : 12 Августа 2020, 14:09:12 »
а можно ли разворачивать контейнеры внутри контейнера?
Это должно быть явным образом разрешено на хосте.
Например, в LXC это security.nesting=true
Debian 11, Debian 11 Server

Оффлайн ihaar

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #6 : 12 Августа 2020, 14:15:42 »
а можно както проверить без обращения к админам хоста?
Это платный простенький vps, общение с поддержкой немного медленна )

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #7 : 12 Августа 2020, 14:20:27 »
Конечно, первые 4 команды из этого мануала

sudo apt install lxd
lxd init
lxc launch ubuntu:18.04 pihole
lxc list
Debian 11, Debian 11 Server

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 883
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #8 : 12 Августа 2020, 14:32:30 »
ihaar, насколько я знаю, это делается средствами netfilter


Оффлайн ihaar

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #9 : 12 Августа 2020, 14:41:58 »
The Green Side, ругается
(Нажмите, чтобы показать/скрыть)

Пользователь добавил сообщение 12 Августа 2020, 15:04:30:
snowin, спасибо.
я этого и боялся ) iptables непаханное поле для меня и понимаю что потребуется много времени )

нагуглил такой пример
iptables -A OUTPUT -p tcp -m string --string "block-me.com" --algo kmp -j DROP

я так понимаю что надо вставить ещё это
owner --uid-owner {USERNAME}

можете подсказать куда?
« Последнее редактирование: 12 Августа 2020, 15:04:30 от ihaar »

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #10 : 12 Августа 2020, 15:07:14 »
ihaar, почти на 100% уверен, что у вас запуск контейнеров запрещён
Debian 11, Debian 11 Server

Оффлайн ihaar

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #11 : 12 Августа 2020, 15:28:23 »
The Green Side, ну это ж логично, провайдер нарезает своё железо сам на контейнеры и зарабатывает на этом ) Нужно разделить, бери ещё один.

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 883
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #12 : 12 Августа 2020, 17:59:18 »
можете подсказать куда?
примеров в инете масса
iptables -A OUTPUT -p tcp --dport 992 -d localhost -m owner ! --uid-owner root -j REJECTлибо по id
а вообще:
man iptables-extansions
Цитировать
owner
       This module attempts to match various characteristics of the packet creator, for locally generated packets. This match is only valid in the  OUTPUT  and  POSTROUTING
       chains. Forwarded packets do not have any socket associated with them. Packets from kernel threads do have a socket, but usually no owner.

       [!] --uid-owner username

       [!] --uid-owner userid[-userid]
              Matches if the packet socket's file structure (if it has one) is owned by the given user. You may also specify a numerical UID, or an UID range.

       [!] --gid-owner groupname

       [!] --gid-owner groupid[-groupid]
              Matches if the packet socket's file structure is owned by the given group.  You may also specify a numerical GID, or a GID range.

       [!] --socket-exists
              Matches if the packet is associated with a socket.
« Последнее редактирование: 12 Августа 2020, 18:15:52 от snowin »

Оффлайн ihaar

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: ограничения в /etc/hosts для разных юзеров
« Ответ #13 : 12 Августа 2020, 18:32:52 »
snowin, спасибо! буду разбираться

 

Страница сгенерирована за 0.041 секунд. Запросов: 25.