Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-11-20 14:12:14

  grom - Nowy użytkownik

grom
Nowy użytkownik
Zarejestrowany: 2013-11-20

Squid podstawowa autentykacja przez LDAP

Witam,

Mam problem ze zmuszeniem squid_ldap_auth do komunikacji z AD na windows 2008,

gdy odpalam komende

Kod:

ldapsearch -x -b dc=domena,dc=com -D user@domena.com -h serwer.domena.com -W

wszystko jest ok, listuje się cała domena

gdy wpisuję

Kod:

/usr/lib64/squid/squid_ldap_auth -b "dc=domena,dc=com" -f "uid=%s" serwer.domena.com -d

i podaję user@domena.com hasło to dostaje komunikat :

Kod:

squid_ldap_auth: WARNING, LDAP search error 'Operations error'
ERR Success

próbowałem też

Kod:

 /usr/lib64/squid/squid_ldap_auth -b "dc=domena,dc=com" -D "cn=Nazwa usera,cn=Users,dc=domena,dc=com" -f "uid=%s" -h serwer.domena.com

niestety efekt taki sam
proszę o pomoc

Offline

 

#2  2013-11-20 14:26:42

  jurgensen - Użytkownik

jurgensen
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2010-01-26

Re: Squid podstawowa autentykacja przez LDAP

Prześledź najlepiej tcpdumpem ruch, zapisz wynik do pliku pcap i otwórz w wiresharku, wtedy wszystko powinieneś mieć widoczne. Ewentualnie umieść tutaj plik pcap.

Offline

 

#3  2013-11-23 13:09:24

  grom - Nowy użytkownik

grom
Nowy użytkownik
Zarejestrowany: 2013-11-20

Re: Squid podstawowa autentykacja przez LDAP

wklejam kawałek konfiguracji

Kod:

auth_param basic program /usr/lib/squid/squid_ldap_auth -R -b "dc=domena,dc=com" -D squid@domena.com -w ****** -f sAMAccountName=%s -h serwer.domena.com
auth_param basic children 10
auth_param basic realm SQUID PROXY
auth_param basic credentialsttl 1 minute


external_acl_type proxygroup %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=domena,dc=com" -D squid@domena.com -w ****** -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,OU=Users,DC=domena,DC=com")) -h serwer.domena.com


acl ldap_auth proxy_auth REQUIRED
acl allegro dstdomain allegro.pl www.allegro.pl

acl netaccess external proxygroup url_regex GRUPAwAD
acl google dstdomain google.pl
http_access deny google !netaccess
http_access allow ldap_auth

ldap_auth już mi działa problemem było kryterium wyszukiwania usera -f sAMAccountName jest poprawne dla windows servera 2003 (z takiego korzystam)
teraz chcę aby konkretne stronki były blokowane dla użytkowników z konkretnej gałęzi AD, myślałem że do tego posłuży mi squid_ldap_group ale dopiero teraz rozkiminłem że on sprawdza "Member Of" usera

gdzieś znalazłem taki kawałek kodu:

Kod:

acl ldap_backoffice ldap_auth static 'CN=BackOffice,OU=Groups,dc=my-domain,dc=de'
acl ldap_management ldap_auth static 'CN=Management,OU=Groups,dc=my-domain,dc=de'
acl ldap_it-service ldap_auth static 'CN=IT-Service,OU=Groups,dc=my-domain,dc=de'
acl ldap_development ldap_auth static 'CN=DEVELOPMENT,OU=Groups,dc=my-domain,dc=de'

http_access allow ldap_development
http_access allow ldap_backoffice
http_access allow ldap_management
http_access allow ldap_it-service
http_access deny all

to by mnie zajebiście urządzało ale w nowszej wersji squida chyba sie nie da tak, jakieś błędy wyskakują, pomocy

Offline

 

#4  2013-11-23 14:00:17

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Squid podstawowa autentykacja przez LDAP

Zobacz lepiej, czy Squid pójdzie z autoryzacją  PAM, a usługę pam dla Squida puść przez ldap.
Będzie łatwiej, a jakby LDAP się zjebał, to przełączanie w PAM ldapa na radiusa czy SQL, to  5 minut roboty.
Pryz okazji błędy w PAM są w Debianie łatane przeważnie w 72 godziny,
czego o Squidzie nie można powiedzieć.
I jakbyś chciał zapiąć do ldap Postfixa, Sambę, autoryzację WWW czy VPNa,
to możesz podpiąć pod ta samą usługę PAM w 3 minuty, zamiast się certolić z konfigami poszczególnych usług, które z ldapem czasami chodzą lepiej, ale przeważnie  gorzej.

W dodatku PAM o wiele łatwiej testować i debugować.

Sznurki:
Teoria:
http://pl.wikipedia.org/wiki/Pluggable_Authentication_Modules

Praktyka:
https://wiki.debian.org/LDAP/PAM
http://www.lazysystemadmin.com/2010/08/here-steps-to-pam-authentication-for.html

EDIT:
Inne wyjście, które ldapa zjada na śniadanie, to autoryzacja  w Radius,
może sobie chodzić na Win2008, łatwo do niego podpiąć i Squida i PAM.
Jeśli w tej wersji [url=http://technet.microsoft.com/en-us/library/cc995218.aspx]Win2008 jest radius[/url], to chyba nawet można
go wydrapać myszką w AD.

W Linuxie autoryzację w radiusie obrobisz w 3 minuty:
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Radius
http://freeradius.org/pam_radius_auth/

Jakby Win2008 skończył [url=http://support.microsoft.com/kb/314458/pl]tak[/url] :D, to  serwer Radiusa na Linuxie można ogarnąć w  godzinę.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2013-11-23 14:26:15)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2013-11-23 15:15:19

  grom - Nowy użytkownik

grom
Nowy użytkownik
Zarejestrowany: 2013-11-20

Re: Squid podstawowa autentykacja przez LDAP

czemu ldap ma się zjebać ?

edit: tzn co znaczy że ldap się zjebie (kontroler domeny padnie?)

Ostatnio edytowany przez grom (2013-11-23 15:20:23)

Offline

 

#6  2013-11-23 19:48:31

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Squid podstawowa autentykacja przez LDAP

Nie koniecznie LDAP, ale system może paść albo dysk.
Jeszcze nie wymyślili takiego serwera, który nie potrafi się rypnąć

Raz w robocie miałem ślitaśny spiuper serwer Win2003, który zdechł z powodu jakiegoś wirusa, i było po danych na dysku - bazy MsSQL.
Była niezła jazda z reperacją tego dziadostwa, na szczęście był też backup wszystkich baz.
Ale nieczynna przez prawie dwa dni księgowość - bezcenne. :P

Dlatego na Twoim miejscu brałbym dwa graty z Linuxem albo lepiej OpenBSD,
żeby obsługiwały autoryzację radius, i zarówno Win-serwery jak i wszystkie  Linuxy podpiął pod tych radiusów.

Życie mnie nauczyło, żeby firmie Windows i jej produktom nie ufać nigdy i w żadnym stopniu.

Dlatego preferuję takie rozwiązania, które można bez problemu uruchomić na każdym systemie, i łatwo je naprawić albo zastąpić w razie awarii.

W PAM możesz podmienić konfig dla usługi w /etc/pam.d/, zrestartować usługę, i np po minucie masz czynną usługę, która 3 min wcześniej chodziła na ldap, a obecnie na radiusie albo sql.
W konfigach Squida w tym czasie nie zmieniasz nawet przecinka.

I radzę zamiast Ldapa, Radius, jest o cale niebo prostszy w obsłudze od ldapa,
a Windows 2008 ma wbudowany serwer radius (nie wiem, czy we wszystkich wersjach), w Linuxie/FreeBSD/OpenBSD masz Freeradiusa.

FreeRadius w akcji:

Kod:

time radtest  -x -t chap  test  test localhost  1814  {hasełko-radiusa} 
Sending Access-Request of id 198 to 127.0.0.1 port 1812
    User-Name = "test"
    CHAP-Password = 0xc65ccdb919b863789f7605da2c228e2c53
    NAS-IP-Address = 127.0.0.1
    NAS-Port = 1814
    Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=198, length=32
    Framed-IP-Address = 192.168.2.229
    Framed-IP-Netmask = 255.255.255.0

real    0m0.052s
user    0m0.032s
sys    0m0.019s

Konfiguracja pam_radius na dwa serwery:

Kod:

127.0.0.1    secret             1
other-server    other-secret       3

Freeradiusa dla sprawdzenia postawiłem od zera w ciągu pół godziny
- działa z Mysql.

Autoryzacje da się podpiąć do wszystkich usług i serwerów, włącznie z Asteriskiem i Freeswitchem (telefonia voip) czy Ejabberd (Jabber),
a także uwierzytelniać miśków w większości routerów dostępnych na rynku.

Do tego "mega trudne" generowanie certów dla miśków, do uwierzytelnienia EAP-TLS:
http://deployingradius.com/documents/configuration/certificates.html


A tu konfiguracja Squida do pracy z Radiusem:
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Radius

Także zamiast ldapa - radius i dwa piwa :D

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2013-11-24 12:42:11)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2013-11-24 10:42:20

  grom - Nowy użytkownik

grom
Nowy użytkownik
Zarejestrowany: 2013-11-20

Re: Squid podstawowa autentykacja przez LDAP

ok dzięki :) w wolnej chwili poczytam i postaram się wdrożyć, póki co podstawowy cel osiągnąłem, teraz czas na kosmetykę ; P - czy da się zeedytować defaultowe okienko logowania ktore wyskakuje? chciałbym żeby było ono bardziej czytelne

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.011 seconds, 15 queries executed ]

Informacje debugowania

Time (s) Query
0.00016 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00106 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.147.82.252' WHERE u.id=1
0.00070 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.147.82.252', 1732863178)
0.00051 SELECT * FROM punbb_online WHERE logged<1732862878
0.00096 DELETE FROM punbb_online WHERE ident='18.117.105.40'
0.00077 DELETE FROM punbb_online WHERE ident='18.117.158.10'
0.00069 DELETE FROM punbb_online WHERE ident='18.225.92.60'
0.00081 DELETE FROM punbb_online WHERE ident='3.145.68.167'
0.00046 SELECT topic_id FROM punbb_posts WHERE id=246558
0.00007 SELECT id FROM punbb_posts WHERE topic_id=24649 ORDER BY posted
0.00055 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=24649 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00082 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=24649 ORDER BY p.id LIMIT 0,25
0.00073 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24649
Total query time: 0.00839 s