Якщо явно вказати, хто з користувачів зможе увійти в систему через SSH, будь-які інші користувачі не зможуть цього зробити.
Наприклад, параметр AllowG roups дозволить обмежити коло користувачів, що володіють правом входу в систему через SSH, зазначеними групами, які визначені в файлі / etc / group (глава 7). Якщо цей параметр визначений, а користувач не належить ні до однієї з допустимих груп, він не зможе увійти в систему. Групи в списку повинні відділятися пробілами:
AllowGroups wheel webmaster dnsadmln
Якщо ви не хочете надавати доступ через SSH цілу групу користувачів, можна за допомогою параметра Allowllsers визначити список допустимих користувачів. При використанні параметра Allowllsers автоматично забороняється доступ всім іншим користувачам, відсутнім в списку.
Параметр DenyGroups протилежний параметру AllowGroups. Користувачі з перерахованих тут системних груп не зможуть увійти в систему. Зазначені групи повинні бути їх головними групами, тобто повинні бути представлені в /etc/master.passwd, а не просто в / etc / group. Це обмеження робить параметр DenyGroups менш корисним, ніж може здатися на перший погляд; для досягнення бажаного ефекту буде недостатньо визначити універсальну групу nossh і просто додати в неї користувачів, ця група повинна бути головною для них. Явна перерахування допустимих груп забезпечує більш корисну політику безпеки.
Як ці параметри впливають на права доступу користувача, що входить в кілька груп? Наприклад, користувач входить в групу, присутню в списку AllowGroups, і в групу зі списку DenyGroups. Що станеться в цьому випадку? Демон SSH перевіряє значення цих параметрів в наступному порядку: Denyllsers, Allowllsers, DenyGroups і Allow- Groups. Враховується перший збіг. Припустимо, що я член групи wheel, і в файлі sshd_config присутній наступний фрагмент:
DenyUsers: mwlucas AllowGroups: wheel
Я не зможу увійти в цю систему через SSH, тому що значення параметра DenyUsers перевіряється до значення параметра AllowGroups.
Безумовно, клієнт SSH вже присутній в FreeBSD, як і в більшості інших UNIX-подібних операційних систем. По можливості намагайтеся користуватися вбудованим клієнтом SSH, оскільки він входить до складу пакета OpenSSH, розробленого командою OpenBSD, і є не тільки найпопулярнішою, а й кращою реалізацією. Якщо ви змушені використовувати операційну систему Microsoft Windows, рекомендую програму PuTTY, яка може безкоштовно використовуватися як в комерційних, так і в некомерційних цілях і є прекрасним емулятором терміналу.
Ця книга присвячена FreeBSD, тому вся увага буде приділена клієнту OpenSSH в цій операційній системі. Ви можете налаштувати клієнта різними способами, але в більшості випадків настройки зводяться до заборони використання функцій, пропонованих сервером. Якщо вам дійсно цікава тема настройки поведінки клієнта, прочитайте сторінку керівництва ssh_config (5).
Щоб підключитися до іншого хосту через SSH, слід ввести команду ssh імя_хоста. У відповідь ви повинні побачити приблизно наступне:
The authenticity of host 'sardines.blackhelicopters.org (192.168.1.1)' can not be established.
DSA key fingerprint is a4: df: 7c: 7e: Oe: 27: e5: 21: b4: f4: Oe: 2b: c9: 10: 5f: ea.
Are you sure you want to continue connecting (yes / no) 9 yes
(Переклад: Справжність хоста 'sardines.blackhelicopters.org (192.168.1.1)'
не може бути встановлена.
Відбиток ключа DSA a4: df: 7c: 7e: 0E: 27: e5: 21: b4: f4: 0E: 2b: c9: 10: 5f: ea. Ви дійсно бажаєте продовжити з'єднання (yes / no) 9)
Клієнт відразу ж отримує відкритий ключ хоста, до якого здійснюється підключення, і звіряється зі своїм внутрішнім списком ключів SSH. Якщо ключ, отриманий від сервера, присутній в списку клієнта, клієнт вважає, що з'єднання встановлюється з подоланням хостом. Якщо ключ хоста відсутня в списку клієнта, він виводить цифровий відбиток ключа, щоб ви могли схвалити або відкинути його.
Відбиток, представлений клієнтом, повинен збігатися з відбитком, що згенерував на сервері. Якщо відбитки не збігаються, значить ви підключилися не до тієї хосту і слід негайно розірвати з'єднання. Якщо відбитки збігаються, можна прийняти ключ і продовжити з'єднання. Після того як ви підтвердите своє бажання продовжити, ключ хоста буде збережений в вашому домашньому каталозі в списку, ssh / known_hosts.
Якщо ви створюєте новий сервер в локальній мережі для особистого користування, можливо, вам не потрібно порівнювати відбитки ключів вручну. Проте все одно слід скопіювати відбиток ключа, тому що іноді вам може знадобитися підключитися з іншого місця, щоб переглянути ключ. Якщо до сервера буде підключатися багато користувачів, то зовсім не зайвим буде помістити відбиток на веб-сторінку. Ви самі визначаєте, який рівень безпеки вам потрібно. Особисто я вважаю, що краще надлишок обережності, ніж її недолік.
Клієнт SSH хороший для організації доступу до командного рядка, а як бути з переміщенням файлів з однієї системи в іншу? SSH включає два інструменти переміщення файлів по мережі - scp (l) і sftp (l).
Якщо файлу копіюється з тим же ім'ям, то ім'я файлу в другому аргументі можна опустити:
# Scp bookbackup.tgz [email protected]:
Крім того, scp (l) дозволяє копіювати файли з віддаленої системи в локальну:
Якщо копія файлу в локальній системі повинна мати те ж саме ім'я, ім'я копії в команді можна замінити символом точки:
Нарешті, якщо імена користувача в віддаленій системі та локальної системах збігаються, то можна опустити ім'я користувача і символ Наприклад, я можу скопіювати свій файл на сервер за допомогою команди:
# Scp bookbackup.tgz bewilderbeast.blackhelicopters.org:
Незважаючи на гадану складність, ця команда дуже зручна для швидкого переміщення окремих файлів по мережі.
Якщо ви віддаєте перевагу інтерактивні системи або коли заздалегідь невідома точна назва файлу, який потрібно скопіювати з віддаленої системи, на допомогу прийде sftp (l). Команда sftp (l) приймає єдиний аргумент, що складається з імені користувача і імені сервера, в форматі, який використовується командою scp для позначення віддаленого сервера:
Connecting to bewilderbeast ... Password: sftp> Is
Інтерфейс sftp (l) дуже нагадує стандартний клієнт FTP; він підтримує типові команди FTP, такі як Is (list - список), cd (change directory - змінити каталог), get (download a file - завантажити файл) і put (upload a file - вивантажити файл на сервер). Одне з істотних відмінностей полягає в тому, що sftp (l) не вимагає вибирати тип переданих файлів - ASCII або двійковий; файли просто передаються в тому вигляді, в якому вони є.
OpenSSH захищає все
Багато мережних програми включають підтримку SSH для забезпечення взаємодій. Крім того, OpenSSH може створювати тунелі між портами TCP різних машин. Завдяки OpenSSH можна забезпечити передачу будь-яких даних по мережі тільки в зашифрованому вигляді.
За допомогою команд scp і sftp ви зможете повністю усунути зі свого мережі паролі у відкритому текстовому вигляді.