Страницы

Поиск по вопросам

вторник, 13 ноября 2018 г.

Как отключить пользователю интернет

Как можно отключить сеть пользователю на Ubuntu 14.04/ 16.04? (Пользователь — не администратор.)


Ответ

Команда для отключения интернета нашлась на askubuntu
sudo iptables -A OUTPUT -p all -m owner --uid-owner -j DROP
Эта команда сбрасывает все пакеты, исходящие от пользователя
Теперь нужно сделать это изменение постоянным. В ответе на askubuntu предлагают для этого создать в директории /etc/network/if-up.d/ скрипт, который вызывает команду выше:
cd /etc/network/if-up.d/ gksudo gedit block_user sudo chmod +x block_user
У меня это почему-то не сработало:(, после перезагрузки sudo iptables -L показал таблицу без упоминания этого пользователя.
Другой способ нашелся на ubuntu.ru. Кроме помещения скрипта в /etc/network/if-up.d/, там предлагают вызывать скрипт из /etc/network/interfaces:
gksudo gedit /etc/network/interfaces
добавляем последней строкой
post-up /etc/network/if-up.d/block_user
Проверяем после перезагрузки:
$ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination
Chain FORWARD (policy ACCEPT) target prot opt source destination
Chain OUTPUT (policy ACCEPT) target prot opt source destination DROP all -- anywhere anywhere owner UID match
Теперь работает.
UPD: Поскольку gksudo больше не рекомендуется и его собираются отменить, редактирование можно сделать, например, так: (лучше открыть для этого еще один терминал)
sudo -i
вводим свой пароль и дальше работаем от имени rootа. Эта команда также перемещает в /root. Далее:
root:~# cd /etc/network/if-up.d/ root:~# gedit block_users & root:~# chmod +x block_user root:~# gedit /etc/network/interfaces root:~# exit
Обратите внимание: если закрыть терминал с rootом или сделать exit, gedit закроется. Поэтому это можно делать только после окончания редактирования. Источник:askubuntu

Комментариев нет:

Отправить комментарий