Ограничение доступа по времени через iptables

Ограничение доступа по времени через iptablesБывает, что доступ к сетевым ресурсам нужно ограничить по определённому расписанию. В iptables существует модуль time, который позволяет выполнить данный вид ограничений.

Допустим, нам нужно, чтобы доступ к FTP-серверу был ограничен в субботу и воскресенье с 15:00 до 21:00:

iptables -I INPUT -p tcp --dport 21 -m time --kerneltz --timestart 15:00 --timestop 21:00 --weekdays Sat,Sun --syn -j DROP

Разберём эту команду подробнее:

—kerneltz — использование времени текущей временной зоны, в противном случае iptables будет работать по времени часового пояса UTC;

—timestart — время начала срабатывания условия. Допустимый диапазон указания времени с 00:00:00 до 23:59:59. Вместо формата ЧЧ:ММ:СС можно использовать формат ЧЧ:ММ. Именно так и сделано в примере;

—timestop — время окончания действия условия. Формат ввода аналогичен тому, что был описан у —timestart;

—weekdays — день или дни недели, когда будет срабатывать условие. Допустимые значения: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Можно использовать порядковые номера дней недели от 1 до 7. Дополнительно поддерживается формат в два символа: Mo, Tu, We и т.д. Если необходимо указать несколько дней, они перечисляются через запятую без пробела;

—monthdays — день месяца, в который будет срабатывать условие. Допустимы значения от 1 до 31.

Например, мы хотим ограничивать доступ к FTP-серверу не по дням недели, а по вторым числам каждого месяца:

iptables -I INPUT -p tcp --dport 21 -m time --kerneltz --timestart 15:00 --timestop 21:00 --monthdays 2 --syn -j DROP

Ранее мы рассмотрели, как можно разрешать и закрывать через iptables определённые порты или IP-адреса.

Добавить комментарий

Ваш адрес email не будет опубликован.