Сведения о документе

Удалённый доступ и удалённое администрирование (OpenSSH)

Одна из самых распространённых задач, возникающих при работе в сети, — удалённый доступ к другим компьютерам, в том числе их удалённое администрирование. Технология SSH (Secure Shell) призвана предоставить возможность безопасного способа управления удалённой системой. Построенная по клиент-серверной модели, она позволяет при помощи ssh клиента подключаться к ssh серверу, предоставляя командную оболочку для работы с удалённой системой.

SSH реализует соединение с удалённым компьютером, защищающее от:

В дополнение к отличным характеристикам в области обеспечения безопасного клиент-серверного соединения, SSH обладает следующими возможностями:

OpenSSH — это включённая в дистрибутивы ALT Linux реализация SSH. Она представлена следующими пакетами:

Пакет openssh-server в ALT Linux 4.0 Server устанавливается по умолчанию, позволяя непосредственно после установки системы воспользоваться возможностью удалённого администрирования.

В простейшем виде сеанс работы будет выглядеть следующим образом. Запускается ssh клиент (ssh) с указанием имени пользователя на удалённой системе (если оно отличается от локального) и имени машины (либо IP-адреса). На удалённой машине, естественно, должна быть настроена и работать серверная часть — sshd.


$ ssh user@hostname

Пример 1. Использование ssh

После этого sshd предоставляет командную оболочку для работы на удалённой системе. Ваш компьютер становится удалённым терминалом другого компьютера.

Аутентификация

Прежде чем начать удалённый сеанс работы, необходимо пройти процедуру аутентификации, аналогичную той, что происходит при непосредственной работе с физическим терминалом Linux-системы. Утилита sshd поддерживает различные способы аутентификации, наиболее часто используются два из них: аутентификация по паролю и аутентификация по ключу.

Параметры, относящиеся к способу аутентификации, а так же все прочие настройки sshd указываются в конфигурационном файле /etc/openssh/sshd_config. Для вступления в силу изменений, вносимых с конфигурационный файл, каждый раз после правки файла необходимо выполнять команду


# service sshd reload

Пример 2. Перезапуск sshd

Аутентификация по паролю

Аутентификации по паролю включается добавлением строки PasswordAuthentication yes в файл etc/openssh/sshd_config. Хотя пароль в этом случае и не передаётся по сети в открытом виде, всё же существует опасность подбора пароля. Поэтому не следует выбирать слишком простые пароли.

Аутентификация по ключу

Аутентификация по ключу включается строкой


PubkeyAuthentication yes 

Пример 3. Настройка аутентификации по ключу

в файле /etc/openssh/sshd_config. При использовании этой схемы аутентификации будет использоваться асимметричное шифрование, следовательно, необходимо сгенерировать пару ключей: секретный и публичный1.

Для генерации пары ключей на компьютере пользователя необходимо выполнить $ ssh-keygen с необходимыми параметрами, например:


$ ssh-keygen -t dsa

Пример 4. Генерация пары ключей

На вопрос о файле для сохранения ключа нажать Enter (принять вариант по умолчанию). Будет задан вопрос, следует ли создать пароль к ключу. Поскольку ключи рекомендуется создавать с паролем, нужно указать свой пароль.

После генерации ключей образуются 2 файла: ~/.ssh/id_dsa — секретный ключ, и ~/.ssh/id_dsa.pub — публичный. Его предстоит поместить на удалённый сервер.

Следующим шагом содержимое файла id_dsa.pub необходимо добавить в файл ~/.ssh/authorized_keys2 на удалённой машине. Если под этой учётной записью будет входить один пользователь, файл id_dsa.pub можно просто скопировать, назвав его authorized_keys2. Также можно воспользоваться утилитой ssh-copy-id:


$ ssh-copy-id username@hostname

Пример 5. Настройка доступа по ключу

Обратите внимание, что для выполнения этой операции должна работать аутентификация по паролю. В дальнейшем её можно будет отключить.

После указанных действий можно использовать аутентификацию по ключу. В процессе такой аутентификации запрашивается не пароль удалённого пользователя, а пароль на ваш ключ, что делает ssh сессию ещё более безопасной.

Безопасность

При настройке sshd следует весьма щепетильно отнестись к вопросам безопасности. SSH — очень важная часть системы. Она является незаменимым помощником любого администратора Linux, предоставляя ему доступ к командной оболочке удалённой системы. Но как раз по этой же причине данная служба может стать и источником бед.

Далее приводятся лишь некоторые рекомендации, призванные обезопасить вашу систему от несанкционированного доступа.

По возможности следует использовать способ аутентификации по ключу как наиболее безопасный. Если вы все же по каким-либо причинам используется аутентификация по паролю, то следует тщательнейшим образом отнестись к выбору паролей. В вопросах выбора паролей надо руководствоваться теми же соображениями что и при выборе паролей при регистрации пользователей.

В качестве дополнительных мер, можно явно указать список пользователей, которым разрешена либо запрещена удалённая работа. За это отвечают параметры AllowUsers и DenyUsers в /etc/openssh/sshd_config.

Наконец, можно осложнить жизнь потенциальному злоумышленнику, отключив возможность удалённой регистрации в системе для суперпользователя (root). Для этого в /etc/openssh/sshd_config нужно добавить строку PermitRootLogin no.

Как и в случае с любыми потенциально опасными службами, следует постоянно следить за обновлениями безопасности, связанными с данными пакетами. Администратор системы, заботящийся о безопасности, должен непременно устанавливать обновления штатным способом:


# apt-get update
# apt-get upgrade

Пример 6. Обновления по безопасности

За более детальной информацией по настройке sshd следует обращаться к руководству sshd_config(5). Настройка клиентской части подробно описана в ssh_config(5).


1Более подробно о технологии асимметричного шифрования можно узнать на http://www.intuit.ru/department/security/networksec/7/ и http://www.mgpu.ru/crypto/2.1.htm.

Сведения о документе