Я хочу, чтобы один из пользователей (не в списке 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>
?
войдите как root:
судо су
проверьте состояние вашего брандмауэра:
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 больше не проверяется на наличие следующих правил, которые могли бы DROPped пакет.
пожалуйста, убедитесь, что правила действительно были введены правильно:
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»)