Openssh для windows, security, adminstuff

Технологія SSH (Secure Shell) дозволяє захистити прості протоколи ftp, telnet, створювати захищені тунелі, перенаправлення мережевих портів, що суттєво розширює набір інструментів системного адміністратора. OpenSSH (відкритий безпечний shell) - набір програм, що надають шифрування сеансів зв'язку з комп'ютерних мереж з використанням протоколу SSH. Він був створений під керівництвом Тео де Раадта як відкрита альтернатива пропрієтарного програмного забезпечення від SSH Communications Security. Далі розглянута установка сервера і клієнта OpenSSH на платформі Windows XP.

2. Закріпить і підтвердіть умовчання у всіх налаштуваннях. Встановляться сервер і клієнт SSH в потрібне місце (папка% ProgramFiles% \ OpenSSH). Після установки з'явиться вікно з попередженням "Перед запуском служби OpenSSH Ви ПОВИННІ відредагувати файл% ProgramFiles% \ OpenSSH \ etc \ passwd. Якщо ви не зробите цього, то не зможете залогінитися через сервер SSH. Будь ласка, прочитайте інформацію в файлах readme.txt або quickstart .txt для правильного налаштування файлу passwd. ".

3. Виконайте всі вказівки з файлу quickstart.txt. Запустіть cmd в папці% ProgramFiles% \ OpenSSH, перейдіть в папку bin (Start -> Run. -> cmd -> cd% ProgramFiles% \ OpenSSH -> cd bin).

4. Тепер потрібно зробити group permissions file (файл дозволів для групи). Він може бути створений для локальних або доменних груп, для чого застосовується команда mkgroup з ключем -l і -d відповідно. У мене був домашній комп, і ніякого домену не було, тому я ввів просто:

mkgroup -l >>. \ Etc \ group

Після цього в папці etc з'явиться файл group.

5. Тепер потрібно в passwd file (файл паролів) додати користувачів - або локальних, або доменних, для чого застосовується команда mkpasswd з ключем -l і -d відповідно. Я ввів

mkpasswd -l -u Administrator >>. \ Etc \ passwd

6. Розпочніть сервер OpenSSH командою net start opensshd. або за допомогою консолі управління сервісами запустіть сервіс по імені "OpenSSH Server". Після цього додатком sshd.exe повинен відкритися TCP порт 22.

На цьому кроці у мене була проблема - сервіс не хотів запускатися в системною помилкою "System error 1067". Спробував знайти лог, він виявився в файлі% ProgramFiles% \ OpenSSH \ var \ log \ OpenSSHd.log. Там було таке повідомлення:
"5 [main]. (1940) D: \ Program Files \ OpenSSH \ usr \ sbin \ sshd.exe: *** fatal error - proc magic mismatch detected - 0xEFAED2A6 / 0x704D1F7E. This problem is probably due to using incompatible versions of the cygwin DLL. Search for cygwin1.dll using the Windows Start-> Find / Search facility and delete all but the most recent version. The most recent version * should * reside in x: \ cygwin \ bin, where 'x' is the drive on which you have installed the cygwin distribution. Rebooting is also suggested if you are unable to find another cygwin DLL. "

По-русски ця галіматься значить, що не підходить версія файлу cygwin1.dll. Спробував знайти файл cygwin1.dll, він у мене виявився в декількох місцях:

c: \ Program Files \ hypertunnelNT \ cygwin1.dll
c: \ WinAVR \ bin \ cygwin1.dll
D: \ Program Files \ OpenSSH \ bin \ cygwin1.dll

Найсвіжіша версія (1005.23.0.0) була у файлу c: \ WinAVR \ bin \ cygwin1.dll, а поточна версія файлу D: \ Program Files \ OpenSSH \ bin \ cygwin1.dll була 1005.10.0.0. Спробував для OpenSSH підмінити cygwin1.dll на більш новий, від WinAVR - і все запрацювало!

7. Події успішного і неуспішного підключення клієнтів пишуться в лог Application системи Windows. Записом в лог управляють ключі SyslogFacility і LogLevel в файлі etc \ sshd_config. Я у себе налаштував ці опції так:

SyslogFacility AUTH
LogLevel VERBOSE

Оскільки хакерська активність в Інтернеті висока, журнал Application буде швидко заповнюватися, тому є сенс збільшити розмір логу Application (я збільшив до 5120 байт) і включити перезапісиваніе записів журналу по необхідності (Overwrite events as needed).

Тепер з сервером OpenSSH на Windows ми отримуємо такі можливості:

- можна дістатися до командного рядка cmd, Законекть під користувачем, прописаним в passwd (в моєму прикладі Administrator). Поточний шлях отримуємо, як прописано в змінної оточення% USERPROFILE% Windows. Під FreeBSD для цього можна скористатися клієнтом ssh:

- можна в Midnight Commander відкрити з панелі Shell Link, правда користі від цього поки мало - у мене при підключенні відкрилася папка bin в зовсім несподіваному місці - c: \ WinAVR \ utils \ bin \, і були доступні файли тільки всередині неї.

- можна скористатися захищеним ftp-з'єднанням (Secure FTP, або SFTP). Під FreeBSD для цього можна скористатися клієнтом sftp:

Як і у випадку з cmd через утиліту ssh, поточний шлях буде% USERPROFILE%, і будуть доступні всі файли в поточному каталозі і в її підпапках. Можна піднятися на рівень вище, в папку% SystemDrive% \ Documents and Settings \.

Якщо спробувати піднятися ще на рівень вище, то потрапимо не як очікувалося на диск% SystemDrive%, а в папку% ProgramFiles% \ OpenSSH. Ця папка вважається кореневої, і більше нікуди вище потрапити не можна. Щоб потрапити назад в папку% USERPROFILE%, потрібно ввести cd / home / Administrator.

- можна скористатися утилітою захищеного копіювання scp. Наприклад, під FreeBSD це буде виглядати так:

$ Scp backstore / 080106archive.tar Administrator @ IP_ілі_імя_нашего_сервера_OpenSSH :.

Це означає - скопіювати файл backstore / 080106archive.tar в поточний каталог (.) Користувача Administrator (нагадаю, що це буде папка% USERPROFILE%).

- туннелирование мережевих з'єднань, іноді це називають "перенаправлення портів через SSH-тунель".

[Беспарольному аутентифікація, заснована на public / private ключах]

Як і в прикладах з ssh, sftp, утиліта scp запросить пароль користувача Administrator. Щоб не вводити пароль, наприклад для копіювання з bat-файлу, потрібно згенерувати ключі і далі їх використовувати. Процес по кроках (передбачається, що сервер встановлений на Windows XP SP2, там є користувач Administrator, а клієнт використовується на FreeBSD, версія ядра 6.2-RELEASE-p8, там працюємо під користувачем user, ім'я машини host.agava.net).

1. Згенеруйте ключі на клієнті (DSA, Digital Signature Algorithm):

# Переходимо в домашній каталог користувача user
$ Ssh-keygen -t dsa
Generating public / private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa): # тут просто натискаємо Enter
Enter passphrase (empty for no passphrase): # тут просто натисніть Enter, пароля немає
Enter same passphrase again: # тут просто натисніть Enter, пароля немає
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
hh: hh: hh: hh: hh: hh: hh: hh: hh: hh: hh: hh: hh: hh: hh: hh [email protected]

Замість hh будуть HEX-цифри хешу ключа. Для генерації ключів потрібен якийсь час (в залежності від потужності машини, у мене на це пішло близько 20 секунд). Після цієї операції в директорії .ssh з'являться 2 файли - id_dsa (приватний, секретний ключ, використовується для розшифровки даних) і id_dsa.pub (публічний ключ, використовується для шифрування даних).

2. Скопіюйте файл id_dsa.pub з клієнта на сервер, в папку користувача Administrator, в підпапку .ssh (у мене був повний шлях такий - d: \ Documents and Settings \ Administrator \ .ssh \). Перейменуйте id_dsa.pub в authorized_keys. Іноді може знадобитися використовувати інше ім'я - authorized_keys2, за деталями звертайтеся до інформації в файлі% ProgramFiles% \ OpenSSH \ docs \ key_authentication.txt.

4. Перезапустіть сервер SSH:

net stop opensshd
net start opensshd

Спробуйте на клієнті команди scp, sftp, ssh (див. Приклади вище) - під користувачем Administrator більше пароль не вимагається!

B кaчecтвe yдoбнoгo (і бecплaтнoгo!) SSH-кліeнтa мoжнo іcпoльзoвaть putty. Eгo тoжe мoжнo іcпoльзoвaть для бeзпapoльнoй ayтeнтіфікaціі пpи кoннeктe до SSH-сервера. Як нacтpoіть, пpoцecc пo шaгaм (пpeдпoлaгaeтcя, щo замовники putty paбoтaeт нa Windows XP, a сервер SSH - нa FreeBSD, вepcія ядpa 6.2-RELEASE-p8, там paбoтaeм пoд пoльзoвaтeлeм user, ім'я мaшин host.agava.net):

1. Згенеруйте ключі нa кліeнтe (DSA, Digital Signature Algorithm), для чeгo зaпycтіте пpoгpaммy puttygen.exe. Oнa ідeт в пoлнoм кoмплeктe putty, і ecли y Bac пoчeмy-тo eё нeт, тo мoжнo cкaчaть на сайті [3], або скомпілювати з початкових кодів. Після запуску puttygen.exe виберіть тип ключа (я вибрав SSH-2 DSA, хоча творці putty настійно рекомендують вибирати не DSA, а RSA), розрядність ключа (я залишив за замовчуванням 1024), натисніть кнопку Generate. Поелозьте мишкою по екрану - в цьому процесі генерується випадкове число для ключа. Ключ згенерує. У поля "Key passphrase:" і "Confirm passphrase:" принципово нічого не вводьте, оскільки нам потрібно від пароля позбутися. Натисніть Save public key, збережіть публічний ключ, натисніть Save private key, збережіть секретний ключ. Ключі краще зберегти в потаємне місце (особливо секретний ключ), щоб не дістали вороги =).

2. Тепер треба перетягнути згенерований публічний ключ на сервер SSH. У програмі puttygen.exe з вікна "Public key for pasting into OpenSSH authorized keys file:" копіюйте весь текст, створіть новий файл authorized_keys і цей текст вставте туди, файл збережіть на сервер SSH, в папку .ssh (ця папка повинна знаходитися в корені домашнього каталогу користувача user на FreeBSD). Програму puttygen.exe закрийте, запустіть putty.exe.

Готово! Тепер можна натиснути кнопку Open, запуститься сесія, і пароль вводити вже не треба.

1. OpenSSH site: sourceforge.net.
2. FreeBSD: настройка sshd - як підняти сервер SSH на FreeBSD.
3. PuTTY Download Page site: chiark.greenend.org.uk.

Схожі статті

Copyright © 2024