Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PR6(SSH).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
363.52 Кб
Скачать

Міністерство транспорту та зв’язку України Львівський коледж Державного університету інформаційно-комунікаційних технологій

Навчальна дисципліна: Мережні операційні системи

Лабораторія: Інформаційних мереж зв'язку

Спеціальність 5.05090308 “Монтаж, обслуговування та експлуатація апаратних засобів інформатизації”

Розглянуто

Затверджую

Заступник директора з НВР

__________ Я.М. Плешівський

“_____” ___________ 20__ р.

на засіданні циклової комісії

професійної підготовки

Протокол № __ від _______ 20__ р.

Голова циклової комісії __________

Інструкція

до практичної роботи № 6.

"Здійснення

віддаленого доступу по протоколу SSH

"

Склали викладачі

__________ Р.Т. Мамедов

Львів 2009

1 Мета роботи Навчитись організовувати віддалене керування вузлом мережі за

допомогою OPENSSH

2 Теоретичні відомості

Що таке SSH

SSH (Secure Shell — захищена оболонка) — це протокол, що забезпечує захищену передачу даних. SSH використовує криптографію відкритого ключа для шифрування з'єднання між двома машинами, а також для пізнання (аутентифікації) користувачів. Протокол SSH можна використовувати для безпечної реєстрації на віддаленому сервері або копіювання даних між двома вузлами.

Протокол SSH| підтримує наступні|слідуючі| алгоритми шифрування:

  1. BlowFish — 64-розрядна схема шифрування. Цей алгоритм часто використовується для високошвидкісного шифрування даних великих об'ємів.

  2. Потрійний DES (Data Encryption Standard) — досить старий стандарт шифрування даних, який у наш час рекомендується використовувати тільки для не секретних даних.

              1. IDEA (International Data Encryption Algorithm) — міжнародний алгоритм шифрування інформації. Цей алгоритм працює з 128-розрядним

              2. ключем і тому він захищеніший, ніж BlowFish і DES.

  3. RSA (Rivest-Shamir-Adelman algorithm) — алгоритм Рівеста-Шаміра- Адельмана. Є схемою шифрування з відкритим і секретним ключами.

На даний момент існує дві версії протоколу SSH:

Протокол SSH версія 1. У кожного вузла є свій RSA-ключ (зазвичай 1024 битий), який використовується для ідентифікації вузла. Цей ключ ще називається відкритим. Додатково, при запуску демона, генерується ще один RSA-ключ — ключ сервера (зазвичай 768 битий). Цей ключ створюється наново кожну годину і ніколи не зберігається на диску. Кожного разу при встановленні з'єднання з клієнтом демон відправляє йому у відповідь свій відкритий ключ і ключ сервера. Клієнт порівнює отриманий відкритий ключ зі своєю базою даних, щоб перевірити, чи не змінився він. Потім клієнт випадковим чином генерує 256-розрядне число і кодує його, використовуючи одночасно два ключі — відкритий ключ і ключ сервера. Обидві сторони використовують цей випадковий номер як ключ сесії, який використовується для кодування всіх передаваних під час сесії даних. Потім клієнт намагається аутентифікувати себе, використовуючи .rhosts-аутентифікацію, аутентифікацію RSА або ж аутентифікацію з використанням пароля. Зазвичай .rhosts-аутентифікація небезпечна, тому вона відключена.

Протокол SSH версія 2. Версія 2 працює аналогічно першій: кожен вузол має певний RSA-ключ, який використовується для ідентифікації вузла. Проте при запуску демона ключ сервера не генерується. Безпека з'єднання забезпечується завдяки узгодженю Діффі-Хелмана (Diffie-Hellinan key agreement). Крім того, в SSH2 були виправлені недоліки SSH1. Сесія може кодуватися наступними методами: 128-розрядний AES, Blowfish, 3DES, CAST128, Arcfour, 192-розрядний AES або 256-розрядний AES.

Програмні пакети, що використовують ці протоколи, так і називаються: sshl і ssh2. Сервером SSH служить демон sshd, який запускається на UNIX-машині, а клієнтом — програма ssh, яка розповсюджується як для Linux, так і для Windows. Клієнт ssh служить для забезпечення захищеної реєстрації на віддаленому комп'ютері. У пакет ssh входить ще і третя програма — sсp, службова для безпечного копіювання файлів з локального комп'ютера на віддалений. Проте основним призначенням SSH є все-таки авторизація користувача при його реєстрації на віддаленому комп'ютері.

Обидва програмні продукти (SSH1| і SSH2|) є|з'являються| комерційними. Хоча в якийсь момент розробники одумалися і зробили безкоштовною SSH2| для Linux| і *BSD, було вже пізно. Відкритою|відчиняти| спільнотою| розробників на основі обох протоколів SSH|, з|із| додаванням|добавляти| додаткових можливостей|спроможностей| і виправленням деяких помилок, був розроблений її безкоштовний варіант OPENSSH|.

Перша версія OPENSSH| вийшла ще в грудні 2001 року. Комп'ютери, на яких встановлена|установлена| OPENSSH|, чудово взаємодіють з|із| компью­терами|, на яких встановлені|установлені| комерційні SSH1| або SSH2|, тобто|цебто| продукти повністю|цілком| сумісні.

OPENSSH| поставляється зі|із| всіма сучасними дистрибутивами Linux|. В цілях безпеки рекомендується здійснювати оновлення (офіційний сайт vww.openssh.org.)

Вільно поширювана версія SSH| складається з наступних|слідуючих| пакетів:

  1. openssh — основні файли;

  2. openssh-clients — програма-клієнт;

  3. openssh-server — ssh-сервер.

Щоб служба SSH почала працювати, необхідно запустити демон sshd на тій машині, до якої передбачається підключення. Бажано додати команду запуску в сценарій завантаження системи. Демон sshd працює по 22 порту. Можна запускати його з-під супердемона xinetd/inetd, але зазвичай sshd запускається самостійно — в режимі standalone.

Настройка SSH на сервері

Конфігураційний файл сервера sshd називається /etc/ssh/sshd_config. Довідку по його синтаксису ви можете отримати по команді man 5 sshd_config. У пакеті openssh-server знаходиться конфігураційний файл з типовими настройками.

Щоб захистити ваш комп'ютер від небажаних вторгнень ззовні, рекомендовано вписати в цей файл директиву allowedadress, перерахувавши через пропуск IP-адреса тих машин, з яких дозволений вхід клієнтів:

allowedadress 10.1.1.1 10.1.2.1 10.1.3.1

Port 22

  • Спочатку намагаємося працювати по протоколу SSH 2, а потім

  • якщо та сторона не підтримує другу версію, — по SSH 1

Protocol 2,1

  • Ключ|джерело| для протоколу SSH| версії 1

HostKey| /etc/openssh/ssh_host_key

  • Ключі|джерела| для протоколу SSH2| - RSA| і DSA|

HostKey| /etc/openssh/ssh_host_rsa_key

HostKey| /etc/openssh/ssh_host_dsa_key

  • Час життя і розмір ключа|джерела| ssh| версії 1

KeyRegenerationlnterval| 3600

  • За умовчанням використовується розмір 768 битий

  • краще встановити 1024

ServerKeyBits 1024

  • час, через який ключі сервера будуть створені наново.

  • Періодична зміна ключів підвищує безпеку системи.

KeyRegenerationlnterval lh

  • Забороняємо реєстрацію користувача root по ssh.

  • Це не унеможливлює віддалене адміністрування:

  • просто руту доведеться зайти під

  • звичайним|звичним| користувачем, а потім виконати команду su|.

  • Зате зловмисникові знадобиться вкрасти

  • не один, а два паролі: і root|, і звичайного|звичного| користувача.

PermitRootLogin| по

  • Протоколювання (розкоментуйте, якщо потрібно

  • вести журнал|часопис| за допомогою системи syslog|)

#SyslogFacility| AUTH|

#LogLevel INFO

  • Аутентифікація

  • Включає парольну аутентифікаціюі забороняє порожні|пусті| паролі

PasswordAuthentication| yes|

PermitEmptyPasswords| no

|

#StrictModes yes

# використовуємо RSA-аутентификацию

RSAAuthentication yes

PubkeyAuthentication yes

  • Аутентифікація rhosts| - зазвичай|звично| не використовується

  • тому забороняємо її:

  • призначені для користувача файли -/.rhosts і -/.shosts не

  • використовуватимуться

RhostsAuthentication по

IgnoreRhosts yes

  • НЕ використовувати РАМ аутентифікацію

PAMAuthenticationViaKbdlnt по

  • додатковий час клієнтові на те, щоб

  • аутентифікувати себе.

  • Якщо за цей час клієнт не зміг ввести пароль

  • з'єднання|сполучення| буде припинено

LoginGraceTime| 2m

|

  • Наступні параметри потрібні для того, щоб змусити

  • систему X Window| працювати по ssh|. Докладніше|детальний| ви

  • зможете прочитати в документації по ssh

#XllForwarding yes

#XllDisplayOffset 10

#Xll!JseLocalhost yes

#PrintMotd yes

#PrintLastLog yes

#KeepAlive yes

#UseLogin no

#UsePrivilegeSeparation yes

#Compression yes

  • Шлях|колія| до банера Banner| /some/path

  • підсистема sftp-сервера

Subsystem sftp /usr/libexec/openssh/sftp-server

Запуск демона sshd

Перед першим запуском sshd необхідно згенерувати файли, що містять ключі кодування. У сценаріях, що здійснюють запуск сервера sshd, зазвичай передбачена перевірка наявності цих файлів. У разі їх відсутності вони генеруються автоматично.

Ключі, з якими можна запускати sshd, перераховані нижче.

Ключ

Призначення

-b біти

Визначає число бітів для ключа сервера (за умовчанням 768). Цю опцію можна використовувати, тільки якщо ви використовуєте протокол SSH версії 1

-d

Режим відладки (DEBUG). У цьому режимі сервер не переходить у фоновий режим, обробляє тільки одне з'єднання і детально протоколює свої дії в системному журналі. Ключ відладки особливо корисний для вивчення роботи сервера

-D

Так само, як і при використанні попереднього ключа, сервер sshd не переходитиме у фоновий режим. Проте на відміну від -d ключ -D не переводить сервер в режим відладки

-e

Відправляти налагоджувальні повідомлення не в системний журнал, а на стандартний потік помилок

-f файл

Задає альтернативний файл конфігурації замість /etc/ssh/sshd_config

-g час

Надає клієнтові, що не пройшов аутентифікацію, додатковий час на введення пароля. Значення 0 інтерпретується як нескінченне очікування

-h файл_ключа

За умовчанням використовується файл /etc/ssh/ssh_host_key. Цей ключ може знадобитися, щоб запускати sshd від імені непривілейованого користувача. Також ключ — h часто застосовується при запуску sshd з сценаріїв, задаючих різні настройки залежно від часу доби (у робочий і неробочий час)

Використовується, якщо потрібно запускати sshd через суперсервер xinetd. Зазвичай демон sshd запускається окремо при завантаженні системи. Зв'язано це з тим. що демонові sshd необхідно якийсь час для генерування ключа сервера, перед тим як він зможе відповісти на запити клієнтів. При запуску через суперсервер при кожному з'єднанні суперсервер наново викликатиме sshd, а той — наново буде генерувати ключ. Проте на сучасних комп'ютерах затримка практично не помітна. Тому цілком можна запускати sshd і через суперсервер

-k час

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

-р порт

Указує альтернативний порт, який демон sshd прослуховуватиме замість порту 22

-q

«Тихий режим»: не протоколювати сесію. Зазвичай протоколюється початок аутентифікації, результат аутентифікації і час закінчення сесії

-t

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

-4

Дозволяється використовувати IP-адреса тільки у форматі IPv4

-6

Дозволяється використовувати IP-адреса тільки у форматі IPv6

Використання SSH-клієнта

Клієнтська програма ssh знаходиться в пакеті open ssh-clients разом з типовим конфігураційним файлом /etc/ssh/ssh_config. Настройки можна задавати і з командного рядка, запускаючи ssh з відповідними ключами. Основні ключі і аргументи перераховані в таблиці 11.5.

Формат команди:

ssh| [ключі|джерела|] [ключі_з_аргументамии] [логін_ім'я@|хост.домен [команда)

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

Ключ

Призначення

Відключає перенаправлення аутентифікації агента з'єднання

- А

Включає перенаправлення аутентифікації агента з'єднання

-c blowfish | 3des | des

Дозволяє вибрати алгоритм шифрування при використанні першої версії протоколу SSH. Можна вказати blowftsh 3des або des

Задає використання стиснення всіх даних у всіх вихідних потоках з використанням gzip.

-f

Дана опція переводить ssh у фоновий режим після аутентифікації користувача. Рекомендується використовувати для запуску програми Х11. Наприклад: sah -f host xterm

-і ідент_файл

Задає нестандартний ідентифікаційний файл (для нестандартної RSA/DSА - аутентифікації)

Логін_ім’я

Указує, від імені якого користувача здійснюватиметься реєстра­ція на віддаленій машині

-р порт

Визначає порт, до якого підключиться програма ssh (за умовчанням використовується порт 22)

-q

Переводить програму ssh в «тихий режим». При цьому відображатимуться тільки повідомлення про фатальні помилки. Всі інші застережливі повідомлення в стандартний вихідний потік виводитися не будуть

-v

Включає відображення всієї налагоджувальної інформації

-x

Відключити перенаправлення Х11

-X

Включити перенаправлення X11

-1

Використовувати тільки першу версію протоколу SSH (примусово)

-2

Використовувати тільки другу версію протоколу SSH (примусово)

-4

Дозволяється використовувати IР-адрси тільки у форматі IPv4

-6

Дозволяється використовувати IР-адрси тільки у форматі IPv6

Аутентифікація засобами|коштами| SSH|

Аутентифікація в SSH| може проводитися|виробляти| одним з наступних|слідуючих| чотирьох| способів:

За принципом довіри. При цьому способі перевіряється, чи внесено ім'я комп'ютера, з якого проводиться доступ, у файл -./ . rhosts (або -/ .shosts). Якщо його ім'я (IP-адрес) внесене, то користувачеві дозволяється доступ без перевірки пароля. Цей спосіб дуже уразливий для різноманітних атак (підміни IP-адреса і тому подібне), так що використовувати його категорично не рекомендується. Для того, щоб дозволити цей спосіб, потрібно встановити значення для директиви IgnoreRHosts і yes для Rhosts Authentication у файлі / etc/ssh/sshd_conf, а щоб заборонити — значення для цих директив поміняти на протилежне.

Посилена аутентифікація за принципом довіри. Цей спосіб в принципі повторює попередній, за тим лише виключенням, що перевірка імені комп'ютера (IP-адреса) проводиться в захищеному режимі. При цьому використовується шифрування відкритим ключем. За включення і відключення даного механізму аутентифікації відповідають директиви RhostsRSAAuthentication і IgnoreRHosts. Не дивлячись на деякі удосконалення, цей спосіб як і раніше є небезпечним.

Аутентифікація самого користувача з використанням шифрування з відкритим ключем. На момент реєстрації у користувача повинен бути доступ до файлу свого секретного ключа, і він повинен надати пароль для його дешифровки. Цей спосіб аутентифікації є найнадійнішим, але і самим незручним. Крім того, він вимушує користувачів постійно мати під рукою файл з ключем. За включення і відключення цього способу відповідає директива PubkeyAulhentication (або RSA Authentication залежно від версії).

Аутентифікація за допомогою пароля. Це оптимальний спосіб: він зручний у використанні і в той же час достатньо безпечний. Саме він і використовується в більшості випадків. На відміну від telnet, пароль тут передається в зашифрованому вигляді. Основний недолік даного методу полягає у відносній слабкості паролів (їх довжина часто складає менше 8 символів). Це дозволяє підбирати їх за допомогою спеціальних програм. За включення і відключення цього способу відповідає директива PasswordAuthentication.

Який спосіб використовувати — вирішувати|рішати| вам. Проте|однак| настійно не рекомендується застосування|вживання| перших двох способів. Їх використання допустимо| лише у виняткових випадках і в особливих умовах.

Безкоштовний SSH-клиент для Windows можна скачати у автора, Роберта Каллагана, сайт http: / /www. zip. com. au/~roca/ttssh .html.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]