Защищенная оболочка SSH(Часть 2)
Установка защищенной оболочкиSsh довольно легко устанавливается на любых Unix-системах. Используется gnu autoconf для генерации конфигурационного shell-сценария. В большинстве случаев этот сценарий сам определит, что ему нужно знать о Вашей системе, и сгенерирует набор строительных "makefiles." Вы захотите, возможно, переопределить некоторые из опций для своей локальной установки. Чтобы начать процесс установки, скачайте свежую версию дистрибутива ssh с ftp-сервера. На сегодняшний день последняя версия 1.2.22. Получив дистрибутив, разархивирyйте (untar) его в локальный каталог. При использовании gnutar, команда выглядит так: gtar -xzvf ssh-1.2.22.tar.gz При этом создастся каталог ssh-1.2.22, который содержит все необходимые файлы для построения ssh. Ssh поставляется со своей собственной версией gnu multiprecision library (gmp), которая была специально для него модифицирована. Ssh содержит также gnu compression library (zlib). Теперь после разархивирования исходных файлов, перейдите в каталог ssh. Если Вас устраивают значения по умолчанию, можно просто начать конфигурационный процесс: ./configure Есть ряд опций, относящихся к конфигурации и функционированию. Здесь мы рассморим те, которые Вам, вероятно, захочется изменить. Следующая команда показывает все доступные конфигурационные опции: ./configure --help Конфигурационные опцииВот те опции, которые вы можете захотеть изменить по сравнению с их значениями по умолчанию: --prefix= Эти опции сообщают процессу конфигурации конечные каталоги для программ и файлов поддержки. --x-includes= Здесь указывается не включать поддержку для шифрования IDEA. IDEA требует в большинстве стран лицензии на коммерчесkое использование. --with-login[= Дается указание использовать /bin/login (или --with-rsh[= Здесь ssh указывается где будут находится r-программы, когда ssh потребуется вернуться к использованию rsh. Ssh сконструирован так, что он может быть установлен для замены существующих r-команд, но автоматически переключится на использование rsh, если удаленный хост не поддерживает ssh. Для этих целей ssh должен знать каталог, где находятся rsh, rlogin и rcp. --with-etcdir= Это каталог, который будет содержать системные файлы ssh. Именно здесь находятся host keys, конфигурационные файлы и т.д. --with-securid[= Это обеспечивает поддержку системы аутентификации SecurID фирмы Security Dynamics. Необязательный параметр пути указывает процедуре конфигурации, где найти заголовочные файлы и библиотеку sdiclient.a. --with-tis[= Эта опция обеспечивает поддержку Kerberos версия 5 для аутентификации пользователей. Если путь не указан, то при конфигурировании по умолчанию будет использовано /usr/local для корня дерева установки Kerberos. --with-libwrap[= Эта опция обеспечивает поддержку библиотеки tcp_wrapper. Необязательный путь указывает, где найти библиотеку, если она отсуствует в локальном каталоге. Заголовочный файл tcpd.h ищется в стандартном пути для include. --with-socks (no) --with-socks4[= Обеспечивает поддержку socks proxy. Если Вы используете опцию --with-socks, то процесс конфигурации попытается сначала найти библиотеку libsocks5, а затем библиотеку libsocks версии 4. --with-rsaref[= Обычно sshd проверяет, что файлы аутентификации пользователя могут изменяться только пользователем. Установка данной опции разрешает право записи в файлы для членов группы. Делать это надо осторожно, поскольку такое изменение распространяется на всю систему. --disable-server-port-forwardings (no) --disable-client-port-forwardings (no) --disable-server-x11-forwarding (no) --disable-client-x11-forwarding (no) Эти опции отменяют переадресовку произвольных TCP портов или X11 как для клиента, так и для сервера. --disable-asm (no) Теперь, когда Вы выбрали конфигурационные опции, нужно запустить процесс конфигурации с выбранными значениями опций: ./configure --with-rsh --prefix=/local --with-libwrap=. --with-rsaref creating cache ./config.cache checking host system type... sparc-sun-solaris2.5.1 checking cached information... ok checking for gcc... gcc checking whether the C compiler (gcc ) works... yes [...] checking whether to use libwrap... yes checking whether to use rsaref... yes [...] creating ./config.status creating Makefile creating sshd.8 creating ssh.1 creating make-ssh-known-hosts.1 creating zlib-1.0.4/Makefile creating config.h После окончания процесса конфигурации наберите make, а затем make install. Если Вы не уверены, что именно будет установлено где, то можно набрать make -n install, и Вы увидите, что должно произойти при установке. После установки ssh, необходимо запустить daemon. Кроме того нужно сконфигурить Daemon, чтобы он всегда запускался при загрузке машины. Этого можно добиться с помощью inetd, но такой путь не рекомендуется из-за начальной задержки при запуске daemon и генерации нового серверного ключа. Лучше запускать daemon отдельно (standalone) через сценарий запуска Вашей системы. Для Solaris, поместите сценарий в /etc/init.d и установите ссылку (link) в стартовый каталог rc3.d с соответствующим именем. Пример можно увидеть по адресу http://sunsite.unc.edu/pub/packages/security/ssh/contrib/solaris-autostart.
Конфигурация сервера - опции командной строки для sshdПоскольку многие опции командной строки sshd можно задать в конфигурационном файле, мы рассмотрим только те, которые доступны лишь в командной строке. Опции для sshd включают: -d Режим отладки. -f Эта опция указывает местоположение и имя конфигурационного файла. Значение по умолчанию /etc/sshd_config. -i Эта опция указывает ssh, что он работает под inetd. Это не рекомендуется поскольку sshd должен сгенерить серверный ключ до связи с клиентом, что вызывает заметную задержку для клиента. Установки конфигурационного файла для sshd Конфигурационный файл для sshd (/etc/sshd_config) позволяет Вам установить опции, меняющие работу демона. Ниже приведены основные ключевые слова. AllowHosts шаблон AllowUsers шаблон AllowGroups шаблон Эти ключевые слова определяют набор хостов, пользователей или пользователей в первичной групе (группе пользователя по умолчанию), которым разрешено соединение или регистрация в системе. Шаблон - это разделенный пробелами список хостов, регистрационных или групповых имен и может содержать модификаторы (wildcards) '*' и '?'. Никакие другие системы или пользователи не имеют доступа (tcp_wrappers обычно бывают полезнее, чем AllowHosts). DenyHosts pattern DenyUsers pattern DenyGroups pattern Обратное по отношению к AllowHosts, AllowUsers и AllowGroups. Эти ключевые слова определяют набор хостов, пользователей или пользователей в первичной групе, которым не разрешено соединение или регистрация в системе. Шаблон - это разделенный пробелами список хостов, регистрационных или групповых имен и может содержать модификаторы (wildcards) '*' и '?'. Все другие системы или пользователи имеют доступ X11Forwarding yes|no (yes) Приятным свойством ssh является автоматическая переадресация сеансов X11 по шифрованному каналу. Данная опция позволяет отменить указанную переадресацию. AllowTCPForwarding yes|no (yes) При значении "no" отменяет переадресацию произволтных TCP портов по шифрованному каналу. IgnoreRhosts yes|no (no) Запрещает использование файлов пользователя .rhosts или .shosts для аутентификации. /etc/hosts.equiv и /etc/shosts.equiv остаются действительными. PermitRootLogin yes|no|nopwd (yes) Указывает возможность регистрации root через ssh. Nopwd запрещает использование пароля для регистраций root, но другие формы аутентификации сохрвняют силу. PrintMotd yes|no (yes) Указывает sshd выводить на экран содержимое /etc/motd во время регистрации. RhostsAuthentication yes|no (no) RhostsRSAAuthentication yes|no (yes) RSAAuthentication yes|no (yes) KerberosAuthentication yes|no (yes) TISAuthentication yes|no (no) Указываются разрешенные типы пользовательской аутентификации. Примечание: RhostsAuthentication по умолчанию отменено при компиляции. Kerberos и TIS требуют предварительного конфигурирования до компиляции. StrictModes yes|no (yes) По умолчанию sshd проверяет права в домашнем каталоге пользователя, каталоге .ssh, и для любых других файлов аутентификации, прежде чем разрешить регистрацию. Это полезно для геопытных пользователей, которые иногда случайно оставляют свои домашние каталоги или файлы открытыит на запись. SyslogFacility DAEMON | USER | AUTH | LOCAL[0-7] (DAEMON) Указывает sshd, какой код использовать при журналировании сообщений. Umask numeric-value (no umask set) Устанавливает umask по умолчанию для sshd и всех его "потомков". Конфигурирование клиента: Опции командной стоки для sshКа и для sshd, многие опции командной строки клиента продублированы в конфигурационном файле. -f -n -l login_name -o option -p port -t -L local_port:host:host_port -R server_port:host:host_port -v -V Установки конфигурационного файла для sshКонфигурационные файлы для клиентских программ находятся в двух местах. Общесистемный конфигурационный файл лежит в /etc/ssh_config. Конфигурационный файл пользователя лежит в $HOME/.ssh/config. Host шаблон Hostname hostname User username Cipher idea | 3des | blowfish (IDEA) Compression yes|no (no) FallBackToRsh yes|no (yes) ForwardX11 yes|no (yes) LocalForward port host:port RemoteForward port host:port RhostsAuthentication yes|no RhostsRSAAuthentication yes|no RSAAuthentication yes|no PasswordAuthentication yes|no KerberosAuthentication yes|no TISAuthentication yes|no StrictHostKeyChecking yes|no|ask (ask) Допонительные средства безопасностиSsh имеет дополнительные возможности, которые делают его еще более безопасным для удаленного администрирования. Сюда относится возможность ssh управлять функциональностью определенного ключа при регистрации. (Это свойство требует исполбзования RSA Authentication.) Управление осуществляется с помощью опций в файле $HOME/.ssh/authorized_keys. TCP wrappersПакет tcp_wrappers (Wietse Venema) обеспечивает дополнительные свойства
безопасности, которыми может воспользоваться ssh. Если ssh скомпилированн
с возможносью использовать, то Вы получаете возможность управлять
основными ssh-соединениями, переадресацией X11 и переадресацинй TCP портов
с помощью файлов /etc/hosts.allow и /etc/hosts.deny, которые управляют
также другими "wrapped"-приложениями. Ключевые слова для использования в
файлах allow и deny: sshdfwd-X11, sshdfwd- Сервер контролирует доступ к любому удаленному переадресованному портк (используя опции -R или RemoteForward), а клиент контролирует доступ ко любому из переадресуемых локальных портов (используя -L или LocalForward). Когда хост пытается соединится с переадресуемым портом, этот хост проверяется относительно содержимого файлов /etc/hosts.allow и /etc/hosts.deny, и принимается соответствующее решение о предоставлении доступа. Итак, Ssh является мощным инструментом, который может помочь Вам улучшить защищенность Ваших систем. Его улучшенная аутентификация пользователей и сквозное шифрование позволяют предотвратить многие опасности, подстерегающие сетевые системы. Даже незащищенные tcp-протоколы могут стать безопасными при переадресации по защищенным каналам ssh. При использовании ssh, необходимо выработать определенную политику соединений. Сюда должны относиться переадресация портов и X11, доступ root, и т.д. Системные конфигурационные файлы (ка для сервера, так и для клиентов) должны проверяться на соответствие с такой политикой доступа. Для систем, нуждающихся в повышенной безопасности, должны быть отменены альтернативные механизмы соединения вроде telnet или rsh. Ресурсы
Версии ssh
документация по ssh
newsgroup - comp.security.ssh Новости в области безопасности
|