Я хочу, щоб хтось із користувачів (не в списку sudoers) отримав доступ до Інтернету з 14:00 до 16:00 та з 17:00 до 18:30. Це можливо? Чи можна встановити різні часові інтервали для різних тижневих днів?
Я хочу, щоб хтось із користувачів (не в списку sudoers) отримав доступ до Інтернету з 14:00 до 16:00 та з 17:00 до 18:30. Це можливо? Чи можна встановити різні часові інтервали для різних тижневих днів?
Відповіді:
Ви можете використовувати owner
розширення iptables, щоб заблокувати доступ користувача до мережі, наприклад
sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT
Тепер ви можете використовувати cron, щоб додати або видалити ці правила (для яких може знадобитися трохи сценаріїв оболонок, якщо у вас вже є деякі правила iptable або ви хочете, щоб це робилося для різних користувачів у різний час).
-j REJECT --reject-with <argument>
?
Логін як корінь:
судо су
перевірити стан вашого брандмауера:
ufw status
якщо брандмауер неактивний , видайте:
ufw enable
з метою обмеження доступу користувачів до Інтернету Вільгельма у неділю, вівторок, середу та п’ятницю до дозволених інтервалів часу (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.) на початку (вгорі) вихідна правило ланцюга , а не в нижній частині ланцюга. розміщення доданих вручну правил поверх звичайних політик брандмауера є важливим, оскільки правила обробляються зверху вниз. якщо найвищі правила приймають пакет, ланцюг OUTPUT більше не перевіряється на наступні правила, які, можливо, перервали пакет.
переконайтесь, що правила справді були правильно введені:
iptables -L OUTPUT
для того , щоб видалити невідповідне правило, говорять (кількість 1 на основі з верхньої частини правила № 1, iptables -v -L OUTPUT
) питання: iptables -D OUTPUT 1
.
збережіть iptables для відновлення наступного завантаження:
iptables-save > /etc/iptables.rules
у /etc/rc.local
додати рядок:
iptables-restore < /etc/iptables.rules
зроблено
-
перевірено на Ubuntu 11.10 (oneiric), локаль: він
central european summer time -2 hours
.
ufw
навіть якщо ви згодом використовуєте iptables
?
--kerneltz
параметра ("Використовувати часовий пояс ядра замість UTC")