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, 12:26, 20/01/2009 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Ну, при зарплате соплярисных админов, я думаю, они на отсутствие пакет-манагера ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, User294, 13:35, 20/01/2009 [^] [ответить] [смотреть все]  
  • +/
    А молоко им за вредность выдают С такой установкой софта - надо бы ... весь текст скрыт [показать]
     
     
  • 4.21, B.O.B.A.H., 15:34, 20/01/2009 [^] [ответить] [смотреть все]  
  • +/
    "молоко на губах не обсохло" - это не про солярисных админов случайно? :)
     
  • 2.17, User294, 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, 02:38, 20/01/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да как то не знаю, просто у меня так исторически сложилось обычно пакеты беру... весь текст скрыт [показать] [показать ветку]
     
  • 2.5, Bocha, 09:40, 20/01/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    To do much of anything you will need pkg-get on your system pkgadd -d http bl... весь текст скрыт [показать] [показать ветку]
     
     
  • 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 Подозреваю, что эт... весь текст скрыт [показать]
     
  • 1.4, typhoon2000, 03:17, 20/01/2009 [ответить] [смотреть все]  
  • +/
    Пока сам еще раз просматривал еще пару опечаток нашел, о чем я думал когда написал вместо GD GPG


     
  • 1.7, geekkoo, 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, 11:24, 20/01/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Как раз использую апач 2, но в связке с MIT работает нормально, покрайней мере у... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.9, geekkoo, 12:25, 20/01/2009 [^] [ответить] [смотреть все]  
  • +/
    Дык, ошибки от неправильного разделения тредов проявляются только тогда, когда н... весь текст скрыт [показать]
     
     
  • 4.11, typhoon2000, 12:30, 20/01/2009 [^] [ответить] [смотреть все]  
  • +/
    Учту на будущее и буду, как говорится держать руку на пульсе, ну и на всякий слу... весь текст скрыт [показать]
     
     
  • 5.12, geekkoo, 12:55, 20/01/2009 [^] [ответить] [смотреть все]  
  • +/
    Ну, вы уж тогда ещё пару слов про настройку клиентов скажите А то в firefox-е д... весь текст скрыт [показать]
     
     
  • 6.20, typhoon2000, 15:05, 20/01/2009 [^] [ответить] [смотреть все]  
  • +/
    в пустой вкладке набрать about config и найти поле network negotiate-auth truste... весь текст скрыт [показать]
     
  • 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, 11:16, 21/01/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А в чем тогда принцип, изложите поподробнее Зачем тогда нужен солярис А если с... весь текст скрыт [показать] [показать ветку]
     
  • 2.25, geekkoo, 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, 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, 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