LINUX.ORG.RU

rlogin && kerberos


0

0

помогите разобраться с kerberized rlogin

на сервере запускаю klogind следующим образом
klogind -5ecf

на клиенте пытаюсь подключится к серверу
получаю тикет
kinit
Password for root@SPIKPROSTOR.LOCAL:

тикет получен успешно
klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: root@SPIKPROSTOR.LOCAL

Valid starting Expires Service principal
10/20/05 19:05:15 10/20/05 19:15:06 krbtgt/SPIKPROSTOR.LOCAL@SPIKPROSTOR.LOCAL

подключаюсь к серверу
rlogin svr4
connect to address 192.168.0.4 port 543: Connection refused
trying normal rlogin (/usr/ucb/rlogin)
exec: No such file or directory

из-за чего происходит Connection refused?
firewall отрублен как на сервере так и на клиенте


Ответ на: комментарий от ivlad

ага как можно видеть выше по строчке klogind -5ecf он запущен.
это можно проверить также запустив top
4355 root 17 0 2184 760 636 S 0.0 0.6 0:00.00 klogind

поменял строчку коннекта на
rlogin svr4 -x -f
connect to address 192.168.0.4 port 2105: Connection refused

как видим безрезультатно
в логах также ничего подозрительного не наблюдаю..

outZ
() автор топика
Ответ на: комментарий от outZ

> ага как можно видеть выше по строчке klogind -5ecf он запущен.

мда? Я не нашел в первом попавшемся мане про -f, но вообще-то klogind должен запускаться из inetd или аналога.

netstat -aptn показывает, что на порту кто-то слушает?

ivlad ★★★★★
()
Ответ на: комментарий от ivlad

tcp 0 0 0.0.0.0:14600 0.0.0.0:* LISTEN 4381/klogind

из man klogind

-f Allows for standalone daemon operation. A new child is started for each incoming connection and waits for it to finish
before accepting the next connection. This automagically figures out which port to bind to if no port is specified.

outZ
() автор топика
Ответ на: комментарий от outZ

итак разобрался с данной ошибкой необходимо было менять /etc/services и выставить новые значения портов для шифрованного и нешифрованного rlogin - 14600 и 7938 соответственно

теперь при подключении к серверу появилась новая проблема rlogin пишет

rlogin svr4 -x -f Couldn't authenticate to server: Server rejected authentication (during sendauth exchange) Server returned error code 60 (Generic error (see e-text)) Error text sent from server: No such file or directory

outZ
() автор топика
Ответ на: комментарий от outZ

> Error text sent from server: No such file or directory

strace запусти на сервере и посмотри, чего он там запустиь хочет. Я думаю - что-то из комплекта Kerberos или шелл или rlogind.

ivlad ★★★★★
()
Ответ на: комментарий от ivlad

итак, согласно strace к этим файлам было No such file or directory

/var/run/nscd/socket libnss_dns.so /etc/krb5.keytab

критичный косяк был в обращении к последнему файлу

оказалось, что я позабыл извлечь ключи рабочей станции svr4 выполнив на ней ktadd -k /etc/krb5.keytab host/svr4.spikprostor.local я получил работающий rlogin =)

2 ivlad большое спасибо за помощь!

outZ
() автор топика
Ответ на: комментарий от outZ

я только не понял один момент

почему klogind при запуске выбирал вчера порт 14600, а сегодня порт 2105.

outZ
() автор топика
Ответ на: комментарий от outZ

хм ну вот опять в файле /etc/services прописана строчка
eklogin 2105/tcp #Kerberos encrypted rlogin

этот файл разослан на все сервера
их четыре
svr1 svr2 svr3 svr4

и на все серверах klogind стартует на порту 14600
что создаёт неудобство - rlogin пытается подключиться по 2105 порту, а сервера висят на 14600
получаем connecton refused

стоит поменять эту строчку на
eklogin 14600/tcp #Kerberos encrypted rlogin

и ситуация повторяется с точностью наоборот

что это, баг klogind или мой баг?

outZ
() автор топика
Ответ на: комментарий от outZ

> что это, баг klogind или мой баг?

grep 14600 /etc/services ? getent services eklogin ? getent services klogin ? getent services 2105 ?

где-то накосячил в конфигах, думаю. я не слышал, что б klogin на 14600 было.

хотя, честно говоря, подняв kerberos, я не заморачивался r-сервисами, а OpenSSH керберизировал. imho, это правильнее.

ivlad ★★★★★
()
Ответ на: комментарий от ivlad

svr3 ~ # getent services eklogin eklogin 2105/tcp svr3 ~ # getent services 2105 eklogin 2105/tcp svr3 ~ # cat /etc/services | grep 2105 eklogin 2105/tcp # Kerberos encrypted rlogin svr3 ~ # netstat -aptn Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:14600 0.0.0.0:* LISTEN 3979/klogind

any ideas?

прочитал на этом форуме imho правильную мысль что ssh не нужен при цербере - так как ту же функциональность обеспечивает rlogin -x или rlogin и ipsec

outZ
() автор топика
Ответ на: комментарий от outZ

svr3 ~ # getent services eklogin
eklogin               2105/tcp
svr3 ~ # getent services 2105
eklogin               2105/tcp
svr3 ~ # cat /etc/services | grep 2105
eklogin         2105/tcp               # Kerberos encrypted rlogin
svr3 ~ # netstat -aptn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp    0      0 0.0.0.0:14600  0.0.0.0:*     LISTEN      3979/klogind

outZ
() автор топика
Ответ на: комментарий от ivlad

нет
он выбирает порт 14600 если в конфиге прописана 2105
и выбирает порт 2105 если в конфиге прописано 14600

система - обычный дженту

может левая версия цербера?

anonymous
()
Ответ на: комментарий от outZ

попробуй все-таки из inetd запустить. потом уже можно дальше думать. если у него get service by name не отрабатывает правильно, то это странно.

ivlad ★★★★★
()
Ответ на: комментарий от ivlad

Проблема решилась следующим образом
Всё дело в том, что я пытался использовать демон rlogin без использования xinetd, применяя его параметр -d (man krlogind).
С использованием данного параметра поведение krlogind было некорректным (баг? или моё непонимание документации?). Инсталлировав пакет xinetd в систему и произведя необходимые настройки для krlogind, а именно
cat /etc/xinetd.d/eklogin
service eklogin
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/klogind
server_args = -5ec
disable = no
}

cat /etc/xinetd.d/kshell
service kshell
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/kshd
server_args = -5ec
disable = no
}

я получил работоспособный rlogin

правда остались вопросы по поводу работы krcp и krsh сейчас разбираюсь с ними

outZ
() автор топика
Ответ на: комментарий от outZ

> Инсталлировав пакет xinetd в систему и произведя необходимые настройки

хорошо.

я бы на твоем месте переехал на OpenSSH - это заменит все утилиты сразу.

ivlad ★★★★★
()
Ответ на: комментарий от ivlad

openssh был до этого, сейчас он только на роутере

я бы его оставил, но в этом треде http://www.linux.org.ru/view-message.jsp?msgid=181732&back=&anonymous... мне понравились аргументы о том, что openssh это не unix-way =)

в принципе если не заведется krsh и krcp то придётся возвратиться на ssh

outZ
() автор топика
Ответ на: комментарий от outZ

> я бы его оставил, но в этом треде http://www.linux.org.ru/view-message.jsp?msgid=181732&back=&anonymous... мне понравились аргументы о том, что openssh это не unix-way =)

Там какой-то религиозный бред написан. :) SSH решает поставленную задачу. OpenSSH можно интегрировать с Kerberos, если тебе хочется SSO.

krsh/krcp/ktelnet на моей памяти имели разумное применение только в маршрутизаторах Cisco, где не было ssh. Конечно, они работают. Точнее, я по-моему, проверял только krsh и ktelnet в Solaris, но особых сомнений у меня нет.

Функционал OpenSSH закрывает всю функциональность kr-утилит, в случае внедренного Kerberos, а для тех хостов, которые не находятся в твоем realm'е - позволяет использовать PKI для аутентификации. Кроме того, в OpenSSH существует поддержка LDAP (за счет патчей) для хранения открытых ключей. И еще есть GSSAPI для putty, что тоже очень удобно.

Посему, а не вижу смысла обязательно использовать kr-утилиты, если развернута инфраструктура Kerberos. Kerberized SSH - это хорошо, потому, что добавляет гибкости. YMMV, конечно.

ivlad ★★★★★
()
Ответ на: комментарий от ivlad

а не кинешь ссылкой про putty и gssapi, как это использовать?
порывшись в своём putty я этого не нашёл =(

outZ
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.