Cisco learning, access control list

Access Control List або ACL (або просто Access List) - список правил, які дозволяють контролювати і фільтрувати трафік. Правила всередині ACL називаються access control entries (ACE).

Основне застосування ACL (Access List - Список Доступу) - фільтрація трафіку, але так само він знаходить застосування і в інших функціях мережевого обладнання.

У cisco-пристроях Access Control List поділяють на два види:

Перш ніж переходити до практики треба дізнатися, що таке wildcard mask.

Wildcard Mask

Ми вже в курсі що таке маска і як вона утворюється. Wildcard mask теж є маскою, тільки "дивною" або "зворотного" (назви з просторів в Інтернеті). Нам належить дізнатися про неї більше, тому що вона використовується в ACL.

Її називають "зворотним", тому що одиниці і нулі в масці змінюють своє значення. Тепер 0 - це номер мережі, а 1 це хостової частина.

"Все пізнається в порівнянні", тому пропоную порівняти звичайну маску з wildcard маскою. Почнемо з класових масок.

Таблиця 4.1 Порівняння "звичайної" маски з wildcard маскою

Як обчислити wildcard маску маючи звичайну маску?

Розберемо випадок з не класової маскою (яка дробить октет на мережеву частину і хостовую, докладніше тут), тобто один з октетів відмінний від чисел 0 і 255 ( "кривої" октет). На початку, все октети "звичайної" маски, зі значенням 255, будуть відповідати 0 в wildcard масці, а значення 0 в "звичайній" масці, в wildcard - 255. Далі треба взяти октет, який відрізняється від 0 і 255 ( "кривої" октет) і відняти його з числа 255, таким чином ми отримаємо значення цього октету ( "кривого" октету) в wildcard масці. Наприклад масці 255.255.240.0, буде відповідати wildcard маска - 0.0.15.255, 255 - 240 = 15.

На практиці буде дуже багато букв і картинок, наберіться терпіння.

Загальна інформація

Packet Tracer version: 6.2.0

Тип: Теорія і практика

Вже отримали: 14 користувачів

отримати досягнення

Код активації можна отримати виконавши практичне завдання

Cisco learning, access control list

Вже отримали 16 користувачів

початкові дані

Всі "маніпуляції" можна здійснювати за допомогою PC0 (або з інших PC в мережі).

Cisco learning, access control list
Малюнок 4.1 Схема мережі з практичної роботи

  • Створити Standard ACL.
  • Фільтрувати трафік за допомогою створеного ACL.
  • Extended ACL.
    • Створити Extended ACL.
    • Фільтрувати трафік за допомогою створеного ACL.
  • виконання

    Standard ACL

    Будь ACL (Standard або Extended), можна створити викликавши команду access-list <номер> <действие> <критерий>. Розберемо складу команди.

    Номер ACL - це число, яке визначає який ACL створюється, Standard або Extended:

    • 1-99 - Standard
    • 100-199 - Extended

    Починаємо збирати команду. Вже зрозуміло які Ви можете телефонувати, щоб створити Standard ACL.

    Продовжимо збирати команду, додамо дію - заборонити.

    З критерієм трохи складніше, але розібратися можна. Всього три варіанти критеріїв:

    access-list 11 deny host 172.16.27.110

    Відмінно, але залишився ще один ДУЖЕ ВАЖЛИВИЙ момент.


    ACL може складатися з декількох правил, які називаються Access Control Entries (ACE). Дуже важливо знати, що всередині кожного ACL є приховане правило, яке забороняє ВСЕ. Тому, в разі "заборонити тільки ... і дозволити все інше", в кінці треба явно вказати - "дозволити ВСЕ".

    Дотримуючись вище сказаного, створимо ще одне правило "дозволити ВСЕ".

    access-list 11 permit any

    Пропоную ввести ці правила на роутер і вивчити команду show access-list.

    Розберемо висновок команди show access-list (слід зазначити, що ця команда показує всі створені ACL). Першим рядком зазначено, що є Стандартний ACL з номером 11, далі йде перерахування ACE. Кожен ACE має свій порядковий номер. За замовчуванням перший ACE має номер 10, другий ACE 20 і т.д. кожен раз додається крок 10 (надалі ми дізнаємося, як використовувати цей номер). Тепер знову ДУЖЕ ВАЖЛИВИЙ момент.

    Cisco learning, access control list
    Малюнок 4.2 Перевірка доступності мережі 172.16.20.0/22 ​​з PC3, до застосування фільтрації

    Cisco learning, access control list
    Малюнок 4.3 Перевірка доступності мережі 172.16.20.0/22 ​​з PC3, після застосування фільтрації

    На рисунок 4.2 представлена ​​перевірка доступності мережі 172.16.20.0/22 ​​з PC3, а саме з PC3 до PC0. Як бачимо, доступ є. Далі ми встановлюємо ACL на інтерфейс FastEthernet 0/1 командою ip access-group 11 in. Давайте розберемо, чому інтерфейс FastEthernet 0/1, а так само чому параметр in. Якщо представляти рух пакета від PC3, то все просто. Інтерфейс Fa0 / 1 - найближчий інтерфейс до PC3 і фільтрувати ми повинні вхідні пакети від PC3, саме з цього вказуємо параметр in.

    На малюнок 4.3 знову перевіряємо доступність з PC3 до PC0, але як бачимо, роутер повертає помилку "зазначений хост недоступний". Під малюнком 4.3 представлений висновок команди show access-list в якому з'явилася рядок (4 match (es)). вона вказує на те, що під це правило потрапило 4 пакети.

    Тепер пропоную переконатися, що правило під номером 20 теж працює (насправді правило відпрацьовує судячи з запису (483 match (es)). Але краще переконатися в цьому на практиці), для цього виконаємо перевірку доступності з CiscoLearning до PC0, малюнок 4.4. Під малюнком представлений висновок команди show access-list.

    Cisco learning, access control list
    Малюнок 4.4 Перевірка доступності з CiscoLearning до PC0

    Як бачимо, правило під номером 20 теж працює (така велика кількість матчів (matches) викликано тим, що в фоновому режимі запущена перевірка доступності деяких хостів і вони проходять через роутер). Якби цього правила не було, то весь трафік блокувався "неявним" (невидимим) правилом deny any (далі ми випробуємо його на практиці).

    Тепер трохи "лірики", перш ніж переходити до створення нового ACL. Є ще один варіант, куди ми могли встановити ACL 11, на інтерфейс Fa0 / 0 в напрямку out. Тоді б фільтрувався вихідний трафік і наша мета теж була б досягнута. АЛЕ! Якщо трафік фільтрується як вихідний це значить, що він проходить процес маршрутизації і витрачає ресурси роутера на обробку пакетів і вже після цього фільтрується, що неправильно. Тому рекомендується встановлювати правила фільтрації, максимально близько до джерела, щоб не витрачати апаратні засоби мережевого обладнання на "зайві" дії.

    ACL створений, залишилося "повісити" його на інтерфейс. Перед цим раджу переконатися, що зв'язок між PC1 і CiscoLearning присутній. Фільтрацію будемо здійснювати на інтерфейсі Fa0 / 0. для вхідного трафіку.

    Перевіримо доступність, між PC1 і CiscoLearning, малюнок 4.5. Ми знову можемо бачити помилку "зазначений хост недоступний".

    Cisco learning, access control list
    Малюнок 4.5 Перевірка доступності між PC1 і CiscoLearnin

    Тепер відповімо на питання, як дізнатися, чи встановлений на інтерфейсі ACL? Це можна дізнатися за допомогою команди show running-config (там же можна побачити все створені ACL), а так само за допомогою команди show ip interface. У висновку останньої команди треба шукати рядки Outgoing access list is ... (фільтрація вихідного трафіку) і Inbound access list is ... (фільтрація вхідного трафіку).

    Перш ніж переходити до розгляду Extended ACL. видалимо фільтрацію на інтерфейсах і один ACL. Все робиться за допомогою "могутньої" команди no. (Видалення окремих правил в ACL буде розглянуто далі). ( "Зніміть" ACL 12 з інтерфейсу, але не видаляйте, якщо хочете отримати досягнення!)

    Extended ACL

    Тепер задамося метою, що нам треба відфільтрувати.

    Extended ACL задається за допомогою команди access-list <номер> <действие> <тип фильтрации> <критерий>. Як видно, тепер з'явився ще тип фільтрації. його можна віднести до критеріїв, але для кращого засвоєння матеріалу виділимо його як окремий пункт.

    Як було написано вище ACL номерів: від 100 до 199 - Extended ACL. тому початок для створення ACL може бути таке - access-list 120.

    Далі, як і в Standard ACL. треба вказати дію. Наприклад, заборонити, тоді, продовжуючи збирати команду отримуємо - access-list 120 deny.

    Критерії будемо розбирати докладніше. Перш за все треба вказати який тип фільтрації буде використаний в правилі. Типів багато, розберемо основні:

    Почнемо з простого, з типу ip. Тоді команда перетвориться так - access-list 120 deny ip

    Відмінно! Тепер створимо ACL 120, "повісимо" його на інтерфейс Fa0 / 0, фільтрувати весь вхідний трафік. Не забуваємо, що якщо ми не дозволимо інший трафік, то за замовчуванням, то що не підпадає під правила в ACL буде заборонено! Тому так само додамо правило, "дозволити ВСЕ".

    На малюнку 4.6 представлена ​​перевірка зв'язку між PC2 і sw-outside-1. Після малюнка 4.6, ви можете знайти результат команди show access-list.

    Cisco learning, access control list
    Малюнок 4.6 Перевірка доступності між PC2 і sw-outside-1

    • eq - розшифровується як equal (дорівнює). Наприклад, eq 70. означатиме дорівнює 70-му порту.
    • neq - розшифровується як no equal (чине дорівнює). Наприклад, neq 90. буде означати не дорівнює 90-му порту.
    • gt - розшифровується як greater than (більше ніж). Наприклад, gt 1023. означатиме діапазон від 1024 до 65535 (65535 - це максимальний номер порту).
    • lt - розшифровується як less than (менше ніж). Наприклад, lt 2024. означатиме діапазон від 1 до 2023.
    • range - цей атрибут вказує конкретний діапазон (range). Наприклад, range 100 200. означатиме діапазон від 100 до 200.

    А тепер правило, яке заборонятиме усім іншим доступ CiscoLearning по 80-му порту, виглядає так - access-list 120 deny tcp any host 172.16.27.92 eq 80.

    Навчимося додавати правила в уже існуючий ACL, а заодно і видаляти конкретні правила з ACL. (Будьте дуже обережні, видаліть правило permit ip any any - втратите доступ до r1!)

    Тримайтеся! Залишилося небагато.

    За допомогою команди ip access-list extended 120 ми перейшли в режим настройки ACL 120 (а за допомогою команди ip access-list standard <номер>. можна перейти в режим налаштування стандартного ACL). Командою no 10. ми видалили 10-е правило, яке встановили раніше. Далі ми вказали яке правило буде під номером 7 і 13. Якщо ми не вкажемо номер нового правила, то воно отримає номер рівний максимальному номеру серед всіх правил + 10. Після всіх цих махінацій, наданий результат команди show access-list. вивчіть його самостійно (замість цифри 80 cisco підставляє слово www).

    Перевіряємо доступність сервера CiscoLaerning по 80-му порту з пристрою PC1, малюнок 4.7. Самостійно перевірте доступність з PC0 і ще раз викличте команду show access-list. вивчіть потрапив трафік під наші правила.

    Малюнок 4.7 Перевірка доступності сервера Server1 по 80-му порту

    Залишилося останнє - створити ACL дозволяє доступ тільки CiscoLearning, tacacsGUI і sw-outside-1.

    Створювати цей ACL ми будемо іншим шляхом, за допомогою команди ip access-list <номер | имя>. символ | означає або. Зверніть увагу, що за допомогою цієї команди, ми можемо задавати ім'я ACL, що набагато зручніше, ніж задавати номер. Отже, щоб створити ACL з ім'ям super-puper-acl. треба використовувати команду - ip access-list extended super-puper-acl. І далі в режимі конфігурації цього ACL додавати правила.

    Ми створили ACL з ім'ям super-puper-acl. перейшли в режим настройки цього ACL. Додали правило permit ip 172.16.27.88 0.0.0.7 any (під це правило потрапляють CiscoLearning і tacacsGUI), тому що ми не вказали номер і це перше правило, то йому автоматично присвоюється номер 10. У другому правилі ми явно вказали номер - 40. ДУЖЕ ВАЖЛИВО! Ми не додали правила "дозволити ВСЕ", тому якщо трафік не потрапляє під зазначені правила, він буде блокуватися прихованим правилом (під це правило потрапляє PC3).

    Тепер самостійно "повісьте" ACL super-puper-acl. на інтерфейс Fa0 / 1 (команда ip access-group super-puper-acl in) і перевірте доступність CiscoLearning з мережею 172.16.20.0/22. А так же перевірте наявність цієї мережі з PC3.


    ACL не діє на трафік, згенерований самим маршрутизатором. Іншими словами, пакети згенеровані самим пристроєм НЕ ПОТРАПЛЯТЬ під правила ACL повішені на out будь-якого інтерфейсу.

    Якщо ви дійшли до кінця, то Ви молодець!

    початкові дані

    Cisco learning, access control list
    Малюнок 4.8 Схема лабораторку

    Для перевірки цього завдання використовуються Connectivity tests, тобто перевіряються певні порти на певних комп'ютерах. Це дає вам повний карт-бланш на створення своїх ACL.

    Якщо ви знайшли в тексті помилку, виділіть текст і натисніть Ctrl + Enter