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


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

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

  • Старожил
  • *
  • Сообщений: 2458
    • Просмотр профиля
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

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
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 Testing (Gnome), Ubuntu Server 18.04

Оффлайн ihaar

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

Оффлайн The Green Side

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

Оффлайн ihaar

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

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
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 Testing (Gnome), Ubuntu Server 18.04

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 882
    • Просмотр профиля
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

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

Оффлайн ihaar

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

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 882
    • Просмотр профиля
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.077 секунд. Запросов: 26.