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

Топалов

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

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

Вивчення з’єднання LTP тунелю. Налаштування L2TP сервера на базі ОС Linux і клієнта на базі ОС Windows XP зі встановленням з'єднання

до сервера

Мета роботи. Вивчення та налаштування L2TP сервера на базі ОС Linux для встановлення з'єднання з клієнтами на базі ОС Windows XP.

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

1. Протокол передачі L2TP

L2TP (Layer Two Tunneling Protocol – протокол тунелювання другого рів-

ня) – це тунельний протокол на основі RFC – 2661, що є промисловим стандартом, підтримка якого уперше була реалізована в клієнтських і серверних операційних системах Windows 2000, але уперше з'явилася в сімействі устаткування Cisco і в операційних системах Unix, Linux. На відміну від PPTP, L2TP на серверах під управлінням Windows Server 2003 не використовує методу MPPE

(Microsoft Point - to - Point Encryption) для шифрування датаграм PPP. L2TP ви-

користовує засоби шифрування, що надаються методом IPSec (IP – безпека). Комбінацію L2TP і IPSec називають L2TP/IPSec [1]. Комбінація L2TP/IPSec забезпечує роботу служб VPN (virtual private network – віртуальна приватна мережа), виконуючу інкапсуляцію і шифрування приватних даних.

Інкапсуляція

Інкапсуляція пакетів L2TP/IPSec виконується в два етапи.

Інкапсуляція L2TP – кадр PPP (IP – датаграм або IPX – датаграм) поміщається в оболонку із заголовком L2TP і заголовком UDP.

Інкапсуляція IPSec – отримане L2TP – повідомлення поміщається в обо-

лонку із заголовком і трейлером IPSec ESP (Encapsulating Security Payload),

трейлером перевірки достовірності IPSec, що забезпечує цілісність повідомлення і перевірку достовірності, і заголовком IP. У заголовку IP – адреса джерела і приймача відповідають VPN – клієнту і VPN -серверу.

На поданому нижче малюнку показана інкапсуляція протоколами L2TP і IPSec кадру PPP.

191

 

 

 

 

РРР

Шифрований РРР з корисною інформацією

 

 

 

 

 

 

заголовок

(IP датаграми або IPX датаграми)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

UDР заго-

L2TР

РРР

Шифрований РРР з корисною інформацією

 

 

 

 

ловок

заголовок

заголовок

(IP датаграми або IPX датаграми)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IР заголо-

IРSec ESP

UDР заго-

L2TР

РРР

Шифрований РРР з корисною інформацією

IРSec ESP

IРSec Auth

вок

заголовок

ловок

заголовок

заголовок

(IP датаграми або IPX датаграми)

―хвіст‖

―хвіст‖

 

 

 

 

 

 

 

 

Шифрування з допомогою IPSec

Рисунок 1 – шифрування IPSec

Шифрування

Повідомлення L2TP шифрується з використанням стандарту DES (Data Encryption Standard — стандарт шифрування даних), 3DES за допомогою ключів шифрування, створених в процесі узгодження IKE (Internet Key Exchange – обмін ключами в Інтернеті) або інших стандартизованих алгоритмів шифрування.

Протокол L2TP і метод IPSec повинні підтримуватися як на VPN – клієнті, так і на VPN -сервері. Клієнтська підтримка L2TP вбудована в клієнт видаленого доступу Windows XP, а підтримка L2TP VPN – серверами – в операційні системи сімейства Windows Server 2003.

L2TP через UDP/IP

L2TP використовує зареєстрований UDP -порт 1701 (RFC1700). Увесь L2TP -пакет, включаючи поле даних і L2TP – заголовок, пересилається усередині UDP – дейтограми. Творець L2TP – тунелю вибирає доступний UDP – порт (який може бути або не бути 1701), і посилає пакет за потрібною адресою місця призначення з номером порту 1701. Одержувач вибирає вільний номер порту у своїй системі (який може бути або не бути 1701), і посилає відгук ініціаторові за його номером порту і адреси. Раз номера портів відправника і одержувача визначені, вони повинні залишатися незмінними впродовж усього життя тунелю.

Може відбуватися IP -фрагментація, оскільки L2TP – пакет подорожує через інтернет. Протокол L2TP не робить якихось спеціальних зусиль, щоб оптимізувати цей процес.

За замовчуванням для будь-яких реалізацій L2TP має бути активізоване контрольне підсумовування UDP як для керівних, так і інформаційних повідомлень. Реалізація L2TP може надати опцію, здатну блокувати контрольне підсумовування UDP – дейтограм для інформаційних повідомлень. Рекомендується, щоб контрольні суми UDP були завжди активовані для повідомлень, що управляють.

Порт 1701 використовується як пакетами L2F (RFC2341), так і L2TP. Поле версія в кожному із заголовків може використовуватися, щоб відрізнити пакети цих двох типів (L2F використовує значення 1, а версія L2TP, описана в

192

цьому документі, використовує 2). Реалізація L2TP, працююча в системі, яка не підтримує L2F, повинна відкидати усі L2F - пакети.

Для PPP - клієнтів, що використовують тунель L2TP -поверх-UDP/IP, PPP

– з’єднання має можливість міняти порядок або відкидати пакети. У першому випадку можуть порушуватися протоколи, відмінні від IP і PPP, що використовують для транспортування. У другому - можуть порушуватися протоколи, в яких передбачається по пакетний контроль помилок, такий як TCP із стискуванням заголовків. Контроль порядка можна здійснити, використовуючи номери інформаційних L2TP - повідомлень, якщо якийсь протокол, що транспортується через PPP -тунель, не здатний впоратися зі зміною порядка пакетів.

Мовчазне відкидання пакетів може виявитися проблематичним для деяких протоколів. Якщо в PPP дозволена надійна доставка (RFC1663), ніякий вище розташований протокол не може зіткнутися із втратою пакетів. Якщо в L2TP дозволена нумерація пакетів, L2TP може контролювати втрату пакетів. У разі LNS, PPP і L2TP стеки є присутніми в LNS, і втрата пакета може реєструватися, начебто пакет отриманий з невірною CRC. Коли клієнти LAC і PPP фізично різні, можлива аналогова сигналізація, що реалізовується шляхом посилки PPP - клієнту пакета з невірною контрольною сумою. Це сильно ускладнить відладку канальних програм клієнта, оскільки статистика клієнта не зможе відрізнити істинні помилки транспортного середовища від помилок, ініційованих LAC. Ця техніка не реалізовується на апаратному рівні.

Якщо використовується компресія заголовка Van Jacobson, і не дозволена ні надійна доставка в PPP, ні нумерація пакетів, кожен втрачений пакет призводитиме до вірогідності 2-16 того, що сегмент TCP буде переадресований з невірним вмістом (RFC1144). Там де вірогідність втрати велика, не слід використовувати стискування заголовків TCP - сегментів.

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

Безпека на віддаленій стороні тунелю

Сторони тунелю можуть опціонально виконувати процедуру автентифікації один одного при встановленні тунелю. Ця автентифікація має ті ж атрибути безпеки, що і CHAP, і має розумний захист проти атак відтворення і спотворення в процесі встановлення тунелю. Цей механізм не реалізує автентифікації при формуванні тунелю; оскільки досить просто для зловмисного користувача, який спостерігає обмін в тунелі, ввести свої пакети, коли автентифікація повністю завершена.

Для реалізації автентифікації LAC (L2TP Access Concentrator) і LNS (L2TP Network Server) повинні використовувати загальний секретний ключ. Кожна із сторін використовує один і той же ключ, коли виконує роль автентифікатора і автентифікованного. Оскільки використовується тільки один ключ, AVP (Attribute Value Pair) автентифікації тунелю несуть в собі різні значення полів в CHAP ID для обчислення дайджеста кожного повідомлення, щоб протистояти атакам відтворення.

193

Assigned Tunnel ID і Assigned Session ID мають бути вибрані непередба-

чуваним чином. Така методика перешкоджає діяльності хакерів, які не мають доступу до пакетів, якими обмінюються LAC і LNS.

Безпека пакетного рівня.

Забезпечення безпеки L2TP вимагає, щоб транспортне середовище могло забезпечити шифрування даних, цілісність повідомлень і автентифікацію послуг для усього L2TP - трафіка. Цей безпечний транспорт працює з пакетом L2TP в цілому і функціонально незалежний від PPP і протоколу, вкладеного в PPP. Як такий, L2TP відповідальний за конфіденційність, цілісність і автентифікацію L2TP - пакетів усередині тунелю (LAC і LNS).

Захищаючи потік L2TP - пакетів, оскільки це робить безпечний транспорт, ми захищаємо дані, що передаються PPP - тунелем від LAC до LNS. Такий захист не повинен розглядатися як заміна для безпеки точка-точка при передачі даних між ЕОМ або додатками.

L2TP і IPSec

При роботі поверх IP, IPSec (безпечний IP) надає безпеку на пакетному рівні за рахунок інкапсуляції зашифрованих даних ESP (Encapsulating Security Payload) або автентифікації заголовка AH (authentication header). Усі керівники і інформаційні пакети L2TP в конкретному тунелі виглядають для системи Ipsec, як звичайні інформаційні UDP/IP - пакети.

Окрім транспортної безпеки IP, IPSec визначає режим роботи, який дозволяє тунелювати IP - пакети. Шифрування і автентифікація на пакетному рівні, виконувані режимом тунелю IPSec і засоби L2TP, підтримані IPSec надають еквівалентні рівні безпеки.

IPSec визначає також засоби контролю доступу, які потрібні для додатків, підтримувальних IPSec. Ці засоби дозволяють фільтрувати пакети, на основі характеристик мережного та транспортного рівнів, таких як IP -адреса, порт, і так далі. У моделі L2TP - тунелю, аналогічна фільтрація виконується на PPP - уровні або мережевому рівні поверх L2TP. Ці засоби управління доступом на мережевому рівні можуть бути реалізовані в LNS за рахунок механізму авторизації, специфікованого виробником, або на мережевому рівні, використовуючи транспортний режим IPSec точка-точка між взаємодіючими ЕОМ.

2.Хід роботи

2.1.Налаштування L2TP сервера

У цій лабораторній роботі використовується L2TP сервер - l2tpd (l2tpd.sourceforge.net) [2].

1. Спочатку необхідно перевірити чи встановлений пакет l2tp : l2tpd - v.

Якщо не отримана відповідь (версія програми), то необхідно встановити пакет l2tp.

194

За нормальну роботу сервера відповідає декілька конфігураційних файлів, розпочнемо з конфігурації l2tpd демона.

Перейдіть в директорію /etc/l2tpd і скопіюйте оригінальний файл l2tpd.conf у файл з ім'ям l2tpd.conf.orig, відредагуйте його як показано нижче

[global] #глобальна конфігурація port = 1701 #порт сервера

auth file = /etc/l2tpd/l2tp - secrets # файл авторизації типу хост <->

хост

access control = no # обмеження на доступ тільки з певних хостів rand source = dev

[lns hostname] # ім'я нашого сервера, використовується просте

#ім'я вашого хоста

exclusive = no # при параметрі yes дозволено використовувати

один тунель з одного хоста.

ip range = 192.168.1.200-192.168.1.230 #пул адрес, видаваних кліє-

нтам

lac = 192.168.1.150 - 192.168.1.180 #тут пишемо, яким адресам можна використовувати наш сервер

hidden bit = no

local ip = 192.168.0.122 #внутрішнія ip адреса нашого сервера length bit = yes

require chap = yes #вимагати авторизацію CHAP refuse pap = yes #вимагати авторизацію PAP refuse authentication = no

require authentication = no# цей параметр вказує, чи включена

# авторизація типу хост <-> хост

name = hostname # тут пишіть ім'я вашого хоста ppp debug = yes # для відладки на перших порах pppoptfile = /etc/ppp/options.l2tpd # опції для pppd flow bit = yes

Далі відредагуємо файл опцій для pppd, він у нас лежить тут:

/etc/ppp/options.l2tpd

mtu 1410 # максимальне значення довжини пакета передавання mru 1410 # максимальне значення довжини пакета на прийомі lcp-echo-interval 3

lcp-echo-failure 8 nodeflate noproxyarp

lock

І нарешті впишемо логін і пароль для одного з клієнтів у файл

/etc/ppp/chap-secrets

# Username server password ip - address

195

s111 * 123 *

На цьому налаштування сервера закінчене, перезапустіть демона /etc/init.d/l2tpd restart або зупиніть процес l2tpd і запустите сервер l2tpd. Переходимо до налаштування клієнта.

2.2. L2TP клієнт для Windows XP/2003 (вбудований в ОС)

Рисунок 2 – Створення підключення клієнта L2TP в ОС Windows XP/2003

Для того, щоб з ОС Windows можливо було підключатися до сервера LTP в ній має бути присутнім Microsoft VPN Adapter. Розглянемо приклад підключення OC Windows XP, в ній цей драйвер встановлений за замовчуванням. Для створення VPN підключення необхідно виконати наступні кроки:

1.Пуск->Панель управління->Мережні підключення->Створення нового підключення.

2.Буде запущений майстер створення підключення.

3.На другому кроці вибрати «Підключити до мережі на робочому місці».

4.На наступному кроці «Підключення до віртуальної приватної мережі».

5.Далі вказати назву підключення «ltp».

6.Далі «Не набирати номер для попереднього підключення».

7.Далі вказати IP адреси запущеного LTP сервера (192.168.0.122).

8.Готово.

Уналаштуваннях можливо замість автоматичного детектування типу

VPN вказати вручну – L2TP IPSec VPN.

2.3. Налаштування L2TP - клієнта для Linux

Додаткове завдання.

196

L2TP клієнт запускається за допомогою пакета xl2tpd. Спочатку необхідно перевірити, чи встановлений пакет xl2tp :

xl2tpd -v.

Якщо не отримана відповідь (версія програми), то необхідно встановити пакет xl2tp.

1.$ sudo apt - get install xl2tpd

2.Редагуємо файл /etc/xl2tpd/xl2tpd.conf: $ sudo gedit /etc/xl2tpd/xl2tpd.conf

Необхідно прописати в нього наступні параметри, якщо відсутні:

[global]

access control = yes [lac ]

lns = 192.168.0.122 redial = yes

redial timeout = 1 require chap = yes

require authentication = no name =<s111>

ppp debug = yes

pppoptfile = /etc/ppp/options.xl2tpd require pap = no

autodial = yes

де <s111> - ваше ім'я користувача в chap-secrets.

3.Редагуємо /etc/ppp/options.xl2tpd:

$ sudo gedit /etc/ppp/options.xl2tpd

Прописуємо в нього: unit 0

name <s111> remotename l2tp ipparam 192.168.0.122 connect /bin/true

mru 1460 mtu 1460 nodeflate nobsdcomp persist maxfail 0 nopcomp noaccomp defaultroute

replacedefaultroute

4.У /etc/ppp/chap-secrets додаємо рядок (якщо його ще там немає): s111 * 123 *

5.Вносимо зміни в /etc/init.d/xl2tpd:

197

$ sudo gedit /etc/init.d/xl2tpd

Необхідно поміняти секцію start таким чином: start)

if !([ - f /var/run/xl2tpd/l2tp - control ]) ; then mkdir - p /var/run/xl2tpd

touch /var/run/xl2tpd/l2tp - control

fi

echo - n "Starting $DESC : "

start - stop - daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON -- $DAEMON_OPTS

echo "$NAME".

2.4. Захоплення пакетів з допомогою Tcpdump

Простий приклад запуску Tcpdump c перенаправленням даних у файл lab10.txt:

tcpdump - i eth0 - n - nn - ttt > lab10.txt

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

1)Що таке IPSec ESP і для чого застосовується ?

2)Які протоколи шифрування даних можливі в l2tp і в pptp?

3)У чому відмінність шифрування в l2tp та pptp?

4)Що означає параметр lns = 192.168.0.122 в налаштуваннях в l2tp?

5)Що означає параметр ppp debug = yes?

6)Для чого застосовується заголовок AH у IPSec ?

7)Що таке mtu та mru ?

8)Якщо mtu та mru будуть мати значення 1512 бітів, що трапиться ?

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

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

L2TP.

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

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

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

198

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

1.Слідуючи інструкції в документації, і використовуючи довідкове керівництво [1], настроїти L2TP сервер.

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

L2TP.

3.Підключитися до L2TP сервера на ОС Linux з ОС Windows, перевірити з'єднання і відключитися.

4.Додаткове завдання - підключитися до сервера на ОС Linux з комп'ютера з ОС Linux.

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

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

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

або Wireshark.

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

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

або Wireshark.

5.Замість CHAP авторизації застосувати PAP.

6.Якщо у вас CHAP ver. 2 застосувати CHAP ver. 1.

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

Wireshark.

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

або Wireshark.

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

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

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

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

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

5.Висновки.

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

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

1.Фортенбери Т. Проектирование виртуальных частных сетей в среде Windows

2000 // Вильямс. – 2002. – 320 с.

2.http://www.xelerance.com/software/xl2tpd/

199

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

Вивчення з’єднання за транспортного режиму IPSec тунелю. Налаштування сервера OpenVPN з операційною системою Linux.

Організація з’єднання OpenVPN сервера за операційною системою Linux з клієнтом на базі операційній системі Windows

Мета роботи. Навчитися настроювати сервер OpenVPN для шифрованого з'єднання з клієнтами на базі операційній системі Windows.

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

1. OpenVPN

OpenVPN – це система, що дозволяє створювати шифровані тунелі між комп'ютерами за технологією VPN (Virtual Private Network, віртуальна приватна мережа) [1].

Основні плюси цієї системи :

просте налаштування займає менше години і не вимагає спеціальних

знань;

економія трафіка за допомогою бібліотеки компресії lzo (Lempel - Ziv - Oberhumer);

безпечне шифрування трафіка ключами завдовжки 1024 біта і вище, а клієнти розділені між собою в окремі підмережі.

Для забезпечення безпеки каналу, що управляє, і потоку даних, OpenVPN використовує бібліотеку OpenSSL. Завдяки цьому задіюється увесь набір шифрів, доступних в цій бібліотеці. Також може використовуватися пакетна авторизація HMAC, для забезпечення більшої безпеки, і апаратне прискорення для поліпшення продуктивності шифрування. Ця бібліотека використовує OpenSSL з протоколами SSLv3/TLSv1. OpenVPN можливо використовувати на базі опера-

ційних системах Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, Apple Mac OS X, QNX, Microsoft Windows та декількіх інших.

OpenSSL – криптографічний пакет з відкритим початковим кодом для ро-

боти з SSL/TLS. Дозволяє створювати ключі RSA (Rivest, Shamir і Adleman), DH, DSA (Digital Signature Algorithm) і сертифікати X.509, підписувати їх, фор-

мувати CSR і CRT. Також є можливість шифрування даних і тестування

SSL/TLS з'єднань.

RSA (буквена абревіатура від прізвищ Rivest, Shamir і Adleman) – криптографічний алгоритм з відкритим ключем.

RSA став першим алгоритмом такого типу, придатним і для шифрування,

ідля цифрового підпису. Алгоритм використовується у великому числі криптографічних застосувань.

На 2009 рік система шифрування на основі RSA вважається надійною, починаючи з розміру в 1024 біта.

200