- •Устройство
- •Структура команд Telnet
- •Применение
- •Безопасность
- •Telnet и другие протоколы
- •Принцип работы протокола Rlogin Установка связи
- •Завершение соединения
- •Безопасность
- •Стандарты и программные реализации
- •Техника безопасности использования ssh
- •Примеры использования ssh
- •Техническая информация о протоколе
- •История развитие
- •Версия 1.X
- •Известны уязвимости
- •Версия 1.99
- •Версия 2.X
- •Уязвимости
- •Передача файлов с использованием ssh
- •Улучшение
- •Лабораторное задание
- •Часть 1
- •3 Настройка доступа по Telnet
- •4 Настройка по протоколу ssh
Техника безопасности использования ssh
Запрет удаленного root-доступа.
Запрет подключения с пустым паролем или отключение входа по паролю.
Выбор нестандартного порта для SSH-сервера.
Использование длинных SSH2 RSA-ключей (2048 бит и более). Системы шифрования на основе RSA считаются надежными, если длина ключа не менее 1024 бит.
Ограничение списка IP-адресов, с которых разрешен доступ (например, настройкой файервола).
Запрет доступа некоторых потенциально опасных адресов.
Отказ от использования распространенных или широко известных системных логинов для доступа по SSH.
Регулярный просмотр сообщений об ошибках аутентификации.
В становка систем обнаружения вторжений (IDS - Intrusion Detection System).
Использование ловушек, подделывают SSH-сервис (honeypots).
Примеры использования ssh
Команда подключения к локальному SSH-сервера из командной строки GNU / Linux или FreeBSD для пользователя pacify (сервер прослушивает нестандартный порт 30000):
$ Ssh -p 30000 pacify@127.0.0.1
Генерация пары ключей (в UNIX-подобных ОС) осуществляется командой
$ Ssh-keygen
Генерация пары SSH-2 RSA-ключей длиной 4 096 бита программой puttygen под UNIX-подобными ОС:
$ Puttygen -t rsa -b 4 096 -o sample
Некоторые клиенты, например, PuTTY, имеют и графический интерфейс пользователя.
Для использования SSH в Python существуют такие модули, как python-paramiko и python-twisted-conch.
SSH-туннелирования
SSH-туннель - это туннель, который создается с помощью SSH-соединения и используется для шифрования тунельованих данных. Используется для того, чтобы обезопасить передачу данных в Интернете (аналогичное назначение имеет IPsec). Особенность заключается в том, что шифрованный трафик-либо протокола шифруется на одном конце SSH-соединения и расшифровывается на другом.
Практическая реализация может выполняться несколькими способами:
Созданием Socks-прокси для программ, которые не умеют работать через SSH-туннель, но могут работать через Socks-прокси
Использованием приложений, которые умеют работать через SSH-туннель.
Созданием VPN-туннеля, подходит практически для любых приложений.
Если программа работает с одним определенным сервером, можно настроить SSH-клиент таким образом, чтобы он пропускал через SSH-туннель TCP-соединения, приходят на определенный TCP-порт машины, на которой запущен SSH-клиент. Например, клиенты Jabber подключаются по умолчанию на порт 443. Тогда, чтобы настроить подключение к серверу Jabber через SSH-туннель, SSH-клиент настраивается на перенаправление подключений любого порта локальной машины (например, из порта 4430) на удаленный сервер (например , jabber.example.com и порт 443):
$ Ssh -L 4430: jabber.example.com 443 somehost
В данном случае Jabber-клиент настраивается на подключение к порту 4430 сервера localhost (если ssh-клиент запущен на той же машине что и Jabber-клиент).
Для создания ssh-туннеля необходимо машина с запущенным ssh-сервером и доступом к jabber.example.com. Такая конфигурация может использоваться в случае, если с локальной машины доступ к jabber.example.com закрыт файерволом, но есть доступ к некоторому ssh-сервера, у которого ограничение доступа в Интернет отсутствуют.
