Как ограничить доступ пользователя к Интернету для временных интервалов?

Я хочу того из пользователей (не в списке sudoers), имеют доступ в Интернет с 14:00 до 16:00 и с 17:00 до 18:30. Действительно ли это возможно? Я могу установить различные временные интервалы в течение различных недельных дней?

11
задан 13 January 2014 в 11:02

2 ответа

Можно использовать iptables's owner расширение, чтобы заблокировать пользователя от доступа к сети, как

 sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT

Теперь можно использовать крон, чтобы добавить или удалить те правила (которому, возможно, понадобятся определенные сценарии оболочки, если Вы уже имеете некоторые iptable правила или хотите это к к для различных пользователей в разное время).

6
ответ дан 23 November 2019 в 04:05
  1. вход в систему как корень:

    sudo su

  2. проверьте состояние своего брандмауэра:

    ufw status
    

    если брандмауэр неактивен, проблема:

    ufw enable
    
  3. для ограничения пользователя wilhelm доступ в Интернет по воскресеньям, вторники, среды и пятницы к позволенным временным интервалам (14:00-16:00 и 17:00-18:30):

    iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 00:00:01 --timestop 14:00:00 -j DROP 
    iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 16:00:00 --timestop 17:00:00 -j DROP 
    iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 18:30:00 --timestop 23:59:59 -j DROP 
    

    примечание стороны: *отметьте использование -I переключатель, а не -A переключатель iptables команда. -I переключатель вставляет вышеупомянутые правила (3). вначале (вершина) ВЫВОДА управляет цепочкой, а не у основания цепочки. размещение вручную добавленных правил сверху регулярных политик брандмауэра важно, так как правила обрабатываются от начала до конца. если самые важные правила ПРИНИМАЮТ пакет, цепочка, ВЫВОД, больше не проверяется на следующие правила, которые, возможно, ОТБРОСИЛИ пакет.

  4. удостоверьтесь, что правила действительно правильно вводились:

    iptables -L OUTPUT
    

    для удаления несоответствующего правила скажем правило № 1, (количество на основе 1 от вершины iptables -v -L OUTPUT) проблема: iptables -D OUTPUT 1.

  5. сохраните iptables для восстановления на следующей начальной загрузке:

    iptables-save > /etc/iptables.rules
    
  6. в /etc/rc.local добавьте строку:

    iptables-restore < /etc/iptables.rules
    

готово

--

протестированный на (сновещательной) Ubuntu 11.10, локаль: он

7
ответ дан 23 November 2019 в 04:05

Другие вопросы по тегам:

Похожие вопросы: