МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
/
Звіт до лабораторної роботи № 2
З курсу:
«Комп`ютерні методи високорівневого
проектування систем захисту»
На тему:
“ПРОЕКТУВАННЯ СИСТЕМ ЗАХИСТУ АДМІНІСТРАТИВНОГО ТА ВІДДАЛЕНОГО ДОСТУПУ НА ОСНОВІ IOS CISCO”
Варіант № 8
Мета роботи – ознайомитися з основними протоколами віддаленого управління мережевим обладнанням корпоративної мережі, набути практичні навики стосовно організації захищеного доступу до консолі мережевого обладнання, забезпечення безпеки операційного середовища мережевих пристроїв при віддаленому до них підключенні на основі Telnet/SSH, організації віддаленого доступу до мережевого обладнання на основі ААА-сервера.
1.Теоретичні відомості
Telnet (англ. TErminaL NETwork) ( протокол для реалізації текстового інтерфейсу по мережі (за допомогою транспорту TCP). Основне призначення полягає в емуляції терміналу, завдяки чому користувач, який працює на віддаленому комп’ютері (клієнт Telnet), одержує доступ до ресурсів іншої машини – сервера Telnet. Протокол проектує клієнтський комп’ютер на сервер Telnet таким чином, що цей комп’ютер виглядає як термінал безпосередньо під’єднаний до локальної мережі. Насправді, проекція є програмним образом, віртуальним терміналом, здатним взаємодіяти з віддаленим хостом. У протоколі Telnet не передбачено використання ні шифрування, ні перевірки достовірності даних. Тому він вразливий для будь-якого виду атак до яких вразливий і його транспорт, тобто протокол TCP. Для забезпечення безпечного віддаленого доступу до системи нині застосовується протокол SSH (особливо популярна версія 2), основною причиною створення якого були питання щодо забезпечення безпеки даних сеансу. Однак, Telnet нині широко використовується для організації віддаленого управління мережевими пристроями в повністю контрольованій мережі або у поєднанні зі захистом на мережевому рівні.
SSH (англ. Secure Shell - «безпечна оболонка») ( мережевий протокол прикладного рівня, який забезпечує безпечне віддалене управління операційною системою і тунелювання TCP-з’єднань. Схожий за функціональністю з протоколом Telnet, однак, на відміну від нього, шифрує весь трафік, включаючи і передані паролі. На основі SSH можна не тільки віддалено працювати на комп’ютері через командну оболонку, але і передавати по шифрованому каналу звуковий потік або відео (наприклад, з веб-камери). Також SSH може використовувати стиснення переданих даних для подальшого їх шифрування, що зручно, наприклад, для віддаленого запуску клієнтів X Window System.
Протокол SSH-1, на відміну від протоколу Telnet, стійкий до атак прослуховування трафіку («сніфінг»), але нестійкий до атак типу «людина посередині». Протокол SSH-2 стійкий до зазначених атак, так як неможливо при його застосуванні включитися у вже встановлену сесію або перехопити її.
SSH протокол прикладного рівня. SSH-сервер зазвичай прослуховує з’єднання на TCP-порту 22. Специфікація протоколу SSH-2 міститься в RFC 4251. Для автентифікації сервера в SSH використовується протокол автентифікації сторін на основі алгоритмів електронно-цифрового підпису RSA або DSA, але допускається також автентифікація за допомогою пароля (режим зворотної сумісності з Telnet). Автентифікація по паролю найбільш поширена; вона безпечна, оскільки пароль передається по зашифрованому віртуальному каналу. Для створення загального секрету (сеансового ключа) використовується алгоритм Діффі-Хеллмана (DH). Для шифрування переданих даних використовується симетричне шифрування, алгоритми AES, Blowfish або 3DES.
Для під’єднання робочої станції (РС) до консолі мережевого пристрою можуть використовуватися кабелі типу miniUSB-to-USB та COM-to-RJ-45. Проте, в останньому випадку, необхідно задіяти перехідник USB-to-COM. Також необхідне відповідне програмне забезпечення для підключення (Putty, SecureCRT та ін.).
Компанія Cisco додала команду еnаble secret для кращого захисту паролем операційного середовища мережевих пристроїв. Пізніше вона додала глобальну команду username <користувач> secret <пароль> як альтернативу команді username <користувач> password <пароль>.
Більш нова команда еnаble secret забезпечує кращий захист паролю у порівнянні з колишньою командою еnаble password. Команда еnаble password зберігає пароль як відкритий текст, а єдиною можливістю шифрування є досить слабка команда service password-encryption. Більш нова команда еnаble secret автоматично шифрує пароль, застосовуючи до паролю математичну функцію Message Digest 5 (MDS), та зберігає результат обчислення у файлі конфігурації.
Оскільки команда username secret забезпечує кращий захист паролем операційного середовища по відношенню до username password, як і команда еnаble secret по відношенню до еnаble password, то у роботі при задані паролю усюди використовується команда secret.
При налаштуванні віддаленого доступу до мережевого обладнання на основі Telnet/SSH, необхідно задіяти режим термінальних ліній vty з певним числом каналів. Число каналів задає відповідну кількість паралельних підключень по Telnet. Наприклад, команда vty 0 15 дозволяє 16 паралельних підключень Telnet до комутатора. Число підтримуваних vty каналів залежить від версії IOS. Для випадку комутатора необхідно задати IP-адресу його віртуального інтерфейсу vlan 1, за якою буде ініціюватися сеанс Telnet.
Оскільки Тelnet ( протокол незахищений і передає пароль та дані по мережі у відкритому вигляді, вкрай рекомендовано для організації безпечного віддаленого управління мережевими пристроями використовувати протокол SSH (англ. Secure Shell ( «безпечна оболонка»).
Команда crypto key generate rsa створює і зберігає (в закритій області флеш-пам’яті) асиметричні ключі шифрування протоколу SSH. Для правильної роботи створених ключів необхідно командою hostname змінити стандартну назву комутатора (наприклад, на Sw_SSH), а командою ip domain-name задати будь-яке ім’я домену (наприклад, SECUR.DOMAIN) за замовчуванням. Крім того, необхідно задати довжину ключів SSH. Якщо вибрана довжина ключа перевищує 768 біт, то ініціюється версія протоколу SSH-2. У розглянутому прикладі значення довжини ключа становить 1024 біт. Командою transport input ssh вибирається лише протокол SSH для організації віддаленого сеансу.
Команда logging synchronous забороняє вивід будь-яких консольних повідомлень, які в свою чергу можуть перервати введення команд в консольному режимі.
Команда aaa new-model активує протокол ААА (до активації ААА в системі обов’язково повинен бути заведений хоча б один користувач) для збереження облікових даних користувачів. Для перегляду налаштувань за протоколом SSH, можна скористатися командами show ip ssh та show ssh.
Для підвищення ефективності виконання розглянутого завдання нині широко використовується централізований віддалений доступ до мережевого обладнання на основі ААА-сервера. У такому випадку облікові дані користувачів, задіяних в процесі віддаленого управління, розміщуються в центральній базі даних на сервері ААА (Authentication, Authorization, Accounting). Якщо необхідно внести зміни в облікові записи користувачів, то адміністратор проводить їх одноразово у базі даних цього сервера. Коли користувач намагається одержати доступ до управління мережевим пристроєм, то отримує від нього вимогу ввести свої облікові дані (login і password). Після їх вводу, пристрій (ААА-клієнт) звертається зі запитом до ААА-сервера на предмет звірки введених даних з обліковими даними сервера для цього користувача. Якщо відповідь ААА-сервера позитивна (відповідні облікові дані користувача знаходяться в його базі), то користувач уповноважений віддалено управляти цим мережевим пристроєм.
В даному випадку ААА-клієнти уповноважені звертатися до ААА-сервера за певними протоколами, найбільш вживаними серед яких є протокол RADIUS (Remote Authentication Dial In User Service) і розроблений компанією Cisco Systems протокол TACACS+ (Terminal Access Controller Access Control System plus).
Порівняльна характеристика RADIUS і TACACS+
RADIUS
TACACS+
Протокол
UDP
TCP
Порт
1812/1645 authentication
1812/1645 accounting
49
Шифрування
Шифрує лише пароль у пакеті
Шифрує пакет повністю
Особливості
Відкритий стандарт
Проприєтарна розробка Cisco
RADIUS це відкритий стандарт який широко використовуються для реалізації непрямої автентифікції користувачів. Рішення на основі непрямої автентифікації застосовуються, коли в системі є декілька точок обслуговування і достатньо утруднено підтримувати сумісність кількох окремих баз даних для автентифікації користувачів. Такі схеми передбачають наявність в системі спеціального сервера автентифікації. Всі інші точки обслуговування визначають достовірність користувачів, зв’язуючись з сервером автентифікації щоразу, коли хтось намагається отримати доступ до системи.
Зв’язок між клієнтом і сервером RADIUS заснований на UDP. Всі питання, пов’язані з доступністю сервера, повторною передачею даних і відключеннями після закінчення часу очікування, контролюються пристроями, які працюють під управлінням протоколу RADIUS, але не самим протоколом передачі.
Протокол RADIUS заснований на технології клієнт/сервер. Клієнт передає інформацію користувача на певні сервери RADIUS, а потім діє відповідно до отриманих від сервера інструкцій. Сервери RADIUS приймають запити користувачів на підключення, проводять автентифікацію користувачів, а потім відправляють всю необхідну для обслуговування користувача конфігураційну інформацію клієнту. Для інших серверів RADIUS або автентифікаційних серверів іншого типу сервер RADIUS також може виступати в ролі клієнта-посередника.
Сервер RADIUS може підтримувати різні методи автентифікації користувача. Зазвичай реєстрація користувача складається зі запиту (Access Request), який надходить з клієнта на сервер RADIUS та відповіді (позитивної чи негативної), яку відсилає сервер. Пакет Access Request містить ім’я користувача, шифрований пароль, IP-адресу системи клієнта та номер порта.
Коли сервер RADIUS отримує від клієнта запит Access Request, він проводить пошук зазначеного імені користувача в базі даних. Якщо в базі даних такого імені немає, то сервер завантажує стандартний профіль локальної бази пристрою, який використовується за замовчуванням, або відправляє користувачеві негативну відповідь. Ця негативна відповідь може при необхідності супроводжуватися текстом, який пояснює причини відмови.
В системі RADIUS функції автентифікації та авторизації суміщені. Якщо ім’я користувача знайдено в базі даних і пароль вказаний правильно, сервер RADIUS видає позитивну відповідь, в якій наводиться список пар атрибутів для даної сесії. Типовими параметрами є тип послуги, тип протоколу, IP-адреса, яка присвоюється користувачу (статична або динамічна), список об’єктів доступу або статичний маршрут, який необхідно додати в таблицю маршрутизації клієнта.
Транзакції між клієнтом і сервером RADIUS автентифіковані за допомогою загального «секрету», який ніколи не передається по мережевим каналам. Крім того, обмін будь-якими користувацькими паролями між клієнтом і сервером RADIUS йде тільки в зашифрованому вигляді, що виключає підслуховування чужих паролів і подальше зловживання ними.
2.Завдання
Взяти за основу схему комп’ютерної мережі першої лабораторної роботи № 1. Пронумерувати мережі, комутатори та маршрутизатори зліва направо: Network1, Network2, Network3, Router1, Router2, Router3 та Switch1, Switch2, Switch3. Виконати завдання 2.1., відносно мережевих пристроїв, поданих згідно варіанту. При чому, пункти 2(5 завдання 2.1., виконати відносно робочої станції РС, яка знаходиться в заданій мережі.
№ п/п
PC
TELNET
SSH
8
Network3
Switch3, Router2
Switch1, Router3
3.Результати роботи
Обмеження доступу до консолі Switch3 та Router3 здійснюється з робочої станції (РС2) під’єднаної до консолі мережевого пристрою через COM-порт наступними командами:
Switch(config)#username admin privilege 15 secret 1234qwer
Switch(config)#line console 0
Switch(config-line)#login local
Switch(config-line)#end
Router(config)#username admin privilege 15 secret 1234qwer
Router(config)#line console 0
Router(config-line)#login local
Router(config-line)#end
Telnet:
Switch3:
Username: admin
Password:
Switch#conf t
Switch(config)#username user privilege 0 secret default
Switch(config)#line vty 0 1
Switch(config-line)#login local
Switch(config-line)#transport input telnet
Switch(config-line)#end
Switch#conf t
Switch(config)#int vlan 1
Switch(config-if)#ip address 192.168.3.254 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#end
/
Router2:
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int Gig 0/0
Router(config-if)#line vty 0 1
Router(config-line)#login local
Router(config-line)#transport input telnet
Router(config-line)#exit
Router(config)#username admin privilege 15 secret 1234qwer
Router(config)#username user privilege 0 secret default
Router(config)#end
Router#
/
SSH:
Switch1:
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#int vlan 1
Switch(config-if)#ip address 192.168.2.254 255.255.255.0
Switch (config-if)#ip default-gateway 192.168.2.1
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#hostname Sw1_SSH
Sw1_SSH(config)#ip domain-name BUILD1.SECURE
Sw1_SSH(config)#crypto key generate rsa
The name for the keys will be: Sw1_SSH.BUILD1.SECURE
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus [512]: 1024
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]
Sw1_SSH(config)#line vty 0 3
*Mar 2 18:24:40.460: %SSH-5-ENABLED: SSH 1.99 has been enabled
Sw1_SSH(config-line)#transport input ssh
Sw1_SSH(config-line)#login local
Sw1_SSH(config-line)#exec-timeout 30 0
Sw1_SSH(config-line)#logging synchronous
Sw1_SSH(config-line)#exit
Sw1_SSH(config)#username admin privilege 15 secret 1234qwer
Sw1_SSH(config)#username user privilege 0 secret default
Sw1_SSH(config)#
Sw1_SSH#
/
Router3:
Router#conf t
Router(config)#hostname Router3
Router3(config)#ip domain-name BUILDING2.SECURE
Router3(config)#username admin privilege 15 secret 1234qwer
Router3(config)#username user privilege 0 secret default
Router3(config)#aaa new-model
Router3(config)#crypto key generate rsa
How many bits in the modulus [512]: 1024
Router3(config)#line vty 0 3
Router3(config-line)#transport input ssh
Router3(config-line)#exec-timeout 60 0
Router3(config-line)#logging synchronous
Router3(config-line)#exit
Router3(config)#end
Router3#
/
AAA:
Router3(SSH):
Router3(config)#aaa new-model
Router3(config)#aaa authentication login default group radius local
Router3(config)#radius-server host 192.168.3.10 key r3
Router3(config)#enable secret 1234
Router2(Telnet):
Router(config)#aaa new-model
Router(config)#aaa authentication login default group radius local
Router(config)#radius-server host 192.168.3.10 key r2
Router(config)#
AAA server:
/
Схема мережі: /
Тестування до R2 AAA:
/
Тестування до R3 AAA:
/
4. Висновки
В роботі розглянуто протоколи віддаленого управління мережевим обладнанням корпоративної мережі, такі як SSH та telnet. Для отримання практичних навиків організації захищеного доступу до консолі мережевого обладнання, було розроблено систему команд CLI обмеження доступу до консолі заданих мережевих пристроїв.