ot Aerion(4-10-2004)

reiting (30)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Vmesto vuvedenie

    Predi okolo 7 mesetsa, na prednata mi mestorabota zapochnah, kato vseki razumen chovek da se stremia kum tsentralizatsiia na upravlenieto vuv firmata. Tova koeto beshe edno ot nai – dosadnite zadulzheniia be da se zadavat prava na potrebitelite za dostup do internet. Mrezhata beshe Microsoft bazirana - Aktivna Direktoriia. Estestvenoto reshenie na zadachata beshe da se izbere Microsoft ISA Server, no za moe nai - goliamo shtastie, nikoi ot horata ot koito zaviseshe zakupuvaneto na takova reshenie ne mu se doveriavaha - IT Managera - ponezhe go poznavashe do niakude, generalniia direktor - ponezhe hich ne mu haresa telefonniia nomer koito vsushtnost beshe tsenata, koiato triabvashe da se zaplati. Togava imah vuzmozhnostta da se porovia malko s LDAP (openldap) i sus squid. Taka popadnah na opisanoto po - dolu reshenie.
Neobhodim softuer:

    • openldap
    • SQUID - kompiliran s poddruzhka na ldap (tova oznachava, che imate slednite programi: squid_ldap_auth i squid_ldap_group)
Zapoznavane sus strukturata na Aktivnata Direktoriia:
    Za da pridobiete predstava, kak izglezhda strukturata na Aktivnata Direktoriia (AD) mozhete da ia razgledate ot vashata sistema s komandata:
    example# ldapsearch -L -D "yourdomainyourdomainusername" "(&(objectCategory=person)(objectClass=user)(sAMAccountName= someusername))" -W
    Vie shte budete popitan za parolata na potrebitelia na domeina ( yourdomainusername). Otgovora na tazi komanda e dosta goliam, zatova po -dobre e da go prenasochite kum fail. Za predpochitane e da razgledate faila i da se opitate da vniknete v sudurzhanieto mu. V sledvashtata versiia na tozi dokument, shte ima kratko predstaviane na faila.
Zapoznavane s programite squid_ldap_auth i squid_ldap_group:
    Za da imate predstava kak tochno rabotiat tezi dve komandi, nai – dobre e da gi testvate ot konzola, predi da gi “dadete” na SQUID da raboti s tiah. Da predpolozhim, che imate konfiguriran Microsoft Active Direcotry Server s ime na domeina: example.com, potrebitel testuser, koito prinadlezhi v grupata proxygroup, parola na potrebitelia testuserpass i internet adres 1.2.3.4. Za da mozhe da raboti SQUID s AD, toi triabva da mozhe da se identifitsira v neia. Za tselta mozhete da izpolzvate veche sushtestvuvasht potrebitel ili da suzdadete nov. V nashiia sluchai, shte izpolzvame potrebitel proxyauth s parola proxyauthpassword.
    • squid_ldap_auth:
    Slednata komanda proveria za vernostta na kombinatsiiata potrebitel/parola za Aktivnata Direktoriia:
    #example /usr/lib/squid/squid_ldap_auth -b cn=users,dc=example,dc=com -u cn -h 1.2.3.4 -D cn=proxyauth,cn=users,dc=example,dc=com -w “proxyauthpassword” -f sAMAccountName=%s
    Ako poznavate openldap i ako ste razgledali vnimatelno faila sus sudurzhanieto na aktivnata direktoriia, v obshti linii shte ste naiasno kakvo tochno iska tozi fail. I vse pak – nakratko:
      -b cn=users,dc=example,dc=com - s tozi red ukazvate, tochno v koia chast na durvoto na AD shte tursim informatsiia;
      -u cn - pokazvate obektniia klas s koito shte tursim nuzhnata informatsiia;
      -h 1.2.3.4 – tova e adresa na AD;
      -D cn=proxyauth,cn=users,dc=example,dc=com – ukazva potrebitelia, koito iska informatsiiata. Tova triabva da e validen za AD potrebitel;
      -w "proxyauthpassword" – parola za identifikatsiia v AD na potrebitelia, koito tursi informatsiiata;
      -f sAMAccountName=%s – tova e informatsiiata koiato tursim (proveriavame) – suotvetstvie na potrebitel i parola.

    Kogato startirate programata, niama da poluchite nikakuv otgovor, zapitvane ili prompt. Programata ochakva da vuvedete osnovnata informatsiia (potrebitel/parola) v sledniia format: username password Ako kombinatsiiata e viarna, shte poluchite otgovor “OK”, ako li ne - “ERR”.
      Eto edin primer:
    example# /usr/lib/squid/squid_ldap_auth -b cn=users,dc=example,dc=com -u cn -h 1.2.3.4 -D cn=proxyauth,cn=users,dc=brs,dc=bg -w "proxyauthpassword" -f sAMAccountName=%s testuser testuserpass OK testuser someotherpass ERR
    • squid_ldap_group:
    Slednata komanda proveriava dali posocheniia potrebitel prinadlezhi v posochenata grupa v AD:
    example# /usr/lib/squid/squid_ldap_group -b "dc=example,dc=com" -h 1.2.3.4 -D "cn=proxyauth,cn=users,dc=example,dc=com" -w proxyauthpassword -f "(&(cn=%a)(member=%v))" -F "(sAMAccountName=%s)"
    Tuk neiasnite argumenti veche triabva da sa sa po – malko:
      member=%v – dali potrebitelia prinadlezhi na posochenata grupa.
    I pri tazi komanda, sled izpulnenieto i, niama da poluchite nikakva reaktsiia – komandata ochakva da vuvedete potrebitelsko ime i grupa v slednata posledovatelnost: username group Otnovo vuzmozhnite otgovri sa “OK”, i “ERR”.
      Eto edin primer:
    example# /usr/lib/squid/squid_ldap_group -b "dc=example,dc=com" -h 1.2.3.4 -D "cn=proxyauth,cn=users,dc=example,dc=com" -w “proxyauthpassword” -f "(&(cn=%a)(member=%v))" -F "(sAMAccountName=%s)" testuser proxygroup OK testuser othergroup-testuser-dont-belong ERR
Faila squid.conf i implementirane na programite squid_ldap_auth i squid_ldap_group v nego.
    Sled kato se zapoznahme s nachina na rabota na tezi programi, ostava samo da gi vklyuchim v konfiguratsionniia fail na squid, da opishem pravata za dostup (acl) i sme gotovi da pusnem nashiia survur. Tui, kato nai – dobrata dokumentatsiia za SQUID si ostava konfiguratsionniia mu fail, shte opisha samo mestata na koito triabva da budat vuvedeni programite i kak v obshti linii izglezhdat pravata za dostup.
    • Za programata squid_ldap_auth
    --- squid.conf ---
    ...
    auth_param basic program /usr/lib/squid/squid_ldap_auth -b cn=users,dc=example,dc=com -u cn -h 1.2.3.4 -D cn=proxyauth,cn=users,dc=brs,dc=bg -w "proxyauthpassword" -f sAMAccountName=%s ...
    --- squid.conf ----
    • Za programata squid_ldap_group
    --- squid.conf --- ...
    external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group -b "dc=brs,dc=bg" -h brs-dc1.brs.bg -D "cn=proxyauth,cn=users,dc=brs,dc=bg" -w Aa123456 -f "(&(cn=%a)(member=%v))" -F "(sAMAccountName=%s)"
    ...
    --- squid.conf ---
    • pravata na dostup (acl):

    --- squid.conf ---
    ...
    acl password proxy_auth REQUIRED
    acl proxygroup external ldap_group proxygroup
    ...
    --- squid.conf ---
    Tezi dva reda ukazvat, che za da izpolzvate proksito, triabva zadulzhitelno da se predstavite na softuera s potrebitelsko ime i parola (ot AD v sluchaia) i da ste chlen na grupata proxygroup. P.P. Variantite za proverka na potrebitelia i potrebitelskata grupa sa dva. Tuk e posochen samo ediniia. Pri ne tolkova zadulbochen pregled na faila s eksporta na AD, shte vidite i drugata vuzmozhnost.


<< video4linux i kak da si napravim webcam server | Napulno avtonomno delegirane na in-addr.arpa >>