Невинные SSH'алости в сетях
Andrushock
Xakep, номер #057, стр. 057-078-4
Подгружаемые модули аутентификации берут на себя роль заботливых ключников, полностью освобождая программы, требующие регистрации пользователя, от проблем, связанных с выбором алгоритма и особенностями аутентификации в конкретной системе.
Для включения поддержки аутентификационных модулей придется снова обратиться к /etc/ssh/sshd_config:
# vi /etc/ssh/sshd_config
PAMAuthenticationViaKbdInt yes
Примеры pam-файлов, rc и init-скриптов для FreeBSD, дистрибутивов Suse, Caldera, Red Hat Linux можно найти в каталоге openssh-3.6.1p2/contrib. Чтобы не повторяться, приведу содержимое моего pam-конфига для sshd в Gentoo Linux:
# vi /etc/pam.d/sshd
#%PAM-1.0
auth required pam_stack.so service=system-auth
auth required pam_shells.so
auth required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
Как видишь, PAM представляет собой обычные программные библиотеки. Модуль auth выполняет проверку наличия пользователя в системе и сверяет регистрационные данные, модуль account контролирует распределение ресурсов системы для каждого бюджета, журналированием событий занимается модуль session, а за введенный пользователем пароль отвечает модуль password.
<SSH-туннелирование>
Одной из самых интересных возможностей OpenSSH является перенаправление портов, с помощью которого очень удобно создавать криптованные туннели через незащищенные сети. Лучше всего это объяснить на примере. Допустим, ты только что подключился к домашней сети и решил проверить почту на недавно похаченном сервере в Нидерландах ;-). Ты ничего не знаешь о топологии этой сети, о компетентности односетчан, о присутствии перехватчиков сетевых пакетов... не сеть, а кот в мешке. Задача: необходимо обеспечить зашифрованную связь и препятствовать перехвату наших паролей и долгожданных писем.
После выполнения следующей команды на 10 минут (600/60 сек) будет создан SSH1-туннель для безопасного доступа к службе POP3 на узле hacked.box.nl:
# ssh -c blowfish -1 -4 -C -x -f -L 110:localhost:110 shocker@hacked.box.nl sleep 600
Если в данный момент ты находишься в Windows, то попробуй использовать plink (www.chiark.greenend.org.uk/~sgtatham/putty/):
plink -1 -4 -L 110:localhost:110 shocker@hacked.box.nl sleep 600
Теперь измени в своем почтовом клиенте адрес POP3-сервера на 127.0.0.1 и спокойно забирай почту.
Немного усложним задачу: требуется подключаться по протоколу SSH2 и форвардить не только POP3, но и SMTP-соединения. Плюс дать возможность другим пользователям использовать твой туннель (флажок -g):
# ssh -2 -4 -C -N -f -g -L 25:localhost:25 -L 110:localhost:110 shocker@hacked.box.nl
<X в стиле ][>
Согласись, при подключении к удаленному узлу тебе неоднократно приходила в голову мысль избавиться от нагоняющего тоску текстового режима и в полной мере насладиться возможностями X-Window. Не вопрос. Рассмотрим самый распространенный случай, когда клиентом выступает Windoze, а в роли сервера - *nix. Понадобятся всего лишь две программы: X-win32 - реализация X11-сервера для Windows (со всеми необходимыми шрифтами ~11 мегов; www.starnet.com/) и F-Secure SSH Client (~5 мегов; www.f-secure.com/products/ssh/). Ни PuTTY, ни SecureCRT использовать не получится: X-win32 работает только со своим ssh-клиентом.