Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Теоретичні відомості. Заступник директора з НР
ЛЬВІВСЬКИЙ КОЛЕДЖ ДЕРЖАВНОГО УНІВЕРСИТЕТУ ТЕЛЕКОМУНІКАЦІЙ
Затверджую Заступник директора з НР ____________ Мурін О.С. «___» __________ 2013 р.
ІНСТРУКЦІЯ до лабораторної роботи №. 7. Здійснення віддаленого доступу по протоколу SSH з навчальної дисципліни Комп’ютерні мережі. для груп спеціальності: 5.05090302 “ Технічне обслуговування та ремонт апаратури зв’язку і оргтехніки”
Львів 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, перераховані нижче.
Використання SSH-клієнта Клієнтська програма ssh знаходиться в пакеті open ssh-clients разом з типовим конфігураційним файлом /etc/ssh/ssh_config. Настройки можна задавати і з командного рядка, запускаючи ssh з відповідними ключами. Основні ключі і аргументи перераховані в таблиці 11.5. Формат команди: ssh| [ключі|джерела|] [ключі_з_аргументамии] [логін_ім'я@|хост.домен [команда) Якщо останнім аргументом вказана команда, то після успішного входу користувача вона виконується на віддаленій машині замість командної оболонки за умовчанням. Таким чином можна працювати не в командному рядку, а запустити на віддаленій машині графічний сеанс.
Аутентифікація засобами|коштами| 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.
|