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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Mam problem ze zmuszeniem squid_ldap_auth do komunikacji z AD na windows 2008,
gdy odpalam komende
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ę
/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 :
squid_ldap_auth: WARNING, LDAP search error 'Operations error' ERR Success
próbowałem też
/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
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
wklejam kawałek konfiguracji
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:
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
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)
Offline
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
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:
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:
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)
Offline
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
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00098 | 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='18.188.119.67' WHERE u.id=1 |
0.00064 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.188.119.67', 1732855260) |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732854960 |
0.00066 | 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.00209 | 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.00077 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24649 |
Total query time: 0.00577 s |