The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Apache + Kerberos + LDAP + PHP на архитектуре sparc 64 (apache ldap php auth sparc kerberos solaris)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: apache, ldap, php, auth, sparc, kerberos, solaris,  (найти похожие документы)
From: Egor Kovalchuk <egor@festu.ru.> Newsgroups: email Date: Mon, 19 Jan 2008 17:02:14 +0000 (UTC) Subject: Apache + Kerberos + LDAP + PHP на архитектуре sparc 64 От автора На просторах рунета очень мало русскоязычной документации по настройке и сборке программ, и иногда приходится просмотреть кучу всевозможной инфы, в поисках мало-мальски достойного HOW-TO. Спасибо тем людям которые собирают крохи информации и объединяют их в хорошие, понятные мануалы. Как говорится респект им и уважуха. Вот я решил поделится своим опытом, может то, что собрал, поможет пусть не всем, но многим. Благодарности Выражаю особую благодарность Морозову Алексею и Александре (aka Pandora) за правку, дополнения и багрепорт статьи Введение Все чаще и чаще приходится сталкиваться с тем, что новые приложение требуют решения на 64 битных платформах, но к сожалению, так сложилось, по крайней мере для Solaris, что все пакеты которые выкладываются 32-х разрядные(в частности sunfreeware.com все пакеты 32-х разрядные). Поэтому пришлость долго компилить все зависимости и утилиты вручную. Что имеем - Sun Solaris 10 5/08 - Cервер на SPARC архитектуре Установки компиляции и переменные, которые будут использоваться export CC=gcc export CFLAGS="-des -Duse64bitall" export LDFLAGS="-mcpu=v9 -m64" export LDDLFLAGS="-mcpu=v9 -m64" -тип процессора и опция 64-х разрядной компиляции export BAP=/future_apache_directory - куда будем устанавливать апач export PREFIX=/future_packets_directory - куда будут помещатся скомпилинные зависимости export SOURCE=/source_path - директория где содержаться наши сырцы Установка Apache Для начала мы должны опредилится, что нам требуется от Apache, мне нужно что бы он поддерживал Kerberos, LDAP, балансировку и проксирование. Поэтому зависимости Apache сводятся к следующему списку expat, libiconv, openldap, zlib, openssl, libgcc, gcc, kerberos К сожалению только два пакета, это libgcc и gcc, содержат в себе 64 битные версии библиотек, поэтому компилить их не надо, - хоть немного счастья ZLIB gmake distclean ./configure --prefix=/PREFIX/zlib gmake gmake install EXPAT gmake distclean ./configure \ --prefix=/PREFIX/expat_path \ --enable-shared \ --disable-static gmake gmake install LIBICONV gmake distclean ./configure \ --prefix=/PREFIX/libiconv_path \ --enable-shared \ --disable-static gmake gmake install OPENLDAP gmake distclean ./configure \ --prefix=/PREFIX/ldap_path \ --enable-syslog \ --with-tls-openssl \ --without-cyrus-sasl gmake gmake install KERBEROS Я использовал исходники кербероса от MIT (http://web.mit.edu/Kerberos/dist) gmake distclean ./configure \ --prefix=/PREFIX/krb_path\ --without-krb4 \ --enable-maintainer-made \ --sysconfdir=/etc/krb5 \ --with-krb5 \ --with-ldap gmake gmake install Ну вот мы и подошли к компиляции Апача Для начала нужно скомпилить две утилиты, которые находятся в дистрибутиве Апача cd SOURCE/apache/srclib Утилита arp cd srclib/apr gmake distclean ./configure --prefix=$BAP --enable-threads gmake gmake install Утилита arp-util cd ../apr-util gmake distclean ./configure --prefix=$BAP \ --with-ldap \ --with-ldap-lib=/PREFIX/ldap/lib \ --with-ldap-include=/PREFIX/ldap/include \ --with-iconv=/PREFIX/iconv \ --with-expat=/PREFIX/expat \ --with-apr=$BAP gmake gmake install Теперь конфигурируем и собираем апач cd ../../ gmake distclean ./configure \ --enable-maintainer-mode \ --prefix=$BAP \ --disable-auth-digest \ --without-perl \ --with-z=/PREFIX/zlib \ --with-iconv=/PREFIX/iconv \ --with-expat=/PREFIX/expat \ --with-apr=$BAP \ --with-apr-util=$BAP \ --with-ssl=/PREFIX/ssl \ --enable-ldap \ --enable-proxy \ --enable-proxy-connect \ --enable-proxy-ftp \ --enable-proxy-http \ --enable-proxy-balancer \ --enable-ssl \ --enable-authnz-ldap \ --enable-krb5=/PREFIX/kerberos \ --enable-modules="all" \ --enable-mods-shared="all" gmake gmake install Ура Апач скомпилирован, но нужно сделать еще один шаг, точнее нужно скомпилить модуль апача для работы с керберосом KERBEROS for APACHE (http://modauthkerb.sourceforge.net/install.html) gmake distclean ./configure \ --prefix=/PREFIX/kerberos\ --without-krb4 \ --with-apache=$BAP \ --with-krb5 gmake gmake install Настройка Апач + Kerberos + LDAP в http.conf # KERBEROS KrbMethodK4Passwd off #выключаем авторизацию кербероса 4 KrbAuthoritative On - если не прошла проверка авторизации то запретить доступ(если опция ставится в офф, то управление передается следующему модулю) AuthName "Kerberos Login" AuthType Kerberos Krb5Keytab /usr/local/proxy/conf/http_keytab.keytab - о кейтабах чуть ниже) KrbServiceName "HTTP/FULL_NAME_SERVER@DOMAIN_SERVER_NAME" - имя сервиса в домене KrbAuthRealm DOMAIN_SERVER_NAME KrbMethodNegotiate On -включение прозрачной авторизации KrbDelegateBasic On KrbSaveCredentials On KrbVerifyKDC Off # END KERBEROS # LDAP AuthzLDAPAuthoritative On AuthLDAPURL "ldap://domain_ip_address:389/DC=DOMAIN,DC=RU?userPrincipalName?sub?(objectClass=*)" NONE Если используете модуль NTLM то используйте вместо userPrincipalName sAMAccountName AuthLDAPURL "ldap://domain_ip_address:389/DC=DOMAIN,DC=RU?sAMAccountName?sub?(objectClass=*)" NONE AuthLDAPBindDN "CN=user,OU=Support,OU=Organization Structure,DC=domain,DC=ru" - полное имя юзера для подключения к домену AuthLDAPBindPassword password - пароль оного юзера AuthLDAPGroupAttributeIsDN on AuthLDAPGroupAttribute member #Require valid-user Require ldap-group CN=group,DC=domain,DC=ru - проверка принадлежности к группе # END LDAP Создание кейтабов Все приведенные команды выполняются на контролерре домена(у меня он Windows) кейтаб для хоста ktpass -princ host/FULL_NAME_SERVER@DOMAIN_SERVER_NAME -mapuser host@DOMAIN_NAME \ -crypto DES-CBC-MD5 -ptype KRB5_NT_PRINCIPAL -mapop set +desonly -pass passwd -out c:\host.keytab кейтаб для сервиса ktpass -princ HTTP/FULL_NAME_SERVER@DOMAIN_NAME -mapuser http@DOMAIN__NAME \ -crypto DES-CBC-MD5 -ptype KRB5_NT_PRINCIPAL -mapop set +desonly -pass passwd -out c:\http.keytab добавляем сервис setspn.exe -A HTTP/FULL_NAME_SERVER@DOMAIN_NAME http так же требуется создания юзера с минимальными правами для подключения LDAP в krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log krb = SYSLOG:INFO:DAEMON krb = FILE:/usr/local/proxy/logs/krb.log admin_server = FILE:/var/log/kadmind.log [libdefaults] ticket_lifetime = 24000 default_realm = DOMAIN_NAME - обязательно большими буквами dns_lookup_realm = false dns_lookup_kdc = false [realms] DOMAIN.RU = { kdc = first_dc.DOMAIN_NAME kdc = second_dc.DOMAIN_NAME admin_server = first_dc.DOMAIN_NAME default_domain = DOMAIN_NAME } [domain_realm] .domaim.ru = DOMAIN_NAME domain.ru = DOMAIN_NAME [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } #[kdc] # profile = /var/kerberos/krb5kdc/kdc.conf в ldap.conf # # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=example, dc=com #URI ldap://ldap.example.com ldap://ldap-master.example.com:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never BASE DC=DOMAIN,DC=RU URI ldap://domain_ip_address REFERRALS off searchmode:OS ldapservers:omain_ip_address binddn:CN=user,CN=Users,DC=DOMAIN,DC=RU bindpwd:password userbasedn:CN=Users,DC=DOMAIN,DC=RU Все на этом на этом авторизация работает, переходим к сборке PHP Установка PHP Если для апача было не много зависимостей, то PHP его в этом дела опережает на порядок, нам снова нужно определится с зависимостями. Мне нужно что бы PHP работал с oracle, графикой(GD), xml и перенаправлял запросы(CURL), поэтому список зависимостей следующий <b>expat, oracle, zlib, libiconv, curl, png, jpeg, freetype, xml2, gd</b> Компиляцию некоторых пакетов описана выше, поэтому описывать их не буду CURL ./configure \ --prefix=/PREFIX/curl \ --with-iconv=/PREFIX/iconv \ --with-zlib=/PREFIX/zlib \ --enable-shared \ --disable-static gmake gmake install FREETYPE2 gmake distclean ./configure \ --prefix=/PREFIX/freetype \ --enable-shared \ --disable-static gmake gmake install PNG gmake distclean ./configure \ --prefix=/PREFIX/png \ --enable-shared \ --disable-static gmake gmake install JPEG gmake distclean ./configure \ --prefix=/PREFIXjpeg \ --enable-shared \ --disable-static gmake gmake install XML ./configure \ --prefix=/PREFIX/xml2 \ --with-iconv=/PREFIX/iconv \ --with-zlib=/PREFIX/zlib \ --enable-shared \ --disable-static gmake gmake install GPG (графика) gmake distclean ./configure \ --prefix=/PREFIX/gp \ --with-free-type=/PREFIX/freetype \ --with-jpeg=/PREFIX/jpeg \ --with-png=/PREFIX/png \ --without-x \ --without-xpm gmake gmake install Теперь можно переходить к сборке PHP ./configure \ --with-apxs2=$BAP/bin/apxs \ --with-config-file-path=$BAP/conf \ --prefix=/PREFIX/php \ --with-zlib=/PREFIX/z \ --with-zlib-dir=/PREFIX/z \ --with-iconv=/PREFIX/iconv \ --disable-dba \(убрать если есть oci8) --with-curl=/PREFIX/curl \ --with-png-dir=/PREFIX/png \ --with-jpeg-dir=/PREFIX/jpeg \ --with-freetype-dir=/PREFIX/freetype \ --with-libxml-dir=/PREFIX/xml2 \ --with-ttf \ --with-oci8=/PREFIX/oracle \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --with-gd 2>&1 | tee configure.log make && make install Все PHP собран, теперь осталось только скопировать модуль php в директорию апача и подключить. Настройки PHP, виртуальных хостов я рассматривать не буду, об этом и так много статей написано. PS с керберосом бывают проблемы в плане обнаружения библиотек, будьте внимательны и прописывайте LD_LIBRARY_PATH Спасибо за внимание. Надеюсь эта статья поможет страждущим:)

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, abigor (?), 17:53, 19/01/2009 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    а на спарке что пакетов нету? зачем все из сырцов собирать, получилось не статья про Apache + Kerberos + LDAP + PHP, а про то как это все собрать из сырцов.
     
     
  • 2.10, geekkoo (ok), 12:26, 20/01/2009 [^] [ответить]    [к модератору]
  • +/
    >а на спарке что пакетов нету? зачем все из сырцов собирать, получилось
    >не статья про Apache + Kerberos + LDAP + PHP, а
    >про то как это все собрать из сырцов.

    Ну, при зарплате соплярисных админов, я думаю, они на отсутствие пакет-манагера не жалуются ;)

     
     
  • 3.18, User294 (ok), 13:35, 20/01/2009 [^] [ответить]    [к модератору]
  • +/
    >Ну, при зарплате соплярисных админов, я думаю, они на отсутствие пакет-манагера не
    >жалуются ;)

    А молоко им за вредность выдают?С такой установкой софта - надо бы...

     
     
  • 4.21, B.O.B.A.H. (??), 15:34, 20/01/2009 [^] [ответить]    [к модератору]
  • +/
    "молоко на губах не обсохло" - это не про солярисных админов случайно? :)
     
  • 2.17, User294 (ok), 13:34, 20/01/2009 [^] [ответить]    [к модератору]
  • +/
    >а на спарке что пакетов нету?

    Там в начале статьи написано... ;)

     
  • 1.2, B.O.B.A.H. (??), 00:57, 20/01/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    молодец Егор, хорошо написано!
    > а на спарке что пакетов нету?

    в начале статьи написано, зачен (почти) весь софт пришлось собрать

    вопрос Егору, почему sfw, а не
    http://www.blastwave.org/ ?

     
     
  • 2.3, typhoon2000 (ok), 02:38, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    Да как то не знаю, просто у меня так исторически сложилось :) обычно пакеты беру с swf. А за ссылку спасибо, не знал если честно)
     
  • 2.5, Bocha (??), 09:40, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    To do much of anything you will need pkg-get on your system.
    pkgadd -d http://blastwave.network.com/csw/pkg_get.pkg
    но http://blastwave.network.com/csw/pkg_get.pkg - The page or link can not be found at this time.
     
     
  • 3.6, Bocha (??), 09:45, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    Хотя, конечно, можно просто качать pkg.gz из архива и ставить руками, но всё же...
     
  • 3.16, jSnake (?), 13:29, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    Они заменили pkg_get на pkgutil (http://wiki.blastwave.org/).
    Подозреваю, что это произошло после ссоры на предмет предпочтений IPS/SVR4.
    Хотя,вынужден признать, всё больше склоняюсь к самосборкам (естессно дома или малых серверах).
    P.S. За статью спасибо как за труд в принципе - в закладки однозначно.
     
  • 1.4, typhoon2000 (ok), 03:17, 20/01/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Пока сам еще раз просматривал еще пару опечаток нашел, о чем я думал когда написал вместо GD GPG


     
  • 1.7, geekkoo (ok), 10:10, 20/01/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >>использовал исходники кербероса от MIT

    А вот это зря. Ребята из OpenLDAP ругают эту реализацию на чем свет стоит, поскольку они считают, что у ребят из MIT странные представления о thread-safety:
    http://www.openldap.org/lists/openldap-technical/200802/msg00118.html

    Если вы используете APache-2, то я думаю вам стоит готовиться писать баг-репорты или же ставить heimdal (что OpenLDAP и рекомендует делать).

     
     
  • 2.8, typhoon2000 (ok), 11:24, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    Как раз использую апач 2, но в связке с MIT работает нормально, покрайней мере уже второй месяц не ту ошибок. Но за совет спасибо в следующий раз обязательно почитаю
     
     
  • 3.9, geekkoo (ok), 12:25, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    >Как раз использую апач 2, но в связке с MIT работает нормально,
    >покрайней мере уже второй месяц не ту ошибок. Но за совет
    >спасибо в следующий раз обязательно почитаю

    Дык, ошибки от неправильного разделения тредов проявляются только тогда, когда несколько тредов обращаются параллельно к одному ресурсу, да и в этом случае они проявляются через раз. Насколько интенсивно к вам в течении двух месяцев шли запросы на авторизацию через Kerberos величина для нас неведомая.

    Т.е. правильная проверка должна заключаться в одновременном запросе на аутентификацию с нескольких клиентов, причем желательно, чтобы запрос поступал на одного принципала (а то мало ли, как там page-lock разруливается). Т.е. это сложная (в смысле отладки) ошибка и даже при ее обнаружении сложно определить виновного, куда баг-репорты слать.


     
     
  • 4.11, typhoon2000 (ok), 12:30, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    Учту на будущее и буду, как говорится держать руку на пульсе, ну и на всякий случай heimdal соберу на тестовой. Посмотрю как работать будет, да и статью об этом добавлю
     
     
  • 5.12, geekkoo (ok), 12:55, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    Ну, вы уж тогда ещё пару слов про настройку клиентов скажите. А то в firefox-е для аутентификации через Kerberos (SPNEGO) требуется настройка ещё пары параметров в about:config
     
     
  • 6.20, typhoon2000 (ok), 15:05, 20/01/2009 [^] [ответить]    [к модератору]  
  • +/
    в пустой вкладке набрать about:config и найти поле network.negotiate-auth.trusted-uris и прописать имя своего сервера.
    для ntlm нужно найти поле automatic-ntlm-auth.trusted-uris

    PS написал в комментах позже добавлю в статью, когда все подготовлю, вместе с сборкой и настройкой ntlm авторизации с LDAP, что бы админа лишний раз не дергать :)

     
  • 1.22, yl (?), 21:02, 20/01/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Еще один вариант решеия для 64-битных платформ Solaris без сборки вручную -
    http://www.netbsd.org/docs/software/packages.html#platforms

     
  • 1.23, adil_18 (??), 09:27, 21/01/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    а я думаю, что эта статья к солярису вообще никак не относится, ребята конечно молодцы, что постарались, но апач с пхп и прочие пакеты на солярке это зверство. И не выжу тут никакой связа с администраторами Соляриса, ребята 100% линуксоиды не помимающие глобального принципа эксплуотации операционных систем. Люди, Солярис не для того, чтобы на него апач с пхп вешать, да еще и с керберосом...
     
     
  • 2.24, typhoon2000 (ok), 11:16, 21/01/2009 [^] [ответить]    [к модератору]  
  • +/
    А в чем тогда принцип, изложите поподробнее. Зачем тогда нужен солярис?

    >Люди, Солярис не для того, чтобы на него апач с пхп вешать, да еще и с керберосом...

    А если ситуация такая нужны веб-сервера с авторизацией, а среди доступных серверов только Саны на спарках, и смысл туда ставить другую ОС если родная для них солярка?

     
  • 2.25, geekkoo (ok), 11:35, 21/01/2009 [^] [ответить]    [к модератору]  
  • +/
    >а я думаю, что эта статья к солярису вообще никак не относится,
    >ребята конечно молодцы, что постарались, но апач с пхп и прочие
    >пакеты на солярке это зверство. И не выжу тут никакой связа
    >с администраторами Соляриса, ребята 100% линуксоиды не помимающие глобального принципа эксплуотации
    >операционных систем. Люди, Солярис не для того, чтобы на него апач
    >с пхп вешать, да еще и с керберосом...

    Точно... Ваще на солярку что-то ставить - это преступление! Нужно просто, когда приходят посетители, так небрежно показывать рукой - "А вот там в углу у меня Солярис на Спарках стоит ..."

    Вы ж Ролексы покупаете не для того, чтоб по ним время смотреть ...

     
  • 1.26, adil_18 (??), 15:20, 21/01/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А если ситуация такая нужны веб-сервера с авторизацией, а среди доступных серверов только Саны на спарках, и смысл туда ставить другую ОС если родная для них солярка?

    если уж говорить про native applications,  то под солярис, апач с пхп ух точно не роден.

    А Solaris нужен для построения data warehouse баз, организаций приложений высокой доступности, средства управления горизонтальной масштабируемости в рамках виртуальзации, и уж в конце концов более чем половина завязывает critical application своего бизнесса на Solaris, а вот такие вот как автор темы пытаются сделать из Solaris -a Linux.
    Еще вопросы будут ?

     
     
  • 2.27, geekkoo (ok), 15:46, 21/01/2009 [^] [ответить]    [к модератору]  
  • +/
    >А если ситуация такая нужны веб-сервера с авторизацией, а среди доступных серверов
    >только Саны на спарках, и смысл туда ставить другую ОС если
    >родная для них солярка?
    >
    >если уж говорить про native applications,  то под солярис, апач с
    >пхп ух точно не роден.
    >
    >А Solaris нужен для построения data warehouse баз, организаций приложений высокой доступности,
    >средства управления горизонтальной масштабируемости в рамках виртуальзации, и уж в конце
    >концов более чем половина завязывает critical application своего бизнесса на Solaris,

    Угумс. http://www.theregister.co.uk/2008/11/12/suns_market_cap_below_3bn_dollars/

    Дядя Риччи ещё вас всех переживёт и на ваших поминках насморк подхватит ...
    >а вот такие вот как автор темы пытаются сделать из Solaris
    >-a Linux.
    >Еще вопросы будут ?

     
     
  • 3.29, adil_18 (??), 16:05, 21/01/2009 [^] [ответить]    [к модератору]  
  • +/
    не вижу связи с данной темой
     
     
  • 4.30, geekkoo (ok), 16:28, 21/01/2009 [^] [ответить]    [к модератору]  
  • +/
    > не вижу связи с данной темой

    А оно связи и не имеет. Точно так же как и огульная неконструктивная критика.

    "Критикуя - предлагай"

     
     
  • 5.31, adil_18 (??), 16:45, 21/01/2009 [^] [ответить]    [к модератору]  
  • +/
    Никто и не критикует, мне задали вопрос, я и развил тему :)
     
  • 1.28, adil_18 (??), 16:00, 21/01/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    не вижу ничего специфичного под Соларис в этой статье такого, с чем не справился бы тот же самый freebsd на Х -ой машинке, я б еще понял, если описывалась методика написания демонов используя Oracle ProС.

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:




      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor