Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Теоретичні відомості. Заступник директора з НР






ЛЬВІВСЬКИЙ КОЛЕДЖ

ДЕРЖАВНОГО УНІВЕРСИТЕТУ ТЕЛЕКОМУНІКАЦІЙ

 

Затверджую

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

____________ Мурін О.С.

«___» __________ 2013 р.

 

ІНСТРУКЦІЯ

до лабораторної роботи №. 7.

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

з навчальної дисципліни Комп’ютерні мережі.

для груп спеціальності:

5.05090302 “ Технічне обслуговування та ремонт апаратури зв’язку і

оргтехніки”

 

 

  Розглянуто та схвалено на засіданні циклової комісії Комп’ютерних систем і мереж Протокол №__ від «___» ______ 2013 р. Голова циклової комісії ____________________ Кужій Л.І.. (підпис) (прізвище, ініціали)     Склав викладач. (прізвище, ініціали)

 

Львів 2013 р.

 

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

допомогою OPENSSH

 

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

Що таке SSH

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

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

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

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

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

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

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.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.013 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал