До того, как начать, нужно обязательно научить SSH работать с LDAP. Без этого дальше можно не читать.
Первым делом мы должны определиться какую версию OpenSSH мы будем переделывать. Дело в том, что патчи есть не под все версии. Поэтому будем отталкиваться от тех, которые есть. Переходим на страничку патчей и ищем те, которые совпадают с номерами версий, выпущенных с релизами Debian.
Чтобы узнать какие версии шли с Debian, нужно зайти сюда и прощелкать справа сверху все версии.
Если наш дистрибутив отличается от того, который нам подошел, то добавляем его репозиторий и будем ставить другую версию.
Например. Мы видим, что есть патчи под 5.1, 5.3, 5.4. А у нас Squeeze, с которым идет 5.5. Значит смотрим Lenny - там шла 5.1. А на эту версию у нас патч как раз есть. Добавляем репозиторий Lenny:
Перейдем в директорию работы с исходным кодом:
Смотрим какие версии нам стали доступны после подключения репозитория от Lenny:
И затем зайдем туда:
Теперь загружаем наш патч. Естественно для версии 5.1. Кладем его в эту же директорию. Обращаю внимание, что в тексте патча первые 15-16 строк - мусор. Его не надо в патч брать. Начинайте со слова diff
Далее накатываем этот патч:
cd ..
ls -ltr openssh*.deb
Ставить обязательно оба пакета одновременно. Поставить собственные openssh-server 5.1 рядом со стандартным openssh-client 5.5 не получится:
Добавим в конфиг следующие строчки:
Так как мы вписали пароль, да еще и от такого серьезного сервиса, то конфиг теперь надо сделать нечитабельным:
Можно пробовать законнектиться под пользователем 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.
Не все сразу заведется по разным причинам, так что сразу несколько советов:
- Сделайте LogLevel DEBUG в /etc/ssh/sshd_config, чтобы в /var/log/auth.log было побольше информации.
- Сделайте olcLogLevel: 512 в /etc/ldap/slapd.d/cn\=config.ldif (полное описание степеней логгирования).
Комментариев нет:
Отправить комментарий