OpenSSH
OpenSSH — відкрита реалізація клієнта і сервера для роботи за протоколами SSH та SFTP, набір програм, що надають шифрування сеансів зв'язку у комп'ютерних мережах. Він був створений під керівництвом Teo де Раадта як відкрита альтернатива власницькій реалізації від SSH Communications Security.
"Don't tell anyone that I'm free" | |
Тип | віддалений доступ |
---|---|
Розробник | проект OpenBSD |
Стабільний випуск | 7.4 (20 грудня 2016 ) |
Репозиторій | anongit.mindrot.org/openssh |
Операційна система | крос-платформовий |
Мова програмування | C[1] |
Стан розробки | активний |
Ліцензія | спрощена ліцензія BSD |
Вебсайт | www.openssh.com |
OpenSSH у Вікісховищі |
Історія
OpenSSH був створений командою OpenBSD як альтернатива SSH, який досі є власницьким програмним забезпеченням. Розробники OpenSSH стверджують, що він безпечніший за оригінальний Secure Shell, завдяки їхній політиці чищення та аудиту коду. Хоча сирцевий код також тривалий час був доступний для оригінального SSH, обмеження його ліцензії спочатку робили OpenSSH привабливішим проектом для більшості програмістів.
OpenSSH вперше з'явився в OpenBSD 2.6.
У версії 5.9, котра вийшла 6 вересня 2011, з'явився експериментальний режим «пісочниці», з обмеженням на певні системні виклики . Мета цього — запобігання атаки на інші вузли мережі, наприклад, за допомогою запуску проксі або відкриття сокетів.
Торгові марки
У лютому 2001 Тату Ілонен (фін. Tatu Ylönen), голова та технічний директор SSH Communications Security, повідомив через поштову розсилку OpenSSH, що після спілкування з провідними розробниками OpenSSH компанія затвердила право власності на торгові марки «SSH» і «Secure Shell». Він також шукав можливості змінити назву протоколу на SecSH або secsh і запропонував змінити ім'я OpenSSH для уникнення судових позовів.
У той же час «SSH», «Secure Shell» і «ssh» були використані в документах, що визначають протокол як відкритий стандарт і було виконано багато роботи без належності до торгових марок. Були висловлені сумніви в правильності претензій, адже пройшло вже 6 років з створення компанії і тим моментом, коли вона почала захищати торгову марку від вільних альтернатив, начебто OpenSSH, і що тільки OpenSSH піддався їхнім судовим нападкам.
Обидва розробника OpenSSH та Ілонен були членами робочої групи IETF, що розробляє нові стандарти, які після невеликого обговорення відкинула будь-які домагання Ілонена на перейменування протоколу, посилаючись на те, що це створить небажаний прецедент для інших торгових марок. Члени робочої групи стверджували, що позначення «Secure Shell» і «SSH» є базовими поняттями і не можуть бути торговими марками.
Переносимість
Частково тому, що OpenSSH необхідно виконувати автентифікацію, виконання якої може сильно відрізнятися на різних операційних системах, була створена потужна інфраструктура для забезпечення переносимості. Те, що не включалося безпосередньо в OpenBSD, було виділено окремо групою розробників в складі Дамієна Міллера (англ. Damien Miller), Філіпа Гендса (англ. Philip Hands) та інших як субпроект OpenSSH Portable. Тепер паралельно і одночасно з релізом OpenSSH «для OpenBSD» стали випускатися так звані «portable releases». Ці релізи позначаються в кінці буквою «p», наприклад: OpenSSH_5.1p1. Така організація процесу розробки пізніше стала використовуватися і в інших проектах, що розробляються всередині OpenBSD, наприклад, OpenNTPD.
Склад
Набір OpenSSH містить такі компоненти:
- ssh
- Заміна для rlogin і telnet
- scp
- Заміна для rcp, що використовує в сучасних версіях OpenSSH протокол SFTP (раніше використовувався менш надійний і гнучкий SCP)
- sftp
- Заміна для FTP-клієнта, що використовує протокол SFTP
- sshd
- Демон, власне надає захищений доступ до ресурсів. Включає реалізацію серверної частини SFTP, придатну для організації chroot-доступу для користувачів без необхідності копіювання будь-яких файлів всередину chroot
- sftp-server
- Окрема реалізація підсистеми SFTP, серверна частина. Має більші можливості, ніж вбудована в sshd.
- ssh-keygen
- Генератор пар ключів
- ssh-keysign
- Утиліта для перевірки ключів хостів. Задіюється при використанні автентифікації по хостам (аналогічно rsh) замість проведеної за умовчанням автентифікації по користувачам.
- ssh-keyscan
- Допоміжна утиліта, дозволяє збирати публічні ключі з інших хостів
- ssh-agent
- Допоміжна утиліта, яка підтримує кеш закритих ключів. Кешування дозволяє уникати частого введення пароля для розшифровки ключів перед їхнім використанням
- ssh-add
- Допоміжна утиліта, додає ключі в кеш ssh-agent
Безпечні тунелі
Перенаправлення портів
Більшість програм для встановлення з'єднання використовують протокол TCP, трафік якого можна передавати через безпечний тунель. Таким чином можна встановлювати безліч додаткових TCP-з'єднань поверх одного SSH-з'єднання. Це зручно для приховування з'єднань і шифрування протоколів, які є небезпечними, а також для обходу обмежень фаєрволів . UDP-з'єднання іноді теж можливо тунелювати за допомогою додаткових програм, таких як netcat. Простими для тунелювання є такі протоколи як, наприклад, HTTP, POP3 і VNC.
Перенаправлення портів можливо в будь-яку сторону.
Крім того, деяке програмне забезпечення може автоматично використовувати OpenSSH для створення тунелю. Наприклад DistCC, CVS, rsync, fetchmail.
З протоколів, які складніше тунелювати, варто відзначити FTP, який часто можна замінити SFTP, і SMB. У деяких операційних системах віддалені файлові системи можна монтувати через ssh використовуючи shfs, lufs та інші аналогічні компоненти.
X Window System
OpenSSH дозволяє безпечно організовувати підключення до X Window System з урахуванням «перевороту» семантики: хост-клієнт SSH для X Window System є сервером, і навпаки. Для цього OpenSSH здійснює додаткові операції начебто установки змінної оточення DISPLAY.
SOCKS
OpenSSH можливо використовувати як спеціальний SOCKS-проксі-сервер, котрий підтримує гнучкіше проксіювання, ніж просто перенаправлення портів.
VPN
Починаючи з версії 4.3, OpenSSH може використовувати тунельні мережеві інтерфейси 2-го і 3-го рівнів моделі OSI (tun). Таким чином можна організувати захищену VPN і обійтися без необхідності переробки застосунків для підтримки SOCKS.
Автентифікація
OpenSSH сервер може автентифікувати користувачів, використовуючи такі вбудовані механізми автентифікації:
На додаток OpenSSH Portable зазвичай може використовувати методи автентифікації, доступні в конкретній операційній системі, наприклад, BSD Authentication або PAM.
Джерела
- Стаття «OpenSSH» на ru.opensuse.org
Посилання
- Офіційний сайт
- OpenSSH на Freecode
- OpenSSH для Windows
- Portable releases
- Darren Tucker's OpenSSH Page
- Розподіл привілеїв OpenSSH
- ssh — клієнт захищеної оболонки OpenSSH