Чтение онлайн

ЖАНРЫ

Сетевые средства Linux

Смит Родерик В.

Шрифт:

Программное обеспечение для поддержки SSH

Существуют два основных пакета SSH, предназначенных для работы в системе Linux: коммерческий продукт SSH (

http://www.ssh.com/products/ssh/
), разработанный компанией SSH, и пакет OpenSSH, распространяемый в исходных кодах (
http://www.openssh.org
). Пакет OpenSSH входит в состав многих версий Linux, в частности, Caldera 3.1, Debian 2.2, Mandrake 8.1, Red Hat 7.2, Slackware 7.0 и SuSE 7.3. Если версия пакета, поставляемая в составе операционной системы, вас не устраивает, вы можете обратиться на Web-узел OpenSSH. (Перед использованием коммерческой версии SSH необходимо ознакомиться с лицензионным соглашением.) Далее в этой главе я буду использовать термин SSH для обозначения любой реализации данного
протокола.

На заметку

Проект OpenSSH имеет непосредственное отношение к операционной системе OpenBSD. Двоичные коды OpenSSH различаются для разных систем. В документе

http://www.openssh.org/portable.html
содержится информация об использовании OpenSSH в системах, отличных от OpenBSD, в том числе в различных версиях Linux. При желании вы можете скопировать с сервера исходные коды данного продукта и скомпилировать их самостоятельно.

В декабре 2001 года была создана версия 3.1 продукта SSH. В том же месяце был выпущен пакет OpenSSH 3.0.2. В версиях 3.0.x этих продуктов поддерживался приблизительно одинаковый набор возможностей и использовалась одна и та же технология кодирования. В версии 3.1 SSH была добавлена поддержка PKI (Public Key Infrastructure — инфраструктура открытого ключа), позволяющая использовать для идентификации участников взаимодействия сертификаты, реализована возможность аппаратной идентификации, а также включены другие дополнительные средства. Продукт SSH несколько опережает по своему развитию OpenSSH; это вполне объяснимо, так как протокол SSH был разработан компанией SSH.

Программы SSH и OpenSSH могут взаимодействовать между собой, поэтому, организуя обмен по протоколу SSH, не слишком важно, какой тип клиента и сервера используется на компьютерах. Существуют незначительные несоответствия между конкретными версиями пакетов, которые нетрудно учесть. Протокол SSH разработан так, что компьютеры, на которых установлено программное обеспечение, поддерживающее различные версии SSH, могут использовать средства, присутствующие в обеих версиях. Например, если на одном компьютере поддерживается SSH 2, а на другом — SSH 3, они могут взаимодействовать по протоколу SSH 2.

В большинстве случаев пакет OpenSSH поставляется в виде нескольких файлов. Наиболее важными являются

openssh
, поддерживающий базовые средства SSH, а также
openssh-client
и
openssh-server
, которые реализуют соответственно клиентскую программу и сервер.

Протокол SSH распространен не так широко как Telnet, поэтому вам необходимо специально установить клиентские программы SSH на компьютеры ваших пользователей. Такие программы существуют для различных операционных систем. Информация о бесплатно распространяемых клиентах SSH находится на сервере

http://www.freessh.org
. Поддержку SSH обеспечивают также многие коммерческие терминальные программы, ориентированные на работу в системах Windows и MacOS. Инсталлировать клиент SSH нетрудно; сложнее доставить эти программы на все компьютеры и научить пользователей работать с ними.

Возможности SSH

Основное отличие SSH от большинства протоколов удаленной регистрации заключается в том, что SSH обеспечивает шифрование передаваемых данных. Кроме того, данный протокол поддерживает перенаправление, или туннелирование, сетевых портов между клиентом и сервером. Это значит, что посредством SSH-соединения могут передаваться пакеты других протоколов. Возможна конфигурация, при которой SSH-соединение будет автоматически использоваться для обмена данными по некоторому протоколу, например, такое взаимодействие реализовано для X Window. (Подробно вопрос установления соединений средствами X Window будет рассмотрен в главе 14.) Затратив определенные усилия для настройки системы, можно реализовать туннелирование сообщений любого протокола посредством защищенного соединения. Вы можете даже использовать средства PPP для создания сетевого интерфейса, предполагающего туннелирование средствами SSH. В результате можно получить виртуальную частную сеть (VPN — Virtual Private Network). Необходимые действия по настройке такой сети описаны в документе VPN HOWTO (

http://www.linuxdoc.org/HOWTO/VPN-HOWTO.html
).

Заслуживает

внимания еще одна возможность протокола SSH — непосредственная реализация инструментов, не связанных с регистрацией в системе. В частности, в состав пакета SSH входит программа под названием
scp
, которая используется для копирования файла с одного компьютера на другой. Формат вызова этой команды приведен ниже.

scp [[пользователь1]узел1:]имя_файла1 \

 [[пользователь2]узел2:]имя_файла2]

Вызов

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

Дополнительные интерактивные возможности при передаче файлов обеспечивает программа

sftp
, которая работает подобно традиционной программе
ftp
, но защищает содержимое файлов и регистрационные данные посредством кодирования. Некоторые FTP-клиенты с графическим интерфейсом, например gFTP (
http://gftp.seul.org
), также поддерживают передачу данных на базе SSH. Таким образом, средства SSH, по сути, дублируют функции Telnet и FTP.

Стандартный сервер SSH (программа

sshd
) поддерживает как работу SSH-клиента (в системе Linux это программа
ssh
), так и обмен данными с программами
scp
и
sftp
. Этот сервер также обеспечивает туннелирование портов. Весь трафик проходит через стандартный SSH-порт 22.

Опции, используемые при запуске сервера SSH

Независимо от того, какую реализацию протокола SSH вы используете, сервер обычно запускается с помощью сценария SysV. Запуск сервера может осуществляться также посредством суперсервера, но такая возможность используется крайне редко. Дело в том, что запуск старых версий сервера происходил с большой задержкой, так как некоторые операции, выполняемые при запуске, создавали большую нагрузку на процессор. Если сервер выполняется на современном оборудовании, задержка практически не заметна, поэтому при желании вы можете сконфигурировать

sshd
для запуска посредством суперсервера. При этом необходимо указывать опцию
– i
, назначение которой будет рассмотрено ниже.

При вызове сервера SSH могут быть заданы различные опции, изменяющие поведение программы. Опции, предусмотренные в пакете OpenSSH 3.0.2, перечислены ниже.

• 

– d
. В обычных условиях сервер выполняется в режиме демона. Данная опция задает режим отладки, при котором сервер выполняется в качестве задачи переднего плана, поддерживает лишь одно соединение и выводит дополнительную отладочную информацию. Указывая дополнительные опции
– d
(
sshd
поддерживает до трех символов
d
), вы можете задать вывод дополнительных сведений о работе программы.

• 

– D
. Эта опция отменяет режим демона, но, в отличие от опции
– d
, она не переводит сервер в режим отладки.

• 

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

• 

– f конфигурационный_файл
. В качестве конфигурационного файла сервер обычно использует
/etc/ssh/sshd_config
, но с помощью данной опции вы можете указать другой файл.

Поделиться с друзьями: