Секция 2 из 2 - Предыдущая - Следующая
4. Приложения Ssh.
4.1 Можно ли выполнять "backups" поверх ssh?
Да. С тех пор как ssh технологически заменяет rsh, "backup" скрипты должны
полностью работать. Если же вы пользуетесь "rdist", читайте ниже.
4.2 Нужно ли отключать криптования для увеличения производительности?
Нет, опции шифрации должны быть обязательно использованы, иначе какой смысл
использовать ssh в целях безопасности.
На сегодняшний день быстродействие CPUs[процессоров] таково, что снижение
производительности[на шифрации-дешифрации] если оно и есть? возможно заметить
лишь на скоростях локального Ethernet или более быстрых сетей.
Тем не менее вы можете использовать метод шифрации "blowfish" вместо IDEA,
который работает по умолчанию, для увеличения производительности, достаточно
задать опцию -c blowfish.
Оцените приведенные ниже результаты измерений скорости передачи для разных
методов шифрации между двумя компьютерами P5/90 и 486/100, оба под управлением
OS Linux, файлы передавались с использованием "scp" по сильно загруженному Ethernet.
Была выбрана модель t=a+x/b; где a - _пусковое_ время, b - установленная
скорость передачи. Также был использован коэффициент 68.3% confidence intervals
для данных, как определено по алгоритму Levenberg-Marquardt примененному в версии pre-3.6 gnuplot.
Encryption a[s] da[s] b[kB/s] db[kB/s]
none 2.37 0.37 386.1 5.8
rc4 1.96 0.27 318.2 2.9
tss 2.33 0.37 298.5 3.5
des 2.07 0.19 218.8 1.0
idea 2.25 0.45 169.6 1.3
3des 1.92 0.11 118.2 0.2
При передаче через сильно нагруженный Ethernet, использование rc4 метода шифрации вместе со сжатем будет действительно значительно быстрее чем использование rcp.
4.3 Можно ли использовать ssh для работы через firewall?
Даж вы можете использовать перенаправление TCP для этого, те посредством предоставляемых возможностей безопасного перенаправления TCP соединений.
4.4 Можно ли использовать rdist совместно с ssh?
Исходный rdist 6.1.0 не работает с ssh, из-за ошибок имеющихся в нем. Однако
начиная с версии rdist 6.1.1 и более поздних разработчики завявляют об уверенной
работе с ssh. Rdist доступен: http://www.magnicomp.com/rdist/
Если вы используете rdist, то не забудьте при его компиляции задать ему путь
к ssh. Дополнительно можно можно использовать опцию -P, чтобы rdist
использовал ssh вместо rsh.
Если вы используете проверку пароля, в версиях rdist с 6.1.2 по 6.1.5, вам
необходимо применить приведенный ниже patch[правка]:
--- src/rshrcmd.c.orig Tue Jun 11 16:51:21 1996
+++ src/rshrcmd.c Tue Jun 11 16:52:05 1996
@@ -63,7 +63,7 @@
/* child. we use sp[1] to be stdin/stdout, and close
sp[0]. */
(void) close(sp[0]);
- if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0 || dup2(0, 2) < 0) {
+ if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0) {
error("dup2 failed: %s.", SYSERR);
_exit(255);
}
<p>
Данную правку необходимо применить если при работе rdist вы получаете сообщение
"Warning: Denied agent forwarding because the other end has too old version." данная ошибка возникает при соединение ssh-клиента 1.2.27 или более
позднего со старыми версиями ssh-сервера.
Другой путь использовать в качестве замены rdist -> rsync, который специально
был написан для работы с ssh и гораздо лучше адаптирован к пропускной ширине
канала. Более подробно об rsync смотрите на ftp://samba.anu.edu.au/pub/rsync или ftp://sunsite.auc.dk/pub/unix/rsync.
4.5 Можно ли использовать ssh для безопасного соединения двух подсетей через Internet?
Вы можете запустить PPP через постоянное ssh соединение. Смотрите:
http://www.inka.de/~bigred/sw/ssh-ppp-new.txt
как рабочее решение. И хорошая идея использования для этого сжатия.
Однако здесь имеются _подводные_ камни связанные с перенаправлением TCP соединений.
Потому что ретрансляция может произойти в одно и тоже время как TCP соединения
через ssh так и TCP перенаправления через PPP/ssh туннель. Так что в данном
случае лучше использовать криптованный IP-туннелинг по UDP, а о возможностях
можно прочитать в проекте CIPE: http://www.inka.de/~bigred/devel/cipe.html
.
4.6 Можно ли использовать ssh для перенаправления UDP-сервисов, таких как NFS или NIS?
Существует достаточно рабочее решение для RPC-based сервисов, таких как NIS.
Которое можно взять с: ftp://ftp.tu-chemnitz.de/pub/Local/informatik/sec_rpc/.
NIS практически полностью работоспособен.
В принципе, можно сделать реализацию для NFS, но пока еще не сделано.
Сетевые сервисы, которые полностью реализованы на UDP, такие как DNS, пока
еще не реализованы в ssh, однако это принципиально возможно.
4.7 Можно ли перенаправлять SGI GL соединения поверх ssh?
Он совершено не подходит технологически для реализации. GL использует протокол
совершенно отличный от X, но по-крайней мере gld может быть заменен.
OpenGL, запускаемый как расширение X-сервера не должен создавать проблем. Вам
лишь необходимо установить переменную среды GLFORCEDIRECT=no.
4.8 Можно ли использовать ssh для защиты таких сервисов как FTP или POP?
Если вы не хотите посылать ваш пароль в чистом виде при использовании ftp, то
можно использовать перенаправление командного порта ftp для шифрации пароля, но
при этом надо осозновать что канал передачи данных останется чистым, те данные
которые вы будете передавать через ftp шифроваться не будут и доступны атакам,
те использую этот метод вы защищаете только пароль. Необходимо отметить что
предлагаемый метод не работает в случае firewall.
Допустим вы находитесь на компьютере называемом "myhost" и хотите произвести
ftp соединение с компьютером под именем "ftphost". Тогда на компьютере myhost"
необходимо воспользоваться перенаправлением TCP через ssh:
myhost$ ssh -L 1234:ftphost.example.com:21 ssh-server
Выполнив эту команду вы войде на компьютер "ftphost", а порт "myhost":1234
будет перенапрвлен с использованием ширования на "ftphost":21.
[от себя добавлю что теперь это окно у вас как бы в холостом режиме, но вы можете в нем поработать... ;-)]
Теперь в другом окне на компьютере "myhost", можете запускать клиента ftp следующим образом:
myhost$ ftp localhost 1234
220 ftphost FTP server (Foonix 08/15) ready.
Name: (myhost:yourname):
331 Password required for yourname
Password:
230 User yourname logged in.
Это работает в том случае если удаленный ftp daemon[сервер] позволяет выполнять
PORT команды с указанием адреса host'а отличным от того с которого
поступают команды[типа proxy] и если ftp-client тоже использует PORT.
Это работает для "vanilla" Unix ftp клиентов и серверов, но может не работать
для продвинутых FTPD-серверов, таких как wu-ftpd.
к переводу:
от себя замечу, очень давно, те старые wu-ftpd у меня без проблем работали в пассивном
режиме, а вся проблема упиралась в клиентскую часть, замечено на Convex-OS/SPP-UX[якобы HP]/HP-UX/OSF1.
Решение простое, "man ftp" и если вы нашли там возможность использования пассивного режима PASV, например команда proxy, возможно вам повезло, еще проще - да
поставьте вы какой-либо из продвинутых ftp-клиентов их сейчас масса.
Для определения с какой стороны обрезается, не поддерживается пассивный
режим возьмите заведомо работающие клиент или сервер и посмотрите диагностику.
Для POP, Stephane Bortzmeyer (bortzmeyer@pasteur.fr) написал скрипт который
защищает передачу пароля и данных используя ssh. Он не требует изменений существующих POP клент-сервера и доступен с ftp://ftp.internatif.org/
pub/unix/gwpop/
.
Другие сетевые сервисы можно также обезопасить подобным образом. Однако
стоит отметить что передача нешифрованных _данных_ ftp остается подверженной
похищению и подмене.
4.9 Можно ли использовать ssh через Socks firewall?
Поддержка Socks 4 и 5 должна работать в ssh1 версии 1.2.16 и более поздних.
Поддержка Socks должна работать в ssh2 версии 2.0.11 и более поздних.
4.10 Поддерживает ли ssh работу с AFS/Kerberos?
В настоящий момент поддержка AFS/Kerberos отсутствует в исходных материалах, но
доступны AFS patch[правки] для версии 1.2.x с
http://www-personal.umich.edu/~dugsong/ssh-afs-kerberos.html
или другое место:
http://www.ncsa.uiuc.edu/General/CC/ssh/ssh_ncsa_mods.html
5. Проблемы.
Если вы хотите опубликовать bug report[сообщение об ошибке], отправьте письмо
по адресу ssh-bugs@clinet.fi
содержащее следующее:
-
Номер версии ssh и если отличаются - sshd
-
Что вы обнаружили в действиях ssh
-
Что ssh выполнил вместо положенного(включая сообщения обо всех ошибках)
-
Какую систему вы используете (например, вывод от uname -a), и вывод config.guess.
-
В случае проблем при компиляции, содержимое файла config.log
(сгенерированного посредством configure)
-
Какой компилятор вы использовали и все флаги компиляции
-
Вывод произведенный от ssh -v
-
Вывод от sshd daemon запущенного в отладочном режиме, как sshd -d
Вы также должны попытаться проапгрейдить ssh любо до последней версии 1.2.x,
либо 2.x если используете старую версию.
5.1 "ssh otherhost xclient &" не работает!
Нет, этого не может быть. Используйте вместо этого "ssh -f otherhost xclient", или "ssh -n otherhost xclient &" для совместимости с rsh.
5.2 Ssh сбоит в Solaris, вылетая с сообщением "Resource temporarily unavailable".
Что касается Solaris 2.4, это ошибки ядра. Получите и установите patch 101945-37
для предотвращения этой ошибки в дальнейшем. Заметьте, что в более ранних версиях
101945-36, кажется предотвращает эту ошибку.
Если вы обнаружили подобные проблемы в Solaris 2.5.1, просто установите более
свежую версию ssh - 1.2.14 или еще свежее, это должно решить ваши проблемы.
5.3 Sshd зависает в Solaris 2.5!
Это проблемы кода разделяемой библиотеки Solaris, точнее отдельных функций
nameserver'а.
Получите и установите патч 103187-02 (for x86, 103188-02) для решения этой
проблемы. Данная проблема возможна решена в Solaris 2.5.1.
5.4 Перенаправление X11 не работает в случае выполнения SCO-binary под Linux в режиме iBCS2 эмуляции.
Для решения этой проблемы установите hostname в полной FQDN форме:
hostname=name.domain. В некоторых дистрибутивах Linux в качестве hostname
устанавливается только локальное имя машины.
5.5 Ssh не работает или ошибается в случае multi-homed hosts!
Проверьте возвращает ли gethostbyname() список возможных ip-address или
только один адрес.(такое возможно например в случае, NIS/NIS+, когда в конфигурации системы задан поиск где первым стоит просмотр /etc/hosts в котором указан лишь один из возможных ip-addresses).
5.6 Userid swapping обрывается в AIX!
Это ошибка в AIX 3.2.5, о ней сообщено в APAR IX38941, и выпущены исправления
U435001, U427862, U426915, и несколько других. Для детального ознакомления
свяжитесь с вашим представительством IBM.
5.7 ssh-keygen вываливает в core под Alpha OSF!
В случае Alpha OSF/1 1.3.2, это ошибка родного компилятора при использовании с
максимальной оптимизацией.
Отключите всю оптимизацию для ssh-keygen, или используйте gcc. Заметьте что
Gcc 2.7.2 имеет проблемы на Alpha и тем не менее.
5.8 ssh-keygen вываливает в core под Solaris или SunOS.
Это ошибка gcc gcc 2.7.0, производящего неверный код при компиляции без
оптимизации. Используйте "-O" или "-O -g" опции для gcc или
замените старый gcc на gcc 2.7.2 или более свежий.
5.9 В Linux, компиляция прерывается с сообщениями об ошибках связанных с библиотекой libc.so.4.
Это некорректно сконфигурированная OS Linux; сделайте следующее "cd /usr/lib; ln -s libc.sa libg.sa" из под "root" экаунта чтобы исправить.
5.10 X authorization иногда терпит крах[иными словами не проходит].
Это обнаруженная ошибка в HP-UX 9 xauth, SR 5003209619. Патч PHSS_5568 должен
решить эту проблему.
5.11 Ssh требует ввести пароль несмотря на наличие на удаленной машине файла .rhosts!
Существует несколько возможных вариантов; рассмотрим общие, включающие другие:
-
"host key" клиента не содержится в файле "known_hosts". Это характерно лишь
для FQDN формы, а точнее для канонического имени машины из DNS.
-
Клиент host не имеет реверса в DNS. SSH требует наличия как прямой, так и
обратной записи, для проверки естественно.
-
Когда в DNS отражены не все ip-address принадлежащие multi-homed клиенту, host.
Заметим что ssh версии по 1.2.12 имеют ошибки в плане разбора multi-homed hosts.
-
Домашняя директория пользователя или файл ~/.rhosts имеют разрешение
на запись для "world" или "group".(см. StrictModes опции конфигурации сервера)
По русски это будет - "а шо вы хотели".
-
На некоторых машин, если домашняя директория монтируется по NFS, желательно
чтобы и директория и ~/.rhosts были доступны для "world" на чтение.
-
Сам "root" использует ~/.rhosts или ~/.shosts; ну и ему
нет дела до /etc/shosts.equiv и /etc/hosts.equiv, так
попросите чтобы "root" их посмотрел.
-
Неразбериха между RhostsRSAAuthentication и RSAAuthentication.
RhostsRSAAuthentication функционально заменяет 'r' утилиты; это требует
чтобы программа ssh имела "setuid root", "secret key" в /etc/host_key файле, соответствующий "public key" в /etc/ssh_known_hosts и
запись в ~/.[sr]hosts или /etc/[s]hosts.equiv.
RSAAuthentication выполняется на уровне пользователя и требует наличия ~/.ssh/identity со стороны клиента(сгенерированного ssh-keygen) и файла
~/.ssh/authorized_keys со стороны сервера.
5.12 Почему ssh зацикливается с сообщением "Secure connection refused"?
Это конфигурационная проблема.
Ssh пытается вернуться к методу "r" команд когда не может соединиться с
sshd демоном удаленной машины и в результате пытается запустить старый rsh для
использования старого протокола.
Существуют всего два предположения почему это происходит:
-
Возможно вы установили ssh как rsh и забыли задать опцию при конфигурировании
--with-rsh=PATH и в результате поисков rsh, ssh находит вместо него
себя и снова запускает. Просто перекомпилируйте ssh с учетом сказанного.
-
Вы переместили старые rsh и rlogin в другую директорию, отличную от оригинального
места расположения, но при этом вызов осуществляете корректно, те из того места
куда положили. Но при этом не учли что старый исполняемый модуль rsh содержит в
своем теле жестко-привязанный путь к rlogin.
В этом случае вы можете перенести старые бинарники rsh и rlogin в /usr/old, отпатчить их с запустив Perl скрипт
perl -pi.orig -e 's+/usr/(bin|ucb)/rlogin+/usr/old/rlogin+g ;' /usr/old/rsh
который поправит двоичные модули и положит их в /usr/old/rsh.orig.
И теперь осталось переконфигурировать ssh с --with-rsh=/usr/old/rsh.
Для плохо понимающих, в последнем варианте учитывается что путь в бинарнике имеет конкретную длинну, те чревато заменять например /usr/bin/rlogin на /usr/local/old/rlogin.
5.13 ssh-agent не работает с эмулятором терминала rxvt!
"Очень умный rxvt" закрывает все файловые дескрипторы при запуске, включая и тот
который использовал ssh-agent. ;-) Используйте xterm вместо rxvt или поищите в
архиве http://www.cs.hut.fi/ssh/ssh-archive/ ссылку на правку в rxvt сделанную Timo Rinne.
5.14 X authorization ВСЕГДА завершается неудачно.
Это происходит по той причине что программа "xauth" НЕ БЫЛА найдена во время
конфигурации. Поправьте path, переконфигурируйте и перекомпилируйте ssh.
Это также могло произойти при сборке ssh с --with-libwrap и необходимая sshdfwd-X11: строка отсутствует в файле /etc/hosts.allow
те в файле не указан host с которого разрешено заходить.
5.15 ssh зависает когда перенаправляет много TCP соединений.
Это известные скоростные проблемы в ssh протоколе до версии 1.2.13.
Некоторые изменения были сделаны в протоколе версии 1.2.14 чтобы избежать
этого, но проблема межде версией 1.2.14 и более ранними осталась. Установите
более свежие версии ssh, желательно последние и с обоих сторон.
5.16 Что означает сообщение, "Warning: remote host denied X11 forwarding"?
Либо с удаленной стороны запрещено перенаправление X11 (ForwardX11 No
в config файле) или при сборке не были найдены X11 библиотеки или команда xauth.
5.17 Я продолжаю наблюдать чистые[некриптованные] пакеты в сети хотя работаю под ssh!
Это очень замечательно что вы следите за telnet, rlogin или X session на той
машине где вы запустили ssh. Однако вы уверены что это действительно пакеты ssh?
(к примеру проверьте номера их портов; sshd слушает 22-ой порт по умолчанию).
5.18 Возникают проблемы с RSAREF, иногда используется очень много бит!
Это ограничения библиотеки RSAREF. Вы должны установить "host key" не больше
чем 896, максимально возможное значение приветствуется.
5.19 Компиляция завершается с сообщениями об ошибках от ассемблера.
В некоторых операционных системах имеются ошибки в подпрограмме ассемблера gmp.
Попробуйте
make distclean
configure --disable-asm
для компиляции.
5.20 Ssh не компилируется под Solaris 2.5!
Перед запуском "configure" установите переменную среды CPP в "cc -E -Xs".
5.21 Ssh неожиданно сбрасывает соединения!
Эта проблема была обнаружена разными людьми на разных платформах SunOS 4,
Solaris 2, Linux, and HP-UX 9 and 10, с версиями ssh 1.2.16 и 1.2.17. Она
происходит с scp когда передается больщое количество данных через ssh stdin
или при перенаправлении через X большого количества графических данных
(например MPEG movie).
Попробуйте применить следующие правки к 1.2.16 or 1.2.17 for a fix. Это
исправлено в 1.2.18 и позже.
--- serverloop.c.orig Tue Jan 21 14:38:25 1997
+++ serverloop.c. Tue Jan 21 14:37:54 1997
@@ -405,7 +405,7 @@
buffer_len(&stdin_buffer));
if (len <= 0)
{
- if (errno != EWOULDBLOCK)
+ if ((errno != EWOULDBLOCK) && (errno != EAGAIN))
{
if (fdin == fdout)
shutdown(fdin, 1); /* We will no longer send. */
5.22 Ssh соединения перенаправляются от "root"-а!
Когда клиент соединяется, sshd фокует[запускает особым образом] дочерний
процесс для управления протоколом, запущенный _дочерний_ процесс в свою очередь
запускает еще одного потомка для выполнения пользовательского shell или команд.
Проблема в том что вызов setuid() корректно запускает только второго потомка,
а первый вынужден оставаться запущенным как root.
Среди других потенциальных проблем, такая как перенаправление соединений
через -Lx:host:port будет выполнять соединение "host:port" от "root uid", с
того моммента как first дочерний процесс стартует. А это означает что
когда заданный компьютер попытается идентифицировать от какого пользователя
идет запрос, он получит что от "root", вместо реального пользовательского uid.
Это ситуация продолжает оставаться известной как "ошибка", и неизвестно
будет ли данная технологическая проблема исправлена в следующих реализациях.
5.23 Где можно найти правки[patches] для ssh?
James Barlow управляет
хранилищем правок для ssh:
http://www.ncsa.uiuc.edu/General/CC/ssh/patch_repository/
Его комментарии:
"Я выложил правки сделанные нами, плюс которые были _постированы_
в конференции и несколько мне неизвестных. Имеется страница с описание этих
правок, но если у кого то имееются дополнительные сведения дайте мне знать.
Большинство правок относится к версии 1.2.x, но я с успехом использовал многие
для 2.0.x."
6. Разное.
6.1 Какие ошибки "безопасности" известны и в каких версиях ssh?
-
Все версии ssh по 1.2.12 имели серьезный недостаток в безопасности который
позволял локальному пользователю получить доступ к секретному ключу компьютера
- "host key". Это было исправлено во всех последующих версиях начиная с 1.2.13.
-
Версии ssh по 1.2.17 имели проблемы с обработкой подлинности проверки агента на
некоторых машинах. Есть шанс(a race condition/кто обгонит :) который мог позволить злоумышленнику украсть чужие credential[удостоверения]. Это исправлено и в
1.2.17 и соответственно в следующих версиях.
-
Метод шифрования "arcfour" в некоторых ситуациях делал ssh протокол очень
чувствительным, это касалось первых версий "1", однако впоследствии он был
отключен начиная с версии 1.2.18.
-
В версиях до 1.2.23 использовался CRC32 метод компенсации атак, который в свою
очередь позволял возможность выполнения случайных команд. Для более подробного ознакомления смотрите http://www.core-sdi.com/ssh.
6.2 Насколько широкое распространение получило использование ssh?
[ Эта информация существенно изменяется каждый день. А использование ssh возрастает просто фантастически! ]
Как и в отношении любого свободно распространяемого продукта, сложно сделать
прогноз предполагаемого количества использующих ssh. Уместнее будет оценка
того что более 1000 институтов в 40 странах используют ssh, а данная оценка основана на
-
количестве людей из списка рассылки ssh, около 600 из 40 разных стран и нескольких сотен доменов
-
Каждую неделю к домашней www-странице ssh производят доступ с 5000 различных
машин, многие из которых являются в свою очередь web-кешами и адреса машин с
которых приходят запросы меняются каждую неделю.
6.3 Вам не нравятся коммерческие аспекты в ssh...
Спецификация протоколов ssh свободно доступна. Нет никаких ограничений если
кто-то захочет реализовать новый продукт совместимый с ssh и распространяемый на
иных условиях.
Ssh проложил курс в стандарты интернет и это подразумевает что нужны новые,
вторичные, независимые разработки его применения.
Вы должны осозновать что методы шифрации RSA,IDEA запатентованы и необходимо
получить соответствующие разрешения для написания второй реализации.
6.4nbsp;Средства альтернативные SSH.
Существуют и другие надежные средства шифрации и проверки подлинности удостоверения доступа извне. Возможно у вас появиться интерес попробовать их тоже.
6.5 Заслуги.
Безусловно, основная заслуга принадлежит Tatu Ylonen и как автору и в том что он
сделал этот продукт публично доступным! Автор благодарит его как за предоставленную документацию, так и за коррекцию этого документа.
Спасибо Thomas.Koenig написавшему оригинальный FAQ еще по версии SSH1.
Спасибо "списку-рассылки" ssh за предоставленные вопросы и ответы отраженные
в данном документе.
Секция 2 из 2 - Предыдущая - Следующая
© faqs.org.ru