Топалов
.pdf–IP-Заголовки в Ethernet середовищі ігноруються. Тобто користувач може призначити IP-адресу своїй мережній карті, але це не приведе до «обвалу» мережі (теоретично, при роботі з мережним концентратором не повинно відбутися «обвалу» і при зміні користувачем MAC-Адреси навіть на адресу сервера, а при роботі з мережним комутатором все залежить від конструкції комутатора).
–Кожне з'єднання відділене від інших (працює у своєму каналі).
–Настроювання ( IP-адреси, адреси шлюза, адреси DNS серверів) можуть передаватися сервером.
–PPP з'єднання легко автентифікується й обраховується (наприклад, за допомогою RADIUS).
–PPP з'єднання можна шифрувати. Наприклад, при роботі з мережним концентратором (коли на кожній мережній карті можна побачити весь Ethernet-Трафік) прочитати чужий IP-Трафік досить важко.
3.3.Тунельний протокол типу точка-точка PPTP (Point-to-point tunneling protocol)
PPTP (англ. Point-to-point tunneling protocol) – тунельний протокол типу точка-точка, який дозволяє комп'ютеру встановлювати захисне з’єднання з сервером за рахунок створення спеціального тунелю в стандартній, незахищеній мережі. PPTP розташовує (інкапсулює) кадри PPP в IP-пакети для передачі по глобальній IP-мережі, наприклад, Інтернет. PPTP може також використовуватися для організації тунелю між двома локальними мережами. РРТР використовує додаткове TCP-з'єднання для обслуговування тунелю.
Специфікація протоколу була опублікована як «інформаційна» RFC 2637 в 1999 року. Вона не була ратифікована IETF. Протокол вважається менш безпечним, ніж IPSec. PPTP працює, установлюючи звичайну PPP сесію із протилежною стороною за допомогою протоколу Generic Routing Encapsulation. Друге з'єднання на TCPпорту 1723 використовується для ініціації й керування GRE-з'єднанням. PPTP складно перенаправляти за мережний екран, тому що він вимагає одночасного встановлення двох мережних сесій.
PPTP-трафік може бути зашифрований за допомогою MPPE. Для автентифікації клієнтів можуть використовуватися різні механізми, найбільш безпе-
чні з них – MS-CHAPv2 і EAP-TLS.
Інкапсуляція
Кадр PPP (IP-, IPXабо Appletalk-датаграма) поміщається в оболочку із заголовком GRE (Generic Routing Encapsulation) і заголовком IP. У заголовку
IP-адреси джерела й приймача відповідають VPN-клієнтові й VPN-серверу. На рисунку 3.13 показана інкапсуляція протоколом PPTP кадру PPP.
51
|
|
|
|
|
РРР фрейм |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
PPP заголовок |
Зашифровані РРР дані (ІР датаграма) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IP заголовок |
GRE заголовок |
PPP заголовок |
Зашифровані РРР дані (ІР датаграма) |
||||
|
|
|
|
|
|
|
|
Рисунок 3.13 – Реалізація PPTP
Cisco першою реалізувала PPTP і пізніше ліцензувала цю технологію ко-
рпорації Microsoft.
PPTP вдалося домогтися популярності завдяки тому, що це перший протокол тунелювання, був підтриманий корпорацією Microsoft. Всі версії Microsoft Windows, починаючи з Windows 95 OSR2, включають у свій склад PPTP-клієнт, проте, існує обмеження на два одночасно вихідних з'єднання. А сервіс вилученого доступа для Microsoft Windows містить у собі PPTP сервер.
Донедавна в Linuxдистрибутивах була відсутня повна підтримка PPTP через побоювання патентних претензій із приводу протоколу MPPE. Уперше повна підтримка MPPE з'явилася в Linux 2.6.13. Офіційно підтримка PPTP була почата з версії ядра Linux 2.6.14. Проте, сам факт застосування MPPE в PPTP фактично не забезпечує безпеку протоколу PPTP.
Операційна система FreeBSD підтримує PPTP протокол, використовуючи як сервер PPTP порт mpd (/usr/ports/net/mpd), використовуючи підсистему netgraph. В ролі клієнта PPTP у системі FreeBSD може виступати або порт pptpclient (/usr/ports/net/pptpclient), або порт mpd, що працює в режимі клієнта.
Mac OS X поставляється із вбудованим PPTP клієнтом. Cisco і Efficient Networks продають реалізації PPTP клієнта для більш старих версій Mac OS. КПК Palm, що мають підтримку Wi-Fi, поставляються з PPTP клієнтом Mergic.
MicrosoftWindowsMobile 2003 і більш нові також підтримують PPTP. Протокол PPTP не можна вважати прийнятним, з погляду інформаційної
безпеки, як мінімум, без вживання додаткових заходів по забезпеченню інформаційної безпеки каналів зв'язку, або без застосування додаткових засобів захисту інформації (наприклад – додаткового шифрування). PPTP не слід застосовувати в загальнодоступних мережах (Інтернет, власні(домашні) мережі) для забезпечення конфіденційності й-або збереження комерційної таємниці (і особливо – для збереження державної таємниці).
3.4.Протокол тунелювання другого рівня L2TP (Layer Two Tunneling Protocol)
L2TP (Layer Two Tunneling Protocol – протокол тунелювання другого рів-
ня) – це тунельний протокол, затверджений RFC, підтримка якого вперше була реалізована в клієнтській і серверній операційній системах Windows 2000. На відміну від PPTP, L2TP на серверах під керуванням Windows Server 2003 не ви-
користовує методу MPPE (Microsoft Point-to-Point Encryption) для шифрування
52
датаграм PPP. L2TP використовує засоби шифрування, які надаються методом IPSec (IP-Безпека). Комбінацію L2TP і IPSec називають L2TP/IPSec. Комбінація
L2TP/IPSec забезпечує роботу служб VPN (virtual private network – віртуальна приватна мережа), що виконують інкапсуляцію й шифрування частин даних.
Протокол L2TP і метод IPSec повинні підтримуватися як на VPN-Клієнті, так і на VPN-Сервері. Клієнтська підтримка L2TP убудована в клієнт вилученого доступу Windows XP;, а підтримка L2TP VPN-Серверами – в операційні системи сімейства Windows Server 2003.
Протокол L2TP установлюється разом із протоколом TCP/IP. Залежно від параметрів, обраних у майстрі настроювання сервера маршрутизації й вилученого доступу, протокол L2TP настроюється для 5 або 128 портів L2TP. Додаткові відомості див. у розділі Контрольний список для установки й настройки L2TP-сервера.
Додаткові відомості про IPSec див. у розділі «Загальні відомості про безпеку протокола IP».
Інкапсуляція пакетів L2TP/IPSec виконується у два етапи.
1.Інкапсуляція L2TP.
Кадр PPP ( IP-Датаграма або IPX-датаграма) полягає в оболонку із заголовком L2TP і заголовком UDP.
2.Інкапсуляція IPSec.
Потім отримане L2TP-Повідомлення полягає в оболонку із заголовком і трейлером IPSec ESP (Encapsulating Security Payload), трейлером перевірки дій-
сності IPSec, що забезпечує цілісність повідомлення й перевірку дійсності, і заголовком IP. У заголовку IP-адреси джерела й приймача відповідають VPNКлієнтові й VPN-серверу.
На поданому нижче малюнку показана інкапсуляція протоколами L2TP і IPSec кадри PPP.
Шифрування.
Повідомлення L2TP шифрується з використанням стандарту DES (Data Encryption Standard – стандарт шифрування даних) або 3DES при допомозі ключів шифрування, створених у процесі узгодження IKE (Internet Key Exchange – обмін ключами в Інтернеті).
Додаткові відомості про розгортання VPN-Підключень L2TP/IPSec див. у розділі «Розгортання віртуальних приватних мереж». Контрольні списки для настроювання див. у розділі «Контрольні списки для VPN». Приклад впровадження VPN-Підключень L2TP/IPSec див. у розділі «Приклади реалізації віртуальної приватної мережі». Відомості про настроювання VPN-Підключень L2TP/IPSec у тестовій лабораторії див. у розділі «Тестова лабораторія для віртуальної приватної мережі».
Примітки
Можна також використовувати нешифроване L2TP-Підключення, при якому кадри PPP пересилаються у відкритому вигляді. Проте, для віртуальних
53
приватних підключень по Інтернету застосовувати нешифровані L2 TPПідключення не рекомендується, тому що вони не забезпечують конфіденційності даних.
Протокол IPX/SPX недоступний в Windows XP 64-bit Edition (Itanium) і
64-розрядних версіях сімейства продуктів Windows Server 2003.
В Windows Server 2003 Web Edition і Windows Server 2003 Standard Edition можна створити до 1000 портів PPTP і до 1000 портів L2TP. Проте, Windows Server 2003 Web Edition може одноразово прийняти тільки одне підключення через віртуальну приватну мережу. Windows Server 2003 Standard Edition може прийняти до 1000 підключень VPN одночасно. Після підключення 1000 клієнтів VPN подальші запити на підключення відхиляються доти, поки число підключень не стане менше 1000.
54
Розділ 4 КОРОТКИЙ ОГЛЯД ОСНОВНИХ КОМАНД ОПЕРАЦІЙНИХ СИСТЕМ
LINUX ТА UNIX
4.1. Виконання команд в операційних системах Unix і Linux
Первинна робота в сеансі операційних системах Unix/Linux ведеться в режимі командного рядка. Стандартним запрошенням користувача в системах Unix і Linux є символ '$', для адміністратора (root) - '#' [1]. Як правило, команда має вигляд:
ім'я_команди [опції]... [параметри]...
Тут і далі при описі команд квадратні дужки означають необов'язковий елемент, багатокрапка означає, що елементів цього типу може бути декілька.
Опції команд є параметрами прапорів. У Linux, як правило, прапори мають дві форми – коротку і довгу. Коротка форма упереджається символом - і кодується однією буквою. Довга форма упереджається двома символами -- і кодується цілим словом або навіть фразою.
Усі команди Linux мають наступні стандартні опції: --help – виведення підказки цією командою;
--version – висновок інформації про версію цієї команди.
Не забувайте, що командна мова Unix/Linux чутлива до регістра!
4.2. Отримання підказки для виконання команд
Стандартним засобом отримання підказки в Unix є команда man. Параметром команди man є ім'я команди, за якою ви хочете отримати підказку. При введенні команди man на екран виводиться текст – опис заданої команди. Ви можете переміщатися по цьому опису вгору-вниз, використовуючи клавіші управління курсором і клавіші PageUp і PageDown. Для виходу з режиму команди man введіть символ '!' (знак оклику).
Зверніть увагу на те, що у більшості описів опції команд даються у версії
POSIX (Portable Operating System Interface for Unix) і у версії GNU (General Public License). POSIX є стандартом для ОС Unix, для ОС Linux версія GNU,
але також підтримується і версія POSIX.
Альтернативним засобом отримання підказки в Linux є команда info. Параметром команди info також є ім'я команди, що цікавить вас. При введенні команди info без параметрів виводиться список розділів, які можна проглянути за допомогою команди info. Перегляд інформації в info виконується точно так, як і
вman, крім того, info забезпечує елементи гіпертекстового режиму.
Атакож, як було зазначено вище, за допомогою опції --help: ім'я команди --help
55
4.3. Складені команди
Складена команда складається з простих команд, сполучених у вигляді конвеєра або списку.
Конвеєр складається з декількох команд, розділених знаками |. Для виконання конвеєра командний рядок (shell – ―шел‖) запускає одночасно працюючі процеси для кожної команди, при цьому стандартне виведення кожної команди перенаправляється на стандартне введення наступної. Код завершення конвеєра виробляється тільки після завершення усіх процесів, і він дорівнює коду завершення останньої по порядку команди конвеєра. Якщо на початку конвеєра записаний знак !, код завершення інвертується (0 замінюється на 1, інші значення замінюються на 0).
Далі скорочено під словом «команда» розумітимемо просту команду або конвеєр. Перед командою може стояти ключове слово time - p. В цьому випадку після виконання команди система видає на стандартне виведення помилок дані про витрачений час: повний час real (по годиннику, від запуску до завершення), процесорний час в звичайному режимі (user) і в системному режимі (system). Якщо ключ - p не вказаний, дані видаються в складнішому форматі, що настроюється.
Список складається з декількох команд, розділених знаками ;, &, && чи ||. У кінці списку може стояти необов'язковий знак ;, & чи кінець рядка. Якщо дві команди розділено знаком ;, то вони виконуються послідовно: наступна команда запускається тільки після завершення попередньої. Код завершення списку команд дорівнюватиме коду завершення останньої команди. Якщо команди в списку розділені знаком &&, то наступна виконуватиметься тільки у тому випадку, якщо код завершення попередньою дорівнює 0 (нормальне завершення). Навпаки, знак || означає, що наступна команда виконуватиметься тільки у тому випадку, якщо код завершення попередньою не дорівнює 0 (завершення з помилкою).
При розборі командного рядка пріоритет операцій && і || вище, ніж у & і ;, а пріоритет & вищий, ніж ;.
Для зміни порядку обробки можна брати частину списку команд в дужки. Можна використовувати два види дужок :
–Круглі дужки: (команди). Для виконання команд запускається окремий екземпляр командного рядка, працюючий з окремим набором змінних середовища. Це призводить до того, що усі зміни значень змінних, зроблені при виконанні списку команд в дужках, втрачаються після його завершення.
–Фігурні дужки: { команди;}. В цьому випадку список команд виконується поточним командним рядком. Наявність дужок впливає тільки на порядок обробки роздільників |, ;, &, && та ін. Пропуск після відкриваючої фігурної дужки і ; перед закриваючою дужкою обов'язкові для уникнення синтаксичної неоднозначності.
56
4.4. Інформаційні команди
Видає повне ім'я поточного каталога. ls [ключі] параметри.
Для кожного параметра-каталога видає інформацію про файли цього каталога. Для параметра-файла видає інформацію про цей файл. Якщо параметрів немає, видає інформацію про поточний каталог.
Ключі визначають об'єм і формат видаваної інформації. Без ключів видаються тільки імена файлів в алфавітному порядку, розділені пропусками. Нижче перераховані деякі ключі.
-l Детальний формат, по одному файлу в рядку. Вказуються: тип файла, права доступу для власника, групи-власника та інших користувачів, кількість жорстких зв'язків, власник, група-власник, розмір у байтах, дата і час останньої зміни, ім'я.
-a Включаються дані про елементи каталога. і .
-i Включається номер індексного дескриптора (inode).
-d Для каталогу виводяться дані про сам каталог, а не про його вміст. -t Сортування за часом останньої зміни файла.
-u Сортування за часом останнього звернення до файла. -c Сортування за часом створення файла.
-r Зворотний порядок сортування
who.
Виводить список користувачів, працюючих в даний момент в системі (в межах домена локальної мережі). Для кожного користувача виводиться один рядок, що включає його ім'я входу, ім'я терміналу, час входу в систему і ім'я комп'ю- тера.
За традицією у більшості версій UNIX команда з двома параметрами who am I («Хто я такий»?) викликає видачу даних тільки про цього користувача. У деяких версіях, у тому числі Linux, замість цього використовується окрема команда без параметрів whoami.
history [- c] [число].
Видає «список історії», що містить останні введені команди (за умовчанням - до 500 рядків). З ключем - c очищає список історії. З аргументом - позитивним числом N видає тільки останні N рядків історії.
hostname [ключі].
Видає на стандартний вивід ім'я цього комп'ютера. Щоб отримати повне ім'я у інтернеті (Fully Qualified Domain Name), потрібно вказати ключ --fqdn.
times.
57
Видає сумарний процесорний час, витрачений в режимі ядра і в режимі завдання даним командним рядком і усіма процесами, що запускалися з командного рядка.
ps [ключі].
Видає інформацію про процеси, що виконуються в системі. За умовчанням видає інформацію тільки про процеси, запущені з цього терміналу, причому для кожного процесу видаються 4 поля даних : ідентифікатор процесу (Process Identifier, PID), ім'я термінала (TeleTYpe, TTY) , витрачений процесорний час (TIME), ім'я виконуваної команди (CMD). Якщо процес не прикріплений ні до якого термінала, замість імені термінала видається знак ?.
При виклику з ключем - f додатково видаються ідентифікатор користувача
(Unique Identification Number, UID), ідентифікатор процесу-батька (Parent Process Identifier, PPID), пріоритет (C), час запуску (STIME), а для виконуваної команди вказуються повне ім'я і параметри. При використанні ключа - e перераховуються усі процеси, у тому числі запущені системою або іншими користувачами. Є ще дуже багато ключів, які дозволяють змінити об'єм і формат видаваної інформації про процеси.
uname [ключі].
Виводить рядок інформації про систему, згідно з наступними ключами: -s Ім'я операційної системи
-n Мережне ім'я комп'ютера -v Версія операційної системи
-r Номер випуску (release) операційної системи -m Тип комп'ютера
-a Уся перелічена вище інформація
Відсутність ключів еквівалентна завданню ключа - s.
date [ключі] [нова_дата].
Видає системну дату і час або встановлює нову дату і час. Ключі дозволяють змінити формат видачі. Нова дата і час задаються у форматі: ММДДЧЧмм[[СС]ГГ][.сс] (місяць, день, години, хвилини, століття, рік, секунди).
cal [ключі] [місяць [рік]].
Видає табель-календар на вказаний місяць. З ключем - y видає календар на увесь рік. При заданому ключі - m першим днем тижня вважається понеділок (за умовчанням тиждень розпочинається з неділі).
du [ключі] [список_імен].
Видає сумарні дані про використання дискового простору файлами, які містяться у вказаних каталогах і їх підкаталогах. Деякі ключі подані в наступній таблиці:
58
-a Видає дані не лише про каталоги, але і про кожен файл
-b Видає об'єм дискової пам'яті у байтах (за замовчуванням видається число блоків)
-c Формує загальну суму
-S Не включає в розмір каталогу розміри його підкаталогів
-s Для кожного параметра-каталога видається тільки загальна сума, без підкаталогів
stat [список_імен].
Видає інформацію про файл, що міститься в дескрипторі файла (inode). Формат видачі орієнтований швидше на сприйняття людиною, чим на подальшу обробку (інформація видається в декілька рядків, з назвами полів).
finger [ключі] [список_імен].
Видає доступну інформацію про перерахованих в списку користувачів системи. Якщо список не заданий, видає інформацію про усіх користувачів, працюючих в системі в даний момент.
Якщо заданий ключ - s, видає мінімальний набір інформації в одному рядку. Ключ - l задає детальний багаторядковий формат інформації. Якщо ключі не задані, то при заданому списку імен використовується формат - l, а якщо список не заданий, то формат - s.
4.5. Команди для роботи з файловою системою
Команди огляду калога, зміни каталога та огляд поточного каталога: ls, cd і pwd. Команда 'ls - la' виведе вам інформацію про вміст поточного каталога. Команда 'cd .' переведе вас у батьківський каталог. Команда 'cd ім'я_підкаталога' переведе вас у вказаний підкаталог поточного каталога. Команда 'pwd' покаже Вам, який каталог є поточним. Якщо ви "заблукаєте", подорожуючи каталогами, команда 'cd' (без параметрів) поверне вас у ваш домашній каталог. Не забувайте, що в Unix/Linux символ "слэш" – роздільник імен каталогів нахилений управо: '/'!
cd [шлях] чи chdir [шлях].
Вбудована команда. Встановлює каталог вказаним шляхом в якості поточного. Якщо шлях не вказаний, використовує «домашній» каталог користувача, повне ім'я якого зберігається в змінній HOME.
cp файл1 файл2 або cp файли каталог.
У першій формі – копіює параметр файл1 у файл2. У другій формі – копіює один або декілька файлів у вказаний каталог.
ln [- s] нове_ім'я файл.
59
Без ключа – створює жорсткий зв'язок з файлом, тобто дає існуючому файлу додаткове ім'я, в тому ж або в іншому каталозі. Ім'я може містити шлях до каталога. Лічильник зв'язків файла збільшується на 1. З ключем - s створює символічний зв'язок, тобто новий файл, що містить повне ім'я існуючого файла (аналог ярлика Windows). Лічильник зв'язків файла при цьому не збільшується.
mv файл1 файл2 або mv список_файлів каталог.
У першій формі – перейменовує файл1 у файл2 (чи переміщає в інший каталог). У другій формі – переміщає один або декілька файлів у вказаний каталог.
rename старе_ім'я нове_ім'я. Перейменовує файл або каталог.
rm [ключі] файли.
Видаляє вказані файли, точніше – видаляє з каталогів імена і зменшує на 1 лічильники зв'язків файлів. Дійсному видаленню підлягають тільки файли, для яких число зв'язків стало рівним 0 (тобто видалені усі імена файла).
Ключ - r дозволяє видаляти цілі каталоги разом з їх вмістом. Ключ – i вимагає від системи ставити для кожного файла питання про необхідність його видалення.
mkdir список_каталогів.
Створює один або декілька порожніх каталогів із заданими іменами. Кожен порожній каталог містить, проте, два імені: ім'я . описує сам каталог, а ім'я . описує батьківський каталог.
chmod права списку файлів або файла.
Дозволяє змінити права доступу до заданих файлів (чи каталогів).
Змінювані права можуть бути задані двома способами: або в символьному вигляді, або за допомогою трьох вісімкових цифр. Символьне завдання прав складається з трьох елементів: категорія користувачів, для якої задаються права (u - власник файла, g - група-власник, o - інші користувачі, a - усі користувачі), виконувана операція (+ - додати право, - - відмінити право, = - присвоїти тільки це право, відмінивши інші права) і конкретне право (r - читання, w - запис, x - виконання). Можна вказати декілька категорій користувачів і декілька операцій з різними правами для однієї категорії. Можна також в одній команді задати різні права для різних категорій користувачів, розділивши їх комами. Наприклад, запис ug+r - w, o=x означає: «Для власника і групи дозволити читання і заборонити запис (право на виконання не міняти), для інших користувачів дозволити виконання, заборонити читання і запис».
Другий спосіб завдання прав припускає явне завдання усіх прав у вигляді вісімкового числа з трьох цифр. Перша цифра задає три біти прав для власника, друга цифра - для групи, третя - для інших. Наприклад, число 751 означає набір прав, який команда ls, - l відобразила б у вигляді rwxr - x--x, тобто усі права для власника, читання і виконання для групи, тільки виконання для інших.
60
