У цій статті йдеться про використання ACL (Access Control List). Ми розповімо про його призначення, які є особливості, різновиди та торкнемося його налаштування.
Список правил ACL ( Access Control List) — це один з основних способів керування безпекою в комп’ютерних мережах та системах.
Він дозволяє адміністраторам контролювати доступ до конфіденційної інформації та захищати системи від несанкціонованого доступу та зловживань тими правами доступу, які дозволені.
ACL активно застосовується в корпоративному середовищі, у тому числі у великих організаціях, де управління доступом до інформації є критично важливим для безпеки та конфіденційності даних.
Також ACL використовуються в різних операційних системах, як-от Windows, Linux та MacOS, а підтримка цього списку правил часто заздалегідь інтегрована в мережевому обладнанні, такому як маршрутизатори та комутатори.
ACL (Access Control List) можуть застосовуватись у різних сферах, включаючи:
За допомогою ACL можна визначити, які користувачі або групи користувачів мають доступ до яких ресурсів та встановити рівень доступу (читання, запис, виконання тощо) для кожного користувача або групи користувачів.
Однією з головних особливостей ACL є гранулярність. Вона визначає рівень деталізації прав доступу до ресурсів, який може бути встановлений для користувачів та груп. Чим вища гранулярність, тим більш детальні права доступу можуть бути встановлені.
Розрізняють кілька рівнів гранулярності ACL:
Хоча більш детальні права доступу встановлені на кожному рівні гранулярності, тим більш точне управління доступом може бути здійснено, більш висока гранулярність може також призвести до більш складного настроювання прав доступу та підвищеного ризику помилок.
Друга особливість ACL — ієрархія, коли права доступу можна вказувати на різних рівнях. Наприклад, у файлових системах можна встановити права доступу на рівні файлу, папки, диска або мережного ресурсу.
ACL властива переносимість — правила можна застосовувати до різних типів ресурсів у різних операційних системах та середовищах, у тому числі до файлів, папок, баз даних, мережевих ресурсів тощо.
ACL дозволяє вести аудит — тобто записувати та аналізувати журнали доступу, щоб відстежувати, які користувачі отримують доступ до ресурсів та які операції вони виконують.
У списку правил можна визначати права доступу на основі часу доступу, протоколу доступу (наприклад, SSH, HTTP або FTP) та інших факторів, що дозволяє точно налаштувати доступ до ресурсів відповідно до вимог безпеки.
Існує кілька видів Access Control List (ACL), які можуть бути використані для управління доступом до різних ресурсів. Розглянемо деякі найпоширеніші з них:
Деякі типи ACL варто розглянути ще ближче.
Dynamic Access Control (DAC) — це метод керування доступом до ресурсів, який дозволяє динамічно змінювати права доступу на основі умов, що змінюються.
В рамках динамічного контролю доступу створюються динамічні ACL, які визначають права доступу користувачів до ресурсів на основі додаткових умов, таких як час доступу, розташування користувача або його мережевого статусу.
На відміну від статичних ACL, які визначають права доступу на основі заздалегідь заданих правил, динамічні ACL можуть адаптуватися до умов, які змінюються, та змінювати права доступу в режимі реального часу. Це дозволяє покращити захист даних та спростити керування доступом до ресурсів.
Приклад динамічного контролю доступу: система, яка автоматично блокує доступ користувача до конфіденційної інформації, якщо він підключається до мережі з небезпечного місця або використовує пристрій із низьким рівнем безпеки.
Також динамічний контроль доступу може використовуватися для управління доступом до віртуальних ресурсів, таких як віртуальні машини, на основі умов використання, що змінюються.
Цей метод керування доступом до мережевих ресурсів заснований на аналізі та відстеження мережного трафіку.
Рефлексивні ACL (RACL) дозволяють обмежувати доступ до мережевих ресурсів на основі інформації, що міститься у самому трафіку.
Як правило, RACL використовується для фільтрації трафіку на мережевих маршрутизаторах та брандмауерах. Рефлексивні ACL обробляють пакети, що проходять через пристрої, та аналізують інформацію, яка міститься в заголовках пакетів, щоб визначити, яким чином вони повинні бути оброблені.
RACL можуть фільтрувати трафік, ґрунтуючись на різних параметрах, таких як IP-адреса джерела та призначення, номери портів, протоколи тощо. Прикладом використання RACL може бути блокування трафіку від зовнішніх пристроїв, які намагаються встановити з’єднання з внутрішніми пристроями, коли зовнішній трафік не супроводжується внутрішнім трафіком.
Ключова особливість RACL — здатність динамічно адаптуватися до мережного трафіку, що робить їх більш гнучкими, ніж статичні ACL. Але використання RACL може вимагати додаткових ресурсів мережі для обробки пакетів, що може вплинути на продуктивність мережі.
Налаштування RACL може залежати від обладнання та мережної архітектури. Зазвичай налаштування RACL включає:
Time-based ACL (TBACL) — це метод керування доступом, який дозволяє обмежувати доступ до мережних ресурсів на основі часу дня, тижня або місяця.
TBACL використовується для керування доступом до мережних ресурсів у певний час або дня тижня, щоб знизити ризики безпеки та оптимізувати використання мережних ресурсів. Наприклад:
Прикладом використання TBACL може бути обмеження доступу до вебсайту або певних портів у періоди, коли вони не використовуються, наприклад, уночі або у вихідні дні. Це може допомогти знизити ризики безпеки та оптимізувати використання мережевих ресурсів.
Ключова особливість TBACL — його гнучкість та налаштовуваність, що дозволяє адміністраторам мереж керувати доступом до ресурсів з точністю до години та дня тижня.
TBACL може бути використано разом з іншими методами керування доступом, такими як статичні та динамічні ACL, для створення більш надійних та гнучких мережних систем.
Налаштування TBACL може залежати від використовуваного обладнання та мережевої архітектури. Зазвичай вона включає:
Важливо! При налаштуванні TBACL необхідно враховувати часові пояси та перехід на літній час, щоб уникнути помилок при обмеженні доступу.
У Linux Access Control List реалізований як додатковий механізм контролю доступу до файлів і каталогів, який дозволяє гранулярніше управляти правами доступу, ніж стандартна система прав доступу.
Цей інструмент працює на основі розширених атрибутів файлової системи (Extended File System Attributes), які додають додаткові поля для кожного файлу чи каталогу, де зберігаються права доступу для кожного користувача чи групи.
Реалізація ACL у Linux включає дві команди для роботи з ACL:
setfacl
— встановлює ACL для вказаного файлу чи каталогу;getfacl
— отримує поточні установки ACL для вказаного файлу або каталогу.Команда setfacl
дозволяє задати права доступу на читання, запис та виконання для певних користувачів чи груп користувачів. Наприклад, щоб надати користувачеві testuser право на читання та запис файла myfile.txt, потрібно виконати таку команду:
setfacl -m u:testuser:rw myfile.txt
Команда getfacl
дозволяє отримати поточні установки ACL для вказаного файлу або каталогу. Наприклад, щоб дізнатися, які ACL встановлені для файла myfile.txt, потрібно виконати таку команду:
getfacl myfile.txt
Розглянемо приклад налаштування статичного Access Control List (ACL) на маршрутизаторі Cisco для обмеження доступу до вебсервера (IP-адрес 192.168.1.10) мережі 192.168.0.0/24 тільки для окремих IP-адресов.
Визначаємо номер ACL та створюємо його:
Router(config)# access-list 10 permit any
Додаємо правило для дозволу доступу до вебсервера лише для обраних IP-адрес. У цих командах ми дозволяємо доступ до вебсервера лише з IP-адрес 192.168.2.10 і 192.168.2.11:
Router(config)# access-list 10 permit tcp host 192.168.2.10 host 192.168.1.10 eq 80 Router(config)# access-list 10 permit tcp host 192.168.2.11 host 192.168.1.10 eq 80
Усі інші запити до вебсервера (з усіх IP-адрес, крім тих, які ми дозволили в попередніх правилах) відхиляємо:
Router(config)# access-list 10 deny tcp any host 192.168.1.10 eq 80
Застосовуємо ACL до інтерфейсу FastEthernet 0/0 вхідним напрямком, щоб обмежити доступ до вебсервера лише для тих IP-адрес, які ми дозволили в правилах ACL.
Router(config)# interface FastEthernet 0/0 Router(config-if)# ip access-group 10 in
Це приклад налаштування статичного ACL на маршрутизаторі Cisco. Він може змінюватись в залежності від використовуваного обладнання та мережевої архітектури. Важливо пам’ятати, що неправильне налаштування ACL може призвести до блокування трафіку або порушення безпеки мережі, тому рекомендується ретельно перевіряти правила ACL перед застосуванням.
Цей приклад скрипта на Python дозволяє створювати статичний ACL для дозволу або блокування трафіку з певних IP-адрес та/або з певних портів. Скрипт призначений для використання на маршрутизаторах Cisco із встановленою бібліотекою Netmiko, яка дозволяє керувати обладнанням через SSH-протокол:
from netmiko import ConnectHandler # дані для підключення до маршрутизатора device = { 'device_type': 'cisco_ios', 'ip': '192.168.1.1', 'username': 'admin', 'password': 'password', 'port': 22, } # список IP-адрес та портів для дозволу або блокування allowed_ips = ['192.168.2.10', '192.168.2.11'] blocked_ports = [22, 23] # створення та застосування ACL acl_name = 'ACL1' acl_rules = [] acl_rules.append('access-list ' + acl_name + ' remark Allow or block specific IP addresses and ports') acl_rules.append('access-list ' + acl_name + ' permit ip ' + ', '.join(allowed_ips) + ' any') for port in blocked_ports: acl_rules.append('access-list ' + acl_name + ' deny tcp any any eq ' + str(port)) acl_rules.append('access-list ' + acl_name + ' permit ip any any') # підключення до маршрутизатора та виконання команд налаштування ACL with ConnectHandler(**device) as ssh: ssh.enable() for rule in acl_rules: ssh.send_command(rule) ssh.send_command('interface FastEthernet 0/0') ssh.send_command('ip access-group ' + acl_name + ' in')
Ми вказуємо список IP-адрес, яким дозволено доступ, та список портів, які мають бути заблоковані. Потім ми створюємо ACL за допомогою списку правил та застосовуємо його до інтерфейсу вхідним напрямком.
Цей приклад скрипту можна легко доопрацювати та адаптувати під конкретні вимоги, залежно від того, які правила ACL потрібно налаштувати.
ACL є одним з основних способів керування безпекою в комп’ютерних мережах та системах, що дозволяє адміністраторам контролювати доступ до конфіденційної інформації та захищати системи від несанкціонованого доступу та зловживань.
Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…
У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…
Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…
Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…
Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…
Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…