26.04.2012

Аутентификация SSH через LDAP public key

До того, как начать, нужно обязательно научить SSH работать с LDAP.  Без этого дальше можно не читать.


Первым делом мы должны определиться какую версию OpenSSH мы будем переделывать. Дело в том, что патчи есть не под все версии. Поэтому будем отталкиваться от тех, которые есть. Переходим на страничку патчей и ищем те, которые совпадают с номерами версий, выпущенных с релизами Debian.
Чтобы узнать какие версии шли с Debian, нужно зайти сюда и прощелкать справа сверху все версии.

Если наш дистрибутив отличается от того, который нам подошел, то добавляем его репозиторий и будем ставить другую версию.

Например. Мы видим, что есть патчи под 5.1, 5.3, 5.4. А у нас Squeeze, с которым идет 5.5. Значит смотрим Lenny - там шла 5.1. А на эту версию у нас патч как раз есть. Добавляем репозиторий Lenny:

vi /etc/apt/sources.list

## Debian Lenny base:
deb http://archive.debian.org/debian/ lenny main non-free contrib
deb-src http://archive.debian.org/debian/ lenny main non-free contrib
Обновляем:
apt-get update

Перейдем в директорию работы с исходным кодом:
cd /usr/src/

Смотрим какие версии нам стали доступны после подключения репозитория от Lenny:
apt-cache show openssh-server | grep Version
Скачаем исходники OpenSSH нужной нам 5.1-версии:
apt-get source openssh-server=1:5.1p1-5

И затем зайдем туда:
cd openssh-5.*p1



Теперь загружаем наш патч. Естественно для версии 5.1. Кладем его в эту же директорию. Обращаю внимание, что в тексте патча первые 15-16 строк - мусор. Его не надо в патч брать. Начинайте со слова diff

Далее накатываем этот патч:
patch -Np1 -i contrib-openssh-lpk-5.1p1-0.3.10.patch
Теперь нам надо добавить одну опцию
vi +85 debian/rules

confflags += --with-ldap
А еще поменять информацию о пакете:
debchange
Ну и теперь можно собирать:
debuild -uc -us
Переходим в директорию выше и видим два нужных нам пакета:
cd ..
ls -ltr openssh*.deb
Ставить обязательно оба пакета одновременно. Поставить собственные openssh-server 5.1 рядом со стандартным openssh-client 5.5 не получится:

dpkg -i openssh-server_5.1p1-5.1-nsq_amd64.deb openssh-client_5.1p1-5.1-nsq_amd64.deb
С пакетом готово. Теперь надо отконфигурировать OpenSSH.


Добавим в конфиг следующие строчки:

vi /etc/ssh/sshd_config

UseLPK yes
LpkServers         ldap://ldap.nodesquad.com
LpkUserDN          ou=people,dc=
nodesquad,dc=com
#LpkGroupDN         ou=groups,dc=
nodesquad
,dc=com
LpkBindDN          cn=admin,dc=
nodesquad,dc=com
LpkBindPw          vaSheiB2Ayaemuush9ai
#LpkServerGroup     Domain Users
LpkForceTLS        no
#LpkSearchTimelimit 3
#LpkBindTimelimit   3

Так как мы вписали пароль, да еще и от такого серьезного сервиса, то конфиг теперь надо сделать нечитабельным:
chmod 400 /etc/ssh/sshd_config
Ну и наконец рестартуем SSH-сервис:
service ssh restart

Можно пробовать законнектиться под пользователем LDAP.
Не все сразу заведется по разным причинам, так что сразу несколько советов:

Комментариев нет:

Отправить комментарий