Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Топалов

.pdf
Скачиваний:
24
Добавлен:
10.02.2016
Размер:
2.16 Mб
Скачать

З чого можна зробити висновок, що використовувати AH+ESP не можна. Схоже, що це дійсно так - якщо створити свій Метод Безпеки і включити там одночасно підтримку AH і ESP, такий метод не працює.

Отже, політика створена. Запустить Wireshark та запустить Захоплення пакетів. Наведіть та нажмить по ній правою кнопкою миші, і виберіть "Призначити". З цієї миті політика стала діючою.

Підключитеся до Інтернету, і спробуйте пропінгувати ваш сервер. Якщо ви побачили один або два рядки "Negotiating security" а потім почали йти відповіді, прийміть поздоровлення - у вас усе запрацювало. Якщо ж немає - включайте виведення налагоджувальної інформації на сервері, читайте і аналізуйте.

Після того як побачили відповіді від сервера - виберіть у вашого метода безпеки параметр "Снять". Зупиніть Захоплення пакетів в Wireshark. Підкресліть пакети, що відносяться до з’єднання IPSec.

3. Ключові питання

1)Що таке IPSec ?

2)Для чого потрібен AH протокол ?

3)Для чого використовується ESP протокол ?

4)Для чого використовується персональний сертифікат ?

5)Потрібен для організації з’єднання кореневий сертифікат ca.crt або можливо організувати з’єднання за протоколом IPSec без нього ?

6)Для чого потрібен IKE ?

4.Домашнє завдання

1.Вивчити формування IPSec тунелю. Основні можливості IPSec.

2.Визначити, які основні алгоритми авторизації та шифрування застосовується у IPSec протоколі.

3.З’ясувати, які основні програмні продукти будуть застосовуватися у лабораторній роботі.

4.Відповісти на ключові питання.

5.Лабораторне завдання

1.Наслідуючи хід роботи в лабораторній роботі та використовуючи довідкове керівництво [1], настроїти IPSec тунель з боку клієнта з ОС

Windows. (2.1, 2.2)

2.Включити Tcpdump або Wireshark - зняти трасування встановлення з'єднання та роз'єднання IPSEC тунелю.

3.Проаналізувати застосовані методи авторизації та шифрування.

Варіанти завдань для виконання лабораторної роботи:

1.Пропінгувати 192.168.0.222 та знайти ці icmp пакети у аналізаторі

Tcpdump або Wireshark.

2.Знайти дату до якого часу діють сертифікати.

3.Застосувати компресію у IPSec-тунелі.

161

4.Знайти у дампі пакетів роз'єднання IPSec-тунелю.

5.Підкреслити пакети етапу авторизації IPSec-тунелю у аналізаторі Tcpdump або Wireshark.

6.Знайти у дампі пакетів обмін сертифікатами IPSec-тунелю.

7.Знайти назву організації для якої були згенеровані сертифікати.

6.Зміст протоколу

1.Назва роботи.

2.Мета роботи.

3.Виконане домашнє завдання.

4.Результати виконання лабораторного завдання.

5.Висновки.

Звіт лабораторної роботи повинен містити хід виконання роботи з коментарями за внесеними змінами.

7. Список посилань

1.Танненбаум Э. Компьютерные сети // Питер. – 2009. – 992 c.

2.Администрирование сети на основе Microsoft Windows 2000. Сертификационный экзамен № 70-216 // Microsoft Corporation Русская Редакция. –

2004. – 414 c.

162

Лабораторна робота № 7

Налаштування SSH -тунелю. Огляд можливостей

Мета роботи. Вивчення та налаштування SSH тунелю між ОС Linux та клієнтом на базі ОС Windows XP.

Ключові положення

1. SSH протокол

SSH – це протокол сеансового рівня. SSH-сервер прослуховує з'єднання на TCP-порту 22. Специфікація протоколу SSH-2 міститься в RFC 4251 [1] та інших [2-6]. Для автентифікації сервера в SSH використовується протокол автентифікації сторін на основі алгоритмів електронно-цифрових підписів (ЭЦП) RSA або DSA. Для автентифікації клієнта також може використовуватися ЭЦП RSA або DSA, але допускається також автентифікація за допомогою пароля (режим зворотної сумісності з Telnet) і навіть ip-адреса хоста (режим зворотної сумісності з rlogin). Автентифікація за паролем найбільш поширена; вона безпечна, оскільки пароль передається по зашифрованому віртуальному каналу. Автентифікація за ip-адресом небезпечна, цю можливість найчастіше відключають. Для створення загального секрету (сеансового ключа) використовується алгоритм Діффі-Хеллмана (DH). Для шифрування переданих даних використовується симетричне шифрування, алгоритми AES, Blowfish або 3DES. Цілісність переданих даних перевіряється за допомогою CRC32 в SSH1 або HMAC – SHA1/HMAC – MD5 в SSH2.Для стискування шифрованих даних можливо використовуватися алгоритм LempelZiv (LZ77), який забезпечує такий же рівень стискування, що і архіватор ZIP.

Довжина

Довжина поля

Дані

 

Поле вирівнювання

Код автентифікації пові-

пакета

вирівнювання

 

 

 

домлення

 

Можливо стискування

 

 

 

Можливо шифрування

 

 

Рисунок 1 – Формат пакетів SSH

Довжина пакета – 32 бітове значення довжини пакета.

Довжина поля вирівнювання – вказує довжину поля вирівнювання. Дані – дані для одержувача.

Поле вирівнювання містить байти з випадковим вмістом більше 4 байт для вирівнювання пакета.

Код автентифікації повідомлення вказує на використовуваний алгоритм автентифікації.

Кожен SSH пакет містить байт типу повідомлення. Нижче подані значення цього байта і закріплені специфікацією параметри.

163

Табл.1 Значення байту типу повідомлень пакету SSH

Значення

Назва

1-19

Загальні повідомлення транспортного протоколу

20-29

Узгодження алгоритмів

30-49

Обмін ключами

50-59

Загальні повідомлення протоколу автентифікації

60-79

Специфічні повідомлення протоколу автентифікації

80-89

Загальні повідомлення протоколу з'єднання

90-127

Управління логічними каналами

128-191

Резерв

192-255

Локальні розширення

Максимальна довжина SSH повідомлення - 32768 байт, а пакета - 35000

байт.

Програмних реалізацій SSH протоколу досить багато, частина з них і їх можливостей подано в порівняльній таблиці 2.

Табл. 2 Порівння програмних реалізацій SSH протоколу

Програма

Інтер-

SSH1

SSH2

Режими тунелювання

Мультиплек-

Kerberos

IPV6

SFTP/SCP

 

фейс

 

 

портів

socks

VPN

сування

 

 

 

 

 

 

 

 

проксі

 

сесій

 

 

 

CopSSH

Граф.

так

так

так

так

так

Ні

так

так

Так

Dropbear

Кому.

Ні

так

так

так

так

Ні

ні

так

Так

OpenSSH

Кому.

так

так

так

так

так

Так

так

так

Так

PenguiNet

Граф.

так

так

так

так

ні

Ні

ні

ні

Так

Private

Граф.

так

так

так

так

ні

Ні

ні

так

так

shell

 

 

 

 

 

 

 

 

 

 

PuTTY

Граф.

так

так

так

так

так

Ні

ні

так

так

Reflection

Граф.

так

так

так

так

так

так

так

так

так

of secure

 

 

 

 

 

 

 

 

 

 

IT

 

 

 

 

 

 

 

 

 

 

SSH

Граф.

так

так

так

так

так

так

так

ні

так

Tectia

 

 

 

 

 

 

 

 

 

 

Як видно з цієї таблиці, якнайповніше підтримує різні методи тунелювання - відкрита програмна реалізація OpenSSH і програми зроблені на її основі. У цій лабораторній роботі ми розглянемо програмну реалізацію PuTTY (для Windows), OpenSSH (для Linux) і побудуємо на основі їх SSH тунель.

2.Хід роботи

2.1.Налаштування SSH сервера під операційною системою Linux

Для виконання лабораторної роботи необхідна версія OpenSSH 5.0 або вище. Для перевірки версії можливо застосувати команду: ssh –v. У випадку відсутності данного пакета необхідно його встановити із репозитарія або з вихідних кодів.

Перевірити конфігураційний файл sshd_config у директорії /etc/ssh. В ньому необхідно перевірити наступні рядки, якщо іх не має, то дописати [7]:

Port 22 # слухаємо 22 порт

164

Protocol 2 # застосовуємо SSH2

Також перевірити у даній директорії находження файлів з публічним та приватним ключами: ssh_host_key.pub, ssh_host_rsa.key, ssh_host_rsa_key.pub.

Запустити сервіс, наприклад, командою: ./etc/rc.d/rc.sshd start. Якщо немає данного сервісу, то за домопогою, наприклад, слідуючої команди:

./usr/sbin/sshd.

2.2.Налаштування SSH -клієнта на основі відкритої програми PuTTY під операційною системою Windows

Для роботи тунелю потрібні пара ключів публічний і приватний. Публічний використовується сервером, а приватний повинен зберігатися на робочій машині.

У випадку якщо у вашій робочій директорії немає приватного ключа з розширенням .ppk, то створюємо його за допомогою утиліти puttygen, як показано на рис. 2.

Рисунок 2 Генерація приватного і публічного ключа

Зберігаємо приватний ключ в робочу директорію.

Запускаємо PuTTY, вибираємо нове з'єднання. У налаштуваннях з'єднання – Дані встановлюємо автоматичне ім'я користувача, під яким ми з'єднуватимемося. Це може бути або root або ін. користувач, вказаний викладачем.

165

Рисунок 3 Властивості даних

Вказуємо у властивостях SSH, що не запускатимемо shell - оболонку.

Рисунок 4 Властивості shell - оболонки

У властивостях авторизації необхідно вказати шлях і приватний ключ.

166

Рисунок 5 Шлях до приватного ключа

У властивостях сесії вказати потрібно ip-адресу сервера і порт.

Рисунок 6 Ім'я сервера і порт для з'єднання Тепер запускаємо з'єднання (Open) і наш SSH -тунель готовий.

167

2.3. Додаткове завдання, PPP поверх SSH

Часто буває необхідно настроїти більш гнучку маршрутизацію ніж дозволяє в класичному вигляді тунель SSH. Тоді на допомогу приходить можливість інкапсуляції одних протоколів в інші, звичайно, з обліком обов'язково довжини пакетів цього протоколу та узгодження разів довжини пакета для кожного виду інкапсуляції. Цей приклад демонструє гнучкість протоколів і можливість інкапсулювати PPP пакети в SSH тунель.

Схема з' єднання:

Сервер

 

Клиент

ppp0

ssh - тунель

ppp0

 

192.168.145.1

 

192.168.145.2

 

 

 

Рисунок 6 Схема з' єднання PPP поверх SSH

Конфігурації сервера.

Якщо немає пакета PPP версії 2.4.1 або вище, то треба встановити. Прописати логін і пароль в pap – secrets:

$ echo 'pppuser * 1pppuser *' >> /etc/ppp/pap - secrets/

Призначити IP-адресу і RSA-ключі у файлі pppuser/.ssh/authorized_keys (one line per key) no – port – forwarding, no – X11 – forwarding, no – agent – forwarding, command="/usr/sbin/pppd remotename pppuser refuse – chap refuse – mschap refuse – mschap – v2 refuse – eap require – pap 192.168.45.1:192.168.45.2 notty debug linkname pppoverssh" ssh – rsa AAAAB3NzaC1...

Не використовувати ніяких додаткових правил маршрутизації і правил файервола, наприклад, в директорії /etc/ppp/ip – up.d/*.

Конфігурація клієнта.

Якщо немає пакета ppp версії 2.4.1 або вище, то треба встановити. Створюємо нове з'єднання для ssh:

$ cat >/etc/ppp/peers/ssh <<EOF

pty 'ssh - e none pppuser@192.168.0.122 false' user pppuser

nodetach

linkname pppoverssh

# debug EOF

Прописати логін і пароль в pap – secrets:

$ echo 'pppuser * 1pppuser *' >> /etc/ppp/pap – secrets/

168

Настроюється /etc/ppp/ip – up.d/* якщо потрібно (наприклад, використовувати, як основний маршрут).

Якщо ви зробили усе правильно, то після запуску команди: $ /usr/sbin/pppd call ssh

Ви побачите наступне: Using interface ppp0 Connect: ppp0 <--> /dev/ttyp4 Remote message: Login ok

kernel does not support PPP filtering Deflate (15) compression enabled

Cannot determine ethernet address for proxy ARP local IP address 192.168.45.2

remote IP address 192.168.45.1

2.4. Додаткове завдання, автоматичний тунель за допомогою autossh

Буває необхідно автоматизувати процеси контролю та перепідключення ssh -тунелю. Одним з методів рішення є, наприклад, програма autossh написання Carson Harding. Вона вирішує проблеми:

запуску ssh -клієнта;

перевірки з'єднання через тестове закільцюванням двох портів;

проводить регулярно перевірки з'єднання та перезапуск ssh -клієнта у разі обриву з'єднання.

Наступний приклад робить з'єднання до IMAP -сервера - autossh перевіряє ssh -тунель кожні 15 секунд:

$ export AUTOSSH_GATETIME=30 $ export AUTOSSH_POLL=15

$ autossh - M 20000 - g - N - C - L143: localhost :143 192.168.0.122

Для частої установки тунелю можна визначити bash -аліас до ssh:

$ alias ssh=':& a=$! ; port=$(( $a%45536 +20000 )) AUTOSSH_GATETIME=30 AUTOSSH_POLL=15 autossh - M $port'

$ ssh - g - N - C - L143: localhost :143 192.168.0.122 [1] 6418

3. Ключові питання

1)Що таке SSH ?

2)Які методи авторизації можливі в SSH ?

3)Чи можливе шифрування даних в SSH і який метод шифрування застосувався у лабораторній роботі ?

4)Який порт за замовчуванням застосовує SSH, який ще можливо назначити ?

5)У чому відмінність протоколу SSH1 та SSH2 ?

6)Яка довжина ключів застосовувалася у даній роботі ?

169

4.Домашнє завдання

1.Вивчити типи формування SSH тунелю. Основні можливості SSH.

2.Визначити, які основні алгоритми авторизації та шифрування застосовуються у SSH протоколі.

3.З’ясувати, які основні програмні продукти будуть застосовуватися у лабораторній роботі.

4.Відповісти на ключові питання.

5.Лабораторне завдання

1.Наслідуючи хід роботи в лабораторній роботі та використовуючи довідкове керівництво [1], настроїти SSH тунель на стороні з ОС Linux та з бо-

ку клієнта з ОС Windows. (2.1, 2.2)

2.Включити Tcpdump або Wireshark - зняти трасування встановлення з'єднання та роз'єднання SSH тунелю.

3.Проаналізувати застосовані методи авторизації та шифрування.

4.Якщо є час та можливості - зробити додаткове завдання 2.3 та 2.4.

Варіанти завдань для виконання лабораторної роботи:

1.Замість користувача root зробити з’єднання SSH-тунелю за користувача student.

2.Запустити shell-оболонку у SSH-тунелі.

3.Застосувати компресію у SSH-тунелі.

4.Пропінгувати 192.168.0.122 та знайти ці icmp пакети у аналізаторі

Tcpdump або Wireshark.

5.Підкреслити пакети етапу авторизації SSH-тунелю у аналізаторі Tcpdump

або Wireshark.

6.Знайти у дампі пакетів роз'єднання SSH-тунелю.

7.Провести з’єднання SSH-тунелю за протоколом SSH1.

8.Виконати у SSH-тунелі віддалену команду (remote command) – ls.

6.Зміст протоколу

1.Назва роботи.

2.Мета роботи.

3.Виконане домашнє завдання.

4.Результати виконання лабораторного завдання.

5.Висновки.

Звіт повинен містити ключові положення з лабораторної роботи, хід роботи, дамп пакетів встановлення, роз'єднання, з'єднання та відповіді на ключові питання.

170